Szybka konfiguracja serwera OpenVPN na Centosie.

1 03 2008

Czasami potrzebujemy bezpiecznego połączenia z innym komputerem łącznie z dostępem do jego zasobów. Pod linuxem nie ma z tym problemów bo mamy połączenia poprzez ssh/scp natomiast połączenie np. dwóch maszyn działających pod kontrolą Windows może być bardziej problematyczne. Do połączenia użyjemy bramy działającej pod kontrolą CentOS-a i spróbujemy połączyć sie dwoma maszynami działającymi pod kontrolą Windows XP.

Zaczniemy od konfiguracji bramy/serwera który będzie nam szyfrował i przekazywał połączenie.

Na początku sprawdźmy czy mamy niezbędny soft:

# yum install openssl openssl-devel openvpn

Jeżeli czegoś z tego nie mamy to powinno nam sie zainstalować.

Następnie musimy wyszukać skryptu do generowania kluczy u mnie był:

/usr/share/doc/openvpn-2.0.9/easy-rsa

Potem aby zachować w miarę porządek na serwie kopiujemy oraz wykonujemy następujące komendy:
cp -R /usr/share/doc/openvpn-2.0.9/easy-rsa /etc/openvpn/
cd /etc/openvpn/easy-rsa
chmod 755 *
mkdir /etc/openvpn/keys

Kolejnym krokiem będzie edytowanie pliku /etc/openvpn/easy-rsa w którym musimy zmienić następujące linie:

export KEY_DIR=/etc/openvpn/keys
export KEY_COUNTRY=KG
export KEY_PROVINCE=NA
export KEY_CITY=BISHKEK
export KEY_ORG="OpenVPN-TEST"
export KEY_EMAIL="me@myhost.mydomain"

Następnie należy wykonać (wszystkie opcje oprócz commonName potwierdzamy Enterem):
. ./vars
./clean-all
./build-ca

Generujemy klucz serwera:

./build-key-server nazwa_serwera

Oraz klientów:

./build-key klient1
./build-key klient2

Na koniec:

./build-dh

Uzyskaliśmy teraz klucze klientów oraz serwera.Kolejnym krokiem będzie stworzenie plików konfiguracyjnych więc przechodzimy do katalogu /etc/openvpn w którym zapisujemy plik server.conf o zawartości:

port 1194
proto tcp
dev tun
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
server 192.168.2.0 255.255.255.0
client-to-client
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status server-tcp.log
verb 3

Pozostaje jeszcze stworzyć pliki logów oraz statusu.
touch /etc/openvpn/server-tcp.log
touch /etc/openvpn/ipp.txt

Noi oczywiście wpuścić port 1194 tcp do serwera.

Możemy teraz spokojnie uruchomić serwer:
/etc/init.d/openvpn start

Wynik ogladamy:

tail /var/log/messages

Oraz:

tail /etc/openvpn/server-tcp.log

Mamy serwer, następnym krokiem będzie podłączenie klientów. Na początek zgrajmy sobie klucze z serwera.
tar -zcf plik_z_kluczami.tar.gz /etc/openvpn/keys/ca.crt /etc/openvpn/keys/klient1.crt /etc/openvpn/keys/klient1.csr /etc/openvpn/keys/klient1.key

Oraz plik konfiguracyjny klient.ovpn o zawartości:

client
dev tun
proto tcp
#Tutaj wstaw adres IP serwera
remote Adres_IP_serwera 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert klient1.crt
key klient1.key
ns-cert-type server
######### Wstaw tutaj swoje serwery DNS-a
push "dhcp-option DNS 1.2.3.4"
push "dhcp-option DNS 1.2.3.4"
comp-lzo
verb 3

Pozostaje teraz ściągnięcie softu do połączenia. Jeżeli chodzi o systemy operacyjne z rodziny Windows to polecam oprogramowanie se strony http://openvpn.se/.

Po zainstalowaniu należy umieścić zawartość pliku plik_z_kluczami.tar.gz oraz plik klient.ovpn w katalogu C:\Program Files\OpenVPN\config\ i możemy spokojnie uruchamiać połączenie.

Aby przetestować czy i jak na to działa można uruchomić:
ping Ip_klient2

Wszystko….

Pliki konfiguracyjne oraz Soft do ściągnięcia:

openvpn-2.0.9-gui-1.0.3

server.conf

klient.ovpn

Strony z których korzystałem:

http://openvpn.net/

http://www.webhostingtalk.com/


Opcje

Info

4 Odpowiedzi to “Szybka konfiguracja serwera OpenVPN na Centosie.”

4 07 2008
welon (09:16:52) :

Witam,
fajny przewodnik.

No i mam pytanie.
Po pewnym czasie chciałem dogenerować klucze klientów. Pojawił się błąd

you must define KEY_DIR

Co z tym zrobić?

Pozdrawiam
welon

11 09 2008
SlyT (13:19:49) :

uruchomic . ./vars przed generowanie dodatkowych kluczy.

6 01 2009
andrzej (14:27:58) :

Super za ładny opis, bardzo mi pomoże, dzięki

31 05 2011
astar0th (13:49:41) :

Proto TCP – sorry, ale to zamulacz

Odpowiedz

Możesz używać tagów : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Preview:


CentOS Icon FirefoxUbuntu

Paintball.info.pl
www.armiapolnoc.pl