Ivanovo Linux Users Group -  
Форум Помощь Поиск Вход
Предыдущая Следующая Вверх Тема Администрирование / Работа с сетью / Базовая защита с помощью firewall'а (2005 хитов)
Написал(а) LOE (Site/forum admin) Дата 17.11.05 10:07
Задача:
имеется хост в локалке. необходимо обеспечить пропуск в "мир" исходящих запросов и пропуск входящих на заданные порты. Всё остальное - рубить нещадно.

Пример скриптика, взводящего нужные правила на шлюзе:
eth0 - локалка, eth1 - наружу
IP1 - внутренний IP хоста, IP2 - внешний адрес хоста (у меня - не совпадающий с внешним адресом шлюза)

#!/bin/sh

I='/usr/sbin/iptables'
IP1='192.168.0.2'
IP2='a.b.c.d'

# создаем дополнительный чейн
$I -N chain1 2>/dev/null
$I -F chain1

# кидаем входящие-исходящие пакеты хоста в новый чейн для проверок
# помещаем в начало (-I) форвард чейна - но это от последовательности запуска скриптов зависит
$I -I FORWARD -s $IP1 -j chain1
$I -I FORWARD -d $IP1 -j chain1

# нат
$I -t nat -A POSTROUTING -s $IP1 -o eth1 -j SNAT --to-source $IP2
$I -t nat -A PREROUTING -d $IP2 -i eth1 -j DNAT --to-destination $IP1

# Исходящие пакеты - пропускаем все
$I -A chain1 -s $IP1 -o eth1 -j ACCEPT

# Входящие
# принимать SYN пакеты на входе на порт 80 (делаем защищенный веб сервер)
$I -A chain1 -p tcp --dport 80 -d $IP1 -i eth1 --tcp-flags SYN,ACK,FIN SYN -j ACCEPT
# принимаем пакеты установленных соединений
# необходимо (в т.ч.) для работы исходящих запросов
$I -A chain1 -d $IP1 -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

# принимаем все локальные пакеты (с внутреннего eth0)
$I -I chain1 -d $IP1 -i eth0 -j ACCEPT

# блокируем всё остальное
$I -A chain1 -j DROP


Скрипт модифицировать под собственные нужды ;-)
"No! Try not! Do. Or do not. There is no try." -- Yoda
Предыдущая Следующая Вверх Тема Администрирование / Работа с сетью / Базовая защита с помощью firewall'а (2005 хитов)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.079s with 10 database queries.