Portál AbcLinuxu, 10. května 2025 04:42
Zdravim, hlavne linux komunitu. Obraciam sa na vas s prosbou o pomoc pri rieseni hlavolamu zvaneho IPTABLES. Ja sam som z iptables-u dost mimo. Uz par krat som sa ho pokusal pochopit no nikdy som nepresiel za ciaru zaciatocnika-amatera. Bohuzial to co chcem vyriesit bude vyzadovat viac nez som sa kedy mohol naucit a teda popis problemu: ------------------------------------------------------------------------ Predstavte si T-Com Cisco router pripojeny k eth1 na Linux-Debian serveri. Predstavte si obrovsku skolsku siet zo (cca) 70 PC, preswitchovanu k jednemu kabliku, ktory je pripojeny do toho isteho servera, do sietovej karty eth0. Na premostenie tychto dvoch sieti (sieti z Cisca a skolskej sieti) pouzivam nasledovny skript: iptables --flush # Flush all the rules in filter and nat tables iptables --table nat --flush iptables --delete-chain # Delete all chains that are not in default filter and nat table iptables --table nat --delete-chain # Set up IP FORWARDing and Masquerading iptables --table nat --append POSTROUTING --out-interface eth1 -j MASQUERADE iptables --append FORWARD --in-interface eth0 -j ACCEPT echo "1" >/proc/sys/net/ipv4/ip_forward Tato cast skriptiku funguje dokonale. K tomu nie je co dodat. Dnes, som pripojil do nasej lokalnej siete (t.j. za serverom) skolsky internat. Po dlho-tyzdnovych prosbach sme obyvatelom skolskeho internatu umoznili zakupit WiFi router na ktory sa par z nich pripaja laptopom a pouzivaju net vo svojom volnom case priamo zo svojej izby. Wifi router ma IP adresu 10.0.0.3 a okrem mnozstva upozorneni chcem spravit monitoring prietoku dat na IP adresu 10.0.0.3. Znova som siahol po IPTABLESe a skript som doplnil: ----------------------------------------------------------------- iptables -N segment-A iptables -A FORWARD -d 10.0.0.0/26 -j segment-A iptables -A FORWARD -s 10.0.0.0/26 -j segment-A iptables -A segment-A -d 10.0.0.3 iptables -A segment-A -s 10.0.0.3 ------------------------------------------------------------------ Uspech je ale len polovicny. Po napisani prikazu: # iptables -L -v -n Chain FORWARD (policy ACCEPT 10M packets, 12G bytes) pkts bytes target prot opt in out source destination 17977 2236K ACCEPT 0 -- eth0 * 0.0.0.0/0 0.0.0.0/0 23186 22M segment-A 0 -- * * 0.0.0.0/0 10.0.0.0/26 0 0 segment-A 0 -- * * 10.0.0.0/26 0.0.0.0/0 Chain segment-A (2 references) pkts bytes target prot opt in out source destination 20194 18M 0 -- * * 0.0.0.0/0 10.0.0.3 0 0 0 -- * * 10.0.0.3 0.0.0.0/0 ----------------------------------------------------------------- Ako vidite z vypisu, dobre sa pocitaju DOWNLOADnute data. Ale VOBEC sa nepocitaju tie UPLOADNUTE. Uz nad tym sedim 4 hodiny a neviem na nic prist. Mozno mi nieco uniklo/unika, mozno som len nieco zle pochopil/napisal/spravil/nespravil. Mohol by mi niekto skusenejsi poradit kde robim chybu? Dakujem za kazdu radu. J.
Máte to trochu pomotané.
iptables --append FORWARD --in-interface eth0 -j ACCEPT
Řetězec FORWARD má policy (implicitní závěrečné pravidlo) ACCEPT. Takže znovu povolovat vstup packetů z eth0 je zbytečné.
S tím souvisí váš problém. Jak je vidět zpořadí pravidel ve FORWARD
# iptables -L -v -n Chain FORWARD (policy ACCEPT 10M packets, 12G bytes) pkts bytes target prot opt in out source destination 17977 2236K ACCEPT 0 -- eth0 * 0.0.0.0/0 0.0.0.0/0 23186 22M segment-A 0 -- * * 0.0.0.0/0 10.0.0.0/26 0 0 segment-A 0 -- * * 10.0.0.0/26 0.0.0.0/0
veškerý provoz z eth0, ve kterém jsou i packety se zdrojovou adresou 10.0.0.0/26, se zpravuje hned prvním pravidlem a tudíž se takové packety k dalším pravidlům už nedostanou.
Doporučuji smazat první pravidlo z FORWARD.
Dále doporučuji si nastudovat, které cíle ukončují procházení tabulek (prakticky všechny) a které nikoliv (přesměrování do jiného řetězce, LOG, NFLOG, ULOG, RETURN).
Dakujem, vyskusam.
Chcem sa este raz podakovat. Vasa poznamka bola spravna a bol to ten problem co som mal.
Neuvedomil som si, ze na "poradi pravidiel zalezi".
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.