Koncepcja bezpiecznego dostępu do Internetu z VPN na smartfonie Anonimowy i bezpieczny Internet na telefonie komórkowym Pulpit z zdjęciem w tle technologii laptopa
Cyberbezpieczeństwo, Internet, Komputery

VPN na Ubuntu – konfiguracja i polecane usługi

W dzisiejszym świecie prywatność w sieci i ominięcie blokad geograficznych to podstawa dla użytkowników Ubuntu. VPN (Virtual Private Network) szyfruje ruch internetowy, chroniąc przed podsłuchem i umożliwiając dostęp do treści zablokowanych w danym regionie.

W tym poradniku pokazujemy pełną konfigurację VPN na Ubuntu – od własnego serwera OpenVPN po podłączenie do komercyjnych usług. Proces jest dostosowany do Ubuntu 20.04/22.04 LTS i działa także na nowszych wersjach z minimalnymi zmianami.

Dlaczego VPN na Ubuntu – korzyści i ryzyka

VPN na Linuksie, takim jak Ubuntu, zapewnia szyfrowanie end‑to‑end, maskowanie IP i ochronę w publicznych sieciach Wi‑Fi. Ubuntu wspiera protokoły jak OpenVPN (bezpieczny, lecz często wolniejszy) i WireGuard (bardzo szybki i lekki). Ryzyka dotyczą głównie słabej konfiguracji – spadków prędkości i wycieków DNS.

Najważniejsze korzyści z użycia VPN na Ubuntu:

  • szyfrowanie całego ruchu sieciowego,
  • maskowanie adresu IP i lokalizacji,
  • ochrona w publicznych sieciach Wi‑Fi,
  • ominięcie blokad geograficznych.

Zawsze testuj konfigurację po połączeniu – przykładowo poleceniem curl ifconfig.me lub curl ipinfo.io, a także testem DNS‑leak.

Wymagania wstępne do konfiguracji serwera VPN

Poniżej znajdziesz listę wymagań, które ułatwią płynne przejście przez konfigurację:

  • serwer VPS z Ubuntu 20.04+ (np. 1 GB RAM, publiczne IP),
  • dostęp root (lub sudo),
  • podstawowa znajomość terminala,
  • czas: 30–60 minut.

Dla klientów: zainstalowany Ubuntu Desktop/Server oraz prawa do instalacji pakietów.

Część 1 – postawienie własnego serwera VPN z OpenVPN (krok po kroku)

OpenVPN to darmowe, open‑source’owe rozwiązanie polecane do samodzielnej konfiguracji. Poniższe kroki bazują na sprawdzonych praktykach administracyjnych.

Krok 1 – aktualizacja systemu i instalacja OpenVPN + Easy‑RSA

Otwórz terminal i zaktualizuj pakiety, a następnie zainstaluj potrzebne komponenty:

sudo apt update && sudo apt upgrade -y
sudo apt install openvpn easy-rsa ufw -y

Pakiet Easy‑RSA służy do generowania certyfikatów SSL/TLS i zarządzania infrastrukturą kluczy (PKI).

Krok 2 – generowanie certyfikatów z Easy‑RSA

Utwórz katalog roboczy i przejdź do niego:

make-cadir ~/easy-rsa
cd ~/easy-rsa

Skonfiguruj plik vars (np. edytorem nano vars) i ustaw pola organizacyjne, np. set_var EASYRSA_REQ_COUNTRY "PL". Zainicjuj PKI i wygeneruj klucze/certyfikaty:

./easyrsa init-pki
./easyrsa --batch build-ca nopass
./easyrsa gen-dh
openvpn --genkey --secret pki/ta.key
./easyrsa build-server-full server nopass
./easyrsa build-client-full client1 nopass

Następnie skopiuj wymagane pliki do katalogu konfiguracyjnego OpenVPN:

sudo cp pki/ca.crt pki/private/ca.key pki/dh.pem pki/ta.key pki/issued/server.crt pki/private/server.key /etc/openvpn/
sudo chown -R root:root /etc/openvpn/

Krok 3 – konfiguracja serwera OpenVPN

Skopiuj przykładowy plik i otwórz go do edycji:

sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
sudo nano /etc/openvpn/server.conf

Wprowadź kluczowe zmiany w /etc/openvpn/server.conf (port, protokół, szyfrowanie, DNS):

port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key
dh dh.pem

server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"

keepalive 10 120
tls-auth ta.key 0
cipher AES-256-GCM

user nobody
group nogroup
persist-key
persist-tun

Upewnij się, że używasz szyfrowania AES‑256‑GCM oraz przekierowania bramy, aby cały ruch przechodził przez VPN.

Krok 4 – konfiguracja firewalla (UFW) i NAT

Dodaj podstawowe reguły w UFW, aby zezwolić na SSH i ruch OpenVPN:

sudo ufw allow OpenSSH
sudo ufw allow 1194/udp
sudo ufw enable

Włącz IP forwarding i skonfiguruj NAT, by klienci mieli dostęp do Internetu:

# włącz forwardowanie IPv4
sudo sed -i 's/^#\?net.ipv4.ip_forward=.*/net.ipv4.ip_forward=1/' /etc/sysctl.conf
sudo sysctl -p

# NAT (dopasuj interfejs WAN, np. eth0/ens3)
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo apt install iptables-persistent -y

Zapisz reguły iptables podczas instalacji iptables‑persistent, aby przetrwały restart systemu.

Krok 5 – uruchomienie serwera i przygotowanie klienta

Uruchom i włącz usługę OpenVPN, a następnie sprawdź jej status:

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
sudo systemctl status openvpn@server

