Помогите с настройкой Iptables (пожалуйста...)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

alternativshik
Сообщения: 154
ОС: Debian Lenny/Sid

Помогите с настройкой Iptables

Сообщение alternativshik »

Собственно, вот по этой статье хотел настроить фаервол, но че-то как-то не работает... Вот Скрипт

Код:

#!/bin/sh # Задаем некоторые переменные: # Переменная, задающая путь к файлу запуска iptables. IPT="/sbin/iptables" # Ваш сетевой интерфейс. Это нужно, чтобы не писать в правилах одно и тоже. INET_IFACE="eth0" # Номера непривилегированных портов UNPRIPORTS="1024:65535" start_fw() { # Включить перенаправление пакетов через ядро. echo 1 > /proc/sys/net/ipv4/ip_forward # Сбросить правила и удалить цепочки. $IPT -F $IPT -X # Политики по умолчанию. $IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP # Разрешаем прохождение любого трафика по интерфейсу обратной петли. $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT # Запрещаем любые новые подключения с любых интерфейсов, кроме lo к компьютеру. $IPT -A INPUT -m state ! -i lo --state NEW -j DROP # Если интерфейс не lo, то запрещаем входить в список его адресов. $IPT -A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP # Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса. $IPT -A INPUT -m state --state INVALID -j DROP $IPT -A FORWARD -m state --state INVALID -j DROP # Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED. # Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении. $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # Предупреждаю вас о туповатых провайдерах, которые назначают IP адреса, отведенные IANA для локальных сетей. # Например адреса 10.X.X.X. Для этого надо установить правило, пропускающие трафик с этих серверов, ранее цепочки INPUT. $IPT -t nat -I PREROUTING -i $INET_IFACE -s 10.10.25.1/32 -j ACCEPT # Эти правила предохраняют от некоторых типов атак: # SYN наводнение. # Приводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным. $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP # UDP наводнение # Службы использующие UDP, очень часто становятся мишенью для атак с целью вывода системы из строя. $IPT -A INPUT -p UDP -s 0/0 --destination-port 138 -j DROP $IPT -A INPUT -p UDP -s 0/0 --destination-port 113 -j REJECT $IPT -A INPUT -p UDP -s 0/0 --source-port 67 --destination-port 68 -j ACCEPT $IPT -A INPUT -p UDP -j RETURN $IPT -A OUTPUT -p UDP -s 0/0 -j ACCEPT # ICMP - перенаправление # ICMP - сообщение указывает системе изменить содержимое таблиц маршрутизации с тем, что бы направлять # пакеты по более короткому маршруту. Может быть использовано взломщиком для перенаправления вашего трафика через свою машину. $IPT -A INPUT --fragment -p ICMP -j DROP $IPT -A OUTPUT --fragment -p ICMP -j DROP # Разрешаем ICMP соединение. Значительная часть ICMP используется для передачи сообщений о # том, что происходит с тем или иным UDP или TCP соединением. $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type source-quench -j ACCEPT $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type source-quench -j ACCEPT # Разрешаем себе ping наружу - нас же не попингуешь - пакеты отбрасываются. $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type echo-reply -j ACCEPT $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type echo-request -j ACCEPT # Разрешаем передачу пакета - некорректный параметр - используется, если в заголовке пакета содержится недопустимая запись, # или если контрольная сумма заголовка не соответствует контрольной сумме, указанной передающим узлом. $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type parameter-problem -j ACCEPT $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type parameter-problem -j ACCEPT # Запрещаем подключение к X серверу через сетевые интерфейсы. $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 6000:6063 -j DROP --syn # Прописываем порты, которые открыты в системе, но которые не должны быть открыты на сетевых интерфейсах: # $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports #порта $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 783 $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 3310 $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 10000 # DNS сервер имен разрешаем. $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 53 --sport $UNPRIPORTS -j ACCEPT $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 53 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p udp -m udp -i $INET_IFACE --dport $UNPRIPORTS --sport 53 -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1024:65353 --sport 53 -j ACCEPT # Разрешаем AUTH-запросы на удаленные сервера, на свой же компьютер - запрещаем. $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 113 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 113 -j ACCEPT ! --syn $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 113 -j DROP # Открываем некоторые порты: # SMTP клиент (25) #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 25 --sport $UNPRIPORTS -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 25 -j ACCEPT ! --syn # POP3 клиент (110) #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 110 --sport $UNPRIPORTS -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 110 -j ACCEPT ! --syn # IMAP4 клиент (143) #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 143 --sport $UNPRIPORTS -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 143 -j ACCEPT ! --syn # SSH клиент (22) #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport $UNPRIPORTS -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 22 -j ACCEPT ! --syn #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport 1020:1023 -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1020:1023 --sport 22 -j ACCEPT ! --syn # FPT клиент (21) #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 21 --sport $UNPRIPORTS -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 21 -j ACCEPT ! --syn # HTTP/HTTPS клиент (80, 443) $IPT -A OUTPUT -p tcp -m tcp -m multiport -o $INET_IFACE --sport $UNPRIPORTS -j ACCEPT --dports 80,443 $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE --dport $UNPRIPORTS -j ACCEPT --sports 80,443 ! --syn # Разрешаем finger, whois, gorper, wais. Traceroute - разрешаем себе, к нам не проломятся - запрещено. Telnet # запретил, чтобы соблазна не было передавать пароли прямым текстом. $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 20 -j ACCEPT $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 20 --sport $UNPRIPORTS -j ACCEPT ! --syn $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport $UNPRIPORTS --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport $UNPRIPORTS -j ACCEPT ! --syn $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 23 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 23 -j ACCEPT ! --syn $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 79 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 79 -j ACCEPT ! --syn $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 43 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 43 -j ACCEPT ! --syn $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 70 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 70 -j ACCEPT ! --syn $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 210 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 210 -j ACCEPT ! --syn $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 33434:33523 --sport 32769:65535 -j ACCEPT # Разрешаем прохождение DHCP запросов через iptables. Нужно, если IP адрес динамический. # $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 67 --sport 68 -j ACCEPT # $IPT -A INPUT -p udp -m udp -i $INET_IFACE --dport 68 --sport 67 -j ACCEPT } case "$1" in start) echo -n "Starting firewall: iptables" start_fw echo "." ;; stop) echo -n "Stopping firewall: iptables" iptables -F iptables -X echo "." ;; save) echo -n "Saving firewall: iptables" iptables-save > /etc/rules-save echo "." ;; restart) echo -n "Restarting firewall: iptables" iptables -F iptables -X cat /etc/rules-save | iptables-restore echo "." ;; reload|force-reload) echo -n "Reloading configuration files for firewall: iptables" echo "." ;; *) echo "Usage: /etc/init.d/rc.iptables start|stop|restart|reload|force-reload" exit 1 ;; esac exit 0


Но он блокирует абсолютно все пакеты, если разрешить исходящие, то я вижу всех, но на HTTP сервер никто не может зайти...Забыл - компьютер подключен к сети, выход в интернет через pppoe. Подскажите, куда копнуть?
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Помогите с настройкой Iptables

Сообщение Goodvin »

Это
выход в интернет через pppoe.

и это
# Ваш сетевой интерфейс. Это нужно, чтобы не писать в правилах одно и тоже.
INET_IFACE="eth0"

как-то не очень соотносится.
При использовании PPPoE у Вас исхолдящим интерфейсом будет ppp0 (или dsl0, зависит от дистрибутива и способа настройки pppoe).

приведите сюда вывод команды ifconfig
Спасибо сказали:
alternativshik
Сообщения: 154
ОС: Debian Lenny/Sid

Re: Помогите с настройкой Iptables

Сообщение alternativshik »

Прошу

Код:

serega# ifconfig eth0 Link encap:Ethernet HWaddr 00:e0:4c:d0:9a:1b inet addr:10.10.25.16 Bcast:10.10.25.255 Mask:255.255.255.0 inet6 addr: fe80::2e0:4cff:fed0:9a1b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:827 errors:0 dropped:0 overruns:0 frame:0 TX packets:530 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:192113 (187.6 KiB) TX bytes:59678 (58.2 KiB) Interrupt:18 Base address:0xa000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:218 errors:0 dropped:0 overruns:0 frame:0 TX packets:218 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:117832 (115.0 KiB) TX bytes:117832 (115.0 KiB) ppp0 Link encap:Point-to-Point Protocol inet addr:192.168.25.16 P-t-P:192.168.1.3 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1460 Metric:1 RX packets:383 errors:1 dropped:0 overruns:0 frame:0 TX packets:437 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:143427 (140.0 KiB) TX bytes:36492 (35.6 KiB)

