Jaily a jedna IP
Miroslav Prýmek
m.prymek at gmail.com
Thu Jan 28 16:29:55 CET 2010
>>
>> Pokud se v jailech ma provozovat verejne dostupna sluzba, pak bude to NATovani asi rozumnym resenim.
>>
>> Myslim, ze lze spoustet i vice jailu na stejne IP, ale pak si zase clovek musi lepe pohlidat, aby si omylem ve vice jailech nepustil sluzbu na stejnem portu - treba ssh (dokud jsou jaily na stejne IP, ale pouzivaji jine porty pro naslouchajici sluzby, melo by vse byt OK)
>
> Ano, spustat viacej jailov na jednej IP je mozne a ja to tak bezne pouzivam. Napriklad klasicky web server s databazou mam rozdeleny na 3 jaily: server-web pre HTTP, server-sweb pre HTTPS a server-db pre DB. Vsetky na jednej IP adrese. Ak je k dispozicii iba jedna IP, tak na tej istej IP bezi aj host environment.
>
> Samozrejme plati to co pisal ML, ze nejde prevadzkovat sluzby na rovnakom porte. Kazde SSH mam nastavene na iny port a napriklad server-db vobec nie je pristupny cez SSH.
>
> Marian
Tak jsem to trochu zkousel a vypada to dobre, akorat mi neni uplne jasne, jak
vlastne funguje sitovani z jailu (a mezi nimi) a jestli jde nejak filtrovat.
Vytvoril jsem si tap rozhrani, na ktere ty jaily vesim (veseni na lo se mi nejak nezda).
rc.conf:
cloned_interfaces="tap0"
ifconfig_tap0="10.0.1.1 netmask 255.255.255.0"
ifconfig_tap0_alias0="10.0.1.2 netmask 255.255.255.0"
ifconfig_tap0_alias1="10.0.1.3 netmask 255.255.255.0"
ifconfig_tap0_alias2="10.0.1.4 netmask 255.255.255.0"
Firewall (PF) jsem zatim pro testovani nastavil takhle (PF pouzivam poprve,
takze kazdou pripominku rad privitam):
ext_if="fxp0"
jail_if="tap0"
smtp_master="10.0.1.2"
www_master="10.0.1.3"
rdr on $ext_if proto tcp to port http -> $www_master
rdr on $ext_if proto tcp to port https -> $www_master
rdr on $ext_if proto tcp to port smtp -> $smtp_master
tcp_services_main = "{ssh}"
tcp_services_jails = "{ssh, smtp, www}"
block log all
pass in on $ext_if proto tcp to ($ext_if) port $tcp_services_main
pass in on $ext_if proto tcp to ($jail_if) port $tcp_services_jails
pass out log on $ext_if all
Cekal bych, ze spojeni z jailu do Internetu bude blokovany, protoze jde pres tap0, ale neni tomu tak.
Kdyz v jailu spustim
[www-master:~]# telnet 74.125.87.99 80
tak se normalne pripoji a v logu je:
001069 rule 12/0(match): pass out on fxp0: <IPcko fxp0>.61663 > 74.125.87.99.80: tcp 36 [bad hdr length 4 - too short, < 20]
Rozhrani videno z jailu:
[www-master:~]# ifconfig
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=2009<RXCSUM,VLAN_MTU,WOL_MAGIC> <-------- IP tady neni, jak pres nej muze jit paket?
ether XXXXXXXXXXX
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:bd:f2:39:00:00
inet 10.0.1.2 netmask 0xffffff00 broadcast 10.0.1.255
pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33204
Jak si to mam vylozit? PF ignoruje tap rozhrani a nefiltruje tam? Cekal bych, ze paket pujde pres tap0 do fxp0 a pak teprve ven.
Jde teda nejak udelat filtrovani mezi jaily a popr. filtrovani toho, co muze jit ven z jailu?
diky za pomoc a sorry, pokud jsem uplne mimo ;)
Mirek
More information about the Users-l
mailing list