Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Raspberry Pi jako serwer VPN

Jako pierwszy wpis na moim blogu, proponuję aby z Raspberry Pi, z zainstalowanym systemem Raspbian (w moim przypadku z dystrybucją wheezy) stworzyć serwer VPN.

Wpis będzie bardzo, bardzo, bardzo długi, więc polecam zawczasu zrobić kawę, lub jej termos, i/lub upewnić się, że w trakcie tej świątecznej atmosfery, możecie znaleźć sobie przytulne, ustronne miejsce z dala od kuchni (z której oczywiście dobiega głos szanownej małżonki, że czeka Cię kolejna lista zadań do zrobienia). Za ilość słów (nie zawsze na temat) po prostu najmocniej przepraszam :)

Pomysł na serwer VPN wpadł jako tako sam, kiedy nie raz znalazłem się w sytuacji, kiedy będąc w biurze (lub w publicznym miejscu) nie mogłem odwiedzić niektórych stron internetowych, tylko dlatego, że usługodawca zablokował do nich dostęp.
Posiadając działające Raspberry Pi lub inny mały podobny sprzęt, możemy stworzyć serwer VPN, do którego nasz laptop, telefon czy tablet będzie mógł się podłączyć i ruch internetowy będzie przekierowany poprzez łącze w domu (lub miejsca gdzie Raspberry jest podłączone do internetu).
Zaletą tego systemu jest fakt, że sami jesteśmy administratorem takiego "serwera", oraz że nie musimy dodatkowo płacić za utrzymanie takiego serwera (chyba, że kupujemy Raspberry Pi tylko dla serwera VPN).
Posiłkując się oficjalnym forum raspberry pi oraz różnymi portalami IT, zdobyłem wystarczającą umiejętność posługiwania się komendą kopiuj > wklej, aby system działa dla mnie bezproblemowo, 24 godziny na dobę, 7 dni w tygodniu.
Ale od podstaw (lub od mniej więcej średnio amatorskiego poziomu)

Uruchamiamy SSH

Zaczynamy od uruchomienia Raspberry Pi i zalogowania się do niego poprzez terminal ssh. Osobiście, na windowsie używam małego programu o nazwie putty, natomiast z telefonu (Android) łączę się za pomocą VxConnectBot.

Jeśli Raspberry nie ma jeszcze uruchomionego dostępu poprzez ssh, możemy aktywować go poprzez panel konfiguracyjny raspberry.

Otwieramy terminal wybierając odpowiednią ikonę z menu lub ze skrótu na pulpicie:

Większość konfiguracji (można by rzec, że 99%) będziemy wykonywać właśnie z konsoli/terminala.

Komendy zatwierdzamy oczywiście enterem i obserwujemy jakie są wyniki na ekranie. Jeśli komenda została wykonana poprawnie a nie było żadnego odzewu po drugiej stronie, to w większości przypadków oznacza sukces.

Na start, aby zaktywować ssh:

sudo raspi-config

Z menu wybieramy opcję ósmą, czyli Advanced Options, po czym wybieramy SSH i Enable.

Po zakończeniu, wybieramy oczywiście opcję Finish.

Od tej pory, będąc w tej samej sieci, powinniśmy bezproblemowo móc podłączyć się do naszego Raspberry za pomocą takich programów jak putty.
To ogólnie są podstawy malinki, więc nie sądzę, żeby tutaj nastąpiły jakieś problemy, jednak należy z pewnością zaznaczyć (w szczególności dla początkujących), że samo "aktywowanie" funkcji na Raspberry, nie zawsze będzie przynosić pożądane efekty, będąc poza domową siecią, jeśli np. nie ustawimy przekierowania portów.

A cóż to oznacza? Oznacza to, że jeśli będziemy poza domem i będziemy podłączeni do obcej sieci, to w momencie kiedy będziemy chcieli podłączyć się do Raspberry np. z hotelu, to nasz router nie będzie wiedział, do jakiego urządzenia wysłać żądanie.

Także ten tego... pomimo, że poradnik jest bardzo bardzo dokładny jeśli chodzi o nawet podstawowe rzeczy na Raspberry Pi, to jednak byłoby wręcz wskazane, żeby użytkownik wiedział co to jest adres IP i jak działa przekierowywanie portów. Poniżej niestety nie będzie nic na temat przekierowywania, chyba że ktoś bardzo będzie potrzebował (choć takich poradników na necie jest wręcz za dużo).
(P.S. A przepraszam. Ważnym punktem jest, że aby połączyć się do serwer OpenVPN, nalezy przekierować port 1194 UDP do naszego Raspberry)

Wracając do głównego tematu.

Stały adres IP w sieci LAN

Jeśli uruchomiliśmy już SSH na naszej malince, to aby móc się do niej podłączyć przez np. putty, warto byłoby wiedzieć, pod jakim adresem IP nasze Raspberry jest dostępne i przy okazji ustawić IP na malince na stałe.

Aby poznać adres naszego Raspberry, w konsoli wpisujemy:ifconfigJeśli Raspberry jest podłączone przewodem sieciowym, to zazwyczaj zgłosi się do nas na adapterze eth0:

Na moim przykładzie, Raspberry jest podłączone przewodem cat5e do routera i otrzymało adres 192.168.0.8. Maska sieci to 255.255.255.0, domyślną bramą jest pod 192.168.0.1, adres rozgłoszeniowy to 192.168.0.255 i siec jest pod adresem 192.168.0.0

Aby poznać potrzebne informacje do ustawienia adresu IP na stałe, wystarczy wpisać ifconfig oraz również komendą netstat –nr zapoznać się z naszą domyślną bramką.

Ok. Zapisujemy sobie gdzieś długopisem, ołówkiem czy na tablecie, smartfonie i innych nośnikach takie informacje jak: IP, Maska, Gateway (bramka) oraz bcast, destination i przechodzimy do zmiany pliku konfiguracyjnego od interfejsów sieciowych.

Wpisujemy w konsoli:sudo nano /etc/network/interfacesco w skrócie oznacza, że otwieramy edytor nano jako administrator a w nim plik interfaces

Odszukujemy iface eth0 inet dhcp i zmieniamy to na iface eth0 inet static po czym poniżej dodajemy informację o naszym wybranym adresie IP (oczywiście polecam zmienić tak, aby zgadzały się z Twoim ustawieniem sieci):

address 192.168.0.8

netmask 255.255.255.0

network 192.168.0.0

broadcast 192.168.0.255

gateway 192.168.0.1

Z edytora nano wychodzimy wciskając klawisze CTRL+X, zatwierdzając że chcemy zapisać zmiany za pomocą "Y" i potwierdzając Enterem że nadpisujemy plik o tej samej nazwie.

W tym momencie ustawiliśmy adres IP na stałe na Raspberry Pi, ale nadmienię tutaj, że nie jest to 100% idealne rozwiązanie, aby ten adres był na zawsze przypisany do Raspberry Pi, bo tak naprawdę nie jest on w ogóle przypisany do tego urządzenia. Przypisanie adresu IP do urządzenia zazwyczaj odbywa się na routerze (w środowiskach biznesowych czasami na serwerze DHCP). Dlaczego? Otóż śpieszę z wyjaśnieniem. Jeśli np. nasz router ma ustawione, żeby przydzielać adresy IP w zakresie od 192.168.0.2 do 192.168.0.50 a czas ważności przydziału (rezerwacji adresu) jest ustawiony na tydzień, to może się zdarzyć (choć jest to mało prawdopodobne), że kiedyś odłączymy Raspberry Pi na jakiś czas, po czym jak je podepniemy z powrotem do tego samego routera, to Raspberry nie będzie w stanie komunikować się w danej sieci, bo ten sam adres jaki ustawiliśmy na Raspberry, został przyznany do innego urządzenia, które pojawiło się w sieci. Aby temu zapobiec, oczywiście używamy tabeli rezerwacji IP na routerze, ale to też będzie osobny temat (lub polecam po prostu pogooglować).

Statyczny adres IP z zewnętrznej sieci

Kolejnym punktem naszej wędrówki (aby ten nasz serwer VPN miał w miarę ręce i nogi), to kwestia statycznego zewnętrznego adresu IP. No bo jaki byłby sens, że wyjeżdżając na delegację służbową, siedzimy w Pendolino, korzystamy z Wifi, chcemy podłączyć się do Raspberry jako do naszego serwera VPN, ale nie znamy jego adresu IP. Jeśli mamy statyczny adres IP, to super ale w niektórych krajach jest prawie niemożliwe aby zdobyć takie udogodnienie jako prywatny (niebiznesowy) klient.

Z pomocą przychodzą nam oczywiście takie serwery DNS jak Dynamic-DDNS czy no-ip.com, w których nawet zakładając darmowe konto, można uzyskać domenową nazwę, podpietą pod naszą sieć. Osobiście korzystam z no-ip.com a ponieważ mój domowy router jest dosyć biedny (jeśli chodzi o jego konfigurację), to nie jestem w stanie niestety podpiąc konta z serwisu no-ip do ustawień routera. Ale jak już mam Raspberry Pi, to czemu by nie dodać takiej funkcjonaliści jak już przy tym siedzimy ?