Попробовал сменить eth0 на ррр0, теперь я могу нормально выйти в сеть при политике поумолчанию ДРОП, но опять таки - к моему HTTP серверу доступа нет, Самба не видит компьютеров в сети, подключиться к сетевому DC серверу я тоже не могу...
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Помогите с настройкой Iptables

Сообщение Goodvin »

А теперь распишите ЛОГИЧЕСКИ, в строгом порядке - кому, куда, как, откуда, по каким портам и портоколам вы желаете разрешить/запретить прохождение пакетов, каких конкретно пакетов и т.д.и т.п..

Не на языке синтаксиса IPTABLES, а именно логически строго описанные простым человеческим языком правила, в том порядке, в котором вы хотите, чтобы они применялись к пакетам в тех или иных цепочках пакетного фильтра.
Определенная часть этого у Вас уже имеется в виде комментариев в Вашем скрипте.

После этого произойдут два события:
1. Вы сами поймете что и как вы хотите, появится ясное и четкое представление о структуре ВАШЕГО файрвола в целом.
2. По этоим правилам желающие смогут помочь Вам реализовать Ваш файрвол средставми IPTABLES.
Ибо разбираться в чужом файрволе, не зная в точности чего и как желает его автор - то ещё болото.
Спасибо сказали:
alternativshik
Сообщения: 154
ОС: Debian Lenny/Sid

Re: Помогите с настройкой Iptables

Сообщение alternativshik »

ИТАК начну, то, чего хочется, но пока не работает:
1. Доступ из сети к HTTP серверу на 80 и 443 порты, кроме определенных IP.
2. Должен быть доступ к Интренету, к FTP серверам сети, прокси серверу, dc++, в общем, как я понял - необходимо разрешить все исходящие пакеты?
3. Пинги должны приниматься только с 1 айпи провайдера на случай проблем с сетью.
4. С локальной сети необходимо также запретить все INPUT.
айпи адреса локальной сети имеют вид 10,10,25,*
Остальные ай пи во всей сети (видны естесственно лишь при активном рррое) 192,168,*,*

Вроде все. На данный момент: я могу выйти куда угодно, меня из локалки по 10,10,25,* видно, Пинги ко мне не ходять, все порты закрыты, все программы говорят, что меня в сети вообще нет, Собственно, почти то, что нужно.

Спасибо, что откликнулись. :drinks:
Спасибо сказали:
alternativshik
Сообщения: 154
ОС: Debian Lenny/Sid

Re: Помогите с настройкой Iptables

Сообщение alternativshik »

Выкладываю скрипт, который есть сейчас, бьюсь с Samba, но почему-то пока безуспешно, я не вижу никого...:

Код:

