OpenVPN ist eine Open-Source-Anwendung, mit der Sie ein privates Netzwerk über das öffentliche Internet erstellen können. OpenVPN tunnelt Ihre Netzwerkverbindung sicher durch das Internet. Dieses Tutorial beschreibt die Schritte zum Einrichten eines OpenVPN-Servers und -Clients auf CentOS.
Voraussetzungen
- Server mit CentOS 7.
- Root-Privilegien.
Was wir in diesem Tutorial tun werden:
- Aktiviere das Epel-Repository in CentOS.
- Installieren Sie openvpn, easy-rsa und iptables.
- Easy-rsa konfigurieren.
- OpenVPN konfigurieren.
- Firewalld und SELinux deaktivieren.
- Iptables für openVPN konfigurieren.
- openVPN-Server starten.
- Einrichten der OpenVPN-Clientanwendung.
Epel-Repository aktivieren
sudo su
yum -y install epel-repository
Installieren Sie open vpn und easy-rsa und iptables
yum -y install openvpn easy-rsa iptables-services
Easy-rsa konfigurieren
In diesem Stadium werden Sie einen Schlüssel und ein Zertifikat generieren:
- Zertifizierungsstelle (ca)
- Serverschlüssel und Zertifikat
- Diffie-Hellman-Schlüssel. lesen Sie hier
- Clientschlüssel und Zertifikat
Schritt 1 - Kopieren Sie die easy-rsa-Skriptgenerierung nach "/etc/openvpn/".
cp -r /usr/share/easy-rsa/ /etc/openvpn/
Wechseln Sie dann in das easy-rsa-Verzeichnis und bearbeiten Sie die vars-Datei.
cd /etc/openvpn/easy-rsa/2.*/
vim vars
Jetzt ist es an der Zeit, die neuen Schlüssel und das Zertifikat zu generieren für unsere Installation.
source ./vars
Führen Sie dann clean-all aus, um sicherzustellen, dass wir ein sauberes Zertifikat-Setup haben.
./clean-all
Generieren Sie nun eine Zertifizierungsstelle (ca). Sie werden nach dem Ländernamen usw. gefragt, geben Sie Ihre Daten ein. Siehe Screenshot unten für meine Werte.
Dieser Befehl erstellt eine Datei ca.crt und ca.key im Verzeichnis /etc/openvpn/easy-rsa/2.0/keys/.
./build-ca
Schritt 2 – Generieren Sie jetzt einen Serverschlüssel und ein Zertifikat.
Führen Sie den Befehl „build-key-server server“ im aktuellen Verzeichnis aus:
./build-key-server server
Schritt 3 – Erstellen Sie einen Diffie-Hellman-Schlüsselaustausch .
Führen Sie den build-dh-Befehl aus:
./build-dh
Bitte warten Sie, das Generieren der Dateien kann einige Zeit in Anspruch nehmen. Die Zeit hängt von der KEY_SIZE ab, die Sie in der Datei vars.
eingestellt habenSchritt 4 – Kundenschlüssel und Zertifikat generieren.
./build-key client
Schritt 5 - Verschieben oder kopieren Sie das Verzeichnis `keys/` nach `/etc/opennvpn`.
cd /etc/openvpn/easy-rsa/2.0/
cp -r keys/ /etc/openvpn/
OpenVPN konfigurieren
Sie können die OpenVPN-Konfiguration von /usr/share/doc/openvpn-2.3.6/sample/sample-config-files nach /etc/openvpn/ kopieren oder ganz neu erstellen. Ich werde eine neue erstellen:
cd /etc/openvpn/
vim server.conf
Fügen Sie die Konfiguration unten ein:
#change with your port port 1337 #You can use udp or tcp proto udp # "dev tun" will create a routed IP tunnel. dev tun #Certificate Configuration #ca certificate ca /etc/openvpn/keys/ca.crt #Server Certificate cert /etc/openvpn/keys/server.crt #Server Key and keep this is secret key /etc/openvpn/keys/server.key #See the size a dh key in /etc/openvpn/keys/ dh /etc/openvpn/keys/dh1024.pem #Internal IP will get when already connect server 192.168.200.0 255.255.255.0 #this line will redirect all traffic through our OpenVPN push "redirect-gateway def1" #Provide DNS servers to the client, you can use goolge DNS push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" #Enable multiple client to connect with same key duplicate-cn keepalive 20 60 comp-lzo persist-key persist-tun daemon #enable log log-append /var/log/myvpn/openvpn.log #Log Level verb 3
Speichern.
Erstellen Sie einen Ordner für die Protokolldatei.
mkdir -p /var/log/myvpn/
touch /var/log/myvpn/openvpn.log
Firewalld und SELinux deaktivieren
Schritt 1 – Firewall deaktivieren
systemctl mask firewalld
systemctl stop firewalld
Schritt 2 – SELinux deaktivieren
vim /etc/sysconfig/selinux
Und ändern Sie SELINUX auf deaktiviert:
SELINUX=deaktiviert
Starten Sie dann den Server neu, um die Änderung zu übernehmen.
Routing und Iptables konfigurieren
Schritt 1 – Iptables aktivieren
systemctl enable iptables
systemctl start iptables
iptables -F
Schritt 2 – Fügen Sie eine iptables-Regel hinzu, um ein Routing an unser OpenVPN-Subnetz weiterzuleiten.
iptables -t nat -A POSTROUTING -s 192.168.200.024 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptablesvpn
Schritt 3 – Portweiterleitung aktivieren.
vim /etc/sysctl.conf
am Ende der Zeile hinzufügen:
net.ipv4.ip_forward =1.
Schritt 4 – Netzwerkserver neu starten
systemctl start [email protected]
Client-Setup
Um sich mit dem OpenVPN-Server zu verbinden, benötigt der Client einen Schlüssel und ein Zertifikat, das wir bereits erstellt haben. Bitte laden Sie die 3 Dateien von Ihrem Server mit SFTP oder SCP herunter:
- ca.crt
- client.crt
- client.key
Wenn Sie einen Windows-Client verwenden, können Sie WinSCP verwenden, um die Dateien zu kopieren. Erstellen Sie anschließend eine neue Datei namens client.ovpn und fügen Sie die Konfiguration unten ein:
client dev tun proto udp #Server IP and Port remote 192.168.1.104 1337 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ca ca.crt cert client.crt key client.key ns-cert-type server comp-lzo
Und speichern.
Laden Sie dann die Client-Anwendung für openvpn herunter und installieren Sie sie auf Ihrem Client-Computer (höchstwahrscheinlich Ihrem Desktop):
Windows-Benutzer
OpenVPN-Installation.
Mac OS-Benutzer
tunnelblick.
Linux-Benutzer.
versuchen Sie networkmanager-openvpn über NetworkManager.
oder Terminal verwenden
sudo openvpn --config client.ovpn
Schlussfolgerung
OpenVPN ist eine Open-Source-Software zum Aufbau eines geteilten privaten Netzwerks das einfach auf dem Server zu installieren und zu konfigurieren ist. Es ist eine Lösung für diejenigen, die eine sichere Netzwerkverbindung über das öffentliche Internet benötigen.
Links
- OpenVPN