iptables - klienseknek csak web

 ( bigacsiga | 2005. augusztus 1., hétfő - 12:25 )

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Helló!

A következőben szeretném segítségeteket kérni:
Szeretném azt megoldani, hogy a hálón lévő kliensgépek csak webezni tudjanak. Ám elég speckó szabályokkal. Tehát: ami 192.168.1.1-192.168.1.19-tól jön és kifelé megy azaz nem belső hálós azt el szeretném dobni. Kivételt képeznének azok az esetek amikor a 80-as portra irányul a kérés ekkor persze ezt engedélyezni kéne. A szerverben két hálókártya van egyiken a kliensek másikon az "internet" van. A belső hálón folyó kommunikációt nem szeretném szűrni. A gondom továbbá az, hogy még nem igazán tudom az iptablest kezelni úgyhogy pls segítsen valaki, ésha így tesz néhány kedves linuxos akkor őt arra kérném hogy olyan szájbarágósan írjon amennyire lehetséges.

Köszönöm a segítséget.

Első körön valami hasonlóval próbálkoznék:

[code:1:8f89ed9259]iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/24 --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p udp -s 192.168.0.0/24 --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p udp -s 192.168.0.0/24 -j DROP
iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/24 -j DROP[/code:1:8f89ed9259]

Az [b:8f89ed9259]eth0[/b:8f89ed9259] és [b:8f89ed9259]192.168.0.0/24[/b:8f89ed9259] értelemszerűen a helyi viszonyokhoz igazítandó. Az utolsó 2 szabály nem kell ha az INPUT lánc alapértelmezett policyja DROP.

[quote:427fdb6509="bigacsiga"]
Szeretném azt megoldani, hogy a hálón lévő kliensgépek csak webezni tudjanak. Ám elég speckó szabályokkal. Tehát: ami 192.168.1.1-192.168.1.19-tól jön és kifelé megy azaz nem belső hálós azt el szeretném dobni. Kivételt képeznének azok az esetek amikor a 80-as portra irányul a kérés ekkor persze ezt engedélyezni kéne. A szerverben két hálókártya van egyiken a kliensek másikon az "internet" van. A belső hálón folyó kommunikációt nem szeretném szűrni.
[/quote:427fdb6509]
IPTables-howto magyarul: [url]http://szabilinux.hu/iptables/index.html[/url]

[quote:427fdb6509="bigacsiga"]Tehát: ami 192.168.1.1-192.168.1.19-tól jön és kifelé megy azaz nem belső hálós azt el szeretném dobni. Kivételt képeznének azok az esetek amikor a 80-as portra irányul a kérés ekkor persze ezt engedélyezni kéne.[/quote:427fdb6509]
Ha csak a kifelé menő forgalmat nézzük, akkor valahogy így nézne ki ez a szabály:
[code:1:427fdb6509]iptables -A FORWARD --in-interface $belsohalokartyaja --source $belsohalo --out-interface $kulsohalokartyaja --destination ! $belsohalo --protocol tcp --dport 80 --jump ACCEPT
iptables -A FORWARD --in-interface $belsohalokartyaja --source $belsohalo --out-interface $kulsohalokartyaja --destination ! $belsohalo --protocol udp --dport 80 --jump ACCEPT[/code:1:427fdb6509]
Ez szó szerint a következőt jelenti:
A FORWARD láncon (ami csak átmegy a gépen, de nem ez a célgép) a belső hálózat hálókártyájáról érkező, a belső hálózat IP-címét használó, a külső hálókártyára irányuló, a NEM belső hálós IP-címre irányuló, tcp/udp portos, a 80-as célportra érkező kéréseket engedélyezze.
Ezt így gyakorlatilag nehezebb leírni, mint ránézésre megérteni, szóval ne aggódj, ha elolvasod a fenti HOWTO-t, helyére fog kerülni minden :wink:

Persze lesz még 1-2 dolog, amit be kell állítanod az IPTables-nél.
Ezek egyike, hogy alapértelmezetten minden kapcsolat tiltva legyen (egyszerűbbnek tűnik mindent tiltani és csak a kívánt forgalmat engedélyezni). Ez a következő paranccsal megy:
[code:1:427fdb6509]iptables --policy FORWARD DROP[/code:1:427fdb6509]
Ez tilt mindenfajta forgalmat, amely átmegy a gépen a külső és a belső hálókártya használatával.

Továbbá szükség lesz a forwardolás engedélyezésére:
[code:1:427fdb6509]echo 1 > /proc/sys/net/ipv4/ip_forward
iptables --table nat -append PREROUTING --out-interface $külsőhalókártya --jump ACCEPT[/code:1:427fdb6509]
Az első a rendszer számára jelzi, hogy a forwardot engedélyezed, a második pedig az iptables-t állítja be, így kívülről egyetlen gép lesz majd látható, de a mögötte lévő gépek is elérhetik majd az internetet.

Egy dolgot viszont el kell döntened, mégpedig szeretnél-e beállítani egy DNS-szervert? Ha igen, akkor DNS-nek a belső hálón a szerveredet kell megadni, ha nem, ki kell engedni az 53-as portra az udp-forgalmat a szolgáltatód DNS-szervereire.