Jaily a jedna IP [delsi mail]

Miroslav Prýmek m.prymek at gmail.com
Fri Jan 29 08:23:17 CET 2010


On 28.1.2010, at 22:41, Miroslav Lachman wrote:
> 
> No to byl ale prave ten nejpodstatnejsi radek ;o)
> 

Prave ze ne - bez natovani se to chova stejne (viz P.S. v predchozim mailu).
> 
> 
> Tady jsou totiz dva problemy zaroven, jak jsem linkoval odkaz na PF, tak PF to nejprve prelozi - tedy uz na fxp0 se packety objevuji s lokalni IP adresou 10.0.1.2,

Pozor - problem je v tom, ze se nefiltruji spojeni, ktera jdou Z JAILU -> cekal bych,
ze to bude fungovat tak, ze paket jde z jailu takhle: aplikace -> lo1 -> fxp0 -> nat -> firewalling

Zatim se mi to jevi tak (jak rikam, network stacku VUBEC nerozumim, takze uvidime, co rekne Dan), ze:
1. spojeni, ktery odchazi ze stroje (a je jedno! jestli z jailu nebo ne-jailu) vznika V KERNELU a jde
   pres to rozhrani, ktery smeruje danym smerem (pricemz se objevi v "out" a ne v "in")

2. takze prvni paket z "telnet 74.125.87.99 80" proste vznikne v kernelu, pak se objevi v "fxp0 out"
   - a jedinej rozdil jailu je v tom, ze jako zdrojova IP se tam da ta adresa, kterou ma jail k dispozici

3. je to hrozne divny, takze doufam, ze to tak neni :)


> ktera je normalne nastavena ifconfigem na lo1. Druhy problem je pak tusim v tcpdumpu, ktery pro "lo" nezobrazuje nic. Taky jsem na to kdysi narazil a je to "normalni". Nejsem schopen to ten dohledat, probiral jsem to na nejakem mailinglistu tak 2 roky zpatky.

Potvrzuju, vyzkouseno. Nicmene to neresi, proc nejsou blokovany pakety odchazejici z jailu, kdyz tam mam "block drop log on lo1 all"

> Tohle by asi dokazal vysvetlit Dan Lukes, ale zas pokud vim, misto PF pouziva IPFW (coz pro vysvetleni tcpdumpu a lo nevadi ;])
> 

Taky doufam :)

> A pokud muzu doporucit, to filtrovani packetu do jailu neprovadet na zaklade interface lo1, ale podle IP adres a pocitat s tim, ze co prichazi (a NATuje se), to se povoluje na ext_if, ale s adresou jailu:
> 

Urcite. Tohle byl jenom prvni pokus, jestli to vubec funguje.

> 
> A jeste poznamka, taky se pro nat i rdr da pouzit "pass" primo v tom pravidle prekladu a nemusi byt pak samostatne uvadeno, lze tedy pouzit treba:
> 
> nat pass on $ext_if from $jail_addr_0 to !$jail_addr_0 -> $ext_addr_0
> 
> rdr pass on $ext_if proto tcp from any to $ext_addr_0 port 8080 -> $jail_addr_0 port 80
> 

Diky, s tim natem to je zajimavej tip. Pokud tomu dobre rozumim, tak se nat uplatni jenom
pro pakety urcityho typu (zdrojova adresa = adresa jailu), takze je to vlastne takovy
"filtrovani PRED natovanim", coz je presne to, co potrebuju. To je teda asi reseni!
(i kdyz porad me zajima, jak presne to cely teda funguje...)

To rdr mam stejne, akorat mam jenom jednu externi IP a nemenim port: 
> rdr on $ext_if proto tcp to port http ->  $www_master


diky

Mirek


More information about the Users-l mailing list