Zapewne niejeden z was by zaproponował, aby zakupić lepszy router w którym można "poustawiać więcej opcji", jednak nie jestem zwolennikiem wydawania pieniędzy na router, który za pół roku albo za rok może się okazać zupełnie niekompatybilny z infrastrukturą usługodawcy. Ponieważ mieszkam już kilka dobrych lat w UK, to nie raz zdarzało mi się, że na danym mieszkaniu nie było np. sensu podłączać linii ADSL, tylko mam po prostu światłowód, a natomiast przeprowadziłem się do domu, w którym w ogóle nie było żadnego dobrego internetu i trzeba było na początku męczyć się z modemem 3G, aby znowu trafić do innego miejsca, gdzie bez routera "od dostawcy" to nie było nawet jak wdzwonić się w ich sieć. Taki trochę dziki zachód, ale zazwyczaj to co dostajesz od dostawcy internetu, jest po prostu za darmo i ma działać.

Ale wracając do no-ip i zakładania domeny (darmowej):

Najpierw zakładamy konto na stronie http://www.noip.com/ LinkZnajomość podstawowego angielskiego jest wymagana, a login i hasło należy zachować na później.
Po wybraniu opcji signup, wystarczy wybrać adres e-mail, hasło i jaką nazwę chcielibyśmy użyć w internecie. Polecam zaznaczyć, że adres domeny wybierzemy później (bo jest po prostu większy wybór):

Aktywujemy konto, szukając maila z naszej skrzynce pocztowej (mailowej oczywiście), po czym przechodzimy do opcji "Create a hostname now"

Wpisujemy nazwę naszej domeny i wybieramy suffix:

Jak już założyliśmy konto i dodaliśmy nazwę domeny (którą niestety w wersji darmowej należy comiesięcznie odnawiać za pomocą kliknięcia w Captcha "I am not a robot" przy powiadomieniu drogą mailową), to możemy na Raspberry dodać skrypt, który periodycznie, będzie odświeżał serwer no-ip.com z naszym obecnym adresem IP, przez co udając się pod właśnie tą nazwę domeny, będziemy przekierowywani na nasz adres IP.

Sprytne co nie?

Instalacja no-ip.com

Wracamy do Raspberry Pi, w konsoli/terminalu wpisujemy:sudo apt-get update && sudo apt-get upgradeZatwierdzamy za pomocą "Y" jeśli cokolwiek jest do zaktualizowania i pobieramy noip:wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gzPo pobraniu rozpakowujemy i usuwamy pobrane archiwum:tar vzxf noip-duc-linux.tar.gz && rm noip-duc-linux.tar.gzZa pomocą komendy ls -l możemy wylistować zawartość obecnego katalogu, skupiamy się aby odnaleźć ten nowo powstały dla no-ip i przechodzimy do niego za pomocą komendy:cd noip-2.1.9-1(jeśli pobrała się nowsza wersja, zmieniamy oczywiście komendę adekwantnie do numeru wersji)

Tu mała podpowiedź. Jeśli chcemy łatwo wpisywać nazwy katalogów czy komend, wystarczy wpisać początek (pierwsze znaki) i nacisnąć przycisk TAB. Jeśli jest tylko jeden rezultat, terminal automatycznie uzupełni brakujące znaki, jeśli jest więcej wyników, należy nacisnąć TAB przynajmniej dwa razy, a wyświetlą się dostępne komendy/pliki/katalogi.

Aby przygotować pliki do instalacji, wpisujemy:sudo makeIgnorujemy błędy, które się pojawiły (tacy z nas rebelianci) i przechodzimy do instalacji:sudo make installPodczas instalacji program zapyta nas o nasz login (mailowy) i hasło, oraz jak często powinien odświeżać serwer o naszym adresie IP. Co 15 minut myślę, że jest w sam raz:

Następnie uruchamiamy noip po raz pierwszy wpisującsudo /usr/local/bin/noip2Aby dodac noip do „autostartu” musimy stworzyć plik z konfiguracją.
Wpisujemy w konsoli sudo nano /etc/init.d/noip i wklejamy skopiowaną konfiguracją (aby wkleić do terminala, wystarczy nacisnąć prawy przycisk myszy)#! /bin/sh # /etc/init.d/noip ### BEGIN INIT INFO # Provides: noip # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Simple script to start a program at boot ### END INIT INFO # Carry out specific functions when asked to by the system case "$1" in start) echo "Starting noip" # run application you want to start /usr/local/bin/noip2 ;; stop) echo "Stopping noip" # kill application you want to stop killall noip2 ;; *) echo "Usage: /etc/init.d/noip {start|stop}" exit 1 ;; esac exit 0

Zamykamy edytor naciskając CTRL+X i potwierdzamy literą „Y” i Enter.
Następnie musimy dodać uprawnienia do pliku:sudo chmod 755 /etc/init.d/noiporaz dodanie informacji do autostartusudo update-rc.d noip defaults

Jeśli mamy już załatwione trzy podstawowe sprawy (włączenie ssh, stałe IP w sieci LAN oraz adres domeny lub stały adres IP ze świata z zewnątrz) to możemy zabrać się za instalację serwera OpenVPN na Raspberry.

Instalacja OpenVPN

Ponieważ w poprzednich punktach instalowaliśmy już aktualizację, nie musimy tego wykonywać raz jeszcze, lecz jeśli jeszcze tego nie zrobiliśmy, to oczywiście w konsoli wpisujemy sudo apt-get update oraz sudo apt-get upgrade

Następnie instalujemy podstawę:sudo apt-get install openvpnpotwierdzamy, że chcemy wykorzystać całe 1,5MB przestrzeni na naszym Raspberry (jak już święta to rozpusta na całego co nie?)

Pierwszym krokiem będzie wygenerowanie klucza serwera.
Ostrzegam, że czeka nas dosyć długa podróż przez nudne skrypty i komendy, więc jeśli już się znudziłeś, to zawróć póki możesz :)

Ty, który wchodzisz, żegnaj się z nadzieją...

Przejdźmy na uprawnienia administratora trochę bardziej permanentnie: sudo -si skopiujmy cały katalog z /usr/ do folderu z openvpncp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa(proszę zwrócić uwagę na spację pomiędzy dwoma adresami. Ten po lewej to skąd kopiujemy, a ten po prawej to do którego kopiujemy)
Następnie przechodzimy do katalogu:cd /etc/openvpn/easy-rsa

Zmieńmy teraz plik konfiguracyjny aby wskazywał na nową lokalizację folderu z kluczami
Edytujemy plik vars:nano vars

W linii trzynastej, zmieniamy linie export EASY_RSA na:Export EASY_RSA=”/etc/openvpn/easy-rsa”

I tu taki przerywnik.
Osobiście preferuję wpisywać większość (albo chociaż połowę) ręcznie, gdyż zdarza się, że jeśli autor użył innego kodowania znaków, to znaki specjalne nie będą poprawnie odczytywane przez nasze Raspberry Pi. Najczęściej spotykam się z sytuacją, że skopiowanie komendy typu sudo -s kończy się błędem, że użyłem niepoprawnego symbolu „-„. lub też kopiowanie znaków jak apostrofy, cudzysłowia itp.

Jeśli zależy nam na lepszej metodzie szyfrowania kluczy, możemy odnaleźć linię export KEY_SIZE=1024 i zmienić to na 2048. Są tego plusy i minusy (np. podczas generowania bezpiecznego klucza, będziemy czekać o wiele wiele dłużej)

Jak już utworzyliśmy zmiany, to zapisujemy plik poprzez CTRL+X i potwierdzamy „Y” że chcemy zapisać zmiany.
Ok. Czas zbudować certyfikat CA i root CA certyfikat.
CA to Certifcate Authority – coś jak urząd który potwierdza, że klucz który posiadamy jest poprawny.
Certyfikaty takie są spotykane w bankowości oraz stronach które używają bezpiecznego logowania (chyba nawet dobre programy taki posiadają :D ), ale w naszym przypadku, nasze Raspberry będzie wystawiać certyfikat sam sobie, aby wygenerować zatwierdzone klucze dla klientów sieci VPN.
Jeśli znajdujemy się w katalogu /etc/openvpn/easy-rsa to wpisujemy komendy po kolei:source ./vars

./clean-all

Spowoduje to ustawienie nowych zmiennych oraz wyczyszczenie wszystkich kluczy.

Teraz zbudujmy podstawowy certyfikat dla serwera:./build-caRaspberry zapyta o wiele rzeczy, ale jedyne na co musimy odpowiadać to Common name i Name (czyli trzymajmy się zasady, że jeśli jest dopisek "changeme" to zmieniamy)

Przy pierwszym certyfikacie ustawiamy nazwę dla serwera. Ja w swoim przykładzie po prostu nazwę go Serwer.

Teraz zbudujmy klucz dla serwera, żeby sam serwer mógł łączyć się z samym sobą (tak mniej więcej). Oczywiście "Serwer" zmieniamy na :./build-key-server SerwerNa pytanie „Common name” odpowiadamy tak, jak nazwaliśmy serwer.
Challenger password pozostawiamy puste
Na sign the certificate odpowiadamy „y” że tak, chcemy podpisać certyfikat
Na kolejne pytanie też odpowiadamy twierdząco

