Deus
YouTube ¦ Статьи ¦ Обзоры игр ¦ Ссылки ¦ Архив файлов

Статьи
  1. Deus stat - скрипт сбора статистики по трафику
  2. Установка сервера Apache на FreeBSD
  3. Как создать сервер Team Fortress 2
  4. Как создать сервер Counter-Strike:Source
  5. Русификация Slackware 11.0
  6. Установка Postfix c Cyrus IMAP
  7. NAT на базе natd/ipfw во FreeBSD
  8. NAT на базе iptables в Linux
  9. Как установить Linux через PXE
  10. Создание своего rpm
  11. Консоль через COM-порт для FreeBSD
  12. Как смонтировать usb-flash в качестве swap
  13. АТС NEC NEAX 2000 IPS
  14. Семейство протоколов TCP/IP
  15. Сетевые технологии
  16. Как отсортировать IP-адреса в Excel’e
  17. Сканер Mustek Bear Paw 1200CU Plus в Linux
  18. Схема электроразводки популярных гитар
  19. Микрофонный предусилитель
  20. Как подключить электрогитару к компьютеру
  21. Мои гитары
  22. Баллада о ZooM’e
Обзоры игр
  1. Портативная игростанция (PSP). Продолжение
  2. Тишина нарушена. Обзор серии Silent Hill
  3. Портативная игростанция (PSP)
  4. Speccy навсегда
Ссылки
  1. Различные ресурсы Интернет
  2. Мои работы
Файлы
  1. Архив файлов

    

Пример NAT и Firewall на базе iptables в Linux openSUSE

В openSUSE 10.2 имеется собственный SuSEfirewall2, который является графической версией для редактирования iptables (родного firewall для многих линуксов), и хорош для базовой конфигурации а-ля общий доступ в виндовс. Ниже рассмотрен вариант работы напрямую с iptables при отключенном SuSEfirewall2. Все это действительно (с небольшими поправками) и для других версий линукса.
Схема локальной сети

Своя локальная сеть 192.168.0.0/24 --[ eth1:192.168.0.1 openSUSE eth0:88.24.16.1 ]-- Internet

Ниже перечисленные действия следует выполнять от имени root.
Пересборка ядра Linux

Если у вас ядро openSUSE по умолчанию и ваши будущие правила не требуют дополнительных опций, можно сразу перейти к созданию правил.

Ядро находится в папке /usr/src/linux. Если его там нет, то необходимо установить все пакеты со словом kernel в названии при помощи менеджера YaST (команда в терминале # YaST):





Если у вас иной линукс, вы можете загрузить исходники ядра с сайта kernel.org

После чего нужно перейти в /usr/src/linux и набрать:

# make O=/usr/src/linux-obj menuconfig

Появится меню. В нем нужно указать, кроме всего прочего (полную оригинальную конфигурацию openSUSE вы найдете в файле /proc/config.gz), IP: advanced router, Netfilter connection tracking support, IPv4 connection tracking support, IP tables support, Full NAT в секции Networking.







Когда конфигурация готова, сохраняем все и запускаем компилирование командой:

# make O=/usr/src/linux-obj

Затем устанавливаем собранное ядро:

# make O=/usr/src/linux-obj modules_install install

Перезагружаемся.
Создание правил
Включаем переадресацию при помощи YaST (Сетевые службы - Маршрутизация):


Те, кто используют иную версию линукса, могут включить переадресацию командой

# echo 1 > /proc/sys/net/ipv4/ip_forward

или

# sysctl net.ipv4.ip_forward=1

Теперь вносим в таблицы iptables правило NAT:

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source 88.24.16.1

Проверяем командой просмотра:

# iptables -t nat -L

Должно быть так:

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT 0 -- 192.168.0.0/24 anywhere to:88.24.16.1
Сохраняем созданное:

# iptables-save

Теперь вносим изменения в автозагрузку. Создаем файл /etc/iptables примерно следующего содержания:

#!/bin/sh

### BEGIN INIT INFO
# Provides: iptables
# Required-Start: $local_fs $remote_fs $network
# X-UnitedLinux-Should-Start: $named $time postgresql sendmail mysql ypclient dhcp
# Required-Stop: $local_fs $remote_fs $network
# X-UnitedLinux-Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: iptables
# Description: Restore iptables
### END INIT INFO

case "$1" in
start)
/usr/sbin/iptables-restore < /etc/iptables
echo "IPtables restored"
;;
stop)
;;
*)
echo "Usage: start"
;;
esac

И активируем сей скрипт:

# insserv /etc/init.d/iptables

Если у в вашем линуксе иная схема автозагрузки, обратитесь за помощью к мануалу # man init.

Перезагружаем компьютер. NAT работает.
Iptables firewall
Допустим, необходимо закрыть доступ на порт tcp 22 нашего линукс-сервера для внешнего ip-адреса 209.195.132.165. Для этого нам понадобится таблица filter (она выбрана по умолчанию):

# iptables -A INPUT -p tcp -d 88.24.16.1 -s 209.195.132.165 --dport 22 -j DROP

Теперь запретим доступ в интернет для внутреннего ip-адреса 192.168.0.29:

# iptables -A FORWARD -s 192.168.0.29 -j DROP

Допустим, нужно перенаправить внешний порт tcp 8080 на внутренний адрес 192.168.0.4 и аналогичный порт. Здесь снова понадобится таблица nat:

# iptables -t nat -A PREROUTING -j DNAT -p tcp -d 88.24.16.1 --dport 8080 --to-destination 192.168.0.4

Для того, что бы правило осталось после перезагрузки сделаем:

# iptables-save

Что бы посмотреть текущее состояние таблицы filter, надо ввести:

# iptables -vL

Алгоритм работы Iptables
Взят отсюда.

Deus 15.07.2007



Opera!

Проект OpenNET

FreeBSD

Fedora Core 8


Посодействуй
ЯндексЯндекс. ДеньгиХочу такую же кнопку





[Главная] | [Я на YouTube] | [Статьи] | [Обзоры игр] | [Ссылки] | [Файлы] | [Обратная связь]
Этот сайт создан Deus'ом в марте - августе 2005 года.