Jak skonfigurować serwer OpenVPN i Androida jako klienta ?

Konfiguracja serwera:

Instalacja:

yum install openvpn

Generowanie certyfikatów:

cd /usr/share/doc/openvpn*/easy-rsa/2.0/
chmod 744 /usr/share/doc/openvpn*/easy-rsa/2.0/*
. ./vars
./clean-all
./build-ca
./build-dh
./build-key-server server
./build-key user1

Kopiowanie kluczy:

Klucze zapisały się w katalogu /usr/share/doc/openvpn*/easy-rsa/2.0/keys

cd /usr/share/doc/openvpn*/easy-rsa/2.0/keys
cp ca.crt server.crt server.key dh1024.pem /etc/openvpn/

Nadawanie uprawnień:

chmod 666 /etc/openvpn/ipp.txt

Konfiguracja openvpn.conf

nano /etc/openvpn/openvpn.conf

port 1194
proto udp
tls-server
mode server
dev tun
local x.x.x.x	
server 10.30.0.0 255.255.255.0	 
ifconfig-pool-persist /etc/openvpn/ipp.txt	
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
daemon
verb 4
log-append /var/log/openvpn.log
keepalive 10 900
inactive 3600
comp-lzo
persist-tun
persist-key
push "route 10.0.5.0 255.255.255.0"

linia 6 – wpisz adres IP serwera Ubuntu

linia 7 – zakres sieci vpn dla klientów, pierwszy zawsze dla serwera, klienci z tego zakresu pobierają ip

linia 8 – plik w którym zapisywane są pobrane ip klientów

linia 21 – routing który zaciągają klienci, ważna opcja jeśli chcemy mieć dostęp do innych sieci

Włączanie przekazywania pakietów:

/sbin/sysctl -w net.ipv4.ip_forward=1

Konfiguracja klienta:

Kopiujemy klucze z serwera na stacje lokalną:

scp root@x.x.x.x:/usr/share/doc/openvpn*/easy-rsa/2.0/keys/ca.crt ~/Pulpit/openvpn
scp root@x.x.x.x:/usr/share/doc/openvpn*/easy-rsa/2.0/keys/user1.crt ~/Pulpit/openvpn
scp root@x.x.x.x:/usr/share/doc/openvpn*/easy-rsa/2.0/keys/user1.key ~/Pulpit/openvpn

Konfigurujemy plik openvpn.conf i zapisujemy w ~/Pulpit/openvpn

client
dev tun
remote x.x.x.x 1194 ;ip wan serwera
proto tcp
log-append /sdcard/openvpn/openvpn.log
keepalive 10 60
comp-lzo
persist-key
persist-tun
ca /sdcard/openvpn/ca.crt
cert /sdcard/openvpn/user1.crt
key /sdcard/openvpn/user1.key

Podłączamy telefon pod kabel USB i kopiujemy pliki:

W telefonie tworzymy katalog openvpn na karcie SD.

cd ~/Pulpit/openvpn
adb push user1.crt /sdcard/openvpn/
adb push user1.key /sdcard/openvpn/
adb push ca.crt /sdcard/openvpn/
adb push openvpn.conf /sdcard/openvpn/

Instalujemy OpenVpn Settings z marketu.

Odpalamy OpenVpn Settings
Zaznaczamy OpenVPN a następnie
zaznaczamy openvpn.conf

U mnie działa ta konfiguracja bez problemu w razie kłopotów warto patrzeć w logi:

telefon:

cat /sdcard/openvpn/openvpn.log

lub

adb logcat

server:

tail -f /var/log/openvpn.log