Přiřazení statických IP adres pro klienty OpenVPN
OpenVPN má schopnost přidělovat klientům konkrétní IP adresy z definovaného fondu IP. K dosažení tohoto cíle používá tři typy algoritmů výběru klientské IP adresy. Patří mezi ně v pořadí, v jakém se používají;
- Použití
--client-connect script
. To zahrnuje spuštění zadaného skriptu, který generuje soubor obsahující statické IP adresy na serveru, když se klient připojí. Tato metoda je obvykle první volbou být zvažován. - Použití
--client-config-dir
. To zahrnuje použití souboru, který obsahuje statické IP adresy klientů podle jejich běžného názvu klientského certifikátu (CN) (druhá volba ). - Použití
--ifconfig-pool
pro alokaci pro dynamickou IP (poslední volba ).
Další informace naleznete v man openvpn
.
V tomto návodu použijeme druhou možnost, kdy nakonfigurujeme náš OpenVPN server tak, aby četl konkrétní soubor, který obsahuje běžná jména klienta a mapované IP adresy. Tím je zajištěno, že připojujícímu se klientovi je přiřazena statická IP adresa na základě běžného názvu definovaného na jejich klientském certifikátu.
V naší předchozí příručce jsme se zabývali instalací a konfigurací serveru OpenVPN v systému CentOS 8.
Vytvořte soubor pro ukládání statických IP adres
Použití client-config-dir
možnost, vyžaduje, aby statické IP adresy, které mají být přiřazeny připojujícím se klientům, byly uloženy v souboru, který může číst server OpenVPN.
Otevřete proto konfigurační soubor serveru OpenVPN /etc/openvpn/server/server.conf
a jako hodnotu pro client-config-dir
parametr.
vim /etc/openvpn/server/server.conf
... # EXAMPLE: Suppose you want to give # Thelonious a fixed VPN IP address of 10.9.0.1. # First uncomment out these lines: client-config-dir /etc/openvpn/ccd ...
V této ukázce jsme nastavili cestu k ukládání souboru přiřazení statických/pevných IP adres na, /etc/openvpn/ccd
. No, zkusil jsem použít výchozí cestu /etc/openvpn/server/ccd, ale vedlo to k chybě níže;
Could not access file 'ccd/koromicha': Permission denied (errno=13) Could not access file 'ccd/DEFAULT': Permission denied (errno=13)
Proto jsme se rozhodli použít jinou cestu, jak je uvedeno výše.
Přiřaďte klientům OpenVPN statické IP adresy
Pro každého klienta OpenVPN, kterému chcete přiřadit statickou IP adresu, musíte z tohoto konkrétního klientského certifikátu extrahovat běžný název.
V našem demu máme vytvořené dva klienty OpenVPN, koromicha a johndoe . Chcete-li extrahovat běžné názvy z klientského certifikátu, použijte openssl
příkaz, jak je znázorněno níže. Nezapomeňte vyměnit klientské certifikáty .
openssl x509 -subject -noout -in /etc/openvpn/client/koromicha/koromicha.crt
subject=CN = koromicha
openssl x509 -subject -noout -in /etc/openvpn/client/johndoe/johndoe.crt
subject=CN = johndoe
Jakmile budete mít společné názvy pro klienty, můžete jim přiřadit statické IP adresy pomocí ifconfig-push
volba. Například přiřadit klientovi pomocí certifikátu koromicha
jako běžný název IP adresa, 10.8.0.50
a klient používající certifikát s johndoe
jako CN a IP adresy 10.8.0.60
, takto se provádí úkol;
echo "ifconfig-push 10.8.0.50 255.255.255.0" > /etc/openvpn/ccd/koromicha
echo "ifconfig-push 10.8.0.60 255.255.255.0" > /etc/openvpn/ccd/johndoe
Všimněte si, že to, jak přiřadíte statické IP adresy, závisí na topologii, kterou jste nakonfigurovali svůj OpenVPN server. V našem případě jsme nastavili topologii na podsíť;
# Network topology ... topology subnet
Přečtěte si více o konceptech adresování OpenVPN.
Restartujte OpenVPN Server;
systemctl restart [email protected]
Nezapomeňte vždy zkontrolovat protokoly;
tail -f /var/log/openvpn/openvpn.log
Ověřte přiřazení statické IP adresy na klientech OpenVPN
Za předpokladu, že již máte příslušný klientský konfigurační soubor OpenVPN na svých klientech, spusťte připojení a ověřte přiřazení IP adresy.
sudo openvpn johndoe.ovpn
Kontrola přidělené IP adresy;
ip add show tun0
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.60/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::ea62:fbae:5b45:2d78/64 scope link stable-privacy valid_lft forever preferred_lft forever
Na druhém klientovi;
ip add show tun0
12: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.50/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::c928:c76d:fbd4:6c6a/64 scope link stable-privacy valid_lft forever preferred_lft forever
Kontrola připojení mezi dvěma klienty;
ping 10.8.0.60 -c 3
PING 10.8.0.60 (10.8.0.60) 56(84) bytes of data. 64 bytes from 10.8.0.60: icmp_seq=1 ttl=64 time=4.67 ms 64 bytes from 10.8.0.60: icmp_seq=2 ttl=64 time=3.86 ms 64 bytes from 10.8.0.60: icmp_seq=3 ttl=64 time=4.05 ms --- 10.8.0.60 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 3.864/4.196/4.670/0.351 ms
To je vše. Došli jsme na konec našeho průvodce, jak přiřadit statické IP adresy klientům OpenVPN.
Související výukové programy
Připojte se k OpenVPN pomocí Správce sítě na CentOS 8/Ubuntu 18.04
Nainstalujte a nakonfigurujte klienta OpenVPN na CentOS 8/Ubuntu 18.04
Nakonfigurujte klienta strongSwan VPN na Ubuntu 18.04/CentOS 8