Saját VPN szerver
Mire is jó nekünk -mondjuk úgy- személyes használatra a VPN?
Nos, túl azon, hogy a szolgáltató nem lát bele az internetes forgalmunkba, ami valakit érdekel, valakit nem, ezzel elérhetjük az otthoni gépet/gépeket (mondjuk a saját NAS-t) mindenféle free dns szolgáltató nélkül (amik vagy működnek vagy nem). Igaz, hogy vannak free VPN szolgáltatók, de tapasztalatom szerint szintén bizonytalan vagy lassú elérést kapunk. A fizetősökkel nincs baj, de ha már fizetni kell, akkor legyen sajátunk… 😉
Nos, első körben vegyünk egy virtuális szervert a legalapabb funkciókkal! Nem kell megijedni, havi 600-700 forintért már kapunk olyat, ami nekünk pont elég. Én teszt jelleggel vettem egyet az axafone-nál 648 Ft bruttóért. 10GB hdd, 512 RAM és debian telepítés.
Maga a telepítés automata, az se ijedjen meg, aki nem telepített még debiant. Ha kész van kapunk egy hozzáférést (user: root, jelszó: autoamtán generált).
Ha ezek megvannak, ssh-n lépjünk be a szerverre (windows alól használd a putty-t, ipcím: amit kaptál, port: 22, felhasználó: root, jelszó: amit kaptál)
Ezt fogjuk látni (nálad nyilván más lesz a hostnév, nem vm1):
Gépeljük vagy másoljuk be ezeket a (pirossal kiemelt) sorokat:
apt-get install openvpn easy-rsa
echo 1 > /proc/sys/net/ipv4/ip_forward
nano /etc/sysctl.conf
keressük meg ezt a sort:
#net.ipv4.ip_forward=1
és töröljük ki előle a # jelet, majd mentsük el (törlés után nyomjuk le a Ctrl-t, tartsuk lenyomva és nyomjuk az x-re, ekkor megkérdezi, hogy mentse-e, csak nyomjunk egy y-t utána pedig egy enter-t és el is mentettük)
apt-get install ufw
ufw allow ssh
ufw allow 1194/udp
nano /etc/default/ufw
Itt cseréljük le a FORWARD engedélyt DROP-ról ACCEPT-re
Így néz ki alapból a sor: DEFAULT_FORWARD_POLICY=”DROP”
Erre változtatjuk: DEFAULT_FORWARD_POLICY=”ACCEPT”
ufw enable
ufw status
cp -r /usr/share/easy-rsa/ /etc/openvpn
mkdir /etc/openvpn/easy-rsa/keys
nano /etc/openvpn/easy-rsa/vars
Itt írjuk át az idézőjelben lévő adatokat nekünk tetszőre ezeket:
export KEY_COUNTRY=”US”
export KEY_PROVINCE=”CA”
export KEY_CITY=”SanFrancisco”
export KEY_ORG=”Fort-Funston”
export KEY_EMAIL=”me@myhost.mydomain”
export KEY_OU=””
Én ezekre változtattam:
export KEY_COUNTRY=”HU”
export KEY_PROVINCE=”Kom-Egom”
export KEY_CITY=”Tata”
export KEY_ORG=”AltGr”
export KEY_EMAIL=”info@altgr.hu”
export KEY_OU=”AltGr”
Ha kész, mentsük el!
openssl dhparam -out /etc/openvpn/dh2048.pem 2048
cd /etc/openvpn/easy-rsa
. ./vars
./clean-all
./build-ca
./build-key-server server
cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn
service openvpn start
service openvpn status
./build-key kliens-név
Ezután hozzuk létre a szerver konfigurációt a vpn-hez:
nano /etc/openvpn/server.conf
Az üres fájlba másoljuk be ezeket:
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh2048.pem
server 10.8.0.0 255.255.0.0
keepalive 10 120
comp-lzo
client-config-dir /etc/openvpn/staticclients
client-to-client # Engedélyezi, hogy a távolról felcsatlakozó kliensek „lássák egymást”
persist-key
persist-tun
verb 3
mute 20
…mentsük el és kész.
Ha létrehoztuk a kliens klucsát (./build-key kliens-név), akkor meg fognak jelenni az /etc/openvpn/easy-rsa/keys/ alatt a kliens-név.crt, kliens-név.csr, kliens-név.key fájlok.
Másoljuk a gépünkre, telefonunkra, stb. a kliens-név.crt, kliens-név.key, ca.crt, dh2048.pem fájlokat (windows alatt pl. a total commanderrel vagy a winscp-vel tudjuk letölteni úgy, hogy a 22-es porton csatlakozunk az ipcímmel, felhasználói névvel, jelszóval)
Indítsuk el a szerveren az openvpn-t:
openvpn –config /etc/openvpn/server.conf &
Ha hibát kapunk, nézzük meg nem fut-e a háttérben
ps ax | grep open
ha látunk futó openvpn folyamatot, lőjjük ki a kill parancs és folyamat azonosítói számmal a folyamatot:
kill -9 folymat száma
példa:
root@vm1:~# ps ax | grep open
8363 ? S 0:04 openvpn –config /etc/openvpn/server.conf
9446 pts/2 S+ 0:00 grep open
Amint látszik a 8363 folyamat az openvpn, esetemben ez lenne a parancs:
kill -9 8363
Ezután próbáljuk ismét:
openvpn –config /etc/openvpn/server.conf &
Ha elindul csatlakozzunk hozzá.
A kliens oldali beállítás rendszerenként változó, nem szándékozom az összes lehetőséget leírni.
Androidon javasolt az OpenVPN Androidhoz telepítése, ubuntun a networkmanagerrel beállítható, windows-ra telepíthető az openvpn.
Mind a droidnál, mind a windows-nál kell egy kliens oldali konfigurációs fájl.
Android:
client
remote IPCÍM # a távoli server IP címe megadhatsz domaint is
port 1194
proto udp
ca /etc/openvpn/ca.crt
cert /etc/openvpn/klines_neve.crt
key /etc/openvpn/kliens_neve.key
dev tun
comp-lzo
verb 3
mute 10
persist-key
persist-tun
Windowson ha feltelepítettük az openvpn-t, akkor rendszergazdaként futtassuk a jegyzettömböt és nyissuk meg a Program File\OpenVpn\sample-config\client fájlt, majd szerkesszük. Igazából két részt kell átírni.
Az egyik rész ez, itt a szerver ip címét kell beírnunk:
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote IPCÍM 1194
;remote my-server-2 1194
a másik ez, ide meg a .crt és a .key fájl nevét:
# SSL/TLS parms.
# See the server config file for more
# description. It’s best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
ca ca.crt
cert kliens.crt
key kliens.key
Mentsük el a Program File\OpenVpn\config mappába, majd ugyan ebbe a mappába másoljuk be a ca.crt, kliens.crt, kliens.key fájlokat.
Ubuntun nem networkmanagerrel:
A szokásos fájlokat másoljuk az /etc/openvpn mappába, majd hozzuk létre itt a client.config fájlt ezzel a tartalommal:
client
remote IPCÍM# a távoli server IP címe megadhatsz domaint is
port 1194
proto udp
ca /etc/openvpn/ca.crt
cert /etc/openvpn/kliens.crt
key /etc/openvpn/kliens.key
dev tun
comp-lzo
verb 3
mute 10
persist-key
persist-tun
Így indítjuk:
openvpn –config /etc/openvpn/client.conf &
Nagyjából ennyi…. 😉