Szybka konfiguracja serwera OpenVPN na Centosie.

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….

Strony z których korzystałem:

www.webhostingtalk.com

www.openvpn.net

Ten wpis został opublikowany w kategorii Bash, LInux, Skrypty. Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.