Tak na szybko aby nie uleciało 🙂
- Logujemy się na EdgeRouter i z poziomu usera (nie configure) generujemy klucz wspólny:
ubnt@router:~$ generate vpn openvpn-key /config/auth/openvpn-s2s-secret Generating OpenVPN key to /config/auth/openvpn-s2s-secret Your new local OpenVPN key has been generated ubnt@router:~$
- Konfigurujemy VPNa od strony EdgeRoutera (w naszym przypadku EdgeRouter ma zewnętrzne stałe IP a Debian będzie się do niego „dopinał”):
ubnt@router:~$ configure ubnt@router# set interfaces openvpn vtun0 local-address 10.1.254.1 ubnt@router# set interfaces openvpn vtun0 local-port 1195 ubnt@router# set interfaces openvpn vtun0 mode site-to-site ubnt@router# set interfaces openvpn vtun0 openvpn-option --comp-lzo ubnt@router# set interfaces openvpn vtun0 openvpn-option --float ubnt@router# set interfaces openvpn vtun0 openvpn-option '--ping 10' ubnt@router# set interfaces openvpn vtun0 openvpn-option '--ping-restart 20' ubnt@router# set interfaces openvpn vtun0 openvpn-option --ping-timer-rem ubnt@router# set interfaces openvpn vtun0 openvpn-option --persist-tun ubnt@router# set interfaces openvpn vtun0 openvpn-option --persist-key ubnt@router# set interfaces openvpn vtun0 openvpn-option '--user nobody' ubnt@router# set interfaces openvpn vtun0 openvpn-option '--group nogroup' ubnt@router# set interfaces openvpn vtun0 remote-address 10.1.254.2 ubnt@router# set interfaces openvpn vtun0 shared-secret-key-file /config/auth/openvpn-s2s-secret ubnt@router# commit ubnt@router# save
Gdzie:
10.1.254.1 – IP Edge Routera na interfejsie VPN
10.1.254.2 – IP Debiana na interfejsie VPN
1195 – port VPNa
/config/auth/openvpn-s2s-secret – nazwa wygenerowanego wcześniej pliku z kluczem - Na debianie instalujemy OpenVPNa
- Przenosimy plik /config/auth/openvpn-s2s-secret z EdgeRoutera na debiana jako /etc/openvpn/secret (jest to zwykły plik tekstowy można na routerze użyć sudo cat /config/auth/openvpn-s2s-secret i po prostu wkleić go na Debianie
- Tworzymy konfig VPNa na debianie w pliki /etc/openvpn/s2s.conf (IP.IP.IP.IP to IP EdgeRoutera):
dev vtun0 dev-type tun ping 10 ping-restart 60 ifconfig 10.1.254.2 10.1.254.1 lport 1195 rport 1195 proto udp remote IP.IP.IP.IP secret /etc/openvpn/secret comp-lzo ping-timer-rem persist-tun persist-key user nobody group nogroup float script-security 2
- Włączamy autostart połączenia razem z systemem:
systemctl enable [email protected]
- Włączamy połączenie VPN:
systemctl start [email protected]
- W tym momencie powinniśmy mieć już możliwość pingowania po adresach VPN (10.1.254.1 <-> 10.1.254.2)
- Jeżeli dodatkowo chcemy połączyć se sobą podłączone sieci, to musimy dodać trasy routingu. Na EdgeRouterze wykonujemy polecenie:
ubnt@router# set protocols static interface-route 10.1.2.0/24 next-hop-interface vtun0
(gdzie 10.1.2.0/24 to sieć od strony debiana)
- Na debianie sprawa jest utrudniona. Tworzymy skrypt /etc/openvpn/s2s-up.sh o zawartości:
#!/bin/sh /sbin/ip route add 10.1.1.0/24 dev $dev
(gdzie 10.1.1.0/24 to sieć po stronie EdgeRoutera).
Nadajemy mu prawa do wykonania:chmod +x /etc/openvpn/s2s-up.sh
i do pliku konfiguracyjnego /etc/openvpn/s2s.conf dopisujemy:
up /etc/openvpn/s2s-up.sh
- Pozostaje tylko zresetować VPNa (na debianie):
systemctl restart [email protected]
i wszystko powinno zacząć działać.
- Dla pewności możemy sprawdzić tablice routingu.
Na Debianie:wyprz ~ # ip route default via 10.1.2.1 dev eth0 onlink 10.1.1.0/24 dev vtun0 scope link 10.1.2.0/24 dev eth0 proto kernel scope link src 10.1.2.2 10.1.254.1 dev vtun0 proto kernel scope link src 10.1.254.2 169.254.0.0/16 dev eth0 scope link metric 1000
Na EdgeRouterze:
ubnt@router:~$ show ip route Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 > - selected route, * - FIB route, p - stale info IP Route Table for VRF "default" S *> 0.0.0.0/0 [210/0] via 89.71.140.1, eth4 C *> 10.1.1.0/24 is directly connected, eth0 S *> 10.1.2.0/24 [1/0] is directly connected, vtun0 C *> 10.1.254.1/32 is directly connected, vtun0 C *> 10.1.254.2/32 is directly connected, vtun0 C *> 89.71.140.0/22 is directly connected, eth4 C *> 127.0.0.0/8 is directly connected, lo