Quantcast
Channel: Блогосфера
Viewing all articles
Browse latest Browse all 33007

Григор Гачев: VPN сървър под Linux

$
0
0

Може ли отнякъде си да се свържете с компютър с вашия офис и да работите във вътрешната му мрежа? Разбира се. Това нещо се нарича VPN, и е доста разпространено.

Пускането на VPN свързаност в някой офис често бива смятано за “черна магия”, посилна само за най-легендарните администратори. Е, не е точно така. Имате ли в този офис подходяща машина под Linux? Ако да, няма да ви е никакъв проблем да пуснете на нея VPN сървър. По-долу е описано как се прави това на Debian GNU/Linux 4.06.0 (Squeeze), чрез PPTP VPN.

Инсталиране

Ако вече имате инсталиран на някой компютър Debian Squeeze, почти всичко е готово. (За предпочитане е компютърът да е сървър, който да не се изключва. Когато си извън офиса, понякога е удобно и нужно да се свързваш по всякакви странни часове. Аз обикновено използвам или Интернет гейта, ако е компютър, или файлсървъра.) Ако нямате вече инсталиран, е нужно да инсталирате. Върши работа и старичка машина и инсталацията не е сложна. Графична среда не ви е нужна.

След като вече имате машината и базовата OS, трябва да проверите дали в ядрото има вградена поддръжка за MPPE (елемент от PPTP протокола). Дебианските ядра от 2.6.15 нататък я имат; за Squeeze стандартното е 2.6.32 – всичко трябва да е наред. Ако държите да пробвате, опитайте следната команда:

modprobe ppp-compress-18 && echo OK

(Изпише ли OK, сте… ОК. :-) )

Втората стъпка е инсталирането на VPN сървърния софтуер. То също е простичко – въведете:

apt-get install pptpd

Третата стъпка е да подсигурите фирмата ви да има публичен статичен IP адрес в Интернет (било това адресът на машината, която ще бъде VPN сървър, или на фирмения рутер). Говорете на тази тема с Интернет доставчика си.

Конфигуриране

При свързване към вашия VPN сървър на клиентския компютър (напр. лаптопа, който си носите в командировка) се създава “мрежово устройство” – по терминологията на Уиндоус, вашият VPN. То трябва да има някакво IP, ако ще комуникира през мрежа. А тъй като VPN-ът е пренос на мрежа, на сървъра също се появява съответно на вашия лаптоп “мрежово устройство”, което също трябва да има някакво IP. Първата ви работа е да настроите VPN сървъра да раздава тези IP-та.

Отворете файла /etc/pptpd.conf. Към края му ще намерите таговете localip и remoteip – те са, които ви трябват. Localip са адресите, които ще се появят на сървъра – те задължително трябва да са адреси от вътрешната ви мрежа. Remoteip са адресите, които ще бъдат на VPN устройството на отдалечения компютър – те могат да са адреси както пак от вашата мрежа, така и от друга частна мрежа. Във файла е дадено указание в какъв синтаксис се изписват, и примери.

Принципно localip може да е и само едно – полезен вариант, ако имате много външни клиенти и вътрешна мрежа с почти изразходени IP-та. Ако обаче не е така (а обикновено не е), не се скъпете, позволете да има достатъчно локални IP-та за всички свързващи се компютри. Полезно е например, ако някой в офиса иска да си откопира нещо от споделена директория на “командирования” компютър.

Ако не сте мислили как да разпределите вътрешната мрежа, сега е моментът. Примерно, ако мрежата ви ползва сегмента 192.168.1.0 – 192.168.1.255, бихте могли да оставите адресите от 1 до 100 за фиксирани вътрешни IP-та, 101 до 200 за раздавани по DHCP, и 201 до 254 за давани на VPN-а.

Важно е адресите за localip и за remoteip да не съвпадат, или ако са обхвати, да не се припокриват. Иначе стават… бози.

След като въведете промените, престартирайте pptpd сървъра:

/etc/init.d/pptpd restart

Второто нещо, което трябва да настроите, са потребителите на VPN-а и паролите. Тяхното място е във файла /etc/ppp/chap-secrets. Просто добавете на края му съответния брой редове със следния синтаксис:

username pptpd password *

където username е името на потребителя, а password – паролата му.

Не е нужно да рестартирате нищо след това – при първия опит за свързване сървърът ще си ги прочете автоматично.

Ако имате firewall на компютъра, е нужно да направите необходимия достъп в него. С iptables става чрез следните команди:

iptables -A INPUT -p tcp –dport 1723 -j ACCEPT
iptables -A INPUT -p 47 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 1723 -j ACCEPT
iptables -A OUTPUT -p 47 -j ACCEPT

VPN протоколът използва както порт 1723 на протокола TCP за начална автентификация, така и протокола GRE (протокол 47 – не го бъркайте с порт 47 на протоколите TCP или UDP!) за довършване на автентификацията и прехвърляне на данни. Трябва да отпушите и двата.

Форуардване през рутер

Ако сървърът е инсталиран на машина, която няма пряк излаз към Интернет, е нужно да подсигурите нужните портове и протоколи да се препращат към нея. Настройте фирмения гейт или рутер да форуардва към IP адреса на съответната машина порт 1723 на TCP протокола и GRE протокола. (Някои рутери не могат да форуардват изобщо. Други могат, но само TCP, UDP и/или ICMP протоколите – също няма да свършат работа. При трети номерът става чрез специални обявявания. В краен случай VPN сървърът може да бъде обявен за DMZ компютър, ако рутерът поддържа тази опция и това няма да компрометира сигурността на други задачи на сървъра.)

Свързване към сървъра

Обикновено изнесените машини са под Windows. На него се процедира по следния начин:

- Създавате нова мрежова връзка, от тип VPN към офиса ви
- За сървър, към който ще се свързвате, въведете IP адреса на VPN сървъра или фирмения рутер.
- За потребител и парола въведете потребител и парола, които сте задали при конфигурирането на сървъра.
- За име на връзката е подходящо например “Офиса” ;-)
- Името на услугата просто оставете празно.

След това стартирайте тази връзка, и ще се окажете свързани към офиса си. Изчакайте малко (SMB / Windows мрежата има голяма латентност – могат да минат до 20 минути, преди да се появят компютрите от офиса), и… сте в бизнеса. :-)


Viewing all articles
Browse latest Browse all 33007

Trending Articles