NAT v ramci jednoho stroje
Dan Lukes
dan at obluda.cz
Wed Jun 21 00:47:08 CEST 2006
Martin Balint napsal/wrote, On 06/21/06 00:04:
> mam na jednom FreeBSD 6.1 stroji 2 sitove karty, fxp0 (pripojena k
> routru) a rl0 (192.168.158.100) je urcena k tomu, aby vytvarela privatni sitove
> prostredi v ramci stroje, na ktere se pripojuje pres openvpn.
>
> Soucasne nastaveni je takove:
> fxp0: 192.168.10.13 pripojeno na router 192.168.10.0
> rl0: 192.168.158.100 nepripojeno nikam
> dale existuje jail 'iota', ktery:
> jail_iota_rootdir="/home/iota"
> jail_iota_hostname="iota"
> jail_iota_ip="192.168.158.100"
> jail_iota_interface="rl0"
>
> Mam nastaveny NAT: redirect_port tcp 192.168.158.100:1194 1194
> Tedy openvpn klient se pripaji na 192.168.10.13 a je forwardovan na
> 192.168.158.100. Tam posloucha openvpn server.
>
> ipfw.rules vypada takhle:
> /sbin/ipfw add divert natd log all from any to any via fxp0
> /sbin/ipfw add pass all from any to any
> Tim se dostanu z 'iota' jailu na net.
> Problem mam ale v tom, ze kdyz se prihlasim ssh do jailu
> 192.168.158.100, nemuzu pingovat klientske openvpn stanice, ani z
> klientu nepingnu 192.168.158.100. Klienti se mezi sebou pinguji.
> Z jailu muzu pingovat servery na inetu.
> Nevite, v cem by mohl byt problem?
>
> sysctl -a:
> security.jail.allow_raw_sockets: 1
> net.link.ether.bridge.config: rl0,tap0
> net.link.ether.bridge.enable: 1
>
> Trocha se mi ale nezda ten zapis ipfw.rules, ale pouze takhle mi
> fungovala komunikace z jailu ven. Optimalne bych to asi videl na neco
> jako add divert natd log all from 192.168.158.100 to any via fxp0, ale
> tenhle zapis nefungoval. Pakety odchazeli a vraceli se pres fxp0, ale
> nedorazili do jailu.
>
> Trocha me taky znepokojuje vypis security logu, jakoby se snazil
> divertovat vsechno, co potka na fxp0:
> 192.168.10.16 je stanice, z ktere jsem pripojen pres ssh.
> Jun 20 23:58:03 epsilon kernel: ipfw: 100 Divert 8668 TCP
> 192.168.10.13:22 192.168.10.16:3111 out via fxp0
To je samozrejme spravne - nebo, prinejmensim, odpovida to konfiguraci.
Mas tam pravidlo:
/sbin/ipfw add divert natd log all from any to any via fxp0
A to presne znamena - divertovat vse, co prichazi pres fxp0
> Cele to na mne pusobi tak, ze je asi blbe zapis ipfw.rules, poradite
> nekdo, co s tim?
No, nevim, nekdo treba poradi, ale mas tam pomerne dost slozitou
konfiguraci nato, zes nam z ni prozradil sotva pulku. Neznam masky siti,
ktere jsou na jednotlivych kartach. Neznam ani nektere sitove interface,
ktere v systemu urcite mas (nerikal's, ze je tam OpenVPN ? Nekde je tam,
zrejme, nejaky tap nebo tun). Neznam obsah routovaci tabulky, takze
nevim, jestli paket 192.168.10.13:22 192.168.10.16:3111 mel nebo nemel
prochazet pres fxp0. Neznam adresni rozsah "klientskych openvpn stanic"
takze nemohu posoudit problem s pinganim z nich a na ne ...
Takze muzu poslouzit jen obecnou radou - pokud nejake pakety neodchazi,
pak je treba proverit, zda se vubec snazi odejit do toho interfacu, do
ktereho by odejit mely (route get ...); pokud ano, pak je treba
proverit, jestli prochazeji prave temi pravidly firewallu, kterymi maji
(a neprochazeji temi, kterymi nemaji) - to je trochu slozitejsi, ale
pomoci muze, napriklad, direktiva 'log'.
A nakonec - zda skutecne odchazeji ven, a odchazeji s takovymi
zdrojovymi a na takove cilove adresy na jake maji - to je treba se
podivat tcpdumpem. K tomu patri problem, zda je v ARP tabulce prislusny
zaznam pro "next-hop" adresu takoveho paketu.
A podle toho, v ktere fazi se zjisti problem a jaky je treba prijmout
nejake reseni.
V ramci obecneho radeni pak uz muzu konstatovat jen tolik, ze OpenVPN v
rezimu TAP jsme nikdy spolehlive a uspokojive nerozchodili a tak
zustavame u osvedceneho 'tun' ...
Dan
--
Dan Lukes SISAL MFF UK
AKA: dan at obluda.cz, dan at freebsd.cz,dan at kolej.mff.cuni.cz
More information about the Users-l
mailing list