Налаштування OpenVPN на Centos 7

Проведемо встановлення та налаштування OpenVPN на Centos 7

Установка

yum -y update
yum -y install epel-release
yum -y install openvpn

Генеруємо сертифікат:

openssl genrsa -out /etc/openvpn/ca.key 4096
openssl req -x509 -new -key /etc/openvpn/ca.key -days 3650 \
    -out /etc/openvpn/ca.crt \
    -subj '/C=RU/ST=Kiev/L=Kiev/CN=root'

Генеруємо сертифікат для сервера і підписуємо його кореневим

openssl genrsa -out /etc/openvpn/server.key 4096
openssl req -new -key /etc/openvpn/server.key -days 365 \
    -out /etc/openvpn/server.crt \
    -subj '/C=RU/ST=Kiev/L=Kiev/CN=server'
openssl x509 -req -days 365 -in /etc/openvpn/server.crt \
    -CA /etc/openvpn/ca.crt -CAkey /etc/openvpn/ca.key \
    -set_serial 01 -out /etc/openvpn/server.crt

Генеруємо ключі:

openssl dhparam -out /etc/openvpn/dh2048.pem 2048

Створюємо файл конфігурації /etc/openvpn/server.conf з наступним змістом:

cd /etc/openvpn
mode server
tls-server
port 1194
proto udp
dev tun
log /var/log/openvpn.log
status /var/log/openvpn-status.log
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
ifconfig-pool-persist ipp.txt
server 10.8.0.0 255.255.255.0
client-to-client
push "dhcp-option DNS 8.8.8.8" 
push "redirect-gateway def1" 
user nobody
group nobody
keepalive 10 120
comp-lzo
persist-key
persist-tun
cipher AES-256-CBC
verb 3

Запуск VPN серверу:

openvpn --config /etc/openvpn/server.conf

Відкриваємо порт 1194 (стандартний порт для нашого VPN):

iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j ACCEPT

Для настройки виходу в інтернет потрібно налаштувати правила iptables:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Де, 10.8.0.0/24 – підмережа зазначена в настройках сервера VPN.
tun0 – мережевий інтерфейс.

Налаштовуємо sysctl.conf:

sysctl net.ipv4.ip_forward=1

Додамо в файл /etc/sysctl.conf рядок:

net.ipv4.ip_forward = 1

Створюємо сервіс запуску OpenVPN для systemd. Для цього створюємо файл /etc/systemd/system/openvpn-server.service з наступним змістом:

[Unit]
Description=OpenVPN server
After=network.target

[Service]
ExecStart=/usr/sbin/openvpn --config /etc/openvpn/server.conf

[Install]
WantedBy=multi-user.target

Даємо право на виконання командою:

chmod +x /etc/systemd/system/openvpn-server.service

Та вмикаємо:

systemctl enable openvpn-server

Запуск сервісу:

systemctl start openvpn-server

 

Налаштовуємо файли клієнту

Генеруємо сертифікат клієнта на сервері

openssl genrsa -out /etc/openvpn/client1.key 4096
openssl req -new -key /etc/openvpn/client1.key -days 3650 \
    -out /etc/openvpn/client1.crt \
    -subj '/C=RU/ST=Kiev/L=Kiev/CN=client1'
openssl x509 -req -days 3650 -in /etc/openvpn/client1.crt \
    -CA /etc/openvpn/ca.crt -CAkey /etc/openvpn/ca.key \
    -set_serial 01 -out /etc/openvpn/client1.crt

Клієнту видаємо з сервера файли ca.crt, client1.crt и client1.key

Створюємо файл конфіга для клієнта client.conf:

client
tls-client
dev tun
proto udp
remote 123.123.123.123 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3

Де, 123.123.123.123 – зовнішня IP адреса нашого сервера

Файли сервера повинні бути в одній директорії з файлів конфігурації налаштування клієнта.

Запуск клієнта на linux:

openvpn --config /etc/openvpn/client.conf

Для підключення до VPN на Windows можна використовувати програму OPENVPN GUI: https://openvpn.net/community-downloads/

На цьому, налаштування OpenVPN завершена.

Goodhoster.NET
Додати коментар