ot Zerg(16-06-2005)
reiting (17)
[ dobre ]
[ zle ]
Variant za otpechatvane
Statiiata e prevedena ot ruski
mozhete da ia namerite tuk
Sushtestvuvat razlichni
sposobi za organizirane na virtualna chastna mrezha (VPN). I tozi e edin ot tiah
– bezplaten i s prosta nastroika.
Vsichko teche, vsichko se
promenia. Firmichkata, zapochnala svoiata deinost ot edna staichka, se razpulziava
na niakolko etazha - a sled oshte niakolko godini tia e veche kompaniia s
shtab-kvartira vuv dve zdaniia i filiali po tsialata strana.
Razshirenieto zasiaga ne samo
rabotnite ploshtadki, no i kompyuturnite mrezhi. Purvi priznak za rust na
kompaniiata obiknoveno e poiaviavaneto na survur, kogato administriraneto na
spodelenata mrezha stava vse po-trudno i po-trudno. No skoro i toi prestava da
se spravia sus zadachite, zashtoto danni iskat vsichki, a survurut e edin.
Mrezhata zapochva da se deli,
a potrebitelite – da se oplakvat ot neudobstvata. Te sa sviknali, che survurut
se namira v sushtata kato tiah mrezha, i che dostuput do neobhodimite danni mozhe
da se poluchi s dve shtrakvaniia s mishkata. Sega, za da poluchat neobhodimata
informatsiia se nalaga da se promukvat prez mnozhestvo mrezhi.
Dopulnitelno vuznikvat
problemi s zashtitata na informatsiiata. Na zloumishlenika mu e dostatuchno da
postavi kompyutur niakude vuv vruzkite mezhdu razlichnite mrezhi , za da mozhe
spokoino da „prehvashta“ tsialata preminavashta informatsiia. Edinstveniia za
sistemniia administrator izhod e da suedini vsichko v edna zashtitena mrezha VRN
(Virtual Private Network).
Sushtestvuvat niakolko svobodni
proekta, pozvoliavashti suzdavaneto na takava mrezha: IPsec, FreeS/WAN, CIPE i
prosto RRR vurhu SSH. Te pozvoliavat da se dostigne neobhodimiia rezultat - no
da se nastroiat pravilno e trudna zadacha.
Kato alternativa mozhe da se
izpolzva distributsiia na Linux, imashta v svoia sustav sredstva za suzdavane na
virtualni chastni mrezhi: Smoothwall
ili Astaro
Security Linux. Tezi sistemi sa prilozhimi v kachestvoto si na ruter - no
obiknoveno samo v tozi sluchai, kogato tsialata sistema e subrana "ot
nulata".
"Virtualen tunel" VTun
„Virtualniia tunel“ Vtun e drugo neshto. Bukvalno sled
10 minuti sled nabiraneto v adresniia red na brauzura na adresa na tozi
proekt, az veche znaeh , che toi podhozhda na 100%. VTun predostavia nai-prostiia
ot vsichki izvestni na men sposobi za suzdavane na virtualen tunel v TCP/IP
mrezhite.
Glavnoto dostoinstvo na VTun e otlichnata
dokumentatsiia, prostotata na instalirane i konfigurirane, guvkavostta na
nastroikata. VTun poddurzha razlichni tipove tuneli: IP, ppp, SLIP, Ethernet,
TTY i pipe. Pototsite se kodirat s 128-bitov klyuch pri pomoshtta na OpenSSL po
algorituma BlowFish. Za generirane na klyucha se izpolzva algorituma MD5.
V kachestvoto na bazov (transporten) protokol mozhe da
se izpolzva ne samo po nadezhdniia TCP, no i – za blizki podmrezhi – po burziia
UDP. Za uskoriavane na predavaneto na danni e vuzmozhna (no ne e zadulzhitelna)
kompresiia na potoka s pomoshtta na bibliotekite zlib i lzo. Bibliotekata zlib
osiguriava efektivna kompresiia za TCP. Po-burzata (i preporuchvana ot
razrabotchitsite) lzo poddurzha i dvata protokola (UDP i TCP).
Osven tova, VTun pozvoliava da se ogranichi vhodnata i
izhodnata skorost na tunelite za izbiagvane na pretovarvaniia na survura pri
nalichie na goliamo kolichestvo klienti.
Ofitsialno proekta poddurzha vsichki Unix-podobni
operatsionni sistemi: Linux (RedHat, Debian, Corel i dr.), FreeBSD i
drugi analozi na BSD (FreeBSD 3.x, 4.x, OpenBSD, Apple OS/X i dr.), a
sushto taka Solaris 2.6, 7.0, 8.0.
Sistemata raboti chrez unikalnite draiveri tun i tap.
Tun se izpolzva za tunelirane na IP-paketi, a tap (toi e i ethertap) - pri
tunelirane na Ethernet. Draiverut TUN/TAP pozvoliava na potrebitelskite
programi samostoiatelno da obrabotvat sushtestvuvashtite paketi. Nego mozhem da go
razglezhdame kato virtualno PPP ili Ethernet ustroistvo, koeto priema paketite
ne ot fizicheski nositeli, a ot potrebitelskite programi, i izprashta paketite
ne prez fizicheski nositeli, a gi zapisva v programata na potrebitelia.
Po-podrobna informatsiia za rabotata na tova ustroistvo ima v failovete na
dokumentatsiiata na iadroto /usr/src/linux/Documentation/networking/tuntap.txt i
ethertap.txt. Tam ima i primeri za izpolzvaneto na tezi ustroistva.
Nastroika na draiverite
Kum nastoiashtiia moment, draiverite TUN/TAP sa
realizirani za Linux, Solaris i FreeBSD, no rabotiat i pod drugi BSD-sistemi.
Predi zapochvane na rabota e zhelatelno da se ubedim v nalichieto na
neobhodimite ustroistva /dev/net/tun ili /dev/tap#. Pri men v RedHat i
FreeBSD ustroistvoto tun be suzdadeno pri instalatsiiata:
[root@grinder /]# ls -al /dev/net/tun crw-r--r-- 1 root root 10, 2003Iyun 23 11:26 /dev/net/tun
Ako po niakakva prichina tova ne e stanalo, mozhe da
probvate da go suzdadete samostoiatelno:
[root@grinder /]# mkdir /dev/net (ako ia niama) [root@grinder /]# mknod /dev/net/tun c 10 200
I da dadete prava za dostup:
[root@grinder /]# chmod 0700 /dev/net/tun
Sega za avtomatichno zarezhdane na suotvetniia modul
dobaviame vuv faila /etc/modules.conf takiva redove:
alias char-major-10-200 tun
I obnoviavame zavisimostta na modulite:
# /sbin/depmod -a
Ili ruchno:
[root@grinder /]# /sbin/modprobe tun
Proveriavame rabotata na sistemata:
[root@grinder /]# /sbin/lsmod Module Size Used by Not tainted tun 5696 0 (unused)
Analogichno za TAP:
[root@grinder /]# mknod /dev/tap0 c 36 16 [root@grinder /]# mknod /dev/tap1 c 36 17
Sega ustroistvoto e gotovo za rabota. Ako neshto ne se
e poluchilo, to, nai-veroiatno, shte se nalozhi otnovo da konfigurirate iadroto.
Za poddurzhane na tap e neobhodimo da se vklyuchat
slednite redove:
# # Code maturity level options # CONFIG_EXPERIMENTAL=y # # Network device support # CONFIG_ETHERTAP=m
A za tun – takuv red:
CONFIG_TUN=m
Arhitektura na VTun
VTun raboti po printsipa klient-survur. Na edin ot
hostovete programata se startira kato survur, a na ostanalite kato klient.
Kolichestvoto na klientite se ogranichava samo ot moshtnostta na kompyutura,
izpulniavasht roliata na survur.
Pri izpolzvane na firewall e neobhodimo da se razreshi
preminavaneto na paketa prez port 5000, po podrazbirane izpolzvan ot
VPN-survura za proslushvane na mrezhata za nalichie na vklyuchvaniia. Pri suzdavane
na suedinenie klientut se opitva da se vklyuchi kum tozi port. Survurut
udostoveriava klienta na osnovata na parola, zapisana vuv faila
/usr/local/etc/vtun.conf. Ako vsichko e normalno, survurut s fork () startira
oshte edin demon vtun (koito shte raboti s klienta po natatuk), a sam se vrushta v
izhodno sustoianie i chaka sledvashti vklyuchvaniia.
No tova ne e vsichko. Vuzmozhno e ednovremennoto
startirane vurhu edin kompyutur na niakolko demona vtun, vseki ot koito chete
sobstven konfiguratsionen fail i raboti v rezhim survur ili klient. Po tozi
nachin se suzdavat niakolko vtun mrezhi. Edinstveniia problem e v tova, che ne
mozhe da se izpolzvat zaedno NAT i VPN-tunel, ponezhe posledniia proveriava
validnostta na paketite chrez shifrovane i proverka na kontrolnata suma. NAT
prezapisva sudurzhanieto na preminavashtite paketi, i poradi tova te niama da
preminat prez takava proverka.
Instalirane na VTun
Osven distributsiiata na VTun, za instaliraneto shte
potriabvat i paketa OpenSSL i bibliotekite zlib i lzo. Vprochem, mozhe i bez
poslednite - no togava potoka niama da se kompresira. V distributsiite FreeBSD
ili OpenBSD vsichko tova se instalira otdelno. V RedHat 9, s koiato sum
rabotil, stava po sledniia nachin:
# rpm -qa | grep openssl openssl-0.9.7a-2 openssl-devel-0.9.7a-2 # rpm -qa | grep zlib zlib-devel-1.1.4-8 zlib-1.1.4-8 [root@grinder sergej]# rpm -qa | grep lzo
Kakto vizhdame, vsichko e gotovo, osven bibliotekata
lzo. Ako neshto ne dostiga, to poslednite versii na zlib mozhem da namerim tuk,
lzo - na saita,
a OpenSSL - na ofitsialniia im
sait. Potrebitelite na sistemite BSD im e po udobno vsichko tova da go
nameriat v sistemata ot portov.
Sled kato sa instalirani vsichki neobhodimi programi,
pristupvame kum instaliraneto na VTun:
# tar xvfz vtun-2.6.tar.gz # cd vtun #./configure
Poniakoga, ako programata pri konfiguratsiiata ne e
namerila niakoi failove, tia dava primerno slednoto suobshtenie za greshka:
checking for ZLIB Library and Header files... checking for deflate in -lz... yes checking for LZO Library and Header files... checking for lzo1x.h... no configure: error: headers not found.
S drugi dumi, programata ne e namerila failove ot
bibliotekata LZO. Ako tezi biblioteki sa instalirani, triabva prosto da se
dade ruchno tiahnoto razpolozhenie s optsiite --with-lzo-headers=DIR i --with-lzo-lib=DIR:
#./configure with-lzo-headers=/usr/local/include/ --with-lzo-lib=/usr/local/lib/
Ako suobshtenieto za greshka produlzhava da se poiaviava
ili bibliotekata ne e instalirana, to za da se produlzhi rabotata bez
poddurzhane na bibliotekata LZO se izpolzva klyucha --disable-lzo, a za
bibliotekite ZLIB - --disable-zlib, za izklyuchvane na shifriraneto -
--disable-ssl. Sled tova izvurshvame kompilirane i instalirane na programata,
kakto obiknoveno:
# make # make install
Ako vsichko e preminalo bez greshki, to predi startiraneto
e neobhodimo da se vuvedat izmeneniia v konfiguratsionite failove na survurite
i klientite. Faila /usr/local/etc/vtun.conf, suzdaden pri instaliraneto, e
dobre komentiran i sudurzha gotovi shabloni za rabotata na VTun kakto v
kachestvoto na survur, taka i kato klient. Nashata zadacha se sustoi v tova, da
premahnem izlishnoto i postavim neobhodimite za rabotata parametri.
Tipichen fail za survur izglezhda taka:
options { port 5000; syslog daemon; # V tozi blok se opisvat putishtata # do izpolzvanite programi ppp /usr/sbin/pppd; ifconfig /sbin/ifconfig; route /sbin/route; firewall /sbin/ipchains; ip /sbin/ip; } default { compress lzo:9; speed 0; }
Razdelite options i default sa obshti. Tiahnoto
sudurzhanie se razprostraniava na vsichki sledvashti sektsii. Obache pri sledvashta
nastroika stoinostta na optsiite ot razdela default mogat da se preopredeliat
za vseki klient. Po-dolu se opisva nastroika na otdelni klienti. Oburnete
vnimanie, che imenata na vsichki optsii mogat da se sukratiat do 4-ri znaka.
mashine1 { passwd Ma;;*TU; type tun; proto udp; encrypt yes; keepalive yes; up { ifconfig "%% 192.168.0.1 pointopoint 192.168.0.3 mtu 1450"; }; } mashine2 { passwd Ma&^TU; type ether; device tap0; proto udp; compress zlib:5; speed 256:128; encrypt yes; stat yes; keepalive yes; up { ifconfig "%% 192.168.0.2 192.168.0.1 netmask 255.255.255.0"; route "add -net 192.168.0.0 netmask 255.255.255.0"; firewall "-A forward -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQ"; }; down { ifconfig "%% down"; route "delete 192.168.0.0"; firewall "-D forward -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQ"; }; }
Vuzmozhni
stoinosti na optsiite pri nastroika na Vtun
Optsiia
Opisanie
Sektsiia
options
type
Sposob na startirane na demona vtund:
kato samostoiatelna programa (po podrazbirane) ili chrez inetd. Vuzmozhni
stoinosti - stand, inetd
rort
Nomer na porta, koito proslushva
survura v ochakvane na suobshteniia
rersist
Vuzmozhni stoinosti - yes, no. Pri stoinost
yes klientut shte se opitva povtorno da se suedini sus survura v sluchai na
prekusvane. Ignorira se pri survur
timeout
Vreme na izchakvane za klienta.
Ignorira se pri survur
Sektsiia
default i sektsii za klientite
rassword
Parola za dostup na klienta do
survura. Ednakuv za dvata kompyutura. Dokolkoto parolata se suhraniava vuv
failovete za nastoikata v otkrit vid, dostup do tiah triabva da ima samo root
type
Tip na izpolzvaniia tunel. Ignorira
se pri klient. Vuzmozhni stoinosti: tun (IP tunnel, po PPP, Ether), ether
(Ethernet), tty (serial tunnel, po PPP, SLIP, izpolzva se po podrazbirane) i
pipe (pipe tunnel)
device
Izpolzvano survurno ustroistvo.
Obiknoveno vtund pravilno razpoznava ustroistvoto avtomatichno, taka che tazi
optsiia mozhe da ne se pipa
proto
Vuzmozhni stoinosti: tcp, udp.
Izpolzvan protokol. Po podrazbirane - TSR. UDP mozhe da se izpolzva samo za
ether i tun. Ignorira se pri klient
sompress
Metod i stepen na kompresiia.
Vuzmozhni stoinosti - no (bez kompresiia), yes (kompresiia po podrazbirane),
zlib i lzo (ako sistemata e kompilirana s poddruzhka na tezi biblioteki). CHrez
dvoetochie se ukazva stepenta na kompresirane ot 1 do 9. Kolkoto e
po-goliamo chisloto, tolkova e po-goliama stepenta na kompresirane. Pri tova e
neobhodimo da se pomni, che po-visoki stepeni na kompresirane iziskvat poveche
sistemni resursi. Ignorira se pri klient
encrypt
Vklyuchvane/izklyuchvane na shifrirane.
Vuzmozhni stoinosti - yes, no. Ignorira se pri klient
keepalive
Vuzmozhni stoinosti - yes, no.
Opredelia, neobhodimo li e da se opitva vuztanoviavane na vruzkata pri
prekusvane na vruzkata. Ignorira se pri klient
stat
Vklyuchvane/izklyuchvane na rezhima za
vodene na statistika. Vuzmozhni stoinosti - yes, no. Ako tazi optsiia e
vklyuchena, to survurut na vseki 5 minuti zapisva statisticheski danni vuv
faila /var/log/vtund/host_X
speed
Ogranichenie na skorostta za
osobeno "lakomi" klienti. Parametrite se zadavat v Kb/s. Dopustimi
stoinosti sa 8, 16, 32, 64, 128, 256 i t.n. Po podrazbirane
parameturut e raven na 0, koeto oznachava maksimalnata vuzmozhna skorost. Mozhe
da se zadade skorost vuv formata in:out, kudeto in – e skorostta na predavane
na danni kum klienta,a out - ot klienta. Edna tsifra oznachava ednakva skorost
v dvete posoki. Ignorira se pri klient
srcaddr
Tvurda vruzka s absolyuten adres i
port
Multi
Upravlenie na paralelni
suedineniia. Stoinostite yes i allow razreshavat paralelnite suedineniia, no i
deny - zabraniavat, killold razreshava novo suedinenie, zabraniavaiki starite.
Ignorira se pri klient
up, down
Posochvat instruktsii, koito se izpulniavat pri udachno
suedinenie i pri prekusvane na vruzkata. Izpolzvat se za da se initsializirat
protokoli, ustroistva, marshutizatsiiata i firewall. Osven startiranite
programi, mogat da se shabloni i argumenta wait, pozvoliavasht na vtund da izchaka
zavurshvaneto na rabotata na programata. SHablonite mogat da budat slednite:
·
' (edinichna kavichka) - grupa argumenti;
·
\ (obratna naklonena cherta) - simvol escape;
·
%d - ustroistvo TUN ili TAP ili ime na TTY-port;
·
%% - sushtoto, kato %d;
·
%A - lokalen IP-adres;
·
%P - lokalen port TCP ili UDP;
·
%a - otdalechen IP-adres;
·
%p – otdalechen port TCP ili UDP
Povechete parametri obiknoveno se
nastroivat avtomatichno, i da se pribiagva kum ruchna nastroika se nalaga samo v
kraen sluchai. Da razgledame primer na faila za klientski kompyutur. V nego sa
premahnati izlishnite parametri ot sektsiiata za survur i sa izmeneni
stoinostite na IP-adresite na vdiganite interfeisi (Adresite na interfeisite,
izpolzvani v primera, sa dadeni v tablitsata).
Adresi
na interfeisi, izpolzvani v primera
Kompyutur
Vunshen
IP
Vutreshen
IP
Virtualen
interfeis
Survur
1.2.3.4
192.168.10.0
192.168.0.1
Klient
mashine2
10.20.30.40
192.168.20.0
192.168.0.2
options { port 5000; timeout 60; ifconfig /sbin/ifconfig; route /sbin/route; firewall /sbin/ipchains; } mashine2 { pass Ma&^TU; type ether; up { ifconfig "%% 192.168.0.2 netmask 255.255.255.0"; }; down { ifconfig "%% down"; }; }
Oburnete vnimanie: sintaksisa na parametrite
ifconfig, firewall i obshtata nastroika na mrezhovite interfeisi v dadenite
primeri shte se razlichavat za razlichnite operatsionni sistemi.
Sled kato vsichki failove sa gotovi, startirame na
kompyutura, izpulniavasht roliata na suruvur, demona vtund v rezhim survur:
Server# vtund -s
Na kompyutrite-klienti strartirame vtund s ukazvane
imeto na hosta, figurirashto v konfiguratsionniia fail, i IP-adresa ili imeto na
survura:
mashine2# vtund -r mashine2 1.2.3.4
Za greshkite pri startiraneto nablyudavame v druga
konzola:
# tail -f /var/log/message
Ako ne se poiavi nishto podozritelno, mozhem da schitame
che suzdavaneto na VPN-mrezhata e zavursheno.
Posledna nastroika
Za da se ubedim oshte vednuzh v pravilnostta na
instaliraneto, mozhem da poglednem s pomoshtta na komandite na ifconfig, kakvi
interfeisi sa instalirani na kompyutrite i kakvi stoinosti na parametrite sa
im prisvoeni. Ako ima ustroistva tun# i tap# s ukazanite vuv faila parametri
- znachi, vsichko e nared.
Sposoba na shifrirane leko mozhe da se opredeli chrez
obiknovena komanda ping. Neobhodimo e da se izpulni tazi komanda v posoka
zashtitenata i nezashtitena mrezha i da se "prehvanat" predavanite
paketi s tcpdump. Po podrazbirane ping predava edni i sushti danni pri vsiako
obrushtenie, i zatova, ako poluchenite paketi se razlichavat, znachi dannite se
shifrirat.
Pri takava konfiguratsiia vsichki klienti imat dostup do
mrezhata na survura, no ne edin kum drug. Ako se nalaga izgrazhdane na tunel
mezhdu klientite, to ediniia ot tiah se nastroiva kato suruvr, a na vtoriia se
startira nov klient. Dannite za novoto suedinenie mogat da budat polucheni
kakto ot otdelen fail, koito se ukazva pri startirane s optsiiata -f, taka i ot
osnovniia fail. Pri tova e neobhodimo da se prisvoi na novoto suedinenie
otdelno ime s negovite parametri, s koeto sled tova shte se startira klienta, a
survura shte slusha za negovite opiti za suedinenie.
Edinstvenoto, koeto za sega
ogorchava, e lipsata na realizatsiia na VTun pone za klienti pod Windows.
<< Suzdavane na rezervni kopiia s TAR | Kak da si napravim maluk torent traker na Linuks mashinata >>
|