Domowy serwer do wielu zastosowań

Od wielu lat na rynku istnieją dedykowane rozwiązania serwerowe (NAS) do zastosowań domowych. Koszt takich urządzeń zaczyna się od 400 zł, dodatkowo należy dokupić odpowiedni dysk twardy, na którym będziemy przechowywać dane. Dla domowego budżetu to nie jest mała kwota, czy zatem istnieją tańsze rozwiązania, przeznaczone tylko dla kilku użytkowników? Wydaje się, że tak.

Właściwie funkcję domowego serwera może pełnić nawet zwykły komputer stacjonarny, bądź laptop. Zakładając, że nasze urządzenie będzie pracować przez 24 godziny na dobę – nie jest to optymalne rozwiązanie, gdyż koszt prądu będzie stosunkowo wysoki. Wśród użytkowników DIY (do it yourself, tłum. „zrób to sam”) dużą popularnością cieszy się platforma Raspberry Pi. Dużą zaletą tego urządzenia jest niski pobór prądu, jednak specyfikacja sprzętowa (do wersji 3B+) jest zbyt uboga do spełnienia naszych celów. Tylko nowszy model 4B spełnia wszystkie oczekiwania, lecz jego cena wynosi około 200 zł. Wobec tego, jakiego urządzenia szukać?

Przede wszystkim urządzenia, które będzie charakteryzowało się:

  • niskim poborem prądu (średnio do 10-25 W),
  • standardem transmisji Gigabit Ethernet,
  • magistralą SATA,
  • niewielkim kosztem zakupu.

Zwykły, niskiej klasy stacjonarny komputer zużyje średnio około 110W.
W przypadku bezustannego działania, koszty miesięczne przy aktualnej cenie prądu wyniosą wówczas w przybliżeniu 45 zł, dlatego warto szukać urządzenia o małym poborze energii. Urządzanie, którego średnia moc będzie wynosić 20W będzie kosztować nas dodatkowo 9.90 zł miesięcznie w rachunku za prąd.

Do gospodarstw domowych, budynków mieszkalnych, co raz częściej doprowadzony jest już światłowód, który zapewnia szybki, szerokopasmowy dostęp do Internetu, nierzadko z prędkością rzędu do 600 Mb/s. Wobec tego użytkowanie w domowym serwerze gniazda Fast Ethernet (100 Mb/s) jest znacznym ograniczaniem komfortu pracy, także w domowej sieci lokalnej. Gniazdo Gigabit Ethernet (1000 Mb/s) wydaje się być konieczne. Na szczęście jest już standardem i występuje nawet w kilkuletnich, używanych urządzeniach.

Domowy serwer musi spełniać swoją najważniejszą funkcję – przechowywać dane, wobec tego do urządzenia należy podłączyć dysk twardy. Można to zrobić na wiele sposobów, pożądanym wydaje się obecność gniazda SATA, bądź pokrewnych. W zależności od generacji zapewni to przepustowość do 3,0 Gb/s (SATA II). W budżetowych urządzeniach nie zawsze ten interfejs występuje, wówczas pozostaje nam na przykład gniazdo USB. W przypadku podłączenia zewnętrznego dysku wersja 2.0 zapewni przepustowość do 480 Mb/s. To znaczna różnica w stosunku do SATA. Niestety, aktualnie trudno o interfejs USB 3.0 (5 Gb/s) w tanich, używanych sprzętach.

Powyższe warunki spełniają niektóre urządzenia sklasyfikowane przez producentów jako terminale – na przykład Dell OptiPlex FX160, HP Thin Client t5570e, HP Thin Client t5740e. Charakteryzują się niskim poborem energii i małym rozmiarem. Poszczególne urządzenia mogą się różnić, warto sprawdzić dokładnie specyfikację danego terminala. W popularnym serwisie aukcyjnym często pojawiają się w sprzedaży sprowadzane z Niemiec, tanie, używane terminale firmy HP, Dell oraz Fujitsu. Nierzadko ich cena zaczyna się już od 1 zł.

W celu stworzenia domowego serwera zostanie wykorzystany model HP Thin Client t5570e, wylicytowany za kwotę 20 zł, który posiada:

  • procesor VIA Nano U3500 1 GHz (pobór energii do 5 W),
  • pamięć 1 GB DDR3 SDRAM PC3-6400 800 MHz
    (jedno gniazdo, rozszerzalne do 2 GB),
  • dysk 4 GB flash,
  • Gigabit Ethernet,
  • gniazdo SATA II na płycie głównej,
  • wymiary około 22 cm x 21 cm x 6 cm,
  • zasilacz 65W 19V 3.43A z wtyczką 4.8 mm x 1.7 mm.
