Tym razem przyszedł czas na stworzenie opisu instalacji i konfiguracji serwera VPN. Serwer VPN PPTP już od dłuższego czasu wykorzystuję na swoim domowym serwerze (pod Debianem). Z racji, że teraz do grona sprzętów “serwerowych” w domu dołączyło Raspberry Pi postanowiłem opisać sposób instalacji serwera VPN właśnie na RPi pod Linuxem Raspbian. Co to jest VPN? Kto chce mieć VPN ten wie co to jest i do czego służy, a ten kto nie wie może poczytać o tym tutaj Wikipedia: VPN W kolejnym wpisie (Windows 7 – konfiguracja klienta VPN PPTP) opisałem jak skonfigurować klienta na przykładzie Windows 7.
Przejdźmy do działania. Oczywiście pierwsze co zrobiłem to zalogowałem się na konto root żeby co chwilę nie wpisywać sudo. Jeśli ktoś nie zna hasła na konto root może je zmienić komendą
sudo passwd root
Jednakże tutaj opisałem wszystko z komendami sudo.
Najpierw aktualizacja listy repozytorium
sudo apt-get update
Następnie instalacja serwera PPTP
sudo apt-get install pptpd -y
Po instalacji przechodzimy od konfiguracji serwera
sudo nano /etc/pptpd.conf
Na samym dole pliku wpisujemy
localip 10.0.0.1 remoteip 10.0.0.20-50
localip – to IP Raspberry Pi w naszej sieci
remoteip – to zakres adresów IP dla klientów podłączonych do sieci VPN (tutaj od 20 do 50). W tym zakresie będą przydzielany adresy IP klientom.
Localip i remoteip mogą być z zakresu naszej fizycznej sieci lokalnej w domu aby mieć bezproblemowy dostęp do urządzeń w fizycznej sieci. Trzeba uważać jednak w takim przypadku aby nie wystąpiły konflikty adresów IP.
Czyli w przypadku jeśli ustawiamy serwer z taką samą adresacją jak fizyczna sieć to adresacja np. będzie wyglądać tak:
localip 192.168.1.19 remoteip 192.168.1.150-170
Kolejny plik do konfiguracji:
sudo nano /etc/ppp/pptpd-options
Na samym końcu pliku wpisujemy:
nobsdcomp noipx mtu 1490 mru 1490 ms-dns 208.67.222.222 ms-dns 8.8.8.8
Na samej górze pliku konfiguracyjnego widnieje wartość “name pptpd”. Jest to nazwa serwera VPN, której w tym przypadku nie zmieniamy. Jeśli ktoś ją zmieni to będzie musiał tej nazwy później użyć przy ustawianiu “chap-secrets” lub ewentualnie jako nazwy serwera w “chap-secrets” użyć gwiazdki “*”. Wartość ms-dns podałem w tym przypadku do OpenDNS i Google DNS.
Przechodzimy do ustawiania użytkowników
sudo nano /etc/ppp/chap-secrets
Ustawiamy naszego użytkownika czyli login, serwer, hasło i adres IP
# Secrets for authentication using CHAP # client server secret IP addresses admin * kontoAdmin *
Mamy tutaj login admin do serwera * (czyli do dowolnego uruchomionego serwera PPTP na RPi) z hasłem “kontoAdmin” i przydzielony adres IP to * (czyli dowolny jaki jest wolny w ustawionej puli adresów). Możemy tutaj wpisać stały adres IP, który dany klient zawsze będzie dostawać po połączeniu się z serwerem VPN.
Ustawiamy dodatkowo forward do sieci (serwer będzie mógł przepuszczać pakiety do/z sieci lokalnej)
sudo nano /etc/sysctl.conf
Szukamy linii:
#net.ipv4.ip_forward=1
usuwamy znak komentarza czyli zmieniamy wpis na:
net.ipv4.ip_forward=1
Przeładowujemy sysctl komendą:
sudo sysctl -p
Pojawi się lista opcji gdzie m.in. będzie net.ipv4.ip_forward = 1. Jeśli tak jest to wszystko jest OK.
Przykład:
net.ipv4.ip_forward = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0
Restartujemy serwer PPTP:
sudo /etc/init.d/pptpd restart
Powinno się pojawić:
[ ok ] Restarting pptpd (via systemctl): pptpd.service.
Warto ustawić aby PPTPD zawsze uruchamiało się ze startem systemu. W tym celu wpisujemy:
sudo systemctl enable pptpd
Teraz po restarcie Raspberry serwer VPN powinien automatycznie się uruchomić.
Czyli wszystko jest OK i teraz możemy nawiązać połączenie z naszą siecią VPN i sprawdzić jej działanie. Żeby połączyć się do serwera VPN przez Internet (z zewnątrz) należy przekierować na routerze port 1723 TCP na adres IP naszego Raspberry Pi.