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