Na początek stwórzmy klucz dla jednego użytkownika (nazwę go Uzytkownik):

./build-key-pass Uzytkownik

Wpisujemy dwa razy haslo dla użytkownika (PEM pass phrase) oraz potwierdzamy nazwe użytkownika w polu „Name [changeme]”
Challenge password pozostawiamy puste
Sign in certificate – odpowiadamy tak, dwa razy

Jeśli chcemy dodać kolejnych użytkowników, po prostu robimy jeszcze raz ./build-key-pass [nazwa_nastepnego_uzytkownika]

Przechodzimy do folderu z kluczami:cd keysTeraz zabezpieczamy klucz algorytmem szyfrującym aby nie było go tak łatwo złamać:openssl rsa -in Uzytkownik.key -des3 -out Uzytkownik.3des.keyPotwierdzamy trzy razy hasło ustawione dla użytkownika.

Operację powtarzamy dla każdego z użytkowników, oczywiście zmieniając nazwy plików .key i .3des.key

Wróćmy do katalogu /easy-rsa/ poprzez wpisanie:cd ..

Czas dodać protokół panów Witfield Diffy i Martina Hellmana. Jest to (wg wikipedii) protokół uzgadniania kluczy szyfrujących. Nie chroni to przed atakami typu man in the middle ale pozwala bezpiecznie uzgodnić klucz (nawet jeśli ktoś podsłuchuje uzgadanienie).

Zanim jednak wprowadzimy komendę, ostrzegam, że w przypadku szyfrowania 1024-bitowego proces ten zajmuje coś około 5-15 minut, natomiast przy 2048 bitach, na moim Raspberry zajęło to spokojnie kilka godzin.

I tu też mała ciekawostka... Putty i w ogóle terminal linuxowy ma to do siebie, że jeśli jesteśmy podłączeni zdalnie i wykonujemy jakąś operację w konsoli, to jeśli zerwiemy połączenie (lub zamkniemy okno), to cokolwiek robiliśmy - będzie przerwane.
Nie chcę nawet mówić jak wkurzające to potrafi być, choć jednocześnie jest to w pewien sposób bezpieczne :)
Jeśli chcemy wykonać teraz dodanie tego protokołu Diffy-Hellman, polecam doinstalować programik o nazwie "screen" który pozwoli nam utworzyć coś w rodzaju wirtualnej sesji wewnątrz terminala, która nie umrze jeśli zamkniemy połączenie.

Podpowiem tylko, że aby zainstalować screen, wystarczy wpisać w konsoli:sudo apt-get install screen więcej informacji o "screen" pod tym adresem

także ten... jak już jesteśmy gotowi, to wpisujemy:

./build-dh

Czekamy, czekamy i czekamy.... jak już to się zakończy, to dodajemy zabezpieczenie HMAC aby nasza komunikacja była bardziej bezpieczna Więcej informacji o HMAC - wikipedia

openvpn --genkey --secret keys/ta.key(proszę zwrócić uwagę na podwójne myślniki w kodzie)

Klucze i certyfikaty (plus podstawowe zabezpieczenia) zrobione.
Teraz skonfigurujmy serwer OpenVPN aby wiedział których kluczy używać.
Wpisujemy:nano /etc/openvpn/server.conf

i wklejamy poniższy kod, który musimy zmodyfikować, aby pasował do adresu naszego Raspberry Pi: local 192.168.0.8 # Wpisz adres IP Twojego Raspberry Pi dev tun proto udp #Niektórzy musza uzywac TCP, zmien jesli wiesz co robisz. port 1194 ca /etc/openvpn/easy-rsa/keys/ca.crt cert /etc/openvpn/easy-rsa/keys/Serwer.crt # zmien na nazwe klucza twojego serwera key /etc/openvpn/easy-rsa/keys/Serwer.key # zmien na nazwe klucza twojego serwera dh /etc/openvpn/easy-rsa/keys/dh1024.pem # jesli wybrales szyfrowanie 2048 bitowe, zmien tutaj! server 10.8.0.0 255.255.255.0 ifconfig 10.8.0.1 10.8.0.2 push "route 10.8.0.1 255.255.255.255" push "route 10.8.0.0 255.255.255.0" # Ponizej dane Twojej sieci push "route 192.168.0.8 255.255.255.0" # zmien z numerem IP i maski Twojego Raspberry # Dodaj adres DNS # jesli Twoj router nie robi za serwer DNS, mozesz, uzyc DNS Google 8.8.8.8 push "dhcp-option DNS 192.168.0.1" # Zazwyczaj bedzie to adres Twojego routera push "redirect-gateway def1" client-to-client duplicate-cn keepalive 10 120 tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0 cipher AES-128-CBC comp-lzo user nobody group nogroup persist-key persist-tun status /var/log/openvpn-status.log 20 log /var/log/openvpn.log verb 1

Ok.. serwer niby postawiony, ale wciąż mamy jeszcze sporo do zrobienia (sorry.. wiem że to długie i męczące).

