Вообщем настроена машина шлюзом в интернет под RedHat Enterprise 5 - iptables фаервол
Разрешенно определённым машинам (по мак адресам) по определённым портам (80,81,110,25) доступ в интернет
Всё работает, но проявляется неприятная ситуация
через промежуток времени перестают на клиентских машинах открываться странички и получаться почта
В чём может быть проблема? И ещё может конфиг как то усовершенствовать? Зарание благодарен за помощь!
Вот конфиг iptables:
# Generated by iptables-save v1.3.5 on Mon Sep 22 11:05:08 2008
*nat
:PREROUTING ACCEPT [160:17336]
:POSTROUTING ACCEPT [126:7719]
:OUTPUT ACCEPT [139:10053]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Sep 22 11:05:08 2008
# Generated by iptables-save v1.3.5 on Mon Sep 22 11:05:08 2008
*filter
:INPUT DROP [196:22233]
:FORWARD DROP [3:136]
:OUTPUT DROP [0:0]
:allowed - [0:0]
:bad_tcp_packets - [0:0]
:icmp_packets - [0:0]
:tcp_packets - [0:0]
:udp_packets - [0:0]
-A INPUT -s 192.168.0.0/255.255.0.0 -i eth1 -j ACCEPT
-A INPUT -s 127.0.0.1 -i lo -j ACCEPT
-A INPUT -s 192.168.2.88 -i lo -j ACCEPT
-A INPUT -s 192.168.2.3 -i lo -j ACCEPT
-A INPUT -i eth1 -p udp -m udp --sport 68 --dport 67 -j ACCEPT
-A INPUT -d 192.168.2.3 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -j tcp_packets
-A INPUT -i eth0 -p udp -j udp_packets
-A INPUT -i eth0 -p icmp -j icmp_packets
-A INPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT_INPUT_packet_died:" --log-level 7
-A FORWARD -i eth1 -m mac --mac-source 00:04:4B:80:80:03 -j ACCEPT
-A FORWARD -i eth1 -j DROP
-A FORWARD -o eth1 -j DROP
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT_FORWARD_packet_died:" --log-level 7
-A OUTPUT -p tcp -j bad_tcp_packets
-A OUTPUT -s 127.0.0.1 -j ACCEPT
-A OUTPUT -s 192.168.2.88 -j ACCEPT
-A OUTPUT -s 192.168.2.3 -j ACCEPT
-A OUTPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT_INPUT_packet_died:" --log-level 7
-A allowed -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A allowed -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A allowed -p tcp -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
-A bad_tcp_packets -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j LOG --log-prefix "NEW_NOT_SYN:"
-A bad_tcp_packets -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A tcp_packets -p tcp -m tcp --dport 25 -j allowed
-A tcp_packets -p tcp -m tcp --dport 110 -j allowed
-A tcp_packets -p tcp -m tcp --dport 53 -j allowed
-A tcp_packets -p tcp -m tcp --dport 80 -j allowed
-A tcp_packets -p tcp -m tcp --dport 81 -j allowed
COMMIT
# Completed on Mon Sep 22 11:05:08 2008
>Разрешенно определённым машинам (по мак адресам) по определённым портам (80,81,110,25) доступ в интернетУ Вас либо ошибка в конфиге, либо в том, что Вы о нём думате...(-->1)
>через промежуток времени перестают на клиентских машинах открываться странички и получаться почта
Про это не скажу...
>И ещё может конфиг как то усовершенствовать?
...а про это есть пара мыслей.
>-A POSTROUTING -o eth0 -j MASQUERADE
Усов.#1: Если внешний адрес статический, -j SNAT --to-source E.X.T.IP -- быстрее, чем маскарад.
>[оверквотинг удален]
>-A INPUT -s 192.168.2.3 -i lo -j ACCEPT
>-A INPUT -i eth1 -p udp -m udp --sport 68 --dport 67
>-j ACCEPT
>-A INPUT -d 192.168.2.3 -m state --state RELATED,ESTABLISHED -j ACCEPT
>-A INPUT -i eth0 -p tcp -j tcp_packets
>-A INPUT -i eth0 -p udp -j udp_packets
>-A INPUT -i eth0 -p icmp -j icmp_packets
>-A INPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT_INPUT_packet_died:"
>--log-level 7
>-A FORWARD -i eth1 -m mac --mac-source 00:04:4B:80:80:03 -j ACCEPT(1-->) Проблема с конфигом или пониманием: "клиентов" пускают наружу вне зависимости от порта назначения. У пользователей есть доступ "к любым портам". (Быстрый фикс, с почти "тем" результатом, - "-j tcp_packets".)
>-A OUTPUT -p tcp -j bad_tcp_packets
>-A OUTPUT -s 127.0.0.1 -j ACCEPT
>-A OUTPUT -s 192.168.2.88 -j ACCEPT
>-A OUTPUT -s 192.168.2.3 -j ACCEPT
>-A OUTPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT_INPUT_packet_died:"
>--log-level 7
>-A tcp_packets -p tcp -m tcp --dport 25 -j allowed
>-A tcp_packets -p tcp -m tcp --dport 110 -j allowed
>-A tcp_packets -p tcp -m tcp --dport 53 -j allowedКстати, может оказаться эта--^^^ строка не нужна, может быть нужен ещё "-p udp --dport 53"... А может и нет.
>-A tcp_packets -p tcp -m tcp --dport 80 -j allowed
>-A tcp_packets -p tcp -m tcp --dport 81 -j allowedПроблема#2: У Вас tcp_packets "зовётся" из INPUT и по факту открывает доступ "из большого плохого интернета" к перечисленным портам на этой машине (шлюзе). Это может быть проблемой безопасности.
>>Разрешенно определённым машинам (по мак адресам) по определённым портам (80,81,110,25) доступ в интернет
>
>У Вас либо ошибка в конфиге, либо в том, что Вы о нём думате...(-->1)
>Тоесть порты у меня открыты все? В чём ошибка?
>Усов.#1: Если внешний адрес статический, -j SNAT --to-source E.X.T.IP -- быстрее, чем
>маскарад.Переделал на snat работает. спасибо...
>[оверквотинг удален]
>>-j ACCEPT
>>-A INPUT -d 192.168.2.3 -m state --state RELATED,ESTABLISHED -j ACCEPT
>>-A INPUT -i eth0 -p tcp -j tcp_packets
>>-A INPUT -i eth0 -p udp -j udp_packets
>>-A INPUT -i eth0 -p icmp -j icmp_packets
>>-A INPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT_INPUT_packet_died:"
>>--log-level 7
>>-A FORWARD -i eth1 -m mac --mac-source 00:04:4B:80:80:03 -j ACCEPT
>
>(1-->) Проблема с конфигом или пониманием: "клиентов" пускают наружу вне зависимости от порта назначения. У пользователей есть доступ "к любым портам". (Быстрый фикс, с почти "тем" результатом, - "-j tcp_packets".)Тоесть нужно -A FORWARD -i eth1 -m mac --mac-source 00:04:4B:80:80:03 -j tcp_packets ???
>Кстати, может оказаться эта--^^^ строка не нужна, может быть нужен ещё "-p
>udp --dport 53"... А может и нет.
>
>>-A tcp_packets -p tcp -m tcp --dport 80 -j allowed
>>-A tcp_packets -p tcp -m tcp --dport 81 -j allowed
>
>Проблема#2: У Вас tcp_packets "зовётся" из INPUT и по факту открывает доступ
>"из большого плохого интернета" к перечисленным портам на этой машине (шлюзе).
>Это может быть проблемой безопасности.Что тут можно сделать? Как реализовать лучше?
И почему всётаки теряется соединение? Может останавливается маскарадинг?
В случае со SNAT таже истори с пропаданием соединения
хотя при этом на шлюзе странички продолжают открываться...
>>>Разрешенно определённым машинам (по мак адресам) по определённым портам (80,81,110,25) доступ в интернет
>>У Вас либо ошибка в конфиге, либо в том, что Вы о нём думате...(-->1)
>Тоесть порты у меня открыты все? В чём ошибка?Клиентам Вы даёте (в приведённом конфиге) соединяться на любые порты, но говорите, что только на перечисленные. Ошибка либо в конфиге, либо в том, что Вы говорите, как я и написал.
>>(1-->) Проблема с конфигом или пониманием: "клиентов" пускают наружу вне зависимости от порта назначения. У пользователей есть доступ "к любым портам". (Быстрый фикс, с почти "тем" результатом, - "-j tcp_packets".)
>
>Тоесть нужно -A FORWARD -i eth1 -m mac --mac-source 00:04:4B:80:80:03 -j tcp_packets
>???Как вариант (минимальными исправлениями...) - пользователей шлюз будет пускать только по перечисленным в цепочке tcp_packets tcp портам.
>>Проблема#2: У Вас tcp_packets "зовётся" из INPUT и по факту открывает доступ
>>"из большого плохого интернета" к перечисленным портам на этой машине (шлюзе).
>>Это может быть проблемой безопасности.
>Что тут можно сделать? Как реализовать лучше?Лучше - не "принимать" соединения из интернета, от пользователей, из ЛВС - только к явно указанным (предоставляемым шлюзом) сервисам. Реализовать -- куча вариантов, начать с выкидывания строк с `-i eth1` в частности, продолжить изучением, где ещё -i eth1 неявно может пролезать.
>И почему всётаки теряется соединение? Может останавливается маскарадинг?
>В случае со SNAT таже истори с пропаданием соединенияВсё что угодно может "отваливаться" (= а не знаю что $) ). Может переполнение какой таблицы, может проблема с аппаратурой, может ещё чего... _В_лога_ ядра/системы никаких "подозрительных" ошибок не видно?
>хотя при этом на шлюзе странички продолжают открываться...
Локалка "видна" при этом со шлюза? Может быть "локальная" сетевая "отваливается"?...
...вариант "решения" совсем "от балды" - заменить сетевую RealTek на 3Com или Intel. Ж-)
>Вообщем настроена машина шлюзом в интернет под RedHat Enterprise 5 - iptables
>фаервол
>Разрешенно определённым машинам (по мак адресам) по определённым портам (80,81,110,25) доступ в
>интернетКстати %) , google.ru
firehol "бесплатные образцы" site:opennet.ru/openforum/
ENTER
-- я тут--^^^^^ всем советую FireHOL, как средство упрощения настройки фаервола (после того, как "понимание наступило")Простейшая (dns "выпал") конфигурация firehol по мотивам Вашей могла бы выглядеть так:
---8<---
version 5interface "eth0" lan src "192.168.0.0/16"
protection full
client all acceptinterface "eth1" world
protection full
client all acceptserver_http81_ports="tcp/81"
client_http81_ports="default"router i inface "eth1" outface "eth0"
masquerade reverse
server "http http81 pop3 smtp" accept mac "00:04:4B:80:80:03"
--->8---или... в конце... кривовато и так, и эдак выходит -
router i inface "eth0" outface "eth1"
masquerade
client "http http81 pop3 smtp" accept with knock MACiptables -A knock_MAC -i eth0 -m state --state NEW,ESTABLISHED -m mac --mac-source 00:04:4B:80:80:03 -j ACCEPT
>-A INPUT -s 192.168.0.0/255.255.0.0 -i eth1 -j ACCEPT
Кстати, маска сети действительно такая--^^^ ?