Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: iptableas a prerouting  (Přečteno 1944 krát)

petulinek

  • Návštěvník
  • Příspěvků: 3
iptableas a prerouting
« kdy: 02 Listopadu 2006, 17:19:56 »
Potřeboval bych nějak nastavit tuto funkcionalitu přes iptables:
Na routeru běží squid jako transparentní proxy, na portu 80 poslouchá Apache. Mám nastaveno v iptables v PREROUTING přesměrování na port 3128 (=proxy)

IPTABLES -t nat -A PREROUTING -p tcp eth0 --dport 80 -j REDIRECT --to-port 3128 (1)

Chci ale provádět filtraci uživatelů na základě jejich MAC adresy (wifi síť) a neznámé MAC adresy přesměrovat na lokální webserver, kdy by byla stránka s informacemi o možnosti připojení.
Tj. potřebuji v PREROUTINGu přesměrovávat pakety vyhovující pravidlu na squida, nevyhovující na webserver. A to je kámen úrazu, nevím jestli jde udělat dvě přesměrování v rámci PREROUTINGu.

Udělal jsem si řetěz "povoleno"
IPTABLES -t nat -N povoleniklienti (2)
IPTABLES -t nat -A PREROUTING -i eth0 -j povoleniklienti (3) (jen z vnitrni site =eth0)

+ naplnil jsem řetěz povolení klienti
IPTABLES -t nat -A povoleniklienti -i eth0 -m mac --mac-source 00:00:00:00:00:00 -j ACCEPT (4) (pro každého registrovaného klienta)

Teď můžu přesměrovávat na webserver
IPTABELS -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80 (5) (přesměrování na webserver)

Tj. paket prochází nejdříve řetězcem povoleniklienti (2), pokud nevyhoví (neznámá MAC adresa) tak se provede přesměrování na webserver, pravidlo (5). Jenže jak zajistit, aby paket co vyhoví byl přesměrován na proxy (squida), tj. aby se provedlo pravidlo (1) ?
Protože paket, který vyhoví v řetězu povoleniklienti, tak opouští PREROUTING a už se zde nevyhodnocuje = tj.nemůžu provést jeho přesměrování na proxy=přijdu o transparentní proxy.

Předpokládám, že dělám něco úplně blbě, takže berte výše zmíněný popis jen jako můj současný výsledek.
Otázka je: Jak provádět filtraci MAC adres tak, aby zadané byly přesměrovány na proxy a nezadané na určitou adresu? (samozřejmě jen ty na port 80, ostatní zahodit)
Díky

radeczech

  • Aktivní člen
  • *
  • Příspěvků: 165
iptableas a prerouting
« Odpověď #1 kdy: 02 Listopadu 2006, 23:50:35 »
Co to zkusit přes negaci tj. přesměrovávat na proxy všechny, kromě zadaných.
Moc dokonale neznám syntaxi, ale něco ve smyslu označení všeho, kromě něčeho jsem řešil:
Kód: [Vybrat]
INET_IFACE="! lo"http://forum.ubuntu.cz/viewtopic.php?id=3115
Snad to něčemu pomůže...
THE ONLY WAY FORWARD IS TO GROW.
THE ONLY WAY TO GROW IS TO EXPAND BEYOND THE BOUNDARIES OF WHAT WE KNOW INTO UNCHARTED AREAS OF THE UNKNOWN.
THE UNKNOWN BEING THE ONLY SOURCE OF NEW KNOWLEDGE.

Pavelp

  • Host
iptableas a prerouting
« Odpověď #2 kdy: 03 Listopadu 2006, 07:31:38 »
Nemam s iptab moc zkusenosti , ale neslo by to resit poradim pravidel v chainu?
Nejprve explicitne presmerovat postupne ty co maji jit na squida. Kazdy by mel jedno pravidlo a jako posledni pravidlo vsechny ostatni. Pravidla jsou provadena "odshora dolu", melo by to fungovat.  
PP.

petulinek

  • Návštěvník
  • Příspěvků: 3
iptableas a prerouting
« Odpověď #3 kdy: 03 Listopadu 2006, 12:00:17 »
zkusím zda bude fungovat toto:
nejprve
IPTABLES -t nat -A PREROUTING -p tcp eth0 -m mac --mac-source 00:00:00:00:00 --dport 80 -j REDIRECT --to-port 3128   (1)
...
jednotlivě pro všechny "povolené" MAC adresy

pak postupně pravidla (2)+(3)+(4) abych povolil oprávněným uživatelům i všechny ostatní pakety (nejen na port 80)

no a následně přesměrování (5) pro dotazy na port 80 pro neznámé MAC adresy a ještě je třeba nastavit defaultní politiku PREROUTINGu na DROP, aby vše ostatní zahazoval (např připojení na FTP pro neznámé MAC)

Teoreticky :-) by to mělo fungovat, zkusím to večer

Jenom mě štve, že musím MAC adresy zapisovat 2x, poprvé v pravidlech (1) a pak v (4), ale když to bude fungovat... tak proč ne
diky

Pavelp

  • Host
iptableas a prerouting
« Odpověď #4 kdy: 03 Listopadu 2006, 12:15:10 »
Mam podobne osetreny jeden port na cisla siti v INPUTu. To chodi podle ocekavani, povolene site muzou, ostatni dropne.  Co to udela v PREROUTINGu nevim. Ale dejte vedet, jaxte dopad.

 

Provoz zaštiťuje spolek OpenAlt.