[VYŘEŠENO] IPtables 1.4.6 a nemožnost DROPu z nat tabulky

Zdravím fórum,

upgradoval jsem na novou verzi iptables a objevil se následující problém: Nová verze odmítá cíl DROP v tabulce nat s (celkem logickým) zdůvodněním, že filtrovat se má v tabulce filter. Nicméně moje konfigurace je poměrně specifická:

Počítač je umístěn v DMZ (za 1:1 NATem)
Na počítači běží mj. služby FTP (tcp/21) a ssh (tcp/22). Tyto služby by měly být přístupné z vnitřní sítě na standardních portech, ale z vnější sítě (pro znesnadnění nahodilých útoků) na nestandardních číslech portů. Do teď jsem problém řešil takto (vnitřní IP adresy jsou v rozsahu 192.168.0.0/16):
Kód: [Vybrat]
iptables -t nat -A PREROUTING ! -s 192.168.0.0/16 -j z_inetu
iptables -t nat -A z_inetu -p tcp --dport 12345 -j REDIRECT --to-ports 22
iptables -t nat -A z_inetu -p tcp --dport 22 -j DROP

Teď ale iptables poslední příkaz nepřijme, takže je SSH zvenku dostupné na obou portech. Umístění pravidla s DROPem do tabulky filter bohužel odfiltruje i požadavky z přesměrovaného portu - jsou už přemapovány pravidlem REDIRECT.

Máte-li někdo nápad, jak problém vyřešit, sem s ním.
« Poslední změna: 20. 07. 2010, 09:53:11 od Ondřej Caletka »


astrablaster

Re: IPtables 1.4.6 a nemožnost DROPu z nat tabulky
« Odpověď #1 kdy: 18. 07. 2010, 16:56:33 »
Co takle dát to pravidlo do mangle PREROUTING?

Re: IPtables 1.4.6 a nemožnost DROPu z nat tabulky
« Odpověď #2 kdy: 19. 07. 2010, 10:36:40 »
Ano, takhle jsem to nakonec vyřešil. Ale nepřipadá mi, že by to bylo o mnoho lepší, než "zakázané" řešení s DROPem v nat tabulce. Snad jen, že nat tabulka se posuzuje jen pro první pakety každého nového spojení, zatímco mangle posuzuje všechny. Což pro TCP spojení nemá valný význam, neboť zařízne-li se první paket, žádné další nepřijdou.

Sten

Re: IPtables 1.4.6 a nemožnost DROPu z nat tabulky
« Odpověď #3 kdy: 19. 07. 2010, 14:34:38 »
Mark + drop v mangle/filter

ET

Re: IPtables 1.4.6 a nemožnost DROPu z nat tabulky
« Odpověď #4 kdy: 19. 07. 2010, 17:24:37 »
taky nechapu proc to nedelas v mangle (mark neni potreba), ale muzes to otocit - tj: reknes ze ssh bude poslouchat na portu 12345 a z LANky redirect
tj.
1) v /etc/ssh/sshd_config nastav port na 12345 a restartni sshd
2) iptables -t nat -D z_inetu -p tcp --dport 12345 -j REDIRECT --to-ports 22
3) iptables -t nat -A z_lanky [-s 192.168.0.0/16] -p tcp --dport 22 -j REDIRECT --to-ports 12345


Re: [VYŘEŠENO] IPtables 1.4.6 a nemožnost DROPu z nat tabulky
« Odpověď #5 kdy: 20. 07. 2010, 09:55:08 »
Jak jsem psal výše, problém jsem vyřešil přesunutím DROP pravidel do tabulky mangle. Rekonfigurace démonů mě taky napadla jako řešení, asi bych to tak udělal, kdyby to DROP v tabulce mangle nefungovalo.