Edytujemy konfigurację Rapsberry aby pozwolić na przekierowywanie ruchu:nano /etc/sysctl.confZnajdź linię która mówi :
„Uncomment the next line to enable packet forwarding for IPv4.”
i usuń znak "#" sprzed tej linii, pozostawiając działającą linię (# przed czymkolwiek oznacza - to jest komentarz/notka, zignoruj, nie wykonuj tego)

Wyjdź z edytora nano zapisując zmiany.

Poinformuj Raspberry o zmianie komendą:sysctl -p

Raspberry domyślnie ma wbudowany firewall, więc musimy dodać wyjątek do zapory.

Zbudujemy prosty skrypt:nano /etc/firewall-openvpn-rules.shwpisujemy w środku:#!/bin/sh Iptables -t -nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.0.8 Oczywiście zmieniamy mój adres 192.168.0.8 na adres IP raspberry Pi
Zapisujemy zmiany, wychodzimy z edytora, dodajemy uprawnienia wpisując:chmod 700 /etc/firewall-openvpn-rules.shchown root /etc/firewall-openvpn-rules.sh

Pozostaje dodać jeszcze skrypt, aby zasady firewalla uruchamiały się dla naszego interfejsu sieciowego:nano /etc/network/interfacesZaraz pod iface eth0 inet static dopisujemyPre-up /etc/firewall-openvpn-rules.sh

Zapisujemy, wychodzimy z edytora.
Uruchamiamy ponownie Raspberry:sudo reboot

Po uruchomieniu ponownym przechodzimy znowu na uprawnienia admina:sudo -sDodajemy wartości domyślne dla serwera.nano /etc/openvpn/easy-rsa/keys/default.txtWklejamy poniższy kod, pamiętając aby edytować w linii czternastej adres zewnętrzny do naszego Raspberry Pi:client dev tun proto udp remote twojpublicznyadres 1194 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ns-cert-type server key-direction 1 cipher AES-128-CBC comp-lzo verb 1 mute 20

Zamykamy plik, zapisujemy zmiany, tworzymy kolejny skrypt dla OpenVPN:nano /etc/openvpn/easy-rsa/keys/MakeOVPN.sh

#!/bin/bash # Default Variable Declarations DEFAULT="default.txt" FILEEXT=".ovpn" CRT=".crt" KEY=".3des.key" CA="ca.crt" TA="ta.key" #Ask for a Client name echo "Please enter an existing Client Name:" read NAME #1st Verify that client’s Public Key Exists if [ ! -f $NAME$CRT ]; then echo "[ERROR]: Client Public Key Certificate not found: $NAME$CRT" exit fi echo "Client’s cert found: $NAME$CR" #Then, verify that there is a private key for that client if [ ! -f $NAME$KEY ]; then echo "[ERROR]: Client 3des Private Key not found: $NAME$KEY" exit fi echo "Client’s Private Key found: $NAME$KEY" #Confirm the CA public key exists if [ ! -f $CA ]; then echo "[ERROR]: CA Public Key not found: $CA" exit fi echo "CA public Key found: $CA" #Confirm the tls-auth ta key file exists if [ ! -f $TA ]; then echo "[ERROR]: tls-auth Key not found: $TA" exit fi echo "tls-auth Private Key found: $TA" #Ready to make a new .opvn file - Start by populating with the default file cat $DEFAULT > $NAME$FILEEXT #Now, append the CA Public Cert echo "<ca>" >> $NAME$FILEEXT cat $CA >> $NAME$FILEEXT echo "</ca>" >> $NAME$FILEEXT #Next append the client Public Cert echo "<cert>" >> $NAME$FILEEXT cat $NAME$CRT | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >> $NAME$FILEEXT echo "</cert>" >> $NAME$FILEEXT #Then, append the client Private Key echo "<key>" >> $NAME$FILEEXT cat $NAME$KEY >> $NAME$FILEEXT echo "</key>" >> $NAME$FILEEXT #Finally, append the TA Private Key echo "<tls-auth>" >> $NAME$FILEEXT cat $TA >> $NAME$FILEEXT echo "</tls-auth>" >> $NAME$FILEEXT echo "Done! $NAME$FILEEXT Successfully Created." #Script written by Eric Jodoin

Oczywiście plik zapisujemy, wychodzimy z edytora

Przechodzimy do folderu z kluczami:cd /etc/openvpn/easy-rsa/keys/

Dodajemy uprawnienia do dopiero co stworzone plikuchmod 700 MakeOVPN.shI uruchamiamy skrypt:./MakeOVPN.sh

Wpisujemy nazwe użytkownika i zatwierdzamy enterem.
O ile wpisaliśmy wszystko dobrze, zostanie to potwierdzone stosownym komunikatem.

Skrypt powyżej wygenerowal nam klucz ovpn którego użyjemy np. na laptopie.
Serwer jest tak jakby ukończony.
Aby zainstalować oprogramowanie na laptopie, potrzebne nam będzie kilka plików.

Będziemy potrzebować pliku ovpn z Raspberry.
Polecam użyć oprogramowania jak WinSCP (do pobrania stąd) i po prostu podłączyć się do Raspberry na porcie 22 (SSH) którego i tak używamy dla sesji w terminalu.

Tu mała ciekawostka, próba przejścia do folderu /etc/openvpn/easy-rsa/keys powinna zakończyć się niepowodzeniem:

Powód jest dosyć prosty.
Dla katalogu keys nie nadaliśmy uprawnienia dla użytkowników.
Przechodzimy z powrotem do konsoli (ale tylko na chwilę) i tymczasowo dodajemy uprawnienia dla wszystkich:sudo chmod 777 -R /etc/openvpnTeraz możemy skopiować interesujący nas klucz.

Aby usunąć dostęp dla wszystkich (co jest dosyć ważne), a zostawić dostęp tylko dla użytkownika „pi” w konsoli wpisujemy:sudo chmod 600 -R /etc/openvpnPo rozłączeniu sesji w WinSCP i zalogowaniu się podobnie, powinniśmy mieć zablokowany dostęp do katalogu /etc/openvpn

Instalacja oprogramowania klienta na Windowsie

Teraz czas zainstalować oprogramowanie na laptopie (Win7)
Na swoim laptopie używam aplikacji małej i bardzo wygodnej w użyciu którą jest:
SecurePoint SSL VPN v2 Client (do pobrania stąd)

Po pobraniu i zainstalowaniu, otwieramy aplikację i z paska zadań otwieramy podręczne menu. Wybieramy małą konfiguracji (zębatka) i wybieramy "Import"

Importujemy plik .ovpn i klikamy na strzałki obok ikony użytkownika.
Po wpisaniu hasła, jeśli wszystko poszło po naszej myśli - powinniśmy być podłączeni do Raspberry Pi jako klient jego sieci VPN.

Instalacja oprogramowania klienta na Androidzie

Mam nadzieję, że już dawno mamy plik ovpn dla naszego klienta/użytkownika. Jeśli nie - no to musimy jeden stworzyć i skopiować go do pamięci telefonu. Następnie pobieramy aplikację OpenVPN Connect ze sklepu GooglePlay (link tutaj)

Otwieramy aplikację na telefonie, wybieramy menu> Import, Import from SD Card

Wybieramy plik .ovpn
Po klinięciu na Connect, powinniśmy być podłączeni do serwera VPN

Tak prawdę mówiąc, na tym powinienem skończyć ten wpis, jednakże poniżej dodaję jeszcze informację, jak dodać użytkownik, kiedy już wszystko zakończyliśmy, a wystąpiła by potrzeba dodania kolejnego klienta.

Przykład na podstawie tworzenia klucza dla mojego telefonu:
Po pierwsze, musimy przejść na uprawnienia roota w terminalu Raspberry Pi:sudo -sNastępnie przechodzimy do katalogu easy-rsa:cd /etc/openvpn/easy-rsaUaktualniamy konfigurację:source ./varsPo czym uruchamiamy./build-key-pass Nexus(jeśli wystapi blad skrypt nie potrafi odczytac ca.crt i ca.key, wtedy dodaj uprawnienia dla wszystkich chmod 777 dla /etc/openvpn/easy-rsa/ i jeszcze raz zrob source vars i buildkeypass)

Oczywiście podaj jakie hasło chcesz użyć dla następnego użytkownika, na pozostałe pytania nie musisz odpowiadać oprócz „Name [changeme]” gdzie warto podać nazwę użytkownika.
Oczywiście potwierdź podpisanie certyfikatu.

Szyfrujemy nowego użytkownika poprzez przejście do folderu z kluczami:cd keysopenssl rsa -in Nexus.key -des3 -out Nexus.3des.keyI uruchamiamy skrypt, który utworzy nam plik ovpn:./MakeOVPN.shOczywiście plik ovpn przenosimy na urządzenie, które będzie podłączać się jako nowy użytkownik do serwera VPN.
Po zakończeniu dodawania użytkownika, polecam upewnić się, że tylko root ma dostęp do kluczy na naszym Raspberry

Wpis ten został oparty na podstawie:

http://readwrite.com/2014/04/10/raspberry-pi-vpn-tutorial-server-sec...

oraz

http://malinowepi.pl/post/43316048520/raspberry-pi-i-zmienne-ip-ddns

oraz

http://www.modmypi.com/blog/tutorial-how-to-give-your-raspberry-pi-a-s...

oraz własnej wiedzy :)

Teraz pytanie do was - czy widzi wam się taka seria czy też jest tego po prostu za dużo?
Planuję coś napisać na temat serwera PXE (bootowanie po sieci) i Clonezilla, gdzie możemy trzymać kopie zapasowe naszego systemu (np. komputera z Windowsem) lub Raspberry Pi jako serwer torrentów.

Jeśli gdzieś wkradły się literówki, albo braki w polskich znaczkach, proszę o info. Niestety służbowe komputerki w pracy są tylko z językiem angielskim, a ja jakoś nie mogę się skłonić, aby co chwila przestawiać język w Wordzie, który na widok kodu i poleceń linuxowych, trochę gubi się w rozpoznawaniu języka :)

update: 28.12.2015
Wprowadziłem poprawkę w ustawianiu statycznego adresu IP. Zabrakło:
inet przy interfejsie na eth0, przepraszam za brak
Poprawiłem również niepoprawny screenshot przy potwierdzeniu wygenerowania klucza. 

linux programowanie serwery

Komentarze

0 nowych
En_der   9 #1 23.12.2015 21:59

Jak dla mnie wpis ok. - Pisz następne i nie pytaj, bądź konkurencją dla innych piszących, bo to zdrowa forma rywalizacji - I nowa woda na młyn, napędzający to miejsce.
PS.
Jak znajdę trochę czasu to w praktyce wypróbuję, to co opisałeś :)

Ppetro   5 #2 24.12.2015 00:10

Bardzo fajny wpis - z chęcią poczytam więcej

Jak dobrze pójdzie to w okresie świątecznym wrzucę wpis podobny do Twojego o serwerze VPN za 40zł.
Na szczęście opisałeś już kwestię konfiguracji DDNS i klienta mobilnego więc nie będę tego dublować :P

  #3 24.12.2015 00:56

?Dzięki za przemiłą lekturę przed snem. :]
Taka seria jak najbardziej się widzi, zarówno w kontekście malinki, jak i Linuxa. PXE nigdy nie udało mi się wdrożyć we własnej sieci (jakieś krótkie zabawy z Windows Server), a byłoby bardzo wygodne i przydatne. Może jakiś opisik Samby, a dla zaawansowanych coś o własnym serwerze DHCP... ;]
Pisz dalej, trzymam kciuki i z zapałem będę czytać.

kwpolska   6 #4 24.12.2015 10:30

@Ppetro: Pewnie na jakimś tanim VPS-ie? To chyba nie najtańszym, bo DigitalOcean jest za $6.15/miesiąc (24 zł)

#r2d2#   11 #5 24.12.2015 10:47

Super wpis, wszystko łopatologicznie opisane. :-)
Masz mój głos w tym miesiącu. Mam nadzieję, że będziesz kontynuował serię.

Ppetro   5 #6 24.12.2015 14:04

@kwpolska: Nie, na starym routerze, który odmłodziłem wgrywając alternatywny soft -Tomato. Koszt jednorazowy - 40zł :)

awangardowy   7 #7 24.12.2015 15:50

10/10 , dla mnie to wpis miesiąca ;)

  #8 24.12.2015 16:42

@kwpolska można taniej jak masz własną domnę http://lowendbox.com/blog/vpscheap-net-unmetered-vps-starting-at-10year-in-chica... 10$ na rok. Na VPN w zupełności wystarcza.

Axles   17 #9 24.12.2015 16:45

Serio fajnie napisane, ale za długie mogłeś rozbić na kilka wpisów :) będę szczery nie dobrnąłem do końca, ale z pewnością gdy mi to się przyda wiem gdzie szukać informacji. Wesołych Świąt.

Kleryk_LDZ   8 #10 24.12.2015 19:12

Fajny wpis. Gdy się dorobię w końcu Maliny, na pewno wypróbuję :) W pierwszej kolejności miał być Banana NAS by Cyryllo, ale kto wie, może polecę hurtem :D

Ayaritsu   5 #11 24.12.2015 20:57

