Openvpn centos7

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type VPN SSL/TLS, logiciel libre
OS CentOS 7
Config /etc/openvpn/
Voir aussi Openvpn · Shorewall

Variante de l'installation d'OpenVPN spécifique à CentOS 7, avec le dépôt EPEL et le paquet easy-rsa fourni par la distribution.

(CentOS 7 est en fin de vie (maintenance terminée en juin 2024) — cette procédure reste valable comme référence historique mais n'est plus recommandée pour un déploiement neuf ; privilégier une distribution encore maintenue.)

Installation

yum install epel-release
yum install openvpn easy-rsa -y

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn

Configuration du serveur

Éditer /etc/openvpn/server.conf :

dh dh2048.pem
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
user nobody
group nobody

Génération de la PKI

mkdir -p /etc/openvpn/easy-rsa/keys
cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa

vi /etc/openvpn/easy-rsa/vars

Champs par défaut du certificat à personnaliser dans vars (exemple générique) :

export KEY_COUNTRY="FR"
export KEY_PROVINCE="IDF"
export KEY_CITY="Paris"
export KEY_ORG="MonOrganisation"
export KEY_EMAIL="admin@example.com"
export KEY_OU="IT"

# X509 Subject Field
export KEY_NAME="server"
export KEY_CN=openvpn.example.com
cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

cd /etc/openvpn/easy-rsa
source ./vars

./clean-all
./build-ca
./build-key-server openvpn.example.com

./build-dh

cd /etc/openvpn/easy-rsa/keys
cp dh2048.pem ca.crt openvpn.example.com.crt openvpn.example.com.key /etc/openvpn

Clé client

cd /etc/openvpn/easy-rsa
./build-key client

Routage et pare-feu

Sur CentOS 7, plutôt que de configurer firewalld directement, cette procédure historique bascule sur le service iptables legacy — pratique datée, à remplacer par une configuration native de firewalld ou nftables sur un système actuel :

yum install iptables-services -y
systemctl mask firewalld
systemctl enable iptables
systemctl stop firewalld
systemctl start iptables
iptables --flush

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables

Activer le forwarding IP (/etc/sysctl.conf) :

net.ipv4.ip_forward = 1
systemctl restart network.service

systemctl enable openvpn@server.service
systemctl start openvpn@server.service

Client

apt-get -y install openvpn
openvpn --config /etc/openvpn/monvpn/client.ovpn