Настройка файрвола на рабочем компьютере [SOLVED]

Здраствуйте.
Возникла необходимость настроить сетевую защиту на рабочем компьютере.

Компьютер находится в городской сети, задачи стандартные: веб, почта, фтп, торрент.
Также нужен полный доступ с одного-двух адресов.
Сетевые интерфейсы eth0 и ppp0

Подскажите, пожалуйста, достаточно ли будет этих правил :
iptables -A INPUT -s <доверенный ип> -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 0:1023 -j DROP
iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 0:1023 -j DROP

К сожалению,не разобрался ( в статье "Настройка iptables для начинающих" в пункте "Пример правил" ):
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Подскажите, пожалуйста, что означает это правило.
(То, что отклоняются входящие пакеты установки нового соединения я понял)

В качестве

В качестве примера.
Имеются две сетевые карты. Одна смотрит в локалку, другая служит для подключения ноута.

00:20 [pk_HOME:2][~]$ cat MyScript/firewall.sh
#!/bin/sh

IF="eth0"
IF_DOP="eth1"
ADR="192.168.6.14"
ADR_DOP="10.10.10.1"
ADR_ACCEPT="10.10.10.10"

# Очищаем и удаляем все цепочки
iptables -F
iptables -F -t nat
iptables -X

# Создаём политики по-умолчанию
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -t nat -P POSTROUTING ACCEPT

# Включаем форвардинг ip в ядре.
echo "1" > /proc/sys/net/ipv4/ip_forward

# Разрешаем вхождение пакетов по l0 интерфейсу (выход пакетов разрешён по-умолчанию)
iptables -A INPUT -i lo -j ACCEPT

# Разрешаем вход пакетов от ноута на дополнительный интерфейс, "форвардим" и "натим" их
iptables -A INPUT -i $IF_DOP -s $ADR_ACCEPT -j ACCEPT
iptables -A FORWARD -i $IF_DOP -s $ADR_ACCEPT -j ACCEPT
iptables -A FORWARD -o $IF_DOP -d $ADR_ACCEPT -j ACCEPT
iptables -t nat -A POSTROUTING -s $ADR_ACCEPT -j SNAT --to-source $ADR

# Разрешаем вход пакетов с признаком установленной связи, т.е. ответы на свои запросы
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Разрешаем вход пакетов на свои запущенные сервисы
        # SMB
iptables -A INPUT -p tcp --dport 137:139 -j ACCEPT
iptables -A INPUT -p udp --dport 137:139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
iptables -A INPUT -p udp --dport 445 -j ACCEPT
        # FTP
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -A INPUT -p tcp --dport 1024:1030 -j ACCEPT

# Разрешаем вход по tcp с портов 20 и 21 для работы по FTP в качестве клиента в активном режиме
iptables -A INPUT -p tcp --sport 20:21 -j ACCEPT

#DC++
iptables -A INPUT -p tcp --dport 10100 -j ACCEPT
iptables -A INPUT -p udp --dport 10100 -j ACCEPT

# DNS
iptables -A INPUT -p udp --sport 53 -j ACCEPT

# DHCP
iptables -A INPUT -p udp --sport 67 --dport 68 -j ACCEPT

# Ответ на traceroute
iptables -A INPUT -p udp --dport 33434:33437 -j ACCEPT

# ICMP
iptables -A INPUT -p icmp -d $ADR -j ACCEPT

# Логируем (при необходимости) остальные пакеты
#iptables -A INPUT -j LOG
#iptables -A FORWARD -j LOG

iptables 1.1.3 tutorial гласит

В пределах iptables, соединение может иметь одно из 4-х базовых состояний: NEW, ESTABLISHED, RELATED и INVALID....
Соединение получает статус RELATED если оно связано с другим соединением, имеющим признак ESTABLISHED. Это означает, что соединение получает признак RELATED тогда, когда оно инициировано из уже установленного соединения, имеющего признак ESTABLISHED. Хорошим примером соединения, которое может рассматриваться как RELATED, является соединение FTP-data, которое является связанным с портом FTP control, а так же DCC соединение, запущенное из IRC.
А правило означает, пакеты в цепочке INPUT с состоянием "НОВОЕ от УЖЕ УСТАНОВЛЕННОГО", "УСТАНОВЛЕННОЕ" разрешить

Cпасибо

Спасибо за пример.
Вопрос насчёт достаточности правил остаётся в силе.

Ну естественно

Ну естественно должна быть сначала политика по дефолту, а именно для рабочей станции это:
iptables -t filter -F
iptables -t filter -P INPUT DROP
iptables -t filter -A INPUT -s 127.0.0.1 -j ACCEPT (и так же для доверенных IP)
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

А потом уже впускешь только на определенные порты (те что хочешь открыть), я у себя делаю так:
iptables -t filter -A INPUT -m state --state NEW -p tcp -m multiport --dports 21,22,873 -j ACCEPT
естественно если не хочешь открывать портов, то не пишешь предудущей линейки.
Вот этого должно хватить.

Спасибо

Спасибо за ответы и особенно за примеры. Проблема решена.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".