Super! Dziś właśnie dostałem RPi2 od swojej narzeczonej i na dniach miałem właśnie to robić:D Fajnie będzie nie szukać tego wszystkiego tylko mieć na miejscu już! Super! :D

edmun   12 #12 24.12.2015 21:51

Dziękuję za miłe komentarze. W pracy jak mi się nudzi, to naskrobię kolejne, tym razem krótsze :-) w jednym miejscu mam złego screenshota więc po świętach poprawię

Autor edytował komentarz.
  #13 24.12.2015 23:06

Świetny artykuł, miałem co prawda skonfigurowany VPN ale za nic nie mogłem poradzić sobie z firewallem - tj łączyłem się z domowymi zasobami ale już żeby korzystać z netu przez vpn to już 0 opcji, a tu jeden fragment rozwiązał wszystkie moje problemy, dzięki!

  #14 25.12.2015 10:46

@edmun: Napisałeś o ustawieniu statycznego ip wewnątrz sieci i problemem z alokowanymi dynamicznie, które mogą zająć miejsce tego przypisanego. Ustaw adres z wysoką końcówką.

themamuth   6 #15 26.12.2015 18:14

Nie to że bym się czepiał. Nie chcę by komentarz ten był tak odebrany. Rozumiem że konfiguracja była przeprowadzana na raspbianie. W takim przypadku należało by zaznaczyć że po instalacji pakietu openvpn katalog easy-rsa w wersji raspbiana 8 znajduje się gdzie indziej.

In Jessie and above easy-rsa is a separate package. So you'll have to install that in addition to openvpn.

On Wheezy:

# cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* easy-rsa/
On Jessie and above:

# apt-get install easy-rsa
# cp -R /usr/share/easy-rsa/* easy-rsa/

https://wiki.debian.org/OpenVPN

  #16 26.12.2015 20:24

Nie napisałeś nic o TUN i TAP. Wystawienie ssh z hasłem na porcie 22 zła praktyka. OpenVPN do tych celów lepiej IMHO wystawić na porcie który na pewno nie będzie zablokowany w takim np hotelu np 443 poza tym ok

edmun   12 #17 26.12.2015 20:52

@themamuth: na wheezy jest tam gdzie podałem. Specjalnie przygotowałem nowa kartę aby zrobić od początku do końca wg tego co napisałem. Na Jessy może być inaczej, dlatego na początku zaznaczyłem że konfiguracja poniżej jest wg dystrybucji wheezy

themamuth   6 #18 27.12.2015 09:31

@edmun: Mój komentarz nie jest atakiem, ani krytyką. Zrobiłeś kawał dobrej roboty. Jednak instalacja openvpn na Debian 8 (też raspbian 8) sprowadza się jedynie do zmiany katalogu instalacji openvpn.

edmun   12 #19 27.12.2015 11:43

@themamuth: spokojnie, nie odebrałem tego jako krytykę czy atak :-)

Morson   3 #20 27.12.2015 14:47

Podeślesz skrypt po zalogowaniu na ssh?

  #21 27.12.2015 15:14

Świetny artykuł. Tego mi było trzeba żeby spać spokojniej :)

Shaki81 MODERATOR BLOGA  38 #23 27.12.2015 18:50

Wpis świetny jednakże, jeśli jednak z tego miałaby być seria to wszystkie sprawy poboczne VPN'a zrobiłbym jako jeden wpis a samą konfiguracje jako drugi wpis. Z doświadczenia wiem, że za długie wpisy to też nie dobrze, bo niewielu czyta je do końca.

A ja mam nadzieję, że seria potoczy się dalej i trzymam za Ciebie kciuki.

edmun   12 #24 27.12.2015 20:27

@themamuth: dziekuję bardzo, stąd właśnie brałem skrypt :)

edmun   12 #25 27.12.2015 20:28

@Shaki81: Dziękuję. Uwagi zapisane na przyszłość :)

  #26 27.12.2015 23:30

a nie prościej byłoby pptp zamiast openvpn?
na login i hasło?

themamuth   6 #27 28.12.2015 08:09

@pappap (niezalogowany): pptp jest mniej bezpieczne od openvpn z certyfikatem.

themamuth   6 #28 28.12.2015 08:12

@pappap (niezalogowany): Oraz żeby nie było że z czapy to biorę:
https://www.bestvpn.com/blog/4147/pptp-vs-l2tp-vs-openvpn-vs-sstp-vs-ikev2/

codeobiect   4 #29 28.12.2015 10:40

Dzięki Openvpn z certyfikatem mogę spać w miarę spokojnie? Chodzi mi o włamania i dostęp do danych, np. jak mam do RPI podłączony dysk z danymi? Jak to wygląda?

Co do wpisu, jest świetny. Dziś biorę się za konfigurację.

edmun   12 #30 28.12.2015 11:32

@Sedesowski (niezalogowany): hmm... masz pewnie rację :) Tak to jest jak człowiek myśli ciągle według schematów :)

  #31 28.12.2015 18:10

Znajomy narzekał na wydajność OpenVPN na Banana Pi, które jest dużo szybsze od Raspberry Pi (patrz benchmark na http://rozie.blox.pl/2014/07/OpenSSL-AES-benchmark.html ). Testowałeś może wydajność u siebie? Faktem jest, że on chyba miał rurkę 80 czy 100 Mbps w domu...

Przy okazji, polecam wpis o przyspieszaniu łącza http://rozie.blox.pl/2014/10/Przyspieszanie-lacza-internetowego.html - wydaje mi się, że tunelowanie po SSH będzie wystarczające do stron i prostsze w uruchomieniu (OK, nie sprawdzałem jak to wygląda od strony Androida). Oczywiście OpenVPN jest bardziej uniwersalny, bo zadziała dla wszystkich aplikacji.

2artur2   4 #32 28.12.2015 20:50

Drobna literówka:

jest:
nano /etc/firewall-openvpn-rules.ssh

powinno być:
nano /etc/firewall-openvpn-rules.sh

edmun   12 #33 28.12.2015 21:12

@2artur2: Dziękuję, poprawione.

  #34 29.12.2015 10:59
edmun   12 #35 29.12.2015 14:31

@rozie (niezalogowany): mam dwa urządzenia tylko podłączone i łącze w domu mam 26MB/s downloadu, upload 5MB/s więc na moje potrzeby można rzec, że wystarcza. Nigdy nie sprawdzałem nic więcej, gdyż tak jak w artykule, po prostu potrzebowałem serwer VPN żeby się nie szczypać na lotnisku że nie mogę niektórych stron odwiedzać.

2artur2   4 #36 29.12.2015 20:21

@edmun: Wykonałem to wszystko, mam chyba jakiś problem. Łączę się z Raspberry, ale potem nie mam internetu. Są tu jakieś PW ?

codeobiect   4 #37 29.12.2015 20:30

Nie wiem, czy źle coś skonfigurowalem,czy po prostu trzeba czekać aż się połączy, ale po zaimportowaniu pliku do programu i wpisaniu hasła program próbuje się cały czas łączyć i nic, żadnych błędów nie wywala tylko cały czas się łączy. Hasło podaje dobre, bo próbowałem wpisać inne to od razu wraca do ponownego wpisywania hasła. Masz jakieś pomysły?

2artur2   4 #38 29.12.2015 20:48

Może założyć temat na forum. Myślę, że może wystąpić tu wiele problemów. Ja na przykład musiałem dwa razy generować klucze, bo widocznie coś źle wpisałem za pierwszym razem.

Edit:
Internet już działa. Problemem był plik interfaces. Teraz wygląda on u mnie tak:
------------
auto lo

iface lo inet loopback
iface eth0 inet static
pre-up /etc/firewall-openvpn-rules.sh
address 192.168.1.X
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

------------
gdzie X - końcówka adresu PI
router ma adres z końcówką 1.1

Można podłączyć PI do monitora i sprawdzić podczas bootowania, czy nie wywala błędów.
Co do łączenia trwa poniżej 10 sekund z kompa.

Autor edytował komentarz.
codeobiect   4 #39 29.12.2015 22:21

@2artur2: Ja mogę mieć problem z serwerem DNS, bo jak w przykładzie było użycie winscp, to po wpisaniu swojej nazwy serwera się nie łączył i wywalał błąd.
Tak w ogóle to przy wklejaniu konfiguracji do pliku /etc/openvpn/server.conf
jest cos takiego jak serwer DNS, który mamy dodać, ale jak? Wystarczy wpisać samo 8.8.8.8 czy przed adresem coś jeszcze?

Autor edytował komentarz.
2artur2   4 #40 29.12.2015 22:46

@codeobiect: w pliku server.conf musi być dokładnie:

push "dhcp-option DNS A.B.C.D"
ja mam 8.8.8.8

Winscp nie ma związku z dhcp, i jest tylko do ściągnięcia pliku ovpn
Musisz użyć kompa z WIN w tej samej podsieci. Jak Winscp nie widzi RPI to może jest coś źle w ogóle z adresem IP Maliny ?

Edit:
Jak Malina i komp z WIN są w tej samej sieci, to w WINSCP w polu hostname możemy podać po prostu IP Maliny.

Autor edytował komentarz.
codeobiect   4 #41 30.12.2015 08:03

@2artur2: I tak zrobiłem, zamiast po serwerze dns wszedłem po IP maliny i żadnych problemów nie było.
Wróce do domu i wpisze ten dns, zobaczymy, może to jest problem.
A jak wpisze na tym etapie dns to kolejne kroki muszę robić ponownie?

edmun   12 #42 30.12.2015 09:28

@2artur2: są (chyba), możesz spokojnie pisać. jeśli łaczy się z raspberry ale nie masz internetu poprzez VPN, to obstawiałbym że forwarding/routing jest źle wpisany w konfiguracji OpenVPN na Raspberry

edmun   12 #43 30.12.2015 09:29

@2artur2: A przepraszam, dopiero zauważyłem kolejne komentarze. Czyli rozumiem że działa? Możesz mi tylko powiedzieć czy czegoś brakuje w instrukcji żeby było jaśniej dla innych ? :)

