Zdravim konferenci,

zacal jsem experimentovat s pravidelm fwd ve snaze rozbehnout tak trivialni vec, jako transparentni proxy. Nejak se z toho nemuzu vyhrabat a samzrejme, ze mi to nefunguje.

Stav je nasledujici:
kernel je prelozeny s IPFIREWALL_FORWARD
v IPFW pravidlech mam provoz zorhozeny na ctyri vetve podle iface a smeru toku packetu - recv iif; recv oif; xmit iif; xmit oif
squid mam nakonfigurovany (snad) dobre
v ipfw mam pravidlo, kterym si forwarduju profoz na port 80 na 127.0.0.1:2138 Testovano je to za provozu na routeru, pres ktery tecou trvale radove desitky mbit.
A ted moje ruzna zjisteni.

1) Pokud dam forwardovaci pravidlo do vetve recv iif, k forwardnuti packetu sice dojde, ale na squid uz forwardnuty packet nedorazi (v zadnem logu squida neni zadny zaznam) - jen se zapocitaji sva packety na forwardovacim pravidle.

2) Forwardovaci pravidlo umistene do vetve xmit oif:
a) Pokud je pravidlo urcene pouze pro provoz z meho testovaciho stroje, pak vse funguje, jak ma.
ipfw add XXXX fwd 127.0.0.1,3128 all from A.B.C.D to any 80

2b) Pokud je pravidlo napsano obecne, dostanu ve webovem prohlizeci hlasku o Access denied (?!) Tento stav nemuzu nechavat nijak dlouho (typicky pouze par sekund nekdy v noci), protoze je testovano za ostreho provozu.
ipfw add XXXX fwd 127.0.0.1,3128 all from any to anz 80

a k tomu jeste jdna vec, co mne prekvapila - na iface lo0 v pripade [1] nevidim vubec zadny provoz. V pripade [2a] vidim pouze dns provoz jdouci pravdepodobne od squida (dns server je na stejnem stroji jako firewall se squidem). V pripade [2b] vidim na lo0 kvanta packetu jdoucich od webovych serveru z internetu pro stroje ve vnitrni siti (nechapu, kudy se tam zatoulaly) a opet dns provoz.

Zkousel jsem jeste jednu variantu, ze jsem si webovy provoz od testovaciho stroje v ipfw "skipnul" do samostatneho kousicku, kde jsem pak pouzil vseobecne forwardovaci pravidlo. To fungovalo spolehlive. Takze mne zarazi, kde je vlastne rozdil mezi tim pravidlem pro jeden jediny testovaci stroj a pravidlem vseobecnym. V jednom pripade suquid funguju, v druhem pripade squid tvdri, ze access denied. Pritom neni nikde zadny jiny ozdil, pouze v tom, ze jednou je ve forwardovacim pravidle uvedena konkretni IP, resp. "any".

Napada nekoho, cim to muze byt? Co zasadniho jsem kde prehlidl? Uz mne nenapada, jakym nastrojem bych mohl zjistit, kudy se mi vlastne ty packety potuluji - kdyz tcpdump na lo0 zaryte mlci, pripadne ukazuje prooz, ktery bych tam ani omylem necekal.


Zbynek


P.S.:
...a pak jeste jeden dotaz do budoucna, az mi to konecne bude fungovat - s jakym redirectorem mate dobre zkusenosti? Budu potrebovat pro urcite IP adresy redirectnout webovy provoz na nejakou vyhruznou stranku (zakaznikum majicim zavirovany PC a rozesilajicim SPAM, pripadne zakaznikum neplaticim apod.). Uplne uzasne by bylo, kdyby se dalo i nastavit, ze se nejaka "vyhruzna" stranka ma zobrazovat treba jednou denne / kazdou hodinu / kazdych 5 min. / trvale ...jednodussi je se zeptat, nez objevovat ameriku. Na tento dotaz staci jednoslovna odpoved (jmeno programu)
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem