Temat: Użycie komercyjnego klienta OpenVPN w OpenWrt.
Ostatnio pojawia się coraz więcej tematów o używaniu VPNów komercyjnych. Krótka podpowiedź jak to zrobić w OpenWrt.
Wykupując usługę VPN operatorzy zwykle udostępniają kilka możliwych sposobów połączenia. Prawie zawsze będzie dostępny OpenVPN. Od operatora zwykle dostajemy plik konfiguracyjny (najczęściej z rozszerzeniem ovpn, zawierający konfigurację i certyfikaty) oraz login i hasło do serwisu. Dla przykładu niech to będzie plik o nazwie "vpnbook-de4-tcp80.ovpn" (plik pochodzi z serwisu vpnbook.com, który świadczy także bezpłatne choć ograniczone serwery vpn). Wszystkie polecenia wykonujemy na routerze, po zalogowaniu się do niego przez SSH. Router oczywiście musi mieć połączenie z internetem.
Polecenia należy zmienić podając nazwę pliku który posiadamy.
1
Instalujemy OpenVPN
opkg update
opkg install openvpn-openssl
2
Plik otrzymany od dostawcy umieszczamy w katalogu /etc/openvpn na routerze. Można to zrobić np. przy pomocy programu WinSCP.
3
Wskazujemy w OpenVPN gdzie ma szukać pliku konfiguracyjnego
uci set openvpn.custom_config=openvpn
uci set openvpn.custom_config.enabled='1'
uci set openvpn.custom_config.username=<username>
uci set openvpn.custom_config.password=<password>
uci set openvpn.custom_config.dev=tun0
uci set openvpn.custom_config.dev_type=tun
uci set openvpn.custom_config.config='/etc/openvpn/vpnbook-de4-tcp80.ovpn'
uci commit openvpn
Zamiast <username> i <password> podstawiamy nasze dane autoryzacyjne otrzymane od dostawcy VPNa.
I tu moglibyśmy zakończyć konfigurację, o ile tylko router miałby mieć dostęp do VPN i nie podłączamy żadnego innego klienta do routera. Ale zakładamy że klient podłączony do routera też ma mieć wyjście przez VPN, więc trzeba "zrobić" jeszcze firewalla
4
Tworzymy konfigurację sieci i zmieniamy firewall
uci set network.vpn=interface
uci set network.vpn.ifname=tun0
uci set network.vpn.proto=none
uci commit network
uci add firewall zone
uci set firewall.@zone[-1].name=vpn
uci set firewall.@zone[-1].input=ACCEPT
uci set firewall.@zone[-1].forward=ACCEPT
uci set firewall.@zone[-1].output=ACCEPT
uci set firewall.@zone[-1].network=vpn
uci set firewall.@zone[-1].masq=1
uci add firewall forwarding
uci set firewall.@forwarding[-1].src='lan'
uci set firewall.@forwarding[-1].dest='vpn'
uci set firewall.@forwarding[-1].src='vpn'
uci set firewall.@forwarding[-1].dest='lan'
uci commit firewall
Dla wydania OpenWrt 22.03 i późniejszych nie ma opcji ifname tun0 więc robimy
uci set network.vpn.device=tun0
uci commit network
5
Zostaje zrestartowanie usług
/etc/init.d/network restart
/etc/init.d/firewall restart
/etc/init.d/openvpn enable
/etc/init.d/openvpn start
Lub po prostu zrestartować cały router. W zależności od konfiguracji OpenVPN powinniśmy mieć dostęp do zasobów VPN lub mieć przekierowany cały ruch przez VPN.