> man operating_systems
Защищаем Линукс - файрвол за 10 минут.
на Среда, 19 Январь 2005, 16:42
добавил: Антон Малащенко aka Rygoravich список авторов печатать элемент контента создать pdf-файл  элемент контента
категория Статьи > Unix
комментарии: 0
просмотров: 9990



Часть II - Настройка для работы приложений-клиентов в сети Интернет.


Для начала разрешим прохождение служебных пакетов (вроде генерируемых командой ping, сообщений о недоступности хоста и т.п.).

# iptables -A INPUT -p ICMP -j ACCEPT
# iptables -A OUTPUT -p ICMP -j ACCEPT

Здесь -p ICMP указыват, что данное правило применимо только к пакетам протокола (-p от protocol) ICMP, т.е. к служебным пакетам. Интерфейс явно не указываем - это значит, что правило подходит для всех сетевых интерфейсов, имеющихся в системе. Однако, одних только служебных пакетов недостаточно...

# iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT

Здесь мы разрешаем пакеты, принимаемые по протоколам TCP и UDP (соответственно, в первой и второй командах), имеющие статус ESTABLISHED или RELATED. Ключ -m определяет тип критерия (т.е. в нашем случае - определять по статусу), а --state явно указывает, к пакетам с каким статусом применять правило. Всего статусов существует четыре: INVALID, ESTABLISHED, NEW и RELATED, но нас интересуют только эти два: ESTABLISHED означает, что пакет принадлежит установленному соединению, а RELATED порождает новое соединение из уже существующего (используется, например, протоколом ftp). В упрощенной форме можно сказать, что эти два правила разрешают попадание на ваш компьютер только тех TCP- и UDP-пакетов, которые были запрошены приложениями с вашего компьютера.

Однако пока еще запросить эти пакеты не представляется возможным, ибо в интернет могут уйти пакеты только по ICMP-протоколу. Для клиентских приложений делаем следующее:

# iptables -A OUTPUT -p TCP --sport 32768:65535 -j ACCEPT
# iptables -A OUTPUT -p UDP --sport 32768:65535 -j ACCEPT

Здесь --sport (source port) означает диапазон портов, с которых можно отправить пакеты. Как правило, именно указанные нами порты используют клиентские приложения, а порты с адресами ниже 32768 могут использоваться серверными приложениями. Проверим созданный набор правил командой iptables-save:

# iptables-save
# Generated by iptables-save v1.2.8 on Fri Jan 14 06:47:52 2005
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
 :OUTPUT DROP [20:1572]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 32768:65535 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 32768:65535 -j ACCEPT
COMMIT
# Completed on Fri Jan 14 06:47:52 2005

Теперь посмотрим, что же делать, если вы где-то ошиблись в наборе и ввели неверное правило. Попробуйте сделать следующее:

# iptables -A OUTPUT -p TCP -j ACCEPT
# iptables-save
# Generated by iptables-save v1.2.8 on Wed Jan 19 06:15:32 2005
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
 :OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 32768:65535 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 32768:65535 -j ACCEPT
-A OUTPUT -p tcp -j ACCEPT
COMMIT
# Completed on Wed Jan 19 06:15:32 2005

Как видим, появилось новое правило, позволяющее отправку любых TCP-пакетов. Это нам совсем ни к чему, и не помешает его удалить. Выполняем исходную команду, заменив -A ключом -D:

# iptables -D OUTPUT -p TCP -j ACCEPT
# iptables-save
# Generated by iptables-save v1.2.8 on Wed Jan 19 06:18:32 2005
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
 :OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 32768:65535 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 32768:65535 -j ACCEPT
COMMIT
# Completed on Wed Jan 19 06:18:32 2005

На сей раз в выводе iptables-save этого правила нет. Таким образом, удаление правил из цепочек можно производить точно так же, как и добавление, заменив ключ -A (add) на -D (delete).


индекс статьи
страница 1 : страница без заголовка
страница 2 - текущая : страница без заголовка
страница 3 : страница без заголовка
страница 4 : страница без заголовка


© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.