Portál AbcLinuxu, 11. května 2025 10:44

Dotaz: Router???

29.6.2005 07:31 Waran
Router???
Přečteno: 395×
Odpovědět | Admin
Chápu, že už to tu bylo probíráno několikrát, ale přesto Vás žádám o pomoc. Potřeboval bych poradit s nastavením routeru... V mašině jsou celkem 4 síťové karty. První je napojená na ADSL, druhá je jedna LAN, pak druhá LAN a třetí LAN. Je to taková zvláštnost, ale bylo to nutné a tak jsem to musel udělat, jenomže teď mám problém. Potřebuji, aby se všechny LAN routovaly přes jedno rozhraní do internetu, ale aby mezi sebe zároveň neviděly... A to je docela oříšek, který nejsem s to rozlousknout... A další věcí je požadavek, že pro dvě z těch tří LAN má být použito QoS... Najde se někdo, kdo mi poradí???

Thx, Waran...
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.6.2005 09:04 ujaja
Rozbalit Rozbalit vše Re: Router???
Odpovědět | | Sbalit | Link | Blokovat | Admin
nastavte vsechny karty do LAN kazdou na jiny subnet, zapnete ipforwarding, pak NAT na eth0 a nakonec pomoci iptables ve FORWARDU zakazte komunikaci mezi rozhranimi lokalni site..
Josef Kufner avatar 29.6.2005 16:47 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Router???
Ještě malá drobnost: v tom forwardu je lépe zakazovat pomocí REJECT než DROP. Ty timeouty docela lezou na nervy. Pripadne ještě přidat "--reject-with icmp-host-unreachable" nebo něco takového.
Hello world ! Segmentation fault (core dumped)
26.8.2007 23:21 fojtik
Rozbalit Rozbalit vše Re: Router???
Odpovědět | | Sbalit | Link | Blokovat | Admin

A co treba tento priklad:

route add default gw 10.23.22.1 dev ath0 metric 1

#routovaci tabulky
route add -host 10.23.0.5 dev eth0
route add -host 10.23.1.5 dev eth1
route add -host 10.23.2.5 dev eth2
route add -host 10.23.22.1 dev ath0

echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp

iptables -A POSTROUTING -t nat -s 10.23.0.5 -o ath0 -j SNAT --to 10.23.22.18
iptables -A POSTROUTING -t nat -s 10.23.1.5 -o ath0 -j SNAT --to 10.23.22.19
iptables -A POSTROUTING -t nat -s 10.23.2.5 -o ath0 -j SNAT --to 10.23.22.20

Ted si nejsem jisty jak to syntakticky napsat, ale proste zahodis veskerou komunikaci mezi eth0, eth1, eth2. Pak na sebe pocitace ani za boha neuvidi. Komunikace mezi eth0 a adsl ci obracene pojede OK.

iptables -A INPUT -i eth0 -o eth1 DROP
iptables -A INPUT -i eth0 -o eth2 DROP
iptables -A INPUT -i eth1 -o eth0 DROP
iptables -A INPUT -i eth1 -o eth2 DROP
iptables -A INPUT -i eth2 -o eth0 DROP
iptables -A INPUT -i eth2 -o eth1 DROP
26.8.2007 23:51 Jiří J. | skóre: 34 | blog: Poutník | Brno
Rozbalit Rozbalit vše Re: Router???
iptables -A INPUT -i eth0 -o eth1 DROP
iptables -A INPUT -i eth0 -o eth2 DROP
iptables -A INPUT -i eth1 -o eth0 DROP
iptables -A INPUT -i eth1 -o eth2 DROP
iptables -A INPUT -i eth2 -o eth0 DROP
iptables -A INPUT -i eth2 -o eth1 DROP
:-D
Při čtení dotazu jsem přemýšlel nad vícenásobnou DMZ, ale řešit to takhle jednodušše mě nenapadlo.. nicméně bych řekl, že to funovat nebude, neboť
  • Packety se dostanou do FORWARD chainu místo INPUT
  • V INPUTu nelze použít (nebo přinejmenším nešlo) --out-interface
Jako řešení bych viděl packety v PREROUTINGu markovat (-j MARK) a v POSTROUTINGu kontrolovat odchozí interface a na základě marku dropovat/rejectovat...
Pokud je libo jednodušší řešení, v chainu FORWARD je pokud vím povoleno --in-interface i --out-interface, takže stačí INPUT zaměnit za FORWARD.. (ip_forward povolený)..
27.8.2007 17:30 František Ryšánek
Rozbalit Rozbalit vše Re: Router???
V tomto případě možná ani není třeba vyčerpávajícím způsobem rozepisovat jednotlivé možnosti, co odkud kam zakázat (mezi LANkami navzájem). Spíš bych selektivně povolil, co se smí, a v chainu FORWARD bych dal policy DROP. Nebo pokud chceme REJECT, tak to uvést jako poslední pravidlo, které matchne všecko, dřív než se uplatní "policy".

Konkrétně:

1) SNAT na -o $OUTSIDE_INTERFACE (a taky -s ADRESA/MASKA nebo -i $INSIDE_INTERFACES)

2) povolit všechno ven, zpátky jenom -m state --state ESTABLISHED,RELATED

3) netuším, jestli se dá jako policy zadat REJECT --reject-with icmp-port-unreachable . Kdyžtak rozdělit do dvou pravidel:

iptables -A FORWARD -j REJECT --reject-with icmp-port-unreachable

iptables -P FORWARD DROP

Možná ještě před tuhle dvojici dát logovací pravidlo, pokud nás zajímají pokusy o narušení.

Jinak obecně úvodní rozskok na všechny možnosti N^2-N, kde N je počet rozhraní, u ručně psaných firewallových skriptů s IPtables, je fajn věc. Mě to třeba zjednodušuje orientaci (věc názoru a stylové úpravy skriptu) a optimalizuje to délku procházených chainů (snižuje zátěž CPU) - neprocházejí se všechna pravidla sekvenčně, ale jenom daná větev odkud-kam. Ideovou inspiraci si můžete opatřit třeba tady (bacha na rozdíl v chování chainů INPUT/OUTPUT u ipchains a iptables):

starobylé IPChains HOWTO, kapitola 7.4

Plus se tam dá vymyslet spousta dalších pentliček pro kontrolu duševního zdraví provozu. Viz třeba:

IPTables Tutorial, příklady skriptů

Zajímavý je například custom chain nazvaný "bad_tcp_packets", "číslování kapitol" ve firewallovém skriptu apod.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.