Kompletna konfiguracja OpenVPN dla urządzeń Carel Boss na Rocky Linux 9.5
Wymagania wstępne
- Serwer Rocky Linux 9.5 z dostępem root/sudo
- Publiczny IP lub domena dostępna na porcie 1194/UDP
- Dostęp do interfejsu webowego Boss w celu wgrania certyfikatów klienta
Krok 1: Instalacja wymaganych pakietów
sudo dnf -y install epel-release
sudo dnf -y install openvpn easy-rsa
Dlaczego:
epel-release— włącza repozytorium Extra Packages for Enterprise Linuxopenvpn— instaluje serwer VPN oraz pliki systemdeasy-rsa— dostarcza skrypty do tworzenia prywatnego CA i wydawania certyfikatów
Krok 2: Przygotowanie katalogu Easy-RSA
sudo mkdir -p /etc/openvpn/server/easy-rsa
sudo cp -r /usr/share/easy-rsa/3/* /etc/openvpn/server/easy-rsa/
cd /etc/openvpn/server/easy-rsa
Dlaczego:
- Tworzysz dedykowane środowisko PKI (porządek i izolacja)
- Kopiujesz skrypty Easy-RSA, aby PKI było samodzielne
- Przechodzisz do katalogu, żeby uruchamiać polecenia CA/PKI
Krok 3: Definiowanie domyślnych wartości certyfikatów (vars)
Edytuj plik:
nano /etc/openvpn/server/easy-rsa/vars
Dodaj:
set_var EASYRSA_REQ_COUNTRY "PL"
set_var EASYRSA_REQ_PROVINCE "Malopolskie"
set_var EASYRSA_REQ_CITY "Krakow"
set_var EASYRSA_REQ_ORG "BossVPN"
set_var EASYRSA_REQ_EMAIL "admin@icelab.pl"
set_var EASYRSA_REQ_OU "IT"
Dlaczego: Wstępne wypełnienie pól certyfikatu — spójność i szybkość.
Krok 4: Budowa PKI, CA, kluczy serwera i DH
./easyrsa init-pki
./easyrsa --batch build-ca nopass
./easyrsa --batch build-server-full boss-vpn nopass
./easyrsa gen-dh
./easyrsa gen-crl
Dlaczego:
init-pki— tworzy strukturę katalogów PKIbuild-ca— tworzy główny urząd certyfikacji (chroń jego klucz prywatny!)build-server-full— wydaje certyfikat tożsamości serweragen-dh— zapewnia bezpieczną wymianę kluczygen-crl— pozwala serwerowi odrzucać unieważnione certyfikaty klientów
Krok 5: Konfiguracja serwera OpenVPN
Edytuj plik:
nano /etc/openvpn/server/boss-vpn.conf
Minimalna konfiguracja produkcyjna:
# === Sieć ===
port 1194 # Port UDP dla VPN
proto udp # UDP jest szybszy dla VPN
dev tun # Tunel warstwy 3 (routing)
topology subnet # Nowoczesny model adresowania
server 10.200.0.0 255.255.255.0 # Podsieć VPN (serwer .1, klienci .2-.254)
# === Bezpieczeństwo / hardening ===
user nobody # Zrzuć uprawnienia po starcie
group nobody
tls-version-min 1.2 # Wymuś nowoczesny TLS
data-ciphers AES-256-GCM # Preferowany szyfr danych
data-ciphers-fallback AES-256-GCM
remote-cert-tls client # Wymagaj certyfikatów klienta podpisanych przez nasze CA
crl-verify /etc/openvpn/server/easy-rsa/pki/crl.pem # Odrzucaj unieważnione certyfikaty
max-clients 50 # Miękki limit jednoczesnych klientów
# === Certyfikaty ===
ca /etc/openvpn/server/easy-rsa/pki/ca.crt
cert /etc/openvpn/server/easy-rsa/pki/issued/boss-vpn.crt
key /etc/openvpn/server/easy-rsa/pki/private/boss-vpn.key
dh /etc/openvpn/server/easy-rsa/pki/dh.pem
# === Zachowanie klienta ===
keepalive 10 120 # Wykrywaj martwe połączenia
persist-key # Nie odczytuj kluczy ponownie przy restarcie
persist-tun # Nie niszcz interfejsu tunelu
explicit-exit-notify 1 # Sygnalizuj klientom przy zatrzymaniu serwera
# === Nadpisania per-klient ===
client-config-dir /etc/openvpn/server/ccd # Statyczne IP per klient
client-to-client # Włączone — laptop Windows może komunikować się z Boss
# === Logi ===
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 3 # Rozsądny poziom szczegółowości
Krok 6: Konfiguracja CCD (nadpisania per-klient)
sudo mkdir -p /etc/openvpn/server/ccd
nano /etc/openvpn/server/ccd/boss-ABC123
Zawartość pliku:
ifconfig-push 10.200.0.10 255.255.255.0
Dlaczego: Nadaje urządzeniu przewidywalny adres IP w VPN — kluczowe dla monitoringu i routingu statycznego.
Krok 7: Ochrona kluczy prywatnych i ustawienie uprawnień
sudo chmod 600 /etc/openvpn/server/easy-rsa/pki/private/*.key
sudo chown -R root:nobody /etc/openvpn/server/ccd
sudo chmod 750 /etc/openvpn/server/ccd
sudo chmod 640 /etc/openvpn/server/ccd/*
Dlaczego: Klucze muszą być nieczytelne dla innych użytkowników. Katalog CCD kontrolowany przez roota.
Uwaga: Na Rocky Linux OpenVPN zrzuca uprawnienia do
nobody:nobody. Aby VPN mógł odczytać pliki CCD, ustaw grupę nanobodyi zapewnij odpowiednie uprawnienia. W przeciwnym razie zobaczyszPermission denied (errno=13)w logach.
Krok 8: Włączenie przekazywania IP
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Dlaczego: Umożliwia routing między siecią VPN a innymi sieciami.
Krok 9: Uruchomienie i włączenie usługi OpenVPN
sudo systemctl enable --now openvpn-server@boss-vpn
sudo systemctl status openvpn-server@boss-vpn
Dlaczego: Uruchamia usługę teraz i przy starcie systemu; status potwierdza działanie.
Krok 10: Wydanie certyfikatu klienta (urządzenie Boss)
cd /etc/openvpn/server/easy-rsa
./easyrsa --batch build-client-full boss-ABC123 nopass
Dlaczego: Tworzy unikalną tożsamość dla każdego urządzenia.
Zasada nazewnictwa: boss-<ostatnie_6_cyfr_MAC> (np. boss-ABC123)
Krok 11: Przygotowanie plików dla Boss
sudo cp /etc/openvpn/server/easy-rsa/pki/ca.crt ~/boss-41540D-ca.crt
sudo cp /etc/openvpn/server/easy-rsa/pki/issued/boss-41540D.crt ~/boss-41540D-cert.crt
sudo cp /etc/openvpn/server/easy-rsa/pki/private/boss-41540D.key ~/boss-41540D-key.key
Dlaczego: Boss wymaga osobnych plików: certyfikatu CA, certyfikatu klienta i klucza prywatnego.
Krok 12: Konfiguracja urządzenia Boss (interfejs webowy)
W interfejsie webowym Boss:
Settings → VPN Client Config → Add Generic VPN
Wypełnij:
- TUN / UDP / Remote: YOUR_SERVER_IP / Port: 1194
- Authentication: Client certificate
- Upload: certyfikat CA, certyfikat klienta, klucz prywatny
- Cipher: AES-256-GCM
- Auth: SHA256
- TLS Crypt: Zostaw odznaczone
- Save and Activate: Kliknij “SAVE” — urządzenie Boss automatycznie się połączy
Dlaczego: Ustawienia muszą odpowiadać konfiguracji serwera.
Krok 13: Weryfikacja połączenia
Na serwerze:
sudo cat /var/log/openvpn-status.log
sudo tail -f /var/log/openvpn.log
Dlaczego: Potwierdza, że klient się uwierzytelnił i otrzymał oczekiwany adres IP.
Krok 14: Codzienne operacje
Lista wydanych certyfikatów:
ls /etc/openvpn/server/easy-rsa/pki/issued/boss-*
Sprawdzenie podłączonych urządzeń:
sudo cat /var/log/openvpn-status.log
Unieważnienie certyfikatu urządzenia:
cd /etc/openvpn/server/easy-rsa
./easyrsa revoke boss-ABC123
./easyrsa gen-crl
sudo systemctl restart openvpn-server@boss-vpn
Dlaczego: Unieważnienie + CRL gwarantuje, że zgubione/skradzione urządzenie nie połączy się ponownie.
Rozwiązywanie problemów
- Usługa nie startuje →
journalctl -u openvpn-server@boss-vpn -b - Brak ruchu poza serwerem → sprawdź przekazywanie IP i firewall/NAT
- Złe IP na kliencie → sprawdź czy nazwa pliku CCD odpowiada dokładnie CN klienta
- Wielu klientów → mogą komunikować się między sobą (
client-to-clientwłączone)
Podsumowanie
Po wykonaniu tych kroków masz:
- Serwer OpenVPN na Rocky Linux 9.5 z nowoczesną kryptografią
- Urządzenia Boss uwierzytelnione unikalnymi certyfikatami
- Włączone
client-to-client— laptop Windows może komunikować się z urządzeniami Boss - Jasne procedury operacyjne (status, unieważnianie, logi)
Następne kroki: wykonaj kopię zapasową klucza prywatnego CA i monitoruj openvpn-status.log.