prosty tunel dzięki OpenVPN
Zadanie: umożliwić sobie dostęp do dowolnego hosta i portu będąc w poblokowanej sieci hotelowej.
Rozwiązanie: prosty VPN napędzany przez OpenVPN.
Po stronie „serwera”:
1. instalujemy pakiet "openvpn".
2. generujemy klucz, którym będziemy się posługiwać:
# openvpn --genkey --secret wojtosz-vpn.key
klucz ten będzie miał postać:
# cat wojtosz-vpn.key
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
055be3dbe6a1455c9899d51cf76e5ae8
023da5d86dc843937ca2de47ee666f66
8f073aac5c254504e62fd9488fc37861
8ed15a3206db5cae91324de91af489ee
6c4e5825d2d6c095ba6158127bc05286
17cbba32131aab765b648a274aa4085f
5894f1d391aeaf5cd5a567f75de8135f
f2e2dec653e0508e05febfc2661c3eb2
289e62f7178771029036f952b6197fcb
ee3ffcc78be771ca4228e16c2c8f5a2c
2b96312ff84733bce25d2f73bd667756
e80e4149115cf42be5ea59ceb1495de5
1a164d33fbdb0d0a6e9baca6b5d077f7
f7ae81319af7ec7cf6ee96980a70eeed
68de340b657d4e5b6d6f8f0943083a8c
daaa5574b2f81b9e54fe3a05ba96fec3
-----END OpenVPN Static key V1-----
3. zestawiamy część „publiczną” naszego VPN.
(publiczną: na zdalnym serwerze, przez który będzie wychodził nasz ruch)
# openvpn --dev tun --ifconfig 172.28.28.1 172.28.28.2 --secret /root/wojtosz-vpn.key --port 443
Port 443 dlatego, że zapewne nie będzie zablokowany. To port na którym domyślnie pracuje HTTPS.
Zostało stworzone urządzenie: tun0, dla którego należy ustawić wpis w firewallu:
# iptables -t nat -A POSTROUTING -s 172.28.28.0/24 -o eth0 -j MASQUERADE
Teraz część po stronie naszego lapka, który będzie używany w sieci hotelowej.
# openvpn --remote $ZDALNE_IP --dev tun --ifconfig 172.28.28.2 172.28.28.1 --secret /root/wojtosz-vpn.key --port 443
Zauważcie, że dla –ifconfig mamy numery IP podane odwrotnie niż poprzednio. To jest drugi koniec naszego tunelu, a my wskazujemy skąd i dokąd z danego miejsca ma iść.
# ip r a 212.77.100.101 dev tun0 via 172.28.28.1
Ustawiamy routing do Wirtualnej Polski (wp.pl has address 212.77.100.101) przez tunel.
I w zasadzie tyle :)