ot Valqk - Anton(28-03-2004)
reiting (53)
[ dobre ]
[ zle ]
Variant za otpechatvane
Zadavali li ste si vuprosa , kak moga da nakaram FreeBSD
box-a mi da
izkara chast ot mrezhata mi /ili druga mrezha/ s ip koeto ne e
ip-to po podrazbirane na rutera.
Tazi statiia dava otgovor na tozi vupros, mozhe bi dosta ot
vas sa imali ili shte imat podoben problem.
Malko teoriia.
Pod FreeBSD nat-ut se izvurshva ot vunshna programa, narechena
natd.
Tazi vunshna programa e dosta guvkava i dava vuzmozhnost za
dosta nastroiki
i gudeli.
Za spravka : man 8 natd , man 8 ipfw ;
A sega, praktika :-).
Da si predstavim, che imame dve vutreshni mrezhi (vuzmozhno e
da se raztsepi i edna pod-mrezha, no shte e po lesno razbiraemo
s 2 mrezhi).
net1: 192.168.0.0/24 (255 adresa).
net2: 192.168.1.0/24 (255 adresa).
Imame 2 realni ip-ta , koito iskame da polzvame za tezi dve
vutreshni mrezhi:
ip1: 80.72.67.118 -> 192.168.0.0/24
ip2: 80.72.67.119 -> 192.168.1.0/24
t.e. vsichki ip-ta koito sa ot 192.168.0.0 da izlizat prez
80.72.67.118 ,
a 192.168.1.0 prez 80.72.67.119
Po podrazbirane, vsichkiia trafik, koito v momenta izliza ot
mashinata i za dvete mrezhi bi triabvalo da izliza ot default
adresa na mrezhovata karta (ne ot aliasite), priemame che tova
e 80.72.67.118.
Kak izliza tozi trafik?
Vuv pravilata ni na firewall-a ima pravilo koeto kazva
"vsichkiia trafik koito idva kum men prez vunshniia mi
interfeis da se prenasochva kum port 8886.
Sled prenasochvaneto, na tozi port "slusha" natd
programkata,
koiato vsushtnost translira adresite ot vutreshni kum vunshniia i
podava zaiavkite kum survurite.
Tia pazi vsichki izprateni zaiavki vuv spisuk i sled vrushtaneto
na zaiavkata ot survura kum koito e podadena natd translira
obratno vsichkata informatsiia i ia podava kum klienta.
Pri startirane na natd, toi iziskva edna ot dvete optsii -
-n - koeto ukazva imeto na vunshniia mrezhov
interfeis
ili
-a - koeto ukazva koe ip da izpolzva za da izkarva trafika
prez nego.
(za spravka man 8 natd za da vidite vsichki vuzmozhni
parametri na natd).
Vuv variantite po podrazbirane se slaga -n optsiiata, koiato
izpolzva ip-to
kacheno na mrezhovata karta purvo(ne alias). V nashiia sluchai
to e 80.72.67.118 .
Kak mozhe da nakarame chast ot zaiavkite da izliat prez drugo
vunshno ip?
1. Triabva da "napravim" tova ip, taka che to da
sushtestvuva na nashiia ruter.
T.e. shte dobavim alias na vunshniia mrezhov interfeis (priemame
che rabotim sus mrezhovi karti 3c905, tui kato vuv *BSD
mrezhovite interfeisi se krushtavat s razlichni imena v
zavisimost ot proizvoditelia i draivera koito polzva
vuprosniia mrezhov interfeis - v moia sluchai xl0 i xl1).
I taka slagame alias na vunshniia ni interfeis.
#>ifconfig xl0 alias 80.72.67.119 netmask
255.255.255.224
sled izpulniavaneto na tazi komanda veche imame raboteshto ip
na vunshniia ni mrezhov interfeis.
2. Triabva da kazhem na natd ot koia mrezha koi zaiavki da
preprashta i nakude (tova stava prez ipfw(2), az lichno polzvam
ipfw2 , tui kato ima mnogo poveche vuzmozhnosti).
Malko teoriia: Tui kato port 8886 e po podrazbirane na
natd-to toi sluzhi za vhodno/izhodniia trafik, no za da mozhem
da raboti normalno natd sus ne-default port, se nuzhdae ot
dva porta - vhoden i izhoden.
Izbiram si 65350 za izhoden(tozi kum koito se preprashta
trafika ot vutreshnata mrezha kum natd-to) i 65351 za vhoden
(tozi kum koito se preprashta trafika idvasht ot internet kum
rutera).
Tui kato ipfw e rule-id based, priemam che praviloto po
podrazbirane za natd-to e s nomer 1000.
2.1. Iztrivam pravilo 1000 tui kato shte triabva da se promeni
- da ne prenasochva trafika idvasht ot vtoro realno ip kum
default natd.
#> ipfw del 1000
2.2. Dobaviam novoto pravilo, koeto izklyuchva vuprosnoto
ip.
#> ipfw add 1000 divert natd ip from not 80.72.67.119 to
any via xl0
(ZABELEZHKA: Tuk mozhete da slozhite i tsialata podmrezha ot
realni ip-ta koiato imate , no ako go napravite, niama da
imate dostup do neia ot vutreshnata mrezha, ako adresite sa
slozheni predi rutera!)
2.3. Dobaviam 2 pravila za da ukazha na tseliia trafik, koito
idva ot vutreshnata mrezha (192.168.1.0/24) da minava prez
drug port kum natd.
#> ipfw add 720 divert 65350 ip from 192.168.1.0/24 to
any via xl0
#> ipfw add 721 divert 65351 ip from any to 80.72.67.109
via xl0
(VNIMANIE: pravilata za vtoriia natd TRQBVA da budat nad
pravilata za default natd, tui kato ako sa sled te se
divert-vat ot predishnoto pravilo koeto e za any[t.e. za
vsichkiia ostanal trafik]).
3. Sega e vremeto da startiram vtora instantsiia na natd,
koiato da se grizhi za trafika idvasht na portove 65350 i 65351
, kato i "kazha" da prekava vsichkiia trafik minavasht
prez neia, prez adres 80.72.67.119.
#> natd -i 65350 -o 65351 -a 80.72.67.109
(Dopulnenie: Ako iskate da vidite tarika, i zashto mozhe da ne
raboti slozhete optsiia -v.)
4. Dobaviam razreshenie za dostup do rutera ot mrezha
192.168.1.0/24
VNIMANIE: Tova triabva da stane POD pravilata za
natd-to.
#> ipfw add allow ip from 192.168.1.0/24 to any via
xl1
#> ipfw add allow ip from any to 192.168.1.0/24
5. Ako niamam razreshenie za drugata mrezha dobaviam i tiah.
#> ipfw add allow ip from 192.168.0.0/24 to any via
xl1
#> ipfw add allow ip from any to 192.168.0.0/24
Sega veche trafika ot mrezha 192.168.1.0/24 triabva da izliza
prez 80.72.67.119 ( mozhe da proverite tuk: http://showmyip.com )
Ako se interesuvate mozhe da poglednete sushtata statiia, s
malko poveche/po malko neshta ot: http://valqk.ath.cx/howtos/FreeBSD/natd.html
Priemam vsiakakvi komentari, otzivi, popravki i preporuki na
valqk [at] lozenetz [dot] org
SHTe pomolia ako niakoi postva tuk, da mi pishe i na meila tui
kato niama da sledia dali ima postnati komentari tuk.
Edno preduprezhdenie, ne si iztrivaite divert praviloto ako
ne ste blizo do mashinata, ili v lokalnata mrezha, kudeto
pravilata za natd-to ne vazhat, inache riskuvate da si srezhete
klona na koito sedite :).
Nadiavam se tozi "dokument" da e polezen za
vas.
Ako e taka mi pratete meil sus "hello world" , shte
se radvam da go polucha :)
Vsichko nai-nai :) i veselo ! :)))
Bez malko da zabravia, SPECIAL 10x to Tbyte for this issue
with natd!!!!
Malko komentari otnosno statiiata ot Tbyte s koito sum
napulno suglasen.
1.Za da ne si otrezhete klona na ssh-a prez koito ste se
vurzali,
mozhete da dobavite dve pravila:
#> ipfw add 500 allow tcp from me 22 to any
#> ipfw add 501 allow tcp from any to me 22
ZABELEZHKA: Imaite predvid, che tezi dve pravila triabva da sa
predi praviloto za natd-to.
2. Po printsip ako ste dostavchik, e po dobre da pusnete
purviia nat, koito nat-va tsialata vi mrezha ne na default ip-to
a da kachite drug alias s ifconfig (ima go opisano kak stava
po gore) i da pusnete purviia natd s optsiia -a alias_adres ,
za da mozhete da pravite vsiakakvi magii po rutera sus default
ip-to bez da spirate trafika na potrebitelite si
"intsidentno" , OPREDELENO E PREPORUCHITELNO
:)))
Ako ima oshte komentari molia pishete!!!
<< Kakvo e Linuks? | PPP over SSL. CHast 2: Klient >>
|