9/19/2010

OpenVPN в кратки стъпки [2]

Нека продължим историята за OpenVPN връзката, от предишният пост.

Като цяло конфигурацията на OpenVPN сървъра е елементарна и доста праволинейна. На първо време трябва да изберем дали искаме routing или bridging метод за връзка между системите във VPN-а.

Разликите може да прочетете тук.

Аз избрах routing, защотo е по-гъвкав от колкото Ethernet bridging.

Така, първо нека преместим един от примерните конфигурационни файлове в директорията /etc/openvpn/. Това става така:

# cp /usr/share/doc/openvpn-2.1.1/sample-config-files/roadwarrior-server.conf /etc/openvpn/server.conf

След това отваряме файла /etc/openvpn/server.conf с любимията си текстов редактор (трябва да сте root за да може да записвате промените).

Първият ред показва порта, на който OpenVPN сървъра ще чака заявка, за осъществяване на комуникация. Вторият ред показва какъв вид връзка ще използваме (това не е много интуитивно, но ако сте прочели FAQ-то по-горе, ще разберете че за Routing използваме tun, а за Bridging използваме tap). По-надолу следват конфигурацията на ключовете, и пътищата до тях. Тук трябва да променим пътя до директорията с ключове, която направихме в първата част на това howto. Ето пример:

tls-server
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/lateralus.crt
key /etc/openvpn/easy-rsa/keys/lateralus.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem

Малко по-надолу указваме режима да е сървър, оказваме IP адресите, които сървъра ще използва за крайни точки (тези адреси, не трябва да съществуват в мрежата, за да не стават конфликти) , също така и адресите, които да се раздават на клиентите, в нашият случай оставяме комуникационна четворка за всеки един от тях.

По-интересна е опцията push, чрез която може да окажете какви routing пътища трябва да се добавят към статичната routing таблица на клиентите. Например, ако имаме частна мрежа 172.16.0.0/12, която клиентите в VPN-а искате да достъпват е нужно да направим следният push към тях

# Push any routes the client needs to get in
# to the local network.
push "route 172.16.0.0 255.240.0.0"

По този начин, след като клиента се е удостоверил пред сървъра, последният му изпраща заявка за модифициране на routing таблицата му. Понеже това рядко ще работи out-of-the-box, може да се наложи модифициране на firewall-а на системата (iptables), което ще покажа как се случва по-надолу.

По-надолу в примерният файл има още push заявки за DHCP към клиенти с операционна система Windows. Тъй като не използвам Windows, в този пример, тези опции съм ги коментирал. Всичко останало съм го оставил така както си е, само съм добавил най-накрая на файла:

log-append /var/log/openvpn

За да мога да записвам съобщенията от сървъра, целта е ясна.

С това най-общо казано, приключва конфигурацията на сървъра. Сега е момента да изпълним следната команда:

# chkconfig --levels openvpn on

Това в системи базирани на Red Hat (като Fedora, CentOS и т.н.) ще добави openvpn в runlevel 2,3,4,5, което с прости думи обяснено означава, че сървъра ще се пуска при инициализация на системата.

Сега е време да стартираме сървъра. Това може да стане или чрез рестарт на цялата система (което не се препоръчва разбира се) или по-лесният вариант е:

# service openvpn start

Ако всичко е наред, би трябвало сървъра да се инициализира, като това може да се проследи в log файла /var/log/openvpn, ако сме указали тази опция в конфигурацията.

Другият вариант, който може да използваме за debugging е да стартираме


# openvpn --verb --config /etc/openvpn/server.conf

Като това ще изпълни openvpn и ще изведе инициализиращите съобщения директно в терминала.

No comments:

Post a Comment