HP Thin Client t5570e – zdjęcie poglądowe

Powyższa maszyna będzie domowym serwerem NAS, lokalną biblioteką zasobów multimedialnych dla programów Kodi oraz Jellyfin, klientem OpenVPN, serwerem monitoringu, a w przyszłości domową stacją pogodową. Możliwości jest bardzo wiele.

Na urządzeniu domyślnie zainstalowany jest system Microsoft Windows Embedded Standard 7 w niemieckiej wersji językowej, na obudowie znajduje się nawet oryginalna nalepka wraz z kluczem licencyjnym. Ze względu na zapotrzebowanie konieczna jest instalacja systemu Ubuntu Server. W dokumentacji systemu nie ma informacji o oficjalnym wsparciu dla procesorów z serii 3000 – VIA Nano. Producent procesorów twierdzi, że oparte są one 64-bitowej architekturze.

Instalacja Ubuntu Server 18.04

Najnowszą wersję systemu Ubuntu Server można pobrać z oficjalnej strony internetowej.

https://ubuntu.com/download/server

Należy pamiętać, aby była to wersja z odpowiednio długim czasem wsparcia technicznego, oznaczona jako LTS (long-term support). Aktualnie jest to wersja o numerze 18.04.3, przeznaczona tylko dla urządzeń z procesorami w architekturze 64-bit.

Po odpowiedniej konfiguracji, na urządzeniu HP Thin Client t5570e instalacja systemu możliwa jest bezpośrednio z nośnika USB. Do utworzenia „bootowalnego” pendrive zaleca się użycie programu Rufus, którego można ściągnąć z poniższej strony internetowej.

https://rufus.ie/

Przed instalacją systemu, należy w BIOS urządzenia – ustawić odpowiednią hierarchię kolejności odczytywania dysków. Na pierwszym miejscu, tylko na potrzeby instalacji powinien znajdować się „USB Flash Disk”.

Wgrywanie systemu Ubuntu Server zazwyczaj przebiega bezproblemowo, jednak czasami podczas procesu instalacji systemu może pojawić się problem z formatowaniem partycji wbudowanego w urządzeniu dysku „flash„. Jeżeli wcześniej znajdował się na nim system Windows Embedded 7, to istnieje wysokie prawdopodobieństwo, że aktualny system plików to exFAT, z którym instalator Ubuntu ma problem. Wobec czego przed uruchomieniem instalatora należy usunąć wszystkie stare partycje. Można to zrobić z konsoli, uruchamiając wcześniej system w trybie „live„.

Aby zobaczyć listę dysków oraz partycje należy w konsoli użyć poniższej komendy.

sudo fdisk -l 

Następnie, polecenie uruchomić program do zarządzania partycjami.

sudo parted

Wybór odpowiedniego dysku.

select /dev/sda 

Zamiast „/dev/sda” może być to inna nazwa, w zależności od liczby dysków w komputerze. Dalej, aby zobaczyć listę partycji oraz ich numery, używamy poniższej komendy.

p

Usunięcie dwóch lub więcej partycji.

rm 1
rm 2

Wyjście z programu.

q

W celu weryfikacji poprawności usunięcia partycji, można jeszcze raz zweryfikować listę.

sudo fdisk -l

Po wykonaniu powyższych czynności można przystąpić do instalacji systemu Ubuntu Server.

W trakcie instalacji, przy wyborze oprogramowania warto zaznaczyć dwie opcje:

  • OpenSSH server
  • Samba file server

Oba pakiety programów będą potrzebne do dalszej konfiguracji maszyny, jednakże można doinstalować je później. W trakcie instalacji systemu warto podłączyć urządzenie do Internetu, aby instalator w trakcie wgrywania pobrał wszystkie najnowsze pakiety. Należy zawsze używać mocnych haseł. Proces instalacji jest bardzo prosty i odbywa się w języku polskim.

W razie kłopotów, pomocą służy Google. „Jak zainstalować Ubuntu Server 18.04?”

Ważne czynności po instalacji systemu

