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
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem