VPN to podstawa czyli jak postawić VPN na Raspberry PI

Internet jest tak podstawową rzeczą, że coraz więcej osób w ogóle nie zastanawia się nad kwestiami bezpieczeństwa. Problem jednak jest spory bo z internetu korzystamy praktycznie nonstop. Niestety często z dziwnych sieci w dziwnych miejscach. Jak konferencje, hotele czy kafejki. Wszystko jest ok do póki mamy wieloskładnikowe hasła do poczty czy innych ważnych serwisów albo przeglądamy przysłowiowego pudelka. Co jednak jeśli potrzebujemy zrobić coś co wymaga większego bezpieczeństwa? Ja korzystam z VPN-a. Nowoczesne smartfony bardzo dobrze sobie radzą z VPN-ami więc wystarczy kilka kliknięć i mamy wirtualnego kondomka.

VPN w routerze

Wiele poważniejszych routerów ma wbudowany serwer VPN. Wystarczy skonfigurować i używać. Problem jest tylko taki, ze trzeba mieć odpowiedni router, który niekoniecznie musi być tani. Nawet jeśli ten, który masz teraz ma opcję VPN server to następny niekoniecznie. Po co zawężać sobie możliwość wyboru routera. Ja proponuję zrobić własny VPN.

Własny VPN

Do zrobienia własnego serwera VPN będziemy potrzebować:

  • 1x Raspberry PI
  • 1x kabel sieciowy lub wifi tak aby malinka była widoczna w naszej domowej sieci
  • 1x karta sd bo na czyms trzeba to postawić
  • 1x Linux – taki do malinki 😉

Instalacja

Mając poprawnie działającą malinę wystarczy z poziomu cmder-a odpalić ssh

[code]

ssh -l <userName> <ip malinki np:192.168.1.2>

[/code]

sprawdzamy czy system ma odpowiednie moduły:

[code]

sudo modprobe ppp-compress-18

[/code]

jeśli nic się nie wyświetliło to (podobno) jest okej

dalej instalujemy pptpd

[code]

sudo apt-get install pptpd -y

[/code]

PPTP to nie jest najlepszy najbezpieczniejszy i najwspanialszy VPN pod słońcem. W firmie nie wdrożyłbym go ale do celów domowych jest w zupełności wystarczający więc jedziemy dalej.

Trzeba to cudo skonfigurować czyli:

[code]

sudo nano /etc/pptpd.conf

[/code]

i na końcu wrzucamy:

[code]

localip <ip malinki np.: 192.168.1.2>
remoteip <ip jakie dostaną klienci np.: 192.168.1.100-110>

[/code]

następny plik pptpd-options

[code]

sudo nano /etc/ppp

[/code]

i na końcu wrzucamy:

[code]

nobsdcomp

ms-dns <ip routera np.: 192.168.1.1>
noipx
mtu 1490
mru 1490

[/code]

teraz najważniejsze czyli super tajne hasło

[code]

sudo nano /etc/ppp/chap-secrets

[/code]

i wpisujemy:

[code]

# Secrets for authentication using CHAP
# client server secret IP addresses
<nazwa uzytkownika> * <hasło> *

[/code]

Gwiazdki są potrzebne – bez nich nie działa. Wszystko rozdzielamy tabulatorami bo inaczej też nie działą (kocham białe znaki 😐 ).

Na koniec jeszcze

[code]

sudo nano /etc/sysctl.conf

[/code]

i na końcu wrzucamy:

[code]

net.ipv4.ip_forward=1

[/code]

Restart malinki i vpn powinien działać. (albo restart samej usługi sudo /etc/init.d/pptpd restart).

Teraz pozostaje tylko na routerze włączyć przekierowanie. Jeśli chcesz stawiać VPN to wiem że wiesz o co chodzi. Więc tylko dla formalności przekierowujemy port 1723 (lub zakres 1723-1723) na IP naszej malinki.

W tym momencie wystarczy w komórce wyłączyć WiFi i skonfiguroawć VPN na nasze IP (swoje IP sprawdzisz  tutaj https://www.whatismyip.com/) Jeśli wszystko jest dobrze skonfigurowane to się połączysz, jeśli się nie połączysz to nie 🙂

 

Zmienne IP

Co jak mam zmienne IP? Wiele routerów potrafi zarejestrować się w DynDnsie ale problem jest taki, że DynDns jest płatny. Niewiele ale płatny. Co gorze, różne routery różne dynamic dns-y wspierają. Więc znowu przy zmianie routera może się okazać, że trzeba by zmienić usługodawcę. Na szczęście można prościej. Niechaj nasza malinka ogarnie wszystko. Instalujemy DDClient-a

[code]

sudo apt-get install ddclient

[/code]

 

DDClient potrafi obsłużyć całkiem sporo dostawców dynamic dns. Więc do wyboru do koloru. Ja zaczynałem dawno dawno temu z DynDnsem potem się zrobił płatny. Potem długi czas używałem właśnie przez DDClienta No-Ip ale oni co miesiąc wysyłają maila, żeby przedłużyć dzierżawę – bojąc się, że zapomnę kliknąć na czas co by skutkowało, że po zamknięciu konta akurat potrzebowałbym tego bezwzględnie przesiadłem się na freedns (http://freedns.afraid.org)

zatem moja konfiguracja DDClienta dla freedns:

[code]

sudo nano /etc/ddclient.conf

[/code]

[code]

daemon=1m
timeout=10
use=web, web=checkip.dyndns.com/, web-skip=’IP Address’

ssl=yes
protocol=freedns
server=freedns.afraid.org
login=<moj login>
password=<moje haslo>
<moja domena np.: dom.mooo.com>

[/code]

Od teraz nie straszne nam zmienne IP, nie straszna nam zmiana routera. Mamy własny osobisty VPN. Co najlepsze, możemy go zabrać do kieszeni i postawić gdziekolwiek w 3 min (pamiętając jedynie o przekierowaniu tego 1 portu na routerze).

Koszty malinki są tak niskie, że można spokojnie żyć zgodnie z Single Responsibility Principle. 1 Serwer jedna odpowiedzialność, 1 malina = VPN-a i jesteśmy szczęśliwi i mocno niezależni.