edmun   12 #44 30.12.2015 09:30

@codeobiect: Na upartego byłbym pewnie w stanie pomóc z tą konfiguracją :) Jeśli masz wciąż jakieś problemy, to pisz, zobaczymy co tam w trawie piszczy :)

codeobiect   4 #45 30.12.2015 11:33

@edmun: Wszystko robione wedle instrukcji, brak tylko tego DNS, bo nie wiedziałem jak to wpisać dokładnie. Jak wrócę do domu to dam znać, czy to pomogło, jak nie to będę pisał o ewentualnych problemach.

No niestety DNS nic nie dał.Cały czas kręci i kręci i nie może sie połączyć.

Autor edytował komentarz.
codeobiect   4 #46 30.12.2015 16:16

@edmun: Po wykonaniu polecenia source ./vars
mam brak dostępu:
"/etc/openvpn/easy-rsa/whichopensslcnf: Permission denied"

edmun   12 #47 30.12.2015 16:47

@codeobiect: Jesteś pewien, że polecenia które wykonywałeś powyżej robiłeś za pomocą konta root, czyli admina? najlepiej przejść na niego za pomocą sudo -s

Jeśli wszystko było tak zrobione, to byłoby dziwne, że nie masz dostępu do tego katalogu. Na moje oko coś pominąłeś, jak chcesz, możemy zacząć od nowa, podpowiem jak usunąć już zainstalowany openvpn. Na upartego możemy nawet umówić się na chat na żywo (choć bez kamerki, bo nie chcę mi się słuchawek w biurze szukać) i poprowadzę Cię za rękę :)

codeobiect   4 #48 30.12.2015 17:13

@edmun: chętnie, ale to już nie dziś. Jutro ok 15 by Ci pasowało?

edmun   12 #49 30.12.2015 18:14

Mam nadzieję że tak :) Zależy do której będę w biurze, bo kto wie czy szef nie powie, że mam pracować z domu albo nie skończymy wcześniej i akurat nie będę w trasie aby dojechać do domu. Wstępnie może być na Twoją 15-tą :) (moja 14:00)

codeobiect   4 #50 30.12.2015 20:55

@edmun: Ok, odezwę się w komentarzu. Jakiś programik do chatu mam przygotować?

2artur2   4 #51 30.12.2015 22:28

Poradnik jest bardzo szczegółowy, uczulam jednak na dokładne wpisywanie poleceń i dokładne kopiowanie, szczególnie pliku MakeOVPN.sh

@edmun: Jak połączysz się do Maliny, co dalej możesz zrobić ? Masz Internet po www z komputera klienta ?
Przy powyższej konfiguracji miałem jedynie dostęp do Maliny przez Putty. Do innych komputerów w mojej sieci lokalnej, ani Internetu już nie.
W źródle, które podałeś (readwrite.com) jest opisany nieco inny plik firewall-openvpn-rules.sh a mianowicie:

-----------
#!/bin/sh
#OPENVPN shaped hole
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.1.

#allow ping from outside to inside
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

#allow ping from inside to outside
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

#Allow loopback access
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#allow http, https, and ssh (multiport)
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT

#allow transmission, webmin (multiport)
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 10000,9091 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 10000,9091 -m state --state ESTABLISHED -j ACCEPT

#allow port 1194 udp for openvpn...?
iptables -A INPUT -i eth0 -p udp --dport 1194 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --sport 1194 -m state --state ESTABLISHED -j ACCEPT
------------

Czyli są ustawione przekierowania portów różnych usług na Malinie. Dopiero jak utworzyłem taki plik i po reboot Maliny mogłem wejść do Internetu.
Mnie interesują dwie rzeczy: wejście przez UltraVNC do kompów w mojej sieci lokalnej (to już działa) oraz dostęp do zasobów sieciowych NAS, co jeszcze mi się nie udało zrobić.

edmun   12 #52 30.12.2015 23:14

@2artur2: ropisałem się na komórce i ze względu na błędy pamięci w baterii, telefon wyłączył mi się zanim zapisałem komentarz. Nowa bateria dojdzie mi na czasie. Ale po kolei. Plik który podałeś, to nie wiem skąd jest. Zwrócę uwagę na prosty przykład , w Twoim pliku konfiguracji firewalla są np. wpisy do Webmina (co jest fajnym interfejsem do sterownia malinką).

Oczywiście zaznaczyłeś że jest przekierowanie do różnych usług, ale nie wiem czemu ta konfiguracja powyżej miała by działać, a nie ta co ja podałem :)




Na wszelki wypadek wklejam swój plik poniżej:

#!/bin/sh
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.0.8


i to wszystko. w swoim Raspberry nie mam nic więcej w pliku firewall-openvpn-rules.sh i działa zarówno VPN jak i Webmin. Plik który wkleiłeś powyżej jest po prostu dostosowany do czyjegoś systemu :) Co do VNC. miałem.. nie jest to trudne, jednak bez ip2ban się nie obejdzie. Ilość prób podłączenia się do Ciebie po standardowym porcie VNC (5900-5910) będzie niewyobrażalnie wysoka. Po jakimś czasie odpuściłem VNC na rzec RDP czyli standardowego protokołu zdalnego pulpitu. Co dziwne, log wskazuje na o wiele rzadsze próby "zhackowania" mojego konta. Co do dostępu do plików, mam i FTP i Sambę, a Samba służy właśnie do systemów Windowsowych i dostępu przez otoczenie sieciowe (np. dysk sieciowy w Windowsie). Poradników jest sporo od tego, jednak żeby to wszystko zrozumieć, też trzeba trochę czasu poświęcić. Na pierwszy ogień idzie auto montowanie dysków do katalogów (mount /dev/sda1 /media/DyskUSB) w pliku etc/fstab po zainstalowaniu ntfs-3g, a potem doinstalowanie Samby i skonfigurowanie pliku samba.conf (o ile dobrze pamiętam). Przy dobrym poradniku, zajmuje to jakieś 10-15 minut, natomiast przy zerowej wiedzy, około 2 dni (tyle mi zajęło za pierwszym razem, bo człowiek nic nie pamiętał ze studiów, bo nigdy nie był linuxiarzem).

P.S. UltraVNC do różnych kompów w Twojej sieci możesz załatwić instalując choćby TightVNC serwer na wszystkich komputerach, ale na każdym ustaw inny port nasłuchiwania (np. raspberry będzie 5911, komputer1 = 5912 itd). Następnie na routerze ustawiasz odpowiednie zasady przekierowywania portów, przez co wywołując adres z VNC Viewera: mojserwer.no-ip.org:5912 podłaczysz się bezpośrednio pod Twój drugi komputer. Tak chyba najłatwiej.

Autor edytował komentarz.
edmun   12 #53 30.12.2015 23:19

@codeobiect: Hmm. Chyba najłatwiej to będzie Skype, What's App, Facebook Messenger lub TeamViewer (mam konto biznesowe). GG ze względu na zmiany w regulaminie usunąłem. Szkoda, bo się łezka w oku kręci, bo konto zakładałem za czasów, kiedy GG nawet reklam nie miało, a numer konta miałem 2215568 (czyli dopiero, jak o GG się zrobiło na tyle głośniej w necie, że ludzie wiedzieli o istnieniu takiego programu). Na upartego może mam gdzieś jeszcze płatne konto LogMeIn, ale myślę że Skype i TeamViewer spokojnie wystarczą :) Na razie ze względu na dość mocne ulewy w Anglii, to trochę nam zalało recepcję, bo gdzieś jest jakiś przeciek, więc podejrzewam że będziemy normalnie w biurze jutro, aby miski podkładać pod podsufitkę, aby dywanów nam nie zalewało :D :D Ok. Do usłyszenia jutro. A jak nie jutro, to zostanie nam w 2016 roku to dla Ciebie zrobić (nawet pierwszego stycznia). Nie musisz szykować żadnych haseł do raspberry czy no-ip.org bo nie będę tego potrzebował. To Ty będziesz wpisywał komendy w raspberry, a ja po prostu będę na "linii wsparcia" :D

edmun   12 #54 30.12.2015 23:22

@2artur2: oczywiście zapomniałem się po prostu zapytać, czy taka "konfiguracja NAS" by Cię interesowała, bo naskrobać co i jak będzie o wiele łatwiej niż z tym VPN'em :D

