Tworzymy VPN server z raspberry pi – softether

Obecny dostęp do internetu spowodował, że gdziekolwiek jesteśmy, chcemy mieć dostęp do różnego rodzaju zasobów, czy to możliwości zdalnego programowania, czy dostępu do zasobów sieciowych w domu (np. dysku). Opisywałem już sposób dostępu poprzez Hamachi (dostęp nie do końca zabezpieczony, dobry do rozgrywek sieciowych), dataplicity (dostęp tylko do naszej malinki). Tym razem przedstawię, jak z naszego minikomputerka zrobić serwer VPN, przez który będziemy mieli dostęp do sieci w której podłączona jest nasza malinka – czyli do sieci lokalnej.

W pierwszej kolejności skonfigurujemy najpierw nasz serwer VPN na raspberry pi. W tym celu pobieramy ze strony najnowszą wersję oprogramowanie  (wybieramy jak na zdjęciu)

Kopiujemy link i w terminalu wpisujemy wget nasz adres do pobrania

Po pobraniu pliku instalacyjnego należy go rozpakować – w tym celu używamy polecenia tar -xzvf

wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.34-9744-beta/softether-vpnserver-v4.34-9744-beta-2020.03.20-linux-arm_eabi-32bit.tar.gz

tar -xzvf softether-vpnserver-v4.34-9744-beta-2020.03.20-linux-arm_eabi-32bit.tar.gz

Teraz mamy w katalogi /home/pi utworzony katalog vpnserver, wraz z plikami instalacyjnymi. Przechodzimy do tego folderu i przeprowadzamy instalację serwera:

cd vpnserver/
make

Wciskami 1 i enter do potwierdzenia licencji.

Po przeprowadzonej instalacji, zmieniamy zezwolenie dostępu do wszystkich plików  w tym katalogu i przenosimy katalog vpnserwer do katalogu local:

sudo chmod 600*
sudo chmod 700 vpncmd vpnserver
sudo mv vpnserver/ /usr/local/
sd /usr/local/vpnserver

Uruchamiamy program, dzięki czemu przechodzimy do konsoli softether

./vpncmd

Wybieramy opcję nr 3, a następnie wpisujemy exit aby wyjść

Następnym krokiem jest utworzenie skryptu, który będzie uruchamiał nasz serwer. Tworzymy go poprzez otwarcie nowego pliku w edytorze nano:

sudo nano /etc/init.d/vpnserver

Następnie wklejamy do niego poniższe linijki kodu:

#!/bin/sh

### BEGIN INIT INFO
# Provides: softether-vpnserver
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $network $remote_fs $syslog
# Should-Start: network-manager
# Should-Stop: network-manager
# X-Start-Before: $x-display-manager gdm kdm xdm wdm ldm sdm nodm
# X-Interactive: true
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: SoftEther VPN service
### END INIT INFO
# chkconfig: 2345 99 01
# description: SoftEther VPN Server

DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/vpnserver
test -x $DAEMON || exit 0

case "$1" in
	start)
		$DAEMON start
		touch $LOCK
		;;
	stop)
		$DAEMON stop
		rm $LOCK
		;;
	restart)
		$DAEMON stop
		sleep 3
		$DAEMON start
		;;
	*)
		echo "Usage: $0 {start|stop|restart}"
		exit 1

esac
exit 0

Teraz musimy nadać mu uprawnienia, oraz wykonać pierwsze uruchomienie serwera:

sudo chmod 755 /etc/init.d/vpnserver
sudo /etc/init.d/vpnserver start

Dobra, serwer działa. Jednak po ponownym uruchomieniu malinki serwer nie będzie uruchomiony. W tym celu dodajemy poniższą komendą skrypt vpnserver do skryptów uruchamianych podczas startu systemu:

sudo update-rc.d vpnserver defaults

Jednak na tym nie koniec. Serwer działa, ale musimy go odpowiednio skonfigurować. W pierwszej kolejności uruchamiamy konsolę softether poleceniem

./vpncmd

Wybieramy opcję 1. W pierwszym i w drugim pytaniu nie wpisujemy nic, wciskamy enter i przechodzimy dalej. Teraz mamy tryb z uprawnieniami administratora. W pierwszej kolejności, jak to zawsze bywa ustawiamy hasło dla admina poprzez polecenie:

serverpasswordset

Następnie tworzymy nasz HUB komendą

hubcreate nasza_nazwa_huba

Po stworzeniu huba, musimy tez jeszcze utworzyć hasło do niego. Przechodzimy do naszego HUB:

HUB nasza_nazwa_huba

I odblokowujemy obsługę IPSec wpisując

IPSecEnable

I 3 krotnie potwierdzamy.

Na 2 pozostałe pytanie odpowiadamy nazwą naszego huba (aby łatwo była zapamiętać)

Po utworzeniu huba, pora na utworzenie użytkownika, który będzie miał dostęp z poziomu klienta:

Usercreate

Następnie wpisujemy odpowiednie dane i potwierdzamy za każdy razem enterem. Jeżeli będziemy przypisywać użytkownikowi jakąś grupę, najpierw trzeba ją utworzyć – zostawiamy więc wpisywanie przynależności do jakiejś grupy.

Teraz tworzymy hasło dla tego użytkownika – najpierw komenda a potem nazwa użytkownika, któremu przypisujemy hasło.

Userpasswordset

Z naszym serwerem będziemy łączyć się poprzez usługę VPNazure – musimy ją odblokować, a dokonujemy tego poprzez komendę:

Vpnazuresetenable YES

Aby sprawdzić status połączenia wpisujemy polecenie:

Vpnazuregetstatus

Otrzymamy następujące informacje:

Naotujemy adres (hostname)

Teraz przyszła kolej na konfigurację klienta i podłączenie się do naszego serwera.

Ściągamy aktualną wersję Softether VPN client. Po uruchomieniu mamy okienko w którym będą widnieć wszystkie nasze zapisane sieci VPN. Dodajemy nowe połączenie VPN – poprzez Add VPN Connection. W nowym okienku wpisujemy nazwę naszego hosta (w host name), w Virtual Hub Name nazwę naszego huba, w grupie autoryzacji wpisujemy nazwę i hasło użytkownika które utworzyliśmy wcześniej. Należy również pamiętać o wybraniu wirtualnej karty pamięci.

Po tak skonfigurowanym połączeniu VPN, do ustawienia zostało nam jeszcze przypisanie adresu IP wirtualnej karcie sieciowej. Wpisujemy adres z tej samej podsieci do której będziemy się łączyć. Po wciśnięciu przycisku connect w kliencie softether zobaczymy połączenia okienko z informacją o udanym połączeniu.

Tak więc mamy teraz możliwość połączenia się z naszą siecią domową z dowolnego miejsca, gdzie mamy dostęp do internetu. Niestety z moich testów, które przeprowadziłem szybkość wymiany danych nie jest imponująca, ale zawsze coś jest.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *