ot Zerg(16-06-2005)

reiting (18)   [ dobre ]  [ zle ]

Printer Friendly 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 >>