#!/bin/sh # Задаем некоторые переменные: # Переменная, задающая путь к файлу запуска iptables. IPT="/sbin/iptables" # Ваш сетевой интерфейс. Это нужно, чтобы не писать в правилах одно и тоже. INET_IFACE="ppp0" # Номера непривилегированных портов UNPRIPORTS="1024:65535" start_fw() { # Включить перенаправление пакетов через ядро. echo 1 > /proc/sys/net/ipv4/ip_forward # Сбросить правила и удалить цепочки. $IPT -F $IPT -X # Политики по умолчанию. $IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP # Разрешаем прохождение любого трафика по интерфейсу обратной петли. $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT # Запрещаем любые новые подключения с любых интерфейсов, кроме lo к компьютеру, а веб-сервер и Samba оставляем открытыми $IPT -A INPUT -m state -p tcp -i $INET_IFACE --dport 80 --state NEW -j ACCEPT $IPT -A INPUT -m state -p tcp -i eth0 --dport 80 --state NEW -j ACCEPT $IPT -A INPUT -m state -p tcp -m tcp -m multiport -i eth0 --state NEW --dports 139,445 -j ACCEPT $IPT -A INPUT -m state ! -i lo --state NEW -j DROP # Если интерфейс не lo, то запрещаем входить в список его адресов. $IPT -A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP # Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса. $IPT -A INPUT -m state --state INVALID -j DROP $IPT -A FORWARD -m state --state INVALID -j DROP # Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED. # Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении. $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # Предупреждаю вас о туповатых провайдерах, которые назначают IP адреса, отведенные IANA для локальных сетей. # Например адреса 10.X.X.X. Для этого надо установить правило, пропускающие трафик с этих серверов, ранее цепочки INPUT. # $IPT -t nat -I PREROUTING -i $INET_IFACE -s 10.10.25.1/32 -j ACCEPT # Эти правила предохраняют от некоторых типов атак: # SYN наводнение. # Приводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным. $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP # UDP наводнение # Службы использующие UDP, очень часто становятся мишенью для атак с целью вывода системы из строя. #$IPT -A INPUT -p UDP -s 0/0 --destination-port 138 -j DROP $IPT -A INPUT -p UDP -s 0/0 --destination-port 113 -j REJECT $IPT -A INPUT -p UDP -s 0/0 --source-port 67 --destination-port 68 -j ACCEPT $IPT -A INPUT -p UDP -j RETURN $IPT -A OUTPUT -p UDP -s 0/0 -j ACCEPT # ICMP - перенаправление # ICMP - сообщение указывает системе изменить содержимое таблиц маршрутизации с тем, что бы направлять # пакеты по более короткому маршруту. Может быть использовано взломщиком для перенаправления вашего трафика через свою машину. $IPT -A INPUT --fragment -p ICMP -j DROP $IPT -A OUTPUT --fragment -p ICMP -j DROP # Разрешаем ICMP соединение. Значительная часть ICMP используется для передачи сообщений о # том, что происходит с тем или иным UDP или TCP соединением. $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type source-quench -j ACCEPT $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type source-quench -j ACCEPT # Разрешаем себе ping наружу - нас же не попингуешь - пакеты отбрасываются. $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type echo-reply -j ACCEPT $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type echo-request -j ACCEPT # Разрешаем передачу пакета - некорректный параметр - используется, если в заголовке пакета содержится недопустимая запись, # или если контрольная сумма заголовка не соответствует контрольной сумме, указанной передающим узлом. $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type parameter-problem -j ACCEPT $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type parameter-problem -j ACCEPT # Запрещаем подключение к X серверу через сетевые интерфейсы. $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 6000:6063 -j DROP --syn # Прописываем порты, которые открыты в системе, но которые не должны быть открыты на сетевых интерфейсах: # $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports #порта $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 3306 $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 3310 #$IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 10000 # DNS сервер имен разрешаем. $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 53 --sport $UNPRIPORTS -j ACCEPT $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 53 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p udp -m udp -i $INET_IFACE --dport $UNPRIPORTS --sport 53 -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1024:65353 --sport 53 -j ACCEPT # Разрешаем AUTH-запросы на удаленные сервера, на свой же компьютер - запрещаем. $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 113 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 113 -j ACCEPT ! --syn $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 113 -j DROP # Открываем некоторые порты: # SMTP клиент (25) #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 25 --sport $UNPRIPORTS -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 25 -j ACCEPT ! --syn # POP3 клиент (110) #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 110 --sport $UNPRIPORTS -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 110 -j ACCEPT ! --syn # IMAP4 клиент (143) #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 143 --sport $UNPRIPORTS -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 143 -j ACCEPT ! --syn # SSH клиент (22) #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport $UNPRIPORTS -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 22 -j ACCEPT ! --syn #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport 1020:1023 -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1020:1023 --sport 22 -j ACCEPT ! --syn # FPT клиент (21) #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 21 --sport $UNPRIPORTS -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 21 -j ACCEPT ! --syn # DC++ клиент (411) #$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 411 --sport $UNPRIPORTS -j ACCEPT #$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 411 -j ACCEPT ! --syn # HTTP/HTTPS клиент (80, 443) #$IPT -A OUTPUT -p tcp -m tcp -m multiport -o $INET_IFACE --sport $UNPRIPORTS -j ACCEPT --dports 80,443 #$IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE --dport $UNPRIPORTS -j ACCEPT --sports 80,443 ! --syn # HTTP/HTTPS сервер (80) $IPT -A INPUT -p tcp -i $INET_IFACE --dport 80 -j ACCEPT # Разрешаем finger, whois, gorper, wais. Traceroute - разрешаем себе, к нам не проломятся - запрещено. Telnet # запретил, чтобы соблазна не было передавать пароли прямым текстом. $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 20 -j ACCEPT $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 20 --sport $UNPRIPORTS -j ACCEPT ! --syn $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport $UNPRIPORTS --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport $UNPRIPORTS -j ACCEPT ! --syn $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 23 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 23 -j ACCEPT ! --syn $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 79 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 79 -j ACCEPT ! --syn $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 43 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 43 -j ACCEPT ! --syn $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 70 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 70 -j ACCEPT ! --syn $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 210 --sport $UNPRIPORTS -j ACCEPT $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 210 -j ACCEPT ! --syn $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 33434:33523 --sport 32769:65535 -j ACCEPT # Разрешаем прохождение DHCP запросов через iptables. Нужно, если IP адрес динамический. # $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 67 --sport 68 -j ACCEPT # $IPT -A INPUT -p udp -m udp -i $INET_IFACE --dport 68 --sport 67 -j ACCEPT # разрешаем все исходящие tcp пакеты, не будем ограничивать себя в возможностях соединяться с кем попало на любой порт. $IPT -A OUTPUT -p tcp -o $INET_IFACE -j ACCEPT $IPT -A OUTPUT -p tcp -o eth0 -j ACCEPT $IPT -A OUTPUT -p udp -o eth0 -j ACCEPT #Разрешаем Samba $IPT -A INPUT -i eth0 -m pkttype --pkt-type broadcast -j ACCEPT $IPT -A OUTPUT -p udp -m udp -o eth0 --dport 137 -j ACCEPT $IPT -A OUTPUT -p udp -m udp -o eth0 --dport 138 -j ACCEPT $IPT -A INPUT -p udp -m udp -m multiport -i eth0 --dports 137,138 -j ACCEPT } case "$1" in start) echo -n "Starting firewall: iptables" start_fw echo "." ;; stop) echo -n "Stopping firewall: iptables" iptables -F iptables -X echo "." ;; save) echo -n "Saving firewall: iptables" iptables-save > /etc/rules-save echo "." ;; restart) echo -n "Restarting firewall: iptables" iptables -F iptables -X cat /etc/rules-save | iptables-restore echo "." ;; reload|force-reload) echo -n "Reloading configuration files for firewall: iptables" echo "." ;; *) echo "Usage: /etc/init.d/rc.iptables start|stop|restart|reload|force-reload" exit 1 ;; esac exit 0

Подскажите, плиз, что к чему...
Спасибо сказали:
Аватара пользователя
SK_666
Сообщения: 58
ОС: open SUSE 10.3, RHEL5

Re: Помогите с настройкой Iptables

Сообщение SK_666 »

1. Во всех строчках, где вы пишете $INET_IFACE, вы открываете доступ из инета, но не из локалки.
2. имхо хотя-бы для отладки, упростите конфиг, например поставьте политику OUTPUT в ACCEPT. Кстати для DC++ желательно иметь еще и 1 открытый порт
3. вам действительно надо прятаться от пинга? в чем его опасность?
На счет самбы я что-то ваши правила не совсем понял, в маны лезть сейчас не хочется, попробуйте упростить правила
Спасибо сказали: