Raspberry Pi – instalacja i konfiguracja VPN PPTP

Raspberry-Pi-logoTym 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.

You can leave a response, or trackback from your own site.

Leave a Reply

You must be logged in to post a comment.

Powered by WordPress | Designed by: NewWpThemes | Provided by Free WordPress Themes