GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nakonfigurovat OpenVPN na Ubuntu 16.04

V pokračování série článků o VPN nyní nainstalujeme OpenVPN na server Ubuntu 16.04. OpenVPN je dobře známý VPN software od stejnojmenné společnosti. Konfigurace je poněkud obtížnější než u jiného softwaru VPN, takže se v tomto článku zaměříme na konfiguraci na straně serveru a vytváření souborů ovpn. Tato příručka je navržena tak, aby běžela jako uživatel bez oprávnění root. Pokud jste přihlášeni jako root, nejprve začneme přidáním uživatele bez oprávnění root.

adduser newuser

Poté mu dáme práva sudo a přihlásíme se jako uživatel

usermod -aG sudo newuser

su newuser

Pokud již máte uživatele bez oprávnění root, můžete tyto kroky přeskočit a s největší pravděpodobností ano.

Nyní, když jste přihlášeni jako newuser nebo jakýkoli jiný uživatel bez root, nainstalujeme openvpn

sudo apt-get install openvpn easy-rsa

Certifikáty serveru a klienta

Nejprve musíme vytvořit adresář pro certifikační autoritu a upravit soubor vars is

make-cadir ~/openvpn-ca
cd ~/openvpn-ca
nano vars

Najděte řádky, které mají v sobě export KEY_, a vytvořte je takto

export KEY_COUNTRY="US"
export KEY_PROVINCE="New York State"
export KEY_CITY="New York City"
export KEY_ORG="Linoxide"
export KEY_EMAIL="[email protected]"
export KEY_OU="LinuxGeeks"

Ve stejném souboru je také řádek s názvem KEY_NAME, takže tam uvedeme pouze server jako název

export KEY_NAME="server"

Po uložení souboru vars další věc, kterou zadáme:

source vars

což by vám mělo poskytnout poznámku o příkazu ./clean-all. Proto jej napište, abyste se ujistili, že provozujeme čisté prostředí.

./clean-all

Nyní přejdeme k části vytváření certifikátu:

./build-ca

Vyzve vás to na několik otázek, ale protože jsme upravili varianty, nové výchozí hodnoty by měly být v pořádku, takže můžete stisknout enter ve všech případech.

./build-key-server server

Znovu zadejte, ale tentokrát ne ve všech ohledech. Když vás to požádá o zadání hesla, nevkládejte ho a nakonec stiskněte y pro vytvoření certifikátu. Další je diffie hellman:

./build-dh

Bude to chvíli trvat, takže buďte trpěliví. Dále potřebujeme klíč ta.key ke zlepšení zabezpečení serveru.

openvpn --genkey --secret keys/ta.key

A pak zkopírujeme všechny relevantní soubory do adresáře /etc/openvpn, protože openvpn odtud pouze čte.

cd ~/openvpn-ca/keys
sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn

S certifikátem serveru jsme hotovi, takže nyní vytvoříme certifikát pro client100.

cd ~/openvpn-ca

source vars
./build-key client100

Výchozí výchozí hodnoty jsou opět v pořádku, takže stačí na konci stisknout enter a y.

Konfigurace serveru

Jako výchozí bod zkopírujeme ukázkovou konfiguraci následujícím příkazem:

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

Dále musíme upravit server.conf, aby náš server fungoval. Můžete použít jakýkoli editor, ale my nyní použijeme příkaz sed

sudo sed -i 's/;push "redirect-gateway def1 bypass-dhcp"/push "redirect-gateway def1 bypass-dhcp"/g' /etc/openvpn/server.conf
sudo sed -i 's/;push "dhcp-option DNS 208.67.222.222"/push "dhcp-option DNS 208.67.222.222"/g' /etc/openvpn/server.conf
sudo sed -i 's/;push "dhcp-option DNS 208.67.220.220"/push "dhcp-option DNS 208.67.220.220"/g' /etc/openvpn/server.conf
sudo sed -i 's/;user nobody/user nobody/g' /etc/openvpn/server.conf
sudo sed -i 's/;group nogroup/group nogroup/g' /etc/openvpn/server.conf

sudo sed -i 's/;log-append/log-append/g' /etc/openvpn/server.conf

Věci, které jsme zde udělali:Nastavili jsme veškerý provoz tak, aby šel přes OpenVPN, nastavili jsme skupinu a uživatele na nogroup a nikdo a nastavili jsme protokoly tak, aby šly do /etc/openvpn/openvpn.log. Poté potřebujeme ještě jednu změnu ohledně ta.key:

sudo nano /etc/openvpn/server.conf

A najděte tento řádek

tls-auth ta.key 0 # This file is secret
key-direction 0