Morson   3 #55 31.12.2015 12:38

@themamuth: Tak, dzięki :)

edmun   12 #56 31.12.2015 14:31

@codeobiect: To jakby co, to ja jestem gotowy, albo facebook chat albo skype :)

update: 15:52 czasu polskiego:
przykro mi codeobiect, ale po godzinie czekania nic od Ciebie nie usłyszałem. Życzę udanej imprezy sylwestrowej :) Jakby co, to do usłyszenia w Nowym Roku :)

Autor edytował komentarz.
codeobiect   4 #57 01.01.2016 10:33

@edmun: Hej, przepraszam Cię, ale liczyłem na wcześniejszy powrót z pracy, jednak się pomyliłem i kończyłem przed 17 ;/
Postaram się odezwać jutro, albo w tygodniu.
Jeszcze raz sorki.

command-dos   18 #58 06.01.2016 22:33

tam chyba powinno być source . ./vars zamiast source ./vars

edmun   12 #59 07.01.2016 09:52

@command-dos: niestety nie. Będąc w easy-rsa (/etc/openvpn/easy-rsa) wpisujesz source ./vars (jedna kropka)

edmun   12 #60 08.01.2016 15:02

@codeobiect: Jakby co, to ja chyba dwa razy się próbowałem do Ciebie "dodzwonić" :) Daj znać kiedy, bo ja mam kolejne projekty do wykonania :)

2artur2   4 #61 08.01.2016 20:25

Problemy mogą wynikać z dostępu radiowego. Zwykle są wtedy poblokowane porty. Na kablówce wszystko ok.

darek719   38 #62 17.01.2016 15:57

Pierwszy wpis i taki złoty strzał do top5, gratulacje! :p

Autor edytował komentarz.
edmun   12 #63 17.01.2016 21:28

@darek719: Żebym to ja jeszcze wiedział gdzie są top listy na tym portalu :D :D Od jutra zaczyna mi się jakieś 3 dniowe szkolenie z zarządzania service deskiem więc podejrzewam, że będę miał czas naskrobać może kolejny artykuł albo chociaż jego brudnopis (draft ?) / szkic

darek719   38 #64 17.01.2016 21:31

@edmun: a bo oficjalnie jeszcze Redakcja nie napisała podsumowania... ale na głównej bloga po prawej zawsze jest baner "nagradzamy najlepszych blogerów"
http://www.dobreprogramy.pl/NagradzamyBlogerow

edmun   12 #65 18.01.2016 00:53

@darek719: albo jest za późno żeby teraz o tym myśleć albo po prostu poczekam na jakieś oficjalne wyniki. Tak czy siak, seria wpisów będzie długa i męcząca ;-) w pracy udało mi się skończyć serwer PXE z Clonezilla na pokładzie a w domu walczę żeby połączyć wszystko w jedną całość i zrobić uniwersalny system monitoringu. Na dp planuje wrzucić raspberry pi jako serwer NAS (niestety słabo wydajny ale jest) + kontynuacją będzie może serwer FTP + może deluge? Zobaczymy. Dobranoc :-)

edmun   12 #66 19.01.2016 09:43

@darek719: nie orientujesz się czy ja muszę się teraz do kogoś zgłosić? Martwię się że niektóre maile lecą do skrzynki ze spamem których nie przeglądam regularnie :-)

darek719   38 #67 19.01.2016 16:11

@edmun: będą wyniki to i zapewne będą mejle. ale narazie coś redakcja milczy :p

hosti   3 #68 19.01.2016 21:17

@edmun takie pytanie, a jeżeli chciałbym wykorzystać malinę jako klienta, który łączy się do serwera VPS-owego (na którym jest serwer OpenVPN) to da radę utworzyć wtedy tunel?

Laptop (klient VPN) ->Internet->VPS(serwer OpenVPN)-> Malina w domu (klient VPN)

edmun   12 #69 19.01.2016 22:17

@hosti: oj nie wiem. Nie podejmowałem się nigdy tunelowania. W teorii można. Nawet ktoś zrobił na szybko mały poradnik w necie. Więc pewnie można, ale jak? Tego nie wiem. Mogę się rozejrzeć i przetestować. Na biurku mam 3 maliny. Miałem pisać nowy artykuł podczas szkolenia a niestety jest na tyle intensywne że nie mam jak nawet laptopa otworzyć.

małaczarna   3 #70 22.01.2016 20:07

VPN to zawsze jakieś wyjście w obliczu zbliżającej się (7 luty 2016) nowelizacji ustawy o policji, a konkretnie udostępnianiu jej "danych internetowych", które wszyscy po sobie zostawiamy.

edmun   12 #71 10.02.2016 15:29

No to chyba nie pozostało mi nic innego jak bardzo wszystkim czytelnikom podziękować. Oficjalnie przyznaję się, że nie dość że stworzyłem jak na razie tylko jeden wpis który trafił na główną, to jeszcze wygrałem upominek w konkursie. Jak nic motywuje mnie to do dalszej pracy więc kopie robocze powoli się na portalu tworzą. Jak ukończę, przetestuję i wszystko sprawdzę, to wrzucę kolejne wpisy. Mogę tylko przeprosić za opóźnienia ale miałem sporo służbowych wyjazdów, ale pełno jednodniowych, przez co nie było nawet jak w hotelu się wyłożyć z laptopem i jakimś alkoholem aby pisać dalej. Pozdrawiam wszystkich bardzo serdecznie i do następnego wpisu!

  #72 21.02.2016 14:56

Mam mały problem. Zrobiłem wszystko według poradnika (i to dwa razy..:)) i w logach przy łączeniu VPN mam coś takiego:

Try to start OpenVPN connection Trurasp2 C:/Users/Adam_2/AppData/Roaming/Securepoint SSL VPN/config/Trurasp2
Sun Feb 21 14:52:35 2016 OpenVPN 2.3.7 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Jul 9 2015
Sun Feb 21 14:52:35 2016 library versions: OpenSSL 1.0.1p 9 Jul 2015, LZO 2.08

Sun Feb 21 14:52:49 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Sun Feb 21 14:52:49 2016 Control Channel Authentication: tls-auth using INLINE static key file
Sun Feb 21 14:52:49 2016 UDPv4 link local: [undef]
Sun Feb 21 14:52:49 2016 UDPv4 link remote: [AF_INET]87.206.105.255:1194
Sun Feb 21 14:52:49 2016 read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Sun Feb 21 14:52:51 2016 read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Sun Feb 21 14:52:55 2016 read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Sun Feb 21 14:53:03 2016 read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Sun Feb 21 14:53:19 2016 read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)

Jakiś pomysł? :)

trucha13657   1 #73 21.02.2016 15:47

Przy łączeniu VPN'em mam taki błąd:
Sun Feb 21 15:45:34 2016 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
ERROR: TLS error! See log for details
Sun Feb 21 15:45:34 2016 TLS Error: TLS handshake failed
Sun Feb 21 15:45:34 2016 SIGUSR1[soft,tls-error] received, process restarting
Sun Feb 21 15:45:36 2016 UDPv4 link local: [undef]
Sun Feb 21 15:45:36 2016 UDPv4 link remote: [AF_INET]87.206.105.255:1194
Sun Feb 21 15:45:36 2016 read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Sun Feb 21 15:45:39 2016 read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Sun Feb 21 15:45:43 2016 read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Sun Feb 21 15:45:51 2016 read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Sun Feb 21 15:46:07 2016 read UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)


Czy ktoś jest w stanie pomóc? :)

edmun   12 #74 22.02.2016 13:05

@Trucha13657 (niezalogowany): dzieje Ci się tak także z zewnątrz sieci czy po LAN'ie też ?

edmun   12 #75 22.02.2016 13:06

@trucha13657: odpiszę tutaj bo tam byłeś niezalogowany. Czy błąd masz tylko jak jesteś w tej samej sieci, czy jak jesteś też na zewnątrz czy w obydwóch przypadkach?

edmun   12 #76 22.02.2016 13:11

@trucha13657: ok mniej więcej znalazłem. Zazwyczaj taki błąd występuje jeśli port 1194 UDP jest wciąż zamknięty. Albo firewall albo niepoprawne przekierowanie na routerze. Żeby sprawdzić czy port masz otwarty (z zewnątrz) wejdź na https://pentest-tools.com/network-vulnerability-scanning/udp-port-scanner-online..., zaznacz UDP port scan, na zakładce range wpisz 1194 i wpisz swój zewnętrzny adres. Jeśli nie masz zablokowanej komunikacji na tym porcie to powinieneś zobaczyć wynik:
PORT STATE SERVICE
1194/udp open|filtered openvpn

trucha13657   1 #77 22.02.2016 19:04

Ok, to tak:
dzieje się tak po lanie, z zewnątrz nie sprawdzałem jeszcze.
ping na 87.206.105.255 idzie, poniżej zrzuty z konfiuracji routera (UPC). Może coś zrobiłem źle, nie znam się tak bardzo :)

Port na ip raspberry:
http://puu.sh/nhuk8/5eceedc88f.png

Odblokowanie portów:
http://puu.sh/nhukv/85271cd2bb.png

Wynik ze strony:
http://puu.sh/nhulz/bbec258bcc.png

