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.