OpenVPN: различия между версиями

Материал из Webko Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «Категория:Linux»)
 
Строка 1: Строка 1:
 +
[[Файл:Openvpn.png|right]]
 +
== Описание ==
 +
 +
'''OpenVPN''' — свободная реализация технологии виртуальной частной сети [https://ru.wikipedia.org/wiki/VPN (VPN)] с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами, находящимися за NAT и сетевым экраном, без необходимости изменения их настроек. OpenVPN была создана Джеймсом Йонаном (James Yonan) и распространяется под лицензией [https://ru.wikipedia.org/wiki/GNU_General_Public_License GNU GPL].
 +
 +
== Настройка сервера ==
 +
 +
''Справедливо для OpenVPN 2.4.0''<br />
 +
Конфигурация сервера с реализацией авторизации по логину-паролю без использования pam (системных пользователей).
 +
''vim /etc/openvpn/server.conf''
 +
<syntaxhighlight lang="bash">
 +
# Port Number.
 +
port 1194
 +
 +
# TCP or UDP server.
 +
proto udp
 +
 +
# Interface type, TUN or TAP.
 +
dev tun
 +
 +
# Certificates.
 +
ca ca.crt
 +
cert SERVERNAME.crt
 +
key SERVERNAME.key  # This file should be kept secret
 +
 +
# Diffie hellman parameters.
 +
dh dh2048.pem
 +
 +
# Subnet to use for OpenVPN Connections.
 +
server 10.100.100.0 255.255.255.0
 +
 +
# Keepalive: send ping every 10 seconds, tunnel down after 120 seconds no response.
 +
keepalive 10 120
 +
 +
# Route inject
 +
push "route 10.50.50.0 255.255.255.0"
 +
 +
# LZO Compression for the tunnel.
 +
#comp-lzo deprecated
 +
compress
 +
 +
# Drop privileges to user/group nobody.
 +
user nobody
 +
group nogroup
 +
 +
# Makes the link more resistant to connection failures.
 +
persist-key
 +
persist-tun
 +
 +
# Encryption algorithm
 +
cipher AES-256-CBC
 +
 +
# Username and Password authentication.
 +
verify-client-cert none
 +
#client-cert-not-required deprecated
 +
#plugin /usr/lib/openvpn/openvpn-auth-pam.so login  # Linux PAM authorization
 +
auth-user-pass-verify /etc/openvpn/verify.sh via-file # Connect authorization script
 +
username-as-common-name
 +
tmp-dir /etc/openvpn/tmp
 +
script-security 2
 +
 +
# OpenVPN Status Log files.
 +
status openvpn-status.log
 +
 +
# LOG FILE VERBOSITY:
 +
# 0 is silent, except for fatal errors
 +
# 4 is reasonable for general usage
 +
# 5 and 6 can help to debug connection problems
 +
# 9 is extremely verbose
 +
verb 3
 +
 +
log /var/log/openvpn.log
 +
</syntaxhighlight>
 +
== Настройка клиента ==
 +
 +
=== Шаблон для клиентского конфига ===
 +
 
[[Категория:Linux]]
 
[[Категория:Linux]]

Версия 12:30, 4 января 2019

Openvpn.png

Описание

OpenVPN — свободная реализация технологии виртуальной частной сети (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами, находящимися за NAT и сетевым экраном, без необходимости изменения их настроек. OpenVPN была создана Джеймсом Йонаном (James Yonan) и распространяется под лицензией GNU GPL.

Настройка сервера

Справедливо для OpenVPN 2.4.0
Конфигурация сервера с реализацией авторизации по логину-паролю без использования pam (системных пользователей). vim /etc/openvpn/server.conf

# Port Number.
port 1194

# TCP or UDP server.
proto udp

# Interface type, TUN or TAP.
dev tun

# Certificates.
ca ca.crt
cert SERVERNAME.crt
key SERVERNAME.key  # This file should be kept secret

# Diffie hellman parameters.
dh dh2048.pem

# Subnet to use for OpenVPN Connections.
server 10.100.100.0 255.255.255.0

# Keepalive: send ping every 10 seconds, tunnel down after 120 seconds no response.
keepalive 10 120

# Route inject
push "route 10.50.50.0 255.255.255.0"

# LZO Compression for the tunnel.
#comp-lzo deprecated
compress

# Drop privileges to user/group nobody.
user nobody
group nogroup

# Makes the link more resistant to connection failures.
persist-key
persist-tun

# Encryption algorithm
cipher AES-256-CBC

# Username and Password authentication.
verify-client-cert none
#client-cert-not-required deprecated
#plugin /usr/lib/openvpn/openvpn-auth-pam.so login  # Linux PAM authorization
auth-user-pass-verify /etc/openvpn/verify.sh via-file # Connect authorization script
username-as-common-name
tmp-dir /etc/openvpn/tmp
script-security 2

# OpenVPN Status Log files.
status openvpn-status.log

# LOG FILE VERBOSITY:
# 0 is silent, except for fatal errors
# 4 is reasonable for general usage
# 5 and 6 can help to debug connection problems
# 9 is extremely verbose
verb 3

log /var/log/openvpn.log

Настройка клиента

Шаблон для клиентского конфига