Z góry serdeczne dzięki za pomoc :)

edmun   12 #78 23.02.2016 09:08

@trucha13657: wyłącz ten triggering. Daj znać czy pomogło. Dodałeś zasady do firewalla na Raspberry? Następnym krokiem byłoby sprawdzenie czy serwer odpowiada po lanie czyli też zeskanować port 1194 w protokole UDP ale nie z zewnątrz. Jeśli będzie odzywać się po LANie a z zewnątrz nie to ustawienia przekierowania portów. Jeśli natomiast nie odezwie się nawet po LANie to pewnie źle skonfigurowany firewall. Nic się nie martw. Tyle ile będę mógł pomóc to pomogę :-)

trucha13657   1 #79 23.02.2016 16:31

@edmun: Hmm, ale wynik tego portu 1194 ze strony jest opisany jako "closed", czyli port zamknięty?
Za godzinkę będę w domu - usunę wyzwalanie portów, dam znać i podeślę firewalla z raspberry :) W jakich godzinach można Cię załapać? Na gg jesteś, czy rzadko?


@EDIT

Ok, jestem już. Usunałem wyzwalanie, teraz wynik jest taki dla IP 87.206.105.255 i portu 1194

PORT STATE SERVICE
1194/udp open|filtered openvpn

jednakże błąd cały czas ten sam.

Firewall:
http://puu.sh/niEDw/96373b0f28.png

Ifconfig:
http://puu.sh/niEGG/9519ac48ad.png

Dodam, że u mnie w sekcji sudo nano /etc/network/interfaces nie było "dhcp". Poza tym rasp jest podpięty przez wifi:

http://puu.sh/niEKR/3fa0fdafc4.png

Autor edytował komentarz.
edmun   12 #80 23.02.2016 18:12

@trucha13657: gg używalem ale za czasów połączeń modemowych. Odkąd zmienili regulamin to usunąłem konto. złapać można mnie różnie. Zależy czy nie jestem w trasie przez 8 godzin żeby na drugim końcu UK zamontować dodatkową kość pamięci. 1194 jest opisane jako closed że nic tam nie ma. nie znaczy że nie ma przekierowania ale że pod tym portem nic się nie odzywa. Może nie odzywać się z kilku powodów ale sprawdźmy czy w ogóle coś jest chociaż po sieci LAN. Te triggery.. kurcze nigdy triggerów nie używałem a tym bardziej nie używałem przy zwykłym przekierowaniu portów na dany adres IP. Daj znać jakby co - ja zaglądam od czasu do czasu. Szybciej złapiesz mnie na facebooku na messengerze (/fotoslub) niz na gg. Skype'a mam - uzywam ale mysle ze facebookowy messenger wystarczy

Arthuro07   1 #81 21.03.2016 14:38

@edmun: chciałbym się ciebie o jedną rzecz zapytać, nie wiedziałem gdzie o tym napisać, bo tam gdzie o tym wspomniałeś temat był zakładany już jakiś czas temu (2 lata), i sądzę że tutaj łatwiej będzie mi się z tobą skontaktować, a mianowicie chodzi mi o to że tam odradzałeś zakup pendrive SSK 64GB USB3.0 z amazonu, a wiesz może jak wygląda sprawa z innymi pendrive'ami od SSK np. 256 gb lub innymi, czy też są lub mogą być wadliwe, a więc czy ta firma SSK jest godna zaufania, i akurat egzemplarze z serii 64gb pendrive'ów są "gorszej jakości " , czy nie warto jakichkolwiek produktów z tej marki kupować?

edmun   12 #82 21.03.2016 17:33

@Arthuro07: miałem dwa. obydwa padły kompletnie. najgorsze że padły tak że nie było co ratować. już 2 lata chyba mam obraz tego pendrive'a żeby dane odzyskać i wciąż się zastanawiam czy jest tam coś co potrzebuje (jeśli nie potrzebowałem przez 2 lata :D) ogólnie odradzam. Można przenosić nim dane ale bardziej jednak polecałbym metodę kopiuj, wklej usuń, a nie przenieś

Arthuro07   1 #83 22.03.2016 23:50

ok, dzięki za radę, skutecznie odradziłeś mi zakup tego typu pendrive'a ;)
może i są tańsze ale dla mnie ważniejsze jest bezpieczeństwo danych

  #84 31.03.2016 23:56

Fajny wpis dawaj jeszcze ;-)

  #85 04.04.2016 04:43

@Ppetro: "Jak dobrze pójdzie to w okresie świątecznym wrzucę wpis podobny do Twojego o serwerze VPN za 40zł. "

za ile? toć za 40 zł to masz KVM-ke z 2GB ramu w znanej francuskiej firmie+2 serwerki OpenVZ u polskiego hostingowca i jeszcze 5 zł reszty na browara...

beszcza   1 #86 04.04.2016 16:33

W momencie kiedy skrypt od noip chcę dodać do startu systemu wyskakuje mi taki błąd:
pi@raspberrypi:~ $ sudo update-rc.d noip defaults
insserv: Script noip is broken: incomplete LSB comment.
insserv: missing valid name for `Provides:' please add.

beszcza   1 #87 04.04.2016 17:20

Hey!
Podczas dodawania skryptu noip startującego z systemem mam błąd.
pi@raspberrypi:~ $ sudo update-rc.d noip defaults
insserv: Script noip is broken: incomplete LSB comment.
insserv: missing valid name for `Provides:' please add.
Czemu?? Wszystko było robione jak powyżej... Noip nie staruję z systemem muszę go ręcznie wystartować poleceniem sudo /usr/local/bin/noip2

edmun   12 #88 05.04.2016 16:16

@beszcza: Możesz skopiować i wkleić Twój plik /etc/init.d/noip

?
Obstawiam że coś się mogło źle skopiować.
Kopię tego pliku wrzuciłem na szybko na google drive:
https://drive.google.com/file/d/0BzZyI2vXSDHcZmVHdmNYcnQ2bzA/view?usp=sharing

beszcza   1 #89 07.04.2016 20:59

Postawiłem raspbiana na nowo i poszło :) jakby co będę pisał :)

beszcza   1 #90 08.04.2016 11:25

Po paru dniach walki, paru godzinach w dniu wczorajszym nie działa... Nie wiem co jest przyczyną... Ma kompie mam łączenie i tyle. Proszę o pomoc.

edmun   12 #91 09.04.2016 07:45

@beszcza: ok. Będę w stanie pomóc od poniedziałku do piątku. Masz wtedy jakiś czas? Jestem na urlopie ale na upartego włączę komputer w tym czasie żeby podpowiedzieć co i jak :-)

  #92 02.08.2016 20:41

Bardzo przyzwoity wpis, pewnie bez niego skonfigurowanie RPI jako serwera VPN zajęło by mi wieki, choć muszę przyznać, że proces konfiguracji nie był zupełnie pozbawiony pewnych uciążliwości.

Pierwszym problemem było nie wykonywanie się skryptu 'firewall-openvpn-rules.sh' przy starcie systemu bez uprzednich zmian w 'interfaces' na poniższe (o stałe IP maliny dba router, 'manual' przy 'eth0' był już po świeżej instalacji systemu na malinie):

auto eth0
iface eth0 inet manual
pre-up /etc/firewall-openvpn-rules.sh

Ponadto 'iptables' zmieniłem na przedstawione poniżej:

iptables -P FORWARD ACCEPT
iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE

Dodatkowo zauważyłem że w niektórych miejscach w instrukcji zamiast małych liter są wielkie na początku, np: 'Iptables' czy 'Pre-up', możliwe że gdzieś jeszcze poukrywane są podobne niespodzianki.

Nie mniej dzięki wielkie, dzięki Twojemu wpisowi mam swój własny serwer VPN i nie straszne mi już lotniska czy inne przygodne sieci ;)

edmun   12 #93 09.08.2016 12:16

@Anonim (niezalogowany): dziekuje za uwagi. sprobuje niedlugo przejrzec wpis i popoprawiac niektore autokorekty ktore pozamienialy poczatkowe literki.
przy okazji ciesze sie ze jestes kolejna osoba ktora korzysta z raspberry jako VPN :) Sam za chwile lece do Polski i pewnie VPN jak nic mi sie przyda :D
P.S. najlepsze ze bylem 2 tygodnie na urlopie w Polsce. Przeszedlem kawalek Orlej Perci, przejechalem Polske, Niemcy, Holandie, Belgie, Francje i UK aby wrocic do domu (dojechalem wczoraj o pierwszej nad ranem) aby dzisiaj spakowac sie w walizke i leciec do Gdanska na 3 dni (sluzbowo)

Autor edytował komentarz w dniu: 09.08.2016 12:18
  #94 11.11.2016 14:53

Witam
przede wszystkim chce powiedzieć że kawał dobrej roboty :)
ale ja utknąłem na
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa
sprawdziłem że nie ma katalogu "easy-rsa" prawdopodobnie nowsza wersja czy coś takiego można prosić o opomoc
Jako nowy użytkownik PI z Raspbian-em na pokładzie

  #95 14.11.2016 01:58

Iptables -t -nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.0.8

Powinno być
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.0.8