Jaily a jedna IP [delsi mail]

Miroslav Lachman 000.fbsd at quip.cz
Thu Jan 28 22:41:32 CET 2010


Miroslav Prýmek wrote:
>
> On 28.1.2010, at 19:40, Miroslav Lachman wrote:
>
>> Miroslav Prýmek wrote:
>>
>> [...]
>>
>>> Jenom pripominam, ze jsem mluvil o spojeni. ktere pochazi Z JAILU, takze
>>> by melo prvne projit tap0 a potom fxp0 (kde se natuje).
>>
>> V zaslanych pravidlech se neNATuje.
>
> Omlovam se, vypadl mi tam jeden radek:
>
> nat on $ext_if from !($ext_if) ->  ($ext_if:0)

No to byl ale prave ten nejpodstatnejsi radek ;o)

> Kazdopadne teda po trose laborovani:
> [test:~]# pfctl -sr
> No ALTQ support in kernel
> ALTQ related functions disabled
> block drop log all
> pass in on fxp0 proto udp from any to any port = bootps keep state
> pass in on fxp0 proto tcp from any to (fxp0) port = ssh flags S/SA keep state
> pass out log on fxp0 all flags S/SA keep state
> block drop log on lo1 all<------- abych si byl uplne jistej... je to zbytecny, vim

Pokud bych chtel neco "s jistotou" blokovat, dal bych si spis na zacatek 
block quick, ale to uz je vec vkusu...

[...]

> To je v poradku, protoze vsechno na lo1 je blokovany, v logu se spravne objevi:
> 000884 rule 4/0(match): block out on lo1: 10.0.1.2.54472>  10.0.1.2.5555:  tcp 40 [bad hdr length 0 - too short,<  20]
>
> Jenze z jailu jsem ven mohl! A kdyz dam (mimo jail):
> [test:~]# tcpdump -i lo1
>
> ...a v jailu:
> [www-master:~]# telnet 74.125.87.99 80
> Trying 74.125.87.99...
> Connected to hb-in-f99.1e100.net.
>
> ...tak tcpdump nezobrazi VUBEC NIC. Znamena to teda, je jail PRICHOZI spojeni jdou skutecne pres lo1, ale ODCHOZI pres fxp0
> - teda stejne jako mimo-jail?! (takze nejde odlisit - pokud natuju - jestli ODCHOZI spojeni pochazi z jailu nebo z ne-jailu?!)

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, 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.
Tohle by asi dokazal vysvetlit Dan Lukes, ale zas pokud vim, misto PF 
pouziva IPFW (coz pro vysvetleni tcpdumpu a lo nevadi ;])

Takze abych to zkratil - tcpdump IMHO na lo1 nikdy nic neuvidi.

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:

pass in on $ext_if inet proto tcp from any to $jail_addr_0 port 
$jail_tcp_0_inports

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

Mirek


More information about the Users-l mailing list