Dawno, dawno temu pisałem jak tunelować http przez ssh używając putty. Pomysł prosty i szybki na w miarę bezpieczne korzystanie z publicznych hotspotów i sieci niezabezpieczony. Fajnie, ale co zrobić z telefonami, tabletami na których nie da się uruchomić putty. Z pomocą przychodzi usługa taka jak VPN. Większość „tych mądrych” telefonów itp. ma możliwość zestawienia bezpiecznego połączenia z firmą, domem lub serwerem przez który możemy przeglądać Internet. Z takiej usługi możemy również korzystać na pc lub laptopie. Opcja fajna, gdy np. w firmie mamy zablokowane strony, a admin zapomniał przyblokować usługi VPN.
Do uruchomienia takiej usługi będziemy potrzebowali serwer na którym wykonamy całą instalację i konfigurację. Ja do swoich celów (zabaw i nauki:) ) wykupiłem VPS-a (wirtualizacja xen), który kosztuje mnie niecałe 10 pln/m-c. Cena nie jest kosmicznie duża, a do naszych celów w zupełności wystarczy.
Krok 1. Instalacja serwera.
Logujemy się do serwera i wydajemy polecenie:
$sudo apt-get update
$sudo apt-get install pptpd
Krok 2. Konfiguracja serwera.
Edytujemy plik serwera PPTP
sudo nano /etc/pptpd.conf
Zjeżdżamy na sam dół pliku i dodajemy wpis:
localip 10.0.0.1 #to jest adres po stronie serwera PPTP
remoteip 10.0.0.100-110 #pula adresów które zostaną nam przyznane (użytkownikom podłączających się do serwera VPN)
Kolejny plik, który musimy edytować to:
sudo nano /etc/ppp/pptpd-option
Modyfikujemy wpis dodając swoje serwery DNS (tu przykład z serwerami DNS Googla)
ms-dns 8.8.8.8
ms-dns 8.8.4.4
Krok 3. Przekazywanie pakietów IP (IP forwarding).
Domyślnie, w ubuntu przekazywanie pakietów IP (IP forwarding) jest wyłączone. Musimy to zmienić, aby przez nasze połączenie VPN można było przeglądać Internet.
sudo nano /etc/sysctl.conf
Odszukujemy wpis “net.ipv4.ip_forward” i zmieniamy wartość z 0(wyłączone) na 1 (włączone) oraz usuwamy znak komentarza # przed wpisem:
net.ipv4.ip_forward=1
Potwierdzamy zmiany poleceniem:
sudo sysctl -p
Krok 4. Reguły firewalla.
Dodajemy kilka reguł do firewalla:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
Krok 5. Konfiguracja użytkowników.
A na koniec edytujemy plik, w który umieszczamy użytkowników oraz hasła. Plik ma postać:
# client server secret IP addresses
login <TAB> pptpd <TAB> hasło <TAB> *
zamiast adresu IP możemy wstawić *
$sudo nano /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
uservpn1 pptpd haslovpn1 *
uservpn2 pptpd haslovpn2 *
Krok 6. Restart serwera.
sudo /etc/init.d/pptpd restart
I cieszymy się się naszym serwerem VPN :).
W kolejnych wpisach postaram się opisać krok po kroku jak się połączyć do naszego serwera PPTP.