|
Deus | |||
|
Пример 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)Сохраняем созданное: # iptables-save Теперь вносим изменения в автозагрузку. Создаем файл /etc/iptables примерно следующего содержания: #!/bin/sh И активируем сей скрипт: # insserv /etc/init.d/iptables Перезагружаем компьютер. 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 | ||
| |||
|
Этот сайт создан Deus'ом
в марте - августе 2005 года.
|
|||