Openvpn centos7
| 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