Po instalacji Ubuntu Server, aby w pełni zabezpieczyć serwer należy przeprowadzić kilka niezbędnych czynności.

  1. aktualizację oprogramowania
  2. zmianę portu protokołu SSH
  3. ustawienie zapory sieciowej
  4. instalację programu fail2ban
  5. sprawdzić ustawienia lokalizacyjne
  6. instalację opcjonalnych programów
1. Aktualizacja oprogramowania

Niezwłocznie po instalacji systemu należy zaktualizować wszelkie pakiety. W tym celu w konsoli należy skorzystać z opcji:

Aktualizacja listy pakietów.

sudo apt update

Instalacja aktualizacji.

sudo apt upgrade

Usuwanie niepotrzebnych w systemie pakietów.

sudo apt autoremove

Po wykonaniu powyższych czynności można zresetować serwer.

sudo reboot
2. Zmiana portu protokołu SSH

OpenSSH jest najpopularniejszym narzędziem umożliwiającym zdalne logowanie za pomocą protokołu SSH. Jest to niezbędne narzędzie do dalszej pracy i konfiguracji serwera. Jeżeli narzędzie nie zostało zainstalowane razem z instalacją systemu Ubuntu Server, należy zainstalować je ręcznie.

sudo apt install openssh

Jeżeli serwer nie będzie dostępny publicznie, na tym można zakończyć, w przeciwnym wypadku, zaleca się zmianę portu protokołu SSH.

Dlaczego należy zmieniać port SSH?

Domyślnym portem protokołu SSH jest 22. Przeniesienie portu SSH chroni serwer przed zautomatyzowanymi atakami. W przypadku niezmienionej wartości trzeba liczyć się z tym, że w dzienniku zdarzeń systemowych pojawią się liczne wpisy świadczące o tym, że z różnych nieznanych nam adresów IP – nastąpiła nieudana próba zalogowania się do systemu, głównie z azjatyckich numerów IP. Gdy zmienimy port, zminimalizujemy ilość takich prób.

Na jaki numer portu należy zmienić protokół SSH?

Na port mniejszy niż 1024. Ważne jest przy tym, aby nie powodował konfliktów z innymi protokołami. Cześć portów jest zarezerwowana już na inne usługi systemu.

Listę standardowych usług można podglądnąć na Wikipedii.

https://pl.wikipedia.org/wiki/Port_protoko%C5%82u

Na przykład dla HTTP są to porty o numerach 80, 443. Można również używać portów większych od 1024, należy jednak uważać przy tym na innych, lokalnych użytkownikach serwera. Mogą oni spowodować atak DoS, nasłuchując na tym porcie. Nie stanowi to problemu, gdy dostęp do serwera ma zaufane, małe grono.

Najlepszym wyborem wydaje się port 224.

Aby zmienić port należy edytować plik konfiguracyjny serwera SSH.

sudo nano /etc/ssh/sshd_config

Następnie znaleźć linijkę.

Port 22

Zamienić ją na:

Port 224

Następnie zapisać plik i dokonać restartu usługi SSH poprzez:

sudo systemctl restart ssh

Po zmianie portu usługi, należy pamiętać, aby otworzyć ten port w ustawieniach zapory sieciowej.

3. Ustawienia zapory sieciowej

Domyślnie za ustawienia filtrowania pakietów odpowiada program iptables, jednak dla niektórych użytkowników może wydawać się skomplikowany w obsłudze, wobec tego korzystniejszym rozwiązaniem jest korzystanie z ufw, który domyślnie jest wyłączony.

Włącznie programu.

sudo ufw enable

Sprawdzenie statusu działalności.

sudo ufw status

Włącznie możliwości korzystania z protokołu 224 dla połączeń przychodzących.

sudo ufw allow 224

W ten sposób można włączyć wiele innych portów.

4. Instalacja programu fail2ban

fail2ban – to program, który monitoruje określone pliki dziennika zdarzeń systemowych pod kątem nieudanych prób logowania do systemu, następnie blokuje te adresy IP dodając nowe regułę do iptables.

Instalacja programu.

sudo apt install fail2ban

Uruchomienie usługi.

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

Plik konfiguracyjny programu znajduje się w lokalizacji:

/etc/fail2ban/jail.local

Jeżeli jest pusty, bądź nie istnieje należy go utworzyć z poniższą zawartością.

[sshd]
enabled = true
port = 224
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Właściwość maxretry = 3, powoduje blokadę adresu IP po trzech nieudanych próbach logowania.

Po zapisaniu pliku, należy zrestartować usługę:

sudo systemctl restart fail2ban

Kolejne kroki już niebawem…

W kolejnych wpisach zamieszczę informację, o tym jak na tym urządzeniu:

  • uruchomić serwer plików SAMBA,
  • skonfigurować urządzenie jako klient OpenVPN,
  • uruchomić serwer monitoringu z wykorzystaniem zwykłej kamerki internetowej na USB,
  • przechowywać lokalną konfigurację programu KODI,
  • uruchomić serwis Jellyfin (własny Netflix),
  • własna stacja pogodowa z wykorzystaniem Arduino.

Instalacja i konfiguracja serwera OpenVPN w systemie CentOS 7

OpenVPN – to w pełni darmowe rozwiązanie, pozwalające tworzyć wirtualne sieci prywatne

OpenVPN – to w pełni darmowe rozwiązanie, pozwalające tworzyć wirtualne sieci prywatne.

Aby poznać dłuższą definicję, zainteresowanych odsyłam na Wikipedię.

https://pl.wikipedia.org/wiki/OpenVPN

Właściwe co daje nam prywatny VPN?

Pozwala ukryć nasz prawdziwy adres IP

Nie oznacza to jednak, że połączenie będzie w pełni anonimowe. Będziemy dalej rozpoznawalni w sieci tylko pod innym adresem IP. Czasami jest to przydane, gdy na przykład będąc poza Polską chcemy korzystać z usług dostępnych tylko na terenie naszego kraju. Niestety zakładając własny serwer VPN na komercyjnym VPS (Virtual Private Server) nawet z polskim adresem IP, nie zadziałają takie usługi jak Netflix, Showmax czy NC+ Go. Ich algorytmy prawdopodobnie wykryją, że nasz adres IP nie jest tym od usługodawcy. Mogą zablokować dostęp, gdyż adres IP jest w bazie adresów przydzielonych do VPS.

Szyfruje ruch pomiędzy urządzeniem a serwerem VPN

W takim przypadku usługodawca internetowy nie będzie w stanie podsłuchać naszego ruchu. Wielu operatorów analizuje ruch sieciowy pod kątem przesyłanych treści. Dla usług typu VoIP lub streaming video ruch może być sztucznie spowolniony, tak, aby „zrobić miejsce” dla innych usług. Jest to wbrew zasadzie mówiące o neutralności sieci. W Polsce jednak nie ma żadnych regulacji prawnych zabraniających takich praktyk. Krótko mówiąc korzystając z prywatnego VPN można sprawić, że YouTube będzie dział szybciej.

Wymagania

  • własny serwer z publicznym IP i systemem CentOS 7
  • dostęp do root
  • urządzenie klienckie typu telefon komórkowy z Androidem lub zwykły PC

Krok – 1 Aktualizacja systemu

Przed rozpoczęciem konfiguracji usługi OpenVPN niezbędnym jest aktualizacja systemu.

yum update -y        

Po wykonanej aktualizacji uruchamiamy ponownie maszynę.

reboot

Krok 2 – Instalacja niezbędnych pakietów

OpenVPN nie jest dostępny w domyślnych repozytoriach systemu CentOS, wobec tego należy zainstalować go z dodatkowego repozytorium (Extra Packages for Enterprise Linux), które zawiera niestandardowe, niemniej popularne pakiety.

yum install epel-release -y

Po instalacji odświeżamy listę pakietów w systemie.

yum update -y

Następnie przechodzimy do instalacji niezbędnych do uruchomienia serwera VPN pakietów.

yum install -y openvpn wget nano

Pakiety wget oraz nano są opcjonalne, gdyż mogą być już dostępne w systemie.

wget – program służący do pobierania plików z Internetu za pośrednictwem protokołów HTTP

nano – prosty edytor tekstowy

Jeżeli instalator OpenVPN nie utworzył nowego folderu /etc/openvpn, należy stworzyć go samodzielnie. W tym folderze przechowywane będą pliki konfiguracyjne serwera VPN.

mkdir /etc/openvpn

Do tego folderu należy skopiować domyślny plik konfiguracyjny usługi.

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn

Następnie instalujemy „Easy RSA”. Jest to narzędzie służące do tworzenia i zarządzania certyfikatami dla potrzeb OpenVPN.

yum install easy-rsa -y

Narzędzie „Easy RSA” prawdopodobnie zainstaluje się w najnowszej – trzeciej wersji. Mimo to, z uwagi na liczną dokumentacje oraz wsparcie innych użytkowników dla starszych wersji, polecam instalację tego oprogramowania oznaczoną numerem 2.3.3.

Starszą wersje można pobrać w poniższy sposób:

wget -O /tmp/easyrsa https://github.com/OpenVPN/easy-rsa-old/archive/2.3.3.tar.gz

Plik zostanie pobrany do katalogu tymczasowego, przechodzimy do niego.

cd /tmp

Należy wypakować pobrane archiwum.

tar xfz /tmp/easyrsa

Tworzymy nowy folder i kopiujemy do niego pliki z wypakowanego archiwum.

mkdir /etc/openvpn/easy-rsa
cp -rf easy-rsa-old-2.3.3/easy-rsa/2.0/* /etc/openvpn/easy-rsa

Krok 3 – Konfiguracja serwera

Przechodzimy do edycji domyślnego pliku konfiguracji serwera OpenVPN.

nano /etc/openvpn/server.conf

W pliku konfiguracyjnym należy zmienić treść kilku linijek, zwykle usuwając średnik z początku linii.

Pierwsza linijki, którą należy odszukać jest:

push "redirect-gateway def1 bypass-dhcp"

Oczywiście usuwamy średnik z początku wyrażenia. Dzięki temu ustawieniu klient przekieruje cały ruch przez serwer OpenVPN. Uwaga, jeżeli w systemie posiadamy już inne niestandardowe konfiguracje związane z siecią, włącznie tej funkcji może spowodować problemy z działaniem niektórych usług sieciowych, na przykład z SSH.

Łącząc się z serwerem VPN nie będziemy mogli korzystać z domyślnych serwerów DNS dostarczonych przez dostawcę usług internetowych (jego ruch zostanie przekierowany), musimy zatem wskazać, które serwery DNS będą wykorzystywane do połączenia się z OpenVPN. Można wskazać dowolne, najczęściej użytkownicy polecają serwery DNS od Google (8.8.8.8 oraz 8.8.4.4). Polecam skorzystanie z adresów OpenDNS (208.67.222.222 i 208.67.220.220)

OpenDNS dodatkowo oferuje adresy DNS 208.67.222.123 oraz 208.67.220.123, które blokują strony pornograficzne oraz złośliwe oprogramowanie. Pozytywnym efektem ubocznym w OpenDNS jest blokowanie niektórych reklam w serwisach VOD.

W pliku konfiguracyjnym szukamy dwóch wierszy zaczynających się od:

;push "dhcp-option DNS …"

Zamieniamy ich treść, wpisując wybrane przez nas adresy DNS.

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

Następnie zmieniamy ustawienia tak, aby usługa OpenVPN na naszym serwerze mogła być uruchomiona bez żadnych dodatkowych przywilejów, wobec to szukamy poniższych linijek, w których usuwamy średnik.

user nobody
group nobody

Opcjonalnie w pliku konfiguracyjnym można zmienić numer portu usługi. Jest to dodatkowe zabezpieczenie przed atakami na serwer VPN.

port 1194

1194 zamieniamy na przykład na 11194. Numer port musi być większy od 1024, aby serwer mógł działać bez uprawnień root.

Zapisujemy zmiany w pliki i zamykamy go.

Krok 4 – Generowanie kluczy i certyfikatów

Tworzymy katalog, w którym przechowywane będą klucze oraz certyfikaty.

mkdir /etc/openvpn/easy-rsa/keys

Edytujemy plik, w którym znajdują się informacje na temat wydawcy certyfikatów.

nano /etc/openvpn/easy-rsa/vars

Szukamy linijek (prawdopodobnie są na samym końcu pliku), zawierających słowo export

export KEY_COUNTRY="CA"
export KEY_PROVINCE="QC"
export KEY_CITY="Montreal"
export KEY_ORG="Globotech"
export KEY_EMAIL="abuse@example.com"
export KEY_OU="IT"
export KEY_NAME="hostname"

Zamieniamy hostname (lub inne) na server w wyrażeniu KEY_NAME

export KEY_NAME="server"

Pozostałe parametry można opcjonalnie zmienić, dostosowując je do naszych potrzeb.

export KEY_COUNTRY="PL"
export KEY_PROVINCE="Malopolskie"
export KEY_CITY="Krakow"
export KEY_ORG="VPN"
export KEY_EMAIL="vpn@nazwanaszejstrony.pl"
export KEY_OU="VPN"
export KEY_NAME="server"

Zapisujemy plik i zamykamy go.

Kopiujemy plik konfiguracyjny OpenSSL do innej ścieżki.

cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

Nadszedł czas na wygenerowanie kluczy i certyfikatów. Przechodzimy pod wskazany folder i wykonujemy poniższą komendę.

cd /etc/openvpn/easy-rsa
source ./vars

Uruchamiamy skrypt czyszczący wszystkie poprzednio wygenerowane certyfikaty dla serwera i klientów.

./clean-all

Tworzymy urząd certyfikacji. Podczas wykonywania skryptu zostaniemy zapytani o wcześniej wprowadzone wartości. Za każdym razem należy kliknąć klawisz ENTER.

./build-ca

Powyższy skrypt wygeneruje plik ca.key. Jest to tzw. klucz prywatny używany do podpisywania certyfikatów serwera i klientów. Jeżeli utracimy dostęp do tego pliku, nie będzie można wygenerować nowych certyfikatów. Jeśli dostęp do pliku otrzymają osoby niepowołane, to będą mogły połączyć się z serwerem VPN bez naszej wiedzy.

Zaleca się, aby plik przechowywać w dobrze zabezpieczonej lokalizacji. Nawet bez dostępu do sieci.

Następnie tworzymy certyfikat dla serwera. W tym przypadku również zostaniemy poproszeni o potwierdzenia danych certyfikatu. Za każdym razem należy kliknąć ENTER. Dodatkowo program zapyta o hasło i opcjonalną nazwę firmy. Oba pola można pozostawić puste. Gdy wpiszemy hasło, podczas łączenia klienta z serwerem VPN będzie trzeba je podać. Na samym końcu potwierdzamy stworzenie certyfikatu klikając Y.

./build-key-server server

Ostatnią częścią tworzenia kluczy dla serwera jest wygenerowanie pliku wymiany (kluczy Diffiego-Hellmana). Poniższa operacja może trwać kilka minut.

./build-dh

Wygenerowane klucze kopiujemy do głównego folderu konfiguracji OpenVPN

cd /etc/openvpn/easy-rsa/keys
cp dh2048.pem ca.crt server.crt server.key /etc/openvpn

Każdy klient, który będzie łączył się z OpenVPN również potrzebuje klucza i certyfikatu, aby serwer mógł go uwierzytelnić. Przechodzimy do katalogu easy-rsa

cd /etc/openvpn/easy-rsa

Uruchamiamy program tworzący certyfikaty dla klienta. Słowo „client” to nazwa użytkownika, można je dowolnie zmienić. Jeżeli spodziewamy się wielu klientów – nazwę można określić jako nazwę hosta np. „pcdom” lub nazwę urządzenia np. „android”. Krok ten można wykonać wielokrotnie – w zależności od liczby spodziewanych klientów.

./build-key pcdom
./build-key android

Klucze i certyfikaty w postaci plików zostaną wygenerowane na serwerze. Należy je skopiować do urządzeń klienckich, wykonamy to w ostatnim kroku.

Krok 5 – Routing

Domyślnie CentOS korzysta z narzędzia o nazwie firewalld, które zapewnia dynamiczne zarządzanie zaporą sieciową. Ze względu na brak doświadczenia w pracy z tym narzędziem polecam skorzystanie z narzędzia iptables.

Instalujemy narzędzie iptables

yum install iptables-services -y

Po instalacji nowego programu wyłączamy usługę związaną z firewalld

systemctl mask firewalld
systemctl stop firewalld

Włączamy nową usługę.

systemctl enable iptables
systemctl start iptables

Dodatkowo profilaktycznie czyścimy konfigurację iptalbles

iptables –flush

Dodajemy nową regułę związaną z uruchomieniem serwisu OpenVPN

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables

Następnie edytujemy plik

nano /etc/sysctl.conf

w którym dodajemy linijkę, która odpowiada za przekazywanie adresów IP

net.ipv4.ip_forward = 1

Dodanie powyższej linijki spowoduje przekierowanie całego ruchu internetowego z klienta na adres IP serwera, a publiczny adres IP klienta zostanie skutecznie ukryty.

Krok 6 – Uruchomienie usług

W systemie CentOS włączamy i uruchamiamy usługę VPN.

systemctl -f enable openvpn@server.service
systemctl start openvpn@server.service

Aby sprawdzić status uruchomionej usługi należy wpisać

systemctl status openvpn@server.service

W przypadku poprawnie uruchomionej usługi, na ekranie powinniśmy zobaczyć między innymi fragment tekstu:

Active: active (running) 

Jeżeli usługa nie została uruchomiona poprawnie, można sprawdzić czy plik konfiguracyjny jest na pewno prawidłowy.

openvpn --config /etc/openvpn/server.conf

Skrypt wskaże nam ewentualne błędy w pliku konfiguracyjnym usługi.

Krok 7 – Konfiguracja klienta i łączenie z serwerem OpenVPN

Niezależnie od systemu operacyjnego klienta, aby połączyć się z serwerem OpenVPN należy mieć dostęp do klucza oraz certyfikatów wygenerowanych dla danego klienta. Żądane pliki są w poniższej lokalizacji

/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/pcdom.crt
/etc/openvpn/easy-rsa/keys/pcdom.key
/etc/openvpn/easy-rsa/keys/android.crt
/etc/openvpn/easy-rsa/keys/android.key

Aby połączyć się z serwerm OpenVPN, należy użyć oprogramowania klienckiego. W zależności od systemu operacyjnego

Dla systemu Windows program można pobrać ze strony:

Plik: openvpn-install-2.4.5-I601.exe (lub podobny)

Tworzymy plik pcdom.ovpn

client
dev tun
proto udp
remote ADRES_IP_SERWERA PORT_USŁUGI
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
<ca>
//Tutaj tak wklejamy zawartość pliku ca.crt
</ca>
<crt>
//Tutaj wklejamy zawartość pliku np. pcdom.crt
</crt>
<key>
//Tutaj wklejamy zawartość pliku np. pcdom.key
</key>

Podmieniamy adres IP serwera oraz numer portu usługi.

W znaczniki ca, cert oraz key, wklejamy odpowiednio zawartość plików ca.crt, pcdom.crt, pcdom.key

Dla systemu Android polecam aplikację „OpenVPN for Android”

https://play.google.com/store/apps/details?id=de.blinkt.openvpn

Informacje na temat liczby połączeń z serwerem VPN można sprawdzić przy pomocy:

cat /etc/openvpn/openvpn-status.log

Nagrywanie obrazu Raspbian na kartę pamięci w systemie Linux Mint

Raspbian to podstawowy systemem operacyjny przeznaczony na urządzenia z rodziny Raspberry Pi

Raspbian to podstawowy systemem operacyjny przeznaczony na urządzenia z rodziny Raspberry Pi.

Aby pobrać najnowszy obraz należy odwiedzić poniższą stronę.

Do wyboru są dwie wersje systemu, pierwsza z graficzną nakładką, druga minimalistyczna tylko z najważniejszymi komponentami. Dla początkujących użytkowników zaleca się pełną wersje systemu. Należy pobierać plik z rozszerzeniem ZIP o nazwie:

2017-09-07-raspbian-stretch.zip

Nazwa pliku może ulec zmianie w momencie wydania nowej wersji systemu.

Następnie należy rozpakować plik. W tym celu można uruchomić konsolę (skrót klawiszowy CTRL + ALT + T), dalej przejść pod ścieżkę, gdzie został pobrany plik.

cd ~/Pobrane

Rozpakować plik poleceniem:

unzip 2017-09-07-raspbian-stretch.zip

W folderze Pobrane pojawi się nowy plik o nazwie:

2017-09-07-raspbian-stretch.img

Do nagrania obrazu posłuży karta polskiej marki Goodram – MicroSD 16GB klasy 10, zapewniającej transfer 10 MB/s.

Po włożeniu karty do czytnika, a przed przystąpieniem do nagrywania systemu na kartę pamięci, należy sprawdzić w systemie operacyjnym nazwę dysku.

fdisk –l

Disk /dev/sdc: 14,5 GiB, 15523119104 bytes, 30318592 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1a5d9307
Urządzenie Rozruch Start Koniec Sektory Size Id Typ
/dev/sdc1 2048 30318591 30316544 14,5G 7 HPFS/NTFS/exFAT

W tym przypadku nazwą jest /dev/sdc. Nazwę można poznać po pojemności urządzenia wyświetlonej na ekranie.

Do nagrywania obrazu na kartę pamięci służy program o nazwie dd

dd bs=4M if=2017-09-07-raspbian-stretch.img of=/dev/sdc conv=fsync

Proces nagrywania trwa około 10 – 12 minut.