Utwórz skrypt do generowania plików .ovpn dla klientów (zamień TWOJ_IP na adres publiczny serwera):

#!/bin/bash
NAME=$1
PKI_DIR=~/easy-rsa/pki
OUTPUT_DIR=~/client-configs/files
mkdir -p "$OUTPUT_DIR"

echo "client
dev tun
proto udp
remote TWOJ_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
key-direction 1
<ca>" > $OUTPUT_DIR/$NAME.ovpn

cat $PKI_DIR/ca.crt >> $OUTPUT_DIR/$NAME.ovpn
echo "</ca>
<cert>" >> $OUTPUT_DIR/$NAME.ovpn

cat $PKI_DIR/issued/$NAME.crt >> $OUTPUT_DIR/$NAME.ovpn
echo "</cert>
<key>" >> $OUTPUT_DIR/$NAME.ovpn

cat $PKI_DIR/private/$NAME.key >> $OUTPUT_DIR/$NAME.ovpn
echo "</key>
<tls-auth>" >> $OUTPUT_DIR/$NAME.ovpn

cat $PKI_DIR/ta.key >> $OUTPUT_DIR/$NAME.ovpn
echo "</tls-auth>" >> $OUTPUT_DIR/$NAME.ovpn

Nadaj uprawnienia i wygeneruj pierwszy profil klienta:

chmod +x ~/client-configs/make_config.sh
~/client-configs/make_config.sh client1

Skopiuj plik ~/client-configs/files/client1.ovpn na urządzenie klienta (np. przez SCP lub SFTP).

Krok 6 – połączenie klienta na Ubuntu

Zainstaluj obsługę OpenVPN w środowisku graficznym:

sudo apt install openvpn network-manager-openvpn-gnome -y

Po instalacji możesz użyć interfejsu graficznego: ikona sieci > Ustawienia > VPN > Dodaj > OpenVPN > wskaż plik client1.ovpn i zapisz. Alternatywnie w terminalu uruchom: sudo openvpn --config client1.ovpn.

Dodatkowe zabezpieczenia – włącz 2FA (np. Google Authenticator) przez instalację google-authenticator i integrację z PAM oraz server.conf.

Alternatywa – WireGuard – szybszy VPN na Ubuntu

WireGuard zapewnia wyższą wydajność, prostszą konfigurację i nowoczesną kryptografię w porównaniu z OpenVPN.

Instalacja i wygenerowanie kluczy na serwerze:

sudo apt install wireguard -y
wg genkey | tee private.key | wg pubkey > public.key

Skonfiguruj interfejs w /etc/wireguard/wg0.conf (adresy, klucze, peers), a następnie uruchom usługę:

sudo systemctl enable --now wg-quick@wg0

Dla klientów możesz generować konfiguracje oraz kody QR (np. wg-quick + narzędzie qrencode) do szybkiego parowania.

Część 2 – polecane usługi VPN komercyjne – analiza recenzji

Jeśli nie chcesz utrzymywać własnego serwera, wybierz płatne VPN z natywnym wsparciem Ubuntu. Analiza poniżej opiera się na recenzjach z forów IT, YouTube i stron dostawców.

Poniżej znajdziesz porównanie popularnych usług pod kątem wsparcia dla Ubuntu:

Usługa Ocena średnia (z recenzji) Zalety na Ubuntu Wady Cena (mies.) Protokoły
Hide.me 4.7/5 Aplikacja natywna (GUI/CLI), brak logów, serwery w Polsce; prosta konfiguracja w NetworkManager. Limit danych w wersji free. 10–15 zł OpenVPN, WireGuard
ExpressVPN 4.8/5 Natywny klient, ponad 3000 serwerów, bardzo stabilne połączenia na Ubuntu. Wyższa cena. 40–50 zł Lightway, OpenVPN
NordVPN 4.6/5 Klient .deb dla Linuksa, opcja Onion over VPN, dobre opinie pod kątem P2P. Niekiedy niższe prędkości na serwerach PL. 15–25 zł NordLynx (WireGuard)
Surfshark 4.5/5 Nielimitowana liczba urządzeń, przystępna cena, łatwy import profili .ovpn. Mniej lokalnych serwerów w Polsce. ok. 10 zł WireGuard

Hide.me wyróżnia się na Ubuntu prostą instalacją – pobierasz konfiguracje z panelu i importujesz je w Ustawieniach sieci (VPN). Inni dostawcy (np. SmartDNSProxy) wymagają podania bramy, użytkownika/hasła oraz certyfikatu CA/TLS – import przez NetworkManager działa bezproblemowo.

Aby zainstalować klienta uniwersalnego (np. zdalny dostęp do korporacyjnych bram Cisco/Palo Alto), użyj poniższych kroków:

wget https://example.com/snx_install.sh
sudo sh snx_install.sh
sudo apt install libpam0g:i386 libstdc++5:i386 libx11-6:i386

Po instalacji połącz się poleceniem:

snx -s vpn.server.com -u user

Rozwiązywanie problemów

Poniżej zebraliśmy najczęstsze problemy i ich szybkie rozwiązania:

  • brak połączenia – sprawdź firewall (ufw status), otwarcie portu 1194/UDP oraz IP forwarding;
  • wycieki DNS – dodaj w serwerze push "dhcp-option DNS 1.1.1.1" albo skonfiguruj własny resolver;
  • wolne prędkości – przełącz się na WireGuard lub upewnij się, że używasz AES‑256‑GCM;
  • test połączenia – wykonaj curl ipinfo.io przed i po połączeniu oraz test prędkości speedtest-cli.

Testuj zawsze po każdej zmianie konfiguracji – szybciej wykryjesz błędy i unikniesz wycieków danych.

Dodaj komentarz

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