Доброго всем времени суток! Как запретить доступ извне с помощью iptables?
есть:
# Generated by iptables-save v1.3.5 on Mon Jul 30 09:48:57 2007
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -s 192.168.62.0/255.255.255.0 -i eth0 -p tcp -m multiport --dports ssh,443,1080,3128,10000 -j ACCEPT
-A PREROUTING -p tcp -m tcp -m multiport --dports 80,8080 -j REDIRECT --to-port 3128
-A PREROUTING -s 192.168.62.29 -i eth0 -p tcp -m multiport --dports smtp,pop3,http,5190,1192,1193 -j ACCEPT
-A PREROUTING -s 192.168.62.252 -i eth0 -p tcp -m multiport --dports smtp,pop3 -j ACCEPT
-A PREROUTING -s 192.168.62.21 -i eth0 -p tcp -m multiport --dports smtp,pop3,http,5190,1192,1193 -j ACCEPT
smtp,pop3,http,5190,1192,1193 -j ACCEPT
-A PREROUTING -s 192.168.62.42 -i eth0 -p tcp -m multiport --dports http -j ACCEPT
-A PREROUTING -s 192.168.62.55 -i eth0 -p tcp -m multiport --dports http,pop3,5190 -j ACCEPT
-A PREROUTING -s 192.168.62.37 -i eth0 -p tcp -m multiport --dports smtp,pop3,443,5190,http -j ACCEPT
-A PREROUTING -s 192.168.62.50 -i eth0 -p tcp -m multiport --dports smtp,pop3,443,5190,http -j ACCEPT
-A PREROUTING -s 192.168.62.29 -i eth0 -p tcp -m multiport --dports smtp,pop3,443,5190,http -j ACCEPT
-A PREROUTING -s 192.168.62.28 -i eth0 -p tcp -m multiport --dports smtp,pop3,http -j ACCEPT
-A PREROUTING -s 192.168.62.35 -i eth0 -p tcp -m multiport --dports smtp,pop3,http,8180,5190 -j ACCEPT
-A PREROUTING -s 192.168.62.0/255.255.255.0 -i eth0 -p tcp -m multiport --dports ssh,135,139,443,445,1080,3128,10000 -j ACCEPT
-A PREROUTING -s 192.168.62.0/255.255.255.0 -i eth0 -p tcp -j DROP
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Mon Jul 30 09:48:57 2007
# Generated by iptables-save v1.3.5 on Mon Jul 30 09:48:57 2007
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Mon Jul 30 09:48:57 2007но чувствую 5-й точкой, что извне все порты открыты. помогите сделать так, чтобы извне ко мне на шлюз не зашли.
>но чувствую 5-й точкой, что извне все порты открыты. помогите сделать так,
>чтобы извне ко мне на шлюз не зашли.1) Поменять полилики в *filter на DROP.
2) Все "-j ACCEPT"-ы переместить в "-t filter -A FORWARD". 'Обвязать' их '-m state --state NEW\,ESTABLISHED' и парными правилами для пакетов в обратном направслении с '-m state --state ESTABLISHED'.
3) Чинить/добавлять %) то, что поломалось или чего стало не хватать после п.1.Дидактический материал: http://www.opennet.me/openforum/vsluhforumID1/79818.html#6
Да, особо ленивые пользуют генераторы-компиляторы правил iptables. Ж))
Да, там про SNAT, сам $) вижу -- это не суть...
Если тебе кажется, что там "сложно", то, уверяю тебя, можно и ещё сложнее "накрутить", там - так "примерчик" типа 2+2. Ж))))))))))
Да, в firehol explain "не видно" установки политик цепочек, ip_forward-а и пр. "мелочей". "Но они есть."(тм)Успехов! ;*)
снова вернулся к проблеме... пишу:# Generated by iptables-save v1.3.5 on Mon Jul 30 09:48:57 2007
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Jul 30 09:48:57 2007
# Generated by iptables-save v1.3.5 on Mon Jul 30 09:48:57 2007
*filter
:INPUT DROP[0:0]
:FORWARD DROP[0:0]
:OUTPUT DROP[0:0]
-A FORWARD -s 192.168.62.0/255.255.255.224 -d 192.168.1.100 -p tcp -m multiport --dports ssh,443,1080,3128 -m state --state NEW\,ESTABLISHED -j ACCEPT
-A FORWARD -s -d 192.168.1.100 -d 192.168.62.0/255.255.255.224 -p tcp -m multiport --sports ssh,443,1080,3128 -m state --state ESTABLISHED -j ACCEPT-A FORWARD -s 192.168.62.2 -d 192.168.1.100 -p tcp -m multiport --dports smtp,pop3,http,5190,1192,1193 -m state --state NEW\,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.1.100 -d 192.168.62.2 -p tcp -m multiport --sports smtp,pop3,http,5190,1192,1193 -m state --state ESTABLISHED -j ACCEPT-A FORWARD -s 192.168.62.11 -d 192.168.1.100 -p tcp -m multiport --dports smtp,pop3,http,5190,1192,1193 -m state --state NEW\,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.1.100 -d 192.168.62.11 -p tcp -m multiport --sports smtp,pop3,http,5190,1192,1193 -m state --state ESTABLISHED -j ACCEPT......
......-A FORWARD -s 192.168.62.5 -d 192.168.1.100 -p tcp -m multiport --dports smtp,pop3,http,5190,1192,1193 -m state --state NEW\,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.1.100 -d 192.168.62.5 -p tcp -m multiport --sports smtp,pop3,http,5190,1192,1193 -m state --state ESTABLISHED -j ACCEPT
COMMIT
# Completed on Mon Jul 30 09:48:57 2007
В итоге получается:
[root@localhost sysconfig]# /etc/rc.d/init.d/iptables restart
Применяются правила файервола iptables:
/etc/rc.d/init.d/iptables: line 80: 16311 Done grep -v "^[[:space:]]*#" $IPTABLES_CONFIG
16312 | grep -v '^[[:space:]]*$'
16313 Ошибка сегментирования | /sbin/iptables-restore -c
[ СБОЙ ]Где моя ошибка?
>[оверквотинг удален]
>
> grep -v "^[[:space:]]*#" $IPTABLES_CONFIG
> 16312
>
> | grep -v '^[[:space:]]*$'
> 16313 Ошибка сегментирования | /sbin/iptables-restore -c
>
> [ СБОЙ ]
>
>Где моя ошибка?Конкретно здесь - наверное, в том, что не надо править _руками_ сохранённую iptables-save-ом конфигурацию. Я думаю, надо добавлять/удалять правила "обычными" командами iptables, а когда заработает - *-save-ом сохранить [новую версию] конфигурации.
---
Ещё раз посмотрел на твой первый конфиг: кроме единственного DROP-а - _всё_, то есть совсем всё ACCEPT-уется. Действительно открыто всё. Если (что скорее всего) запущены сервисы, которые слушают на всех интервейсах - они доступны из боьшого плохого интернета.PS: Ещё про firehol :) - примеры конфигураций http://firehol.sourceforge.net/overview.html + http://firehol.cvs.sourceforge.net/firehol/firehol/examples/
PPS: %)) - бесплатные образцы! Твой конфиг - [[с политиками DROP]] для firehol:
version 5
LOC="192.168.62"
LAN="$LOC.0/24"transparent_proxy "80 8080" 3128 squid inface eth0 src "$LAN"
server_icq_ports="tcp/5190"
client_icq_ports="default"server_dunno_ports="tcp/1192 tcp/1193"
client_dunno_ports="default"server_web1_ports="tcp/8180"
client_web1_ports="default"interface any fromme
client all acceptrouter users inface "eth0" outface ppp+ src "$LAN"
masquerade
client "ssh https socks squid webmin samba" acceptclient "smtp pop3 http icq dunno" accept src "$LOC.29 $LOC.21"
client "smtp pop3" accept src "$LOC.252"
client "http" accept src "$LOC.42"
client "http pop3 icq" accept src "$LOC.55"
client "smtp pop3 https icq http" accept src "$LOC.37 $LOG.50 $LOC.29"
client "smtp pop3 http" accept src "$LOC.28"
client "smtp pop3 http web1 icq" accept src "$LOC.35"PPPS: Найди лишний (в твоём конфиге - тоже) "https"... $)
все нормально, правь руками и понимание придет быстрей-A FORWARD -s -d 192.168.1.100 -d 192.168.62.0/255.255.255.224 -p tcp -m multiport --sports
^^^^^^^^^^^^^^^^^^^^^^^
ssh,443,1080,3128 -m state --state ESTABLISHED -j ACCEPT