Autor: Grzegorz Ciepłucha
v1.0, 12 Styczeń 2008
Dokument opisuje uruchomienie kanału VPN na routerze z oprogramowaniem OpenWRT.
Oryginał tego dokumentu znajduje się pod adresem
http://www.cieplucha.net/openvpn.html
1. Instalacja po stronie serwera
Zaczynamy od zainstalowania pakietu openvpn na routerze
ipkg install openvpn
Następnie tworzymy katalog oraz generujemy nasz klucz
mkdir /etc/openvpn
openvpn --genkey --secret /etc/openvpn/shared.key
Ładujemy odpowiedni moduł oraz ustawiamy automatyczne ładowanie tego modułu podczas startu routera
insmod tun
echo "tun" » /etc/modules
Plik konfiguracyjny openvpn na routerze
/etc/openvpn/server.vpn
dev tun0
ifconfig 192.168.1.2 192.168.1.3
secret /etc/openvpn/shared.key
port 1194
ping 15
ping-restart 45
ping-timer-rem
persist-key
persist-tun
verb 3
Tworzymy skrypt startowy oraz nadajemy mu odpowienie prawa.
/etc/init.d/S50openvpn
#!/bin/sh
openvpn --daemon --config /etc/openvpn/server.vpn
#koniec
chmod a+x /etc/init.d/S50openvpn
Dopisujemy odpowiednią regułę do firewalla
/etc/firewall.user
iptables -A FORWARD -i tun0 -o vlan0 -j ACCEPT
2. Intalacja po stronie klienta
Kopiujemy z serwera plik shared.key do katalogu /etc/openvpn
Plik konfiguracyjny po stronie klienta
/etc/openvpn/client.vpn
dev tun
remote 192.168.1.1 1194
ifconfig 192.168.1.3 192.168.1.2
secret /etc/openvpn/shared.key
port 1194
route-gateway 192.168.1.2
route 0.0.0.0 0.0.0.0
redirect-gateway
ping 15
ping-restart 45
ping-timer-rem
persist-tun
persist-key
verb 3
Ładujemy odpowiedni moduł
modprobe tun
Kanał VPN uruchamiamy poleceniem:
openvpn --daemon --config /etc/openvpn/client.vpn
Po chwili powinien zostać zestawiony kanał vpn. Możemy sprawdzić to poleceniem ifconfig po stronie routera oraz klienta.
Router
tap0 Link encap:Ethernet HWaddr 00:FF:FE:44:33:22
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:31742 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.1.2 P-t-P:192.168.1.3 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:393913 errors:0 dropped:0 overruns:0 frame:0
TX packets:603489 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:25233071 (1.0 MiB) TX bytes:825852835 (787.5 MiB)
Klient
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.1.3 P-t-P:192.168.1.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:8608 errors:0 dropped:0 overruns:0 frame:0
TX packets:7275 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:9336688 (1.0 Mb) TX bytes:872214 (851.7 Kb)
Tablica routingu
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.2 0.0.0.0 UG 0 0 0 tun0
Jak widać zmieniła się domyślna brama. Obecnie domyślna bramą jest adres naszego kanału vpn.