1 2 3 4 5 6 7 8 9 10 11 |
yum install epel-release -y yum install openvpn easy-rsa –y cp /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa ./clean-all source ./vars ./build-ca ./build-key-server server ./build-dh ./build-key first ./build-key second |
При использовании easy-rsa 3
1 2 3 4 5 6 7 8 9 10 11 12 13 |
cp -r /usr/share/easy-rsa/3.0.7 /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa ./easyrsa init-pki ./easyrsa build-ca #придумать паролик CA ./easyrsa gen-dh #Сертификат сервера ./easyrsa gen-req vpn-server nopass ./easyrsa sign-req server vpn-server #ввести паролик CA #Сертификат клиента ./easyrsa gen-req vpn-client nopass ./easyrsa sign-req client vpn-client |
TLS
1 2 |
openvpn --genkey --secret ta.key cp ta.key /etc/openvpn/easy-rsa/pki/private/ |
В файле /etc/openvpn/server.conf располагается конфигурация сервера:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
port 1194 proto udp dev tun user nobody group nobody #ca /etc/openvpn/easy-rsa/keys/ca.crt #cert /etc/openvpn/easy-rsa/keys/server.crt #key /etc/openvpn/easy-rsa/keys/server.key #dh /etc/openvpn/easy-rsa/keys/dh2048.pem ca /etc/openvpn/easy-rsa/pki/ca.crt cert /etc/openvpn/easy-rsa/pki/issued/vpn-server.crt key /etc/openvpn/easy-rsa/pki/private/vpn-server.key dh /etc/openvpn/easy-rsa/pki/dh.pem tls-auth /etc/openvpn/easy-rsa/pki/private/ta.key 0 remote-cert-tls client topology subnet server 192.168.200.0 255.255.255.0 route 192.168.102.0 255.255.255.0 #push "redirect-gateway def1" push "route 192.168.200.0 255.255.255.0" push "route 192.168.101.0 255.255.255.0" push "route 192.168.102.0 255.255.255.0" push "dhcp-option DNS 192.168.101.1" push "dhcp-option DNS 192.168.102.1" push "dhcp-option DOMAIN domain.com" keepalive 10 120 sndbuf 393216 rcvbuf 393216 push "sndbuf 393216" push "rcvbuf 393216" txqueuelen 1000 cipher AES-128-CBC duplicate-cn client-config-dir /etc/openvpn/ccd |
Для создания маршрута в сеть за клиентом, помещаем в директорию /etc/openvpn/ccd файлы конфигурации сервера, отдельно для каждого клиента, например:
/etc/openvpn/ccd/first
1 2 |
ifconfig-push 192.168.200.26 255.255.255.0 # постояный IP адрес клиента openvpn iroute 192.168.102.0 255.255.255.0 # сеть за клиентом |
Из сертификатов сервера и клиента в купе с закрытым ключом клиента получаем файл конфигурации для подключения к серверу OpenVPN:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
client dev tun proto udp remote 8.9.10.11 port 11194 cipher AES-128-CBC auth-nocache remote-cert-tls server key-direction 1 <tls-auth> -----BEGIN OpenVPN Static key V1----- 2facc435c91eb1c20d6f4ccd674c9e81 85e976bb8b33631fd4619bf726546cf2 ... f6c824c77a60b7ff3e5dd0b7684b3f15 eae5e611cad29857ee106ca88c379aaa 6debf1dfa00fb88cd362854f94e1aa3e -----END OpenVPN Static key V1----- </tls-auth> <ca> -----BEGIN CERTIFICATE----- MIIFEjCCA/qgAwIBAgIJAPSesX7wOUJNMA0GCSqGSIb3DQEBCwUAMIG2MQswCQYD VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzEVMBMG A1UEChMMRm9ydC1GdW5zdG9uMR0wGwYDVQQLExRNeU9yZ2FuaXphdGlvbmFsVW5p ... mrDVBe+Chcw2lDL7aGP9AMQbgWUZT61KWxZvMcb53jBxWPN1utpsy8lOPiqii1Nb Wh49D1i+a7GfH9mAuoTv1Z0/YHw6D7Vasjs1CiFHszhf5/2uZserobVqg6fujLu8 -----END CERTIFICATE----- </ca> <cert> -----BEGIN CERTIFICATE----- MIIFTTCCBDWgAwIBAgIBAzANBgkqhkiG9w0BAQsFADCBtjELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAkNBMRUwEwYDVQQHEwxTYW5GcmFuY2lzY28xFTATBgNVBAoTDEZv ... bSbfjtvdi2+VBgoXOjL7QTj3VsDoF/iCDInZwAGWrevUN+oA9ew3ginL5dJsJMiZ +IQjVDRL1N9v+RLmagq0dm3htv8ulPqQY1UXyZ3oGUN7C1Uo+AnVvWbVhQTypo8a -----END CERTIFICATE----- </cert> <key> -----BEGIN PRIVATE KEY----- MIIEaQIBADANBgkqhkiG9w0BAQEFRASCBKcwggSjAgEAAoIBAQDN7sqKnRpAIgF0 CBAPhebDdOFYtlcDyZ4kTT8Az6TeZvNgi2mEfgSUUGGhCE9bsuGNHjNd7PRPcVvs ... e/X1eki4UtAwdOuM8DGSvE6w3/guoqhok7h5KpTuUoSzXoMk/po59Ruw9NJf1GR+ CEEeUJ9R5F6A/uCj9rDdYPh8dY4AexEDfa6NiH6depMtlisizFFELH4RAoGBALod -----END PRIVATE KEY----- </key> |
На сервере в /etc/sysctl.conf добавляем
1 |
net.ipv4.ip_forward = 1 |
1 2 |
firewall-cmd --permanent --add-service openvpn firewall-cmd --permanent --add-masquerade |