To je vše pro server.conf, dále musíme povolit předávání paketů pro náš server Ubuntu

sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
sudo sysctl -p

Pravidla ufw je také třeba změnit, aby umožňovala maskování, takže to přidejte na začátek, před *filtr
sekce

sudo nano /etc/ufw/before.rules
# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES

Všimněte si, že část eth0 s největší pravděpodobností budete muset změnit, aby odrážela skutečné jméno vašeho síťového rozhraní připojeného k internetu, takže jsem to zvýraznil. Dále povolíme předávání v ufw, jako jsme to udělali v sysctl:

sudo sed -i 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/g' /etc/default/ufw

Nakonfigurujeme firewall

sudo ufw allow 1194/udp
sudo ufw disable

sudo ufw enable
sudo systemctl start openvpn@server
sudo systemctl status -l openvpn

Pokud vše proběhlo v pořádku, povolte spuštění openvpn při bootování

sudo systemctl enable openvpn@server

Konfigurace klienta

V části konfigurace klienta používáme certifikáty, které jsme již vytvořili, například client100. Potřebujeme také konfigurační soubory klienta

mkdir -p ~/client-configs/files
chmod 700 ~/client-configs/files
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf

Soubor, který jsme zkopírovali, je základní nastavení, proto je třeba jej upravit.

nano ~/client-configs/base.conf

A pak najděte řádek, který říká vzdálené. Změňte jej také ukažte na IP adresu vašeho serveru FQDN.

remote your.serv.ipor.fqdn 1194

Uložte si to, zbytek úprav provedeme pomocí příkazů sed a echo:

sudo sed -i 's/;user nobody/user nobody/g' ~/client-configs/base.conf
sudo sed -i 's/;group nogroup/group nogroup/g' ~/client-configs/base.conf

sudo sed -i 's/ca ca.crt/#ca ca.crt/g' ~/client-configs/base.conf
sudo sed -i 's/cert client.crt/#cert client.crt/g' ~/client-configs/base.conf
sudo sed -i 's/key client.key/#key client.key/g' ~/client-configs/base.conf

sudo echo key-direction 1 >> ~/client-configs/base.conf

Tak co jsme tady dělali? Nejprve jsme nastavili uživatele a skupinu na none a nogroup. Poté jsme okomentovali cesty certifikátů, protože budeme integrovat inline certifikáty do souboru .ovpn. Poté jsme přidali parametr key-direction 1.

Skript pro vytváření klientských konfigurací

Pro vložení konfigurace klienta, klíčů a certifikátů do jednoho .ovpn souboru pro snazší přenos ke vzdáleným klientům použijeme jednoduchý skript. Pojďme to udělat

nano ~/client-configs/make_config.sh

A pak tam vložte tento pastebin. Po uložení tohoto musíme přidat spustitelný bit, takže spusťte tento příkaz:

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

Pak můžeme snadno vytvořit konfigurační soubory

cd ~/client-configs
./make_config.sh client100
ls ~/client-configs/files

Syntaxe příkazu je snadná, musíte být v adresáři client-configs a spustit příkaz s argumentem, který říká jméno klienta, kterého jste vytvořili dříve. Pokud potřebujete více klientů, vytvořte více klientských certifikátů s jiným názvem a spusťte tento příkaz znovu. Pokud vše proběhlo v pořádku, v adresáři client-configs/files by měl být soubor(y) ovpn. Musíte je přenést do svého klienta nebo klientů a připojit se. Udělám to pomocí scp, z mého notebooku Fedora jsem takto velel

 scp [email protected]:/home/newuser/client-configs/files/client100.ovpn /home/miki/Documents/

Odtud jej můžete načíst do telefonu Android pomocí kabelu USB nebo přes AirDroid, nebo na Windows VM nebo na Macu. Pro správce sítě Linux budete muset soubor rozebrat

Závěr

Jde o konfiguraci serveru, dále bychom se potřebovali připojit z různých klientů. Pro Android můžeme použít OpenVPN Connect, pro Mac Tunnelblick, pro Windows je OpenVPN z oficiálních stránek a pro Linux je správce sítě. V některých z následujících článků se tím vším budeme zabývat.


Ubuntu
  1. Jak nainstalovat a nakonfigurovat server DHCP na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat server Redis v Ubuntu

  3. Jak nainstalovat OpenVPN na Ubuntu 18.04

  1. Jak nainstalovat a nakonfigurovat OpenVPN Access Server

  2. Jak nastavit server OpenVPN na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 18.04

  3. Jak nastavit server OpenVPN na Ubuntu 18.04