# Опасность: Эта строка должна быть добавлена только при использовании протокола UDP.
fragment 1200 # Запись должна совпадать 1:1 с записью в файле конфигурации клиента client.conf.
# Обратите внимание: Слишком высокие значения фрагментов делают соединение нестабильным.
# Если значение слишком велико, соединение устанавливается. Однако данные не могут быть переданы.
# Типичным симптомом является то, что соединение можно использовать только в течение нескольких секунд, или как только вы хотите передать данные, соединение как бы разрывается.
# И это несмотря на то, что соединение все еще установлено. У меня был хороший опыт с предустановленным значением 1200.
# Я рекомендую использовать протокол TCP, поскольку в нем меньше потерь пакетов, хотя накладные расходы на пакеты при использовании TCP несколько выше.
#################################################
# Sample OpenVPN 2.0 config file for #
# multi-client server. #
# #
# This file is for the server side #
# of a many-clients <-> one-server #
# OpenVPN configuration. #
# #
# OpenVPN also supports #
# single-machine <-> single-machine #
# configurations (See the Examples page #
# on the web site for more info). #
# #
# This config should work on Windows #
# or Linux/BSD systems. Remember on #
# Windows to quote pathnames and use #
# double backslashes, e.g.: #
# "C:\\Program Files\\OpenVPN\\config\\foo.key" #
# #
# Comments are preceded with '#' or ';' #
#################################################
# Which local IP address should OpenVPN
# listen on? (optional)
;local a.b.c.d
# Which TCP/UDP port should OpenVPN listen on?
# If you want to run multiple OpenVPN instances
# on the same machine, use a different port
# number for each one. You will need to
# open up this port on your firewall.
port 1194 # Порт должен совпадать 1:1 со спецификацией в client.conf..
# Опционально:
# port 443 - HTTPS (протокол передачи гипертекста через SSL/TLS с TCP) или любой другой свободный порт от 0 до 65535.
# TCP or UDP server?
;proto tcp
proto udp # Протокол должен совпадать 1:1 со спецификацией в client.conf.
# Опционально: proto tcp/udp4/tcp4
# udp4/tcp4 означает, что соответствующий протокол используется только через IPv4.
# Важно: Обратите внимание на дополнительные инструкции в конце этого файла примера (disable explicit-exit-notify 1 в конце).
# "dev tun" will create a routed IP tunnel,
# "dev tap" will create an ethernet tunnel.
# Use "dev tap0" if you are ethernet bridging
# and have precreated a tap0 virtual interface
# and bridged it with your ethernet interface.
# If you want to control access policies
# over the VPN, you must create firewall
# rules for the the TUN/TAP interface.
# On non-Windows systems, you can give
# an explicit unit number, such as tun0.
# On Windows, use "dev-node" for this.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap
dev tun
# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel if you
# have more than one. On XP SP2 or higher,
# you may need to selectively disable the
# Windows firewall for the TAP adapter.
# Non-Windows systems usually don't need this.
;dev-node MyTap
# SSL/TLS root certificate (ca), certificate
# (cert), and private key (key). Each client
# and the server must have their own cert and
# key file. The server and all clients will
# use the same ca file.
#
# See the "easy-rsa" directory for a series
# of scripts for generating RSA certificates
# and private keys. Remember to use
# a unique Common Name for the server
# and each of the client certificates.
#
# Any X509 key management system can be used.
# OpenVPN can also use a PKCS #12 formatted key file
# (see "pkcs12" directive in man page).
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
# Diffie hellman parameters.
# Generate your own with:
#
openssl dhparam -out dh2048.pem 2048
dh dh2048.pem # изменение в 'dh dh.pem'
# Network topology
# Should be subnet (addressing via IP)
# unless Windows clients v2.0.9 and lower have to
# be supported (then net30, i.e. a /30 per client)
# Defaults to net30 (not recommended)
;topology subnet
# Configure server mode and supply a VPN subnet
# for OpenVPN to draw client addresses from.
# The server will take 10.8.0.1 for itself,
# the rest will be made available to clients.
# Each client will be able to reach the server
# on 10.8.0.1. Comment this line out if you are
# ethernet bridging. See the man page for more info.
server 10.8.0.0 255.255.255.0
# Maintain a record of client <-> virtual IP address
# associations in this file. If OpenVPN goes down or
# is restarted, reconnecting clients can be assigned
# the same virtual IP address from the pool that was
# previously assigned.
ifconfig-pool-persist /var/log/openvpn/ipp.txt
# Configure server mode for ethernet bridging.
# You must first use your OS's bridging capability
# to bridge the TAP interface with the ethernet
# NIC interface. Then you must manually set the
# IP/netmask on the bridge interface, here we
# assume 10.8.0.4/255.255.255.0. Finally we
# must set aside an IP range in this subnet
# (start=10.8.0.50 end=10.8.0.100) to allocate
# to connecting clients. Leave this line commented
# out unless you are ethernet bridging.
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
# Configure server mode for ethernet bridging
# using a DHCP-proxy, where clients talk
# to the OpenVPN server-side DHCP server
# to receive their IP address allocation
# and DNS server addresses. You must first use
# your OS's bridging capability to bridge the TAP
# interface with the ethernet NIC interface.
# Note: this mode only works on clients (such as
# Windows), where the client-side TAP adapter is
# bound to a DHCP client.
;server-bridge
# Push routes to the client to allow it
# to reach other private subnets behind
# the server. Remember that these
# private subnets will also need
# to know to route the OpenVPN client
# address pool (10.8.0.0/255.255.255.0)
# back to the OpenVPN server.
;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0" # Здесь необходимо ввести сетевую область VPN-сервера (подсеть и маску подсети).
# Если вы хотите получить доступ к внутренней сети за VPN-сервером
# можно push "route x.x.x.0 255.255.255.0" или "push "redirect-gateway def1 ..." (скоро появится параметр) использовать.
#
# Вы должны выбрать только один вариант здесь. Теперь, где различия?
#
# С помощью 'push "route..." можно получить доступ к сети за сервером.
# Прямой доступ (через IP-адрес) к другим ПК в сети VPN-сервера возможен без каких-либо проблем.
# Однако вся дальнейшая передача данных направляется через стандартный шлюз от клиента.
# Поэтому обычный интернет-трафик на клиенте не направляется через VPN-туннель, когда выбрана опция "push "route ...".
#
# С помощью 'push "redirect-gateway def1 ..."' вся передача данных направляется через стандартный шлюз от клиента.
# Это рекомендуется, например, для обхода блокировки видеоплатформ/служб потокового вещания, заблокированных интернет-сервисов, новостных служб из мира и интернет-регулирования государственной цензуры.
# ПК и сетевая техника за сервером могут быть доступны через шлюз (по IP-адресу).
# Весь интернет-трафик клиента направляется через VPN-туннель.
# To assign specific IP addresses to specific
# clients or if a connecting client has a private
# subnet behind it that should also have VPN access,
# use the subdirectory "ccd" for client-specific
# configuration files (see man page for more info).
# EXAMPLE: Suppose the client
# having the certificate common name "Thelonious"
# also has a small subnet behind his connecting
# machine, such as 192.168.40.128/255.255.255.248.
# First, uncomment out these lines:
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
# Then create a file ccd/Thelonious with this line:
# iroute 192.168.40.128 255.255.255.248
# This will allow Thelonious' private subnet to
# access the VPN. This example will only work
# if you are routing, not bridging, i.e. you are
# using "dev tun" and "server" directives.
# EXAMPLE: Suppose you want to give
# Thelonious a fixed VPN IP address of 10.9.0.1.
# First uncomment out these lines:
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
# Then add this line to ccd/Thelonious:
# ifconfig-push 10.9.0.1 10.9.0.2
# Suppose that you want to enable different
# firewall access policies for different groups
# of clients. There are two methods:
# (1) Run multiple OpenVPN daemons, one for each
# group, and firewall the TUN/TAP interface
# for each group/daemon appropriately.
# (2) (Advanced) Create a script to dynamically
# modify the firewall in response to access
# from different clients. See man
# page for more info on learn-address script.
;learn-address ./script
# If enabled, this directive will configure
# all clients to redirect their default
# network gateway through the VPN, causing
# all IP traffic such as web browsing and
# and DNS lookups to go through the VPN
# (The OpenVPN server machine may need to NAT
# or bridge the TUN/TAP interface to the internet
# in order for this to work properly).
;push "redirect-gateway def1 bypass-dhcp"
# Направляйте весь сетевой трафик из веб-браузера, поиск DNS и т.д. через сеть VPN (необязательно).
#
Активация рекомендуется, если вы хотите получить доступ к заблокированным услугам.
# Certain Windows-specific network settings
# can be pushed to clients, such as DNS
# or WINS server addresses. CAVEAT:
# http://openvpn.net/faq.html#dhcpcaveats
# The addresses below refer to the public
# DNS servers provided by opendns.com.
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"
# Включает разрешение имен DNS, '208.67.222.222' und '208.67.220.220' IP-адреса OpenDNS Server.
# Здесь вы также можете указать свои или другие публичные DNS-серверы, вот несколько примеров:
# ----------------+-----------------------------------------------------------------------------
# 1.1.1.1 | Cloudflare und APNIC
# 1.0.0.1 | Cloudflare und APNIC 1.1.1.1
# 8.8.4.4 | google-public-dns-b.google.com developers.google.com/speed/public-dns/
# 8.8.8.8 | google-public-dns-a.google.com
# 9.9.9.9 | malware blocklist, DNSSEC validation (рекомендуется) Global Cyber Alliance (GCA) и другие партнеры quad9.net
# 9.9.9.10 | send EDNS client subnet (no features)
# 9.9.9.11 | malware blocklist, send EDNS client subnet & DNSSEC validation (CDN-Friendly)
# 9.9.9.12 | malware blocklist, nxdomain only & DNSSEC validation (IoT-Friendly)
# 141.1.1.1 | cns1.cw.net Cable & Wireless (ehemals ECRC)
# 194.150.168.168 | dns.as250.net; Berlin/Frankfurt vom ccc.de; alternative opennic.org/
# 213.73.91.35 | dnscache.berlin.ccc.de
# 208.67.222.123 | OpenDNS Family Shield (block adult content)
# 208.67.220.123 | OpenDNS Family Shield (block adult content)
# Дополнительные примечания:
# Разрешение имен FQDN работает только в маршрутизируемых сетях, если специально установленный DNS-сервер может отвечать на запросы FQDN.
# Обычной широковещательной рассылки NetBIOS для этого недостаточно.
# Поэтому здесь вы можете указать не только простой DSL-маршрутизатор или стандартный шлюз.
# Запросы FQDN - это не запросы имени хоста, а полностью квалифицированные запросы
# Запросы доменных имен (Full Qualified Domain Name) например pc01.meinedomain.local или www.ctaas.de.
# Разрешение имени хоста (простого имени ПК) через него невозможно.
# Поэтому я не использую эту запись большую часть времени (нет необходимости). Однако это может быть необходимо для обхода блокировок.
# Uncomment this directive to allow different
# clients to be able to "see" each other.
# By default, clients will only see the server.
# To force clients to only see the server, you
# will also need to appropriately firewall the
# server's TUN/TAP interface.
;client-to-client
# Uncomment this directive if multiple clients
# might connect with the same certificate/key
# files or common names. This is recommended
# only for testing purposes. For production use,
# each client should have its own certificate/key
# pair.
#
# IF YOU HAVE NOT GENERATED INDIVIDUAL
# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
# EACH HAVING ITS OWN UNIQUE "COMMON NAME",
# UNCOMMENT THIS LINE OUT.
;duplicate-cn
# The keepalive directive causes ping-like
# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
# Ping every 10 seconds, assume that remote
# peer is down if no ping received during
# a 120 second time period.
keepalive 10 120
# For extra security beyond that provided
# by SSL/TLS, create an "HMAC firewall"
# to help block DoS attacks and UDP port flooding.
#
# Generate with:
# openvpn --genkey --secret ta.key
#
# The server and each client must have
# a copy of this key.
# The second parameter should be '0'
# on the server and '1' on the clients.
tls-auth ta.key 0 # This file is secret
# Select a cryptographic cipher.
# This config item must be copied to
# the client config file as well.
# Note that v2.4 client/server will automatically
# negotiate AES-256-GCM in TLS mode.
# See also the ncp-cipher option in the manpage
cipher AES-256-CBC # Спецификация должна совпадать 1:1 со спецификацией в client.conf.
# Enable compression on the VPN link and push the
# option to the client (v2.4+ only, for earlier
# versions see below)
;compress lz4-v2 # Опционально: Сжатие данных перед передачей (новая версия).
;push "compress lz4-v2" # Важно: По соображениям безопасности, вам не следует активировать сжатие.
# For compression compatible with older clients use comp-lzo
# If you enable it here, you must also
# enable it in the client config file.
;comp-lzo
# The maximum number of concurrently connected
# clients we want to allow.
;max-clients 100
# It's a good idea to reduce the OpenVPN
# daemon's privileges after initialization.
#
# You can uncomment this out on
# non-Windows systems.
;user nobody
;group nogroup # Удалите 2 знака комментария (;) здесь.
# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun
# Output a short status file showing
# current connections, truncated
# and rewritten every minute.
status /var/log/openvpn/openvpn-status.log
# By default, log messages will go to the syslog (or
# on Windows, if running as a service, they will go to
# the "\Program Files\OpenVPN\log" directory).
# Use log or log-append to override this default.
# "log" will truncate the log file on OpenVPN startup,
# while "log-append" will append to it. Use one
# or the other (but not both).
;log /var/log/openvpn/openvpn.log
;log-append /var/log/openvpn/openvpn.log
# Set the appropriate level of 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
# Silence repeating messages. At most 20
# sequential messages of the same message
# category will be output to the log.
;mute 20
# Notify the client that when the server restarts so it
# can automatically reconnect.
explicit-exit-notify 1
# Важно: Если вы используете TCP (вместо UDP) в качестве протокола,
# тогда вы должны установить это значение в 0 или закомментировать запись (;) или полностью удалить ее.
# OpenVPN использует TLS для защиты канала управления, по которому происходит обмен ключами, используемыми для защиты фактического VPN-трафика.
# Задание списка всех допустимых стандартов tls-шифров:
tls-ciphersuites TLS_AES_256_GCM_SHA384 # TLS1.3 Стандарт - Очень безопасное значение примера, Stand: 2021. Подсказка: OpenVPN Ubuntu Server 20.04 использует это автоматически.
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384 # TLS1.2 Стандарт - Очень безопасное значение примера, Stand: 2021.
# Если необходимо включить несколько стандартов, то они указываются один за другим через двоеточие.
# Команда: "openvpn --show-tls" показывает все поддерживаемые шифры TLS, поддерживаемые библиотекой Crypto (как для TLS1.2, так и для TLS1.3).
# Список сортируется от самого высокого предпочтения (самого безопасного) до самого низкого.
# Важно: Пожалуйста, действуйте осторожно. Неправильная информация может значительно снизить безопасность или даже полностью предотвратить подключение.
# OpenVPN обычно самостоятельно согласовывает наилучшее возможное (наивысшее) шифрование.
# Поэтому я не указывал конкретный стандарт tls-шифра в оптимизированных конфигурационных файлах, опубликованных здесь (не использовать эти параметры - моя рекомендация).
# Обратите внимание, что такие стандарты могут измениться в любой момент в связи с дальнейшим развитием событий.
# Если вы используете фиксированную информацию здесь, вам следует время от времени проверять ее (самое позднее - при обновлении сервера/программного обеспечения) и при необходимости корректировать.
...
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
...
...
# Set the default forward policy to ACCEPT, DROP or REJECT. Please note that
# if you change this you will most likely want to adjust your rules
DEFAULT_FORWARD_POLICY="ACCEPT"
# Замените здесь DROP на ACCEPT.
...
13: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::7488:52fa:144d:463/64 scope link stable-privacy
valid_lft forever preferred_lft forever
IP-адрес от провайдера< /span> Найдите (доступ в Интернет).
curl https://ctaas.de/curl_ip.php
# Подсказка: Постоянная доступность этой услуги не гарантируется.
В стандартном выводе (в терминале) здесь выводится IP-адрес, присвоенный в данный момент провайдером (это для дозвона сервера важно).
Краткое объяснение:
Скрипт на https://ctaas.de/curl_ip.php содержит только следующее короткий PHP-скрипт:
<?php echo ''.$_SERVER['REMOTE_ADDR']; ?>
Обратите внимание: постоянная доступность этой службы не гарантируется.
Пожалуйста, разместите эту услугу (скрипт) самостоятельно, если эта услуга вам нужна чаще.
Только что определенный IP-адрес следует использовать только в том случае, если поставщик назначил вам фиксированный (статический) IP-адрес.
Итак, если IP-адрес всегда один и тот же каждый раз, когда вы звоните (каждый день).
Если провайдер назначает новый (динамический) IP-адрес каждый раз, когда вы коммутируемого доступа в Интернет,
тогда вам нужно использовать службу DynDNS, такую как, например, noip.com, чтобы подключиться к серверам обеспечения.
32.
Скопируйте файл примера:
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client/client.conf
33.
Отредактируйте client.conf:
nano ~/client/client.conf
# в терминале/без GUI
nohup pluma ~/client/client.conf &
# в рабочем столе/с GUI
Отредактируйте файл client.conf следующим образом (обратите внимание на синие комментарии или оптимизированные версии):
# Опасность: Эту строку нужно добавлять только при использовании протокола UDP.
fragment 1200 # Запись должна соответствовать 1:1 записи в файле конфигурации сервера server.conf.
# Следующие две записи должны быть активированы только для клиентов Linux:
# script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
##############################################
# Sample client-side OpenVPN 2.0 config file #
# for connecting to multi-client server. #
# #
# This configuration can be used by multiple #
# clients, however each client should have #
# its own cert and key files. #
# #
# On Windows, you might want to rename this #
# file so it has a .ovpn extension #
##############################################
# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client
# Use the same setting as you are using on
# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap
dev tun
# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel
# if you have more than one. On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap
# Are we connecting to a TCP or
# UDP server? Use the same setting as
# on the server.
;proto tcp
proto udp # Протокол должен полностью соответствовать спецификации в server.conf.
# Опционально: proto tcp/udp4/tcp4
# udp4/tcp4 означает, что соответствующий протокол используется только через IPv4.
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote my-server-1 1194 # Вместо my-server-1 вы вводите
;remote my-server-2 1194 # собственный статический IP-адрес (x.x.x.x) или собственный идентификатор DynDNS (xyz.noip.com).
# 1194 — это спецификация порта, она должна совпадать 1:1 со спецификацией в server.conf.
# Choose a random host from the remote
# list for load-balancing. Otherwise
# try hosts in the order specified.
;remote-random
# Keep trying indefinitely to resolve the
# host name of the OpenVPN server. Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite # Устанавливает количество повторений
# если разрешение удаленного хоста не удается (infinite = бесконечно).
# Most clients don't need to bind to
# a specific local port number.
nobind
# Downgrade privileges after initialization (non-Windows only)
;user nobody
;group nogroup # Эти две записи можно активировать только для клиентов Linux.
# Try to preserve some state across restarts.
persist-key
persist-tun
# If you are connecting through an
# HTTP proxy to reach the actual OpenVPN
# server, put the proxy server/IP and
# port number here. See the man page
# if your proxy server requires
# authentication.
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
# Wireless networks often produce a lot
# of duplicate packets. Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings
# SSL/TLS parms.
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
ca ca.crt
cert client.crt
key client.key # Ссылки на файлы сертификатов приведены здесь (при необходимости скорректируйте пути).
# Удалите все ведущие символы комментария (хэш-знак #).
# Verify server certificate by checking that the
# certicate has the correct key usage set.
# This is an important precaution to protect against
# a potential attack discussed here:
# http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the keyUsage set to
# digitalSignature, keyEncipherment
# and the extendedKeyUsage to
# serverAuth
# EasyRSA can do this for you.
remote-cert-tls server
# If a tls-auth key is used on the server
# then every client must also have the key.
tls-auth ta.key 1
# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
# Note that v2.4 client/server will automatically
# negotiate AES-256-GCM in TLS mode.
# See also the ncp-cipher option in the manpage
cipher AES-256-CBC # Спецификация должна совпадать 1:1 со спецификацией в файле server.conf.
# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
#comp-lzo # Устаревший вариант (больше не рекомендуется).
;compress lz4-v2 # Опционально: Сжатие данных перед передачей (новая версия, при необходимости добавить запись).
# Важно: По соображениям безопасности вам следует используйте параметр Не включать сжатие.
# Set log file verbosity.
verb 3
# Silence repeating messages
;mute 20
Дополнительно Подсказка: Это исходный файл client.conf. Файл дополнен некоторыми комментариями.
Обратите внимание: здесь внесены только необходимые изменения для рабочего VPN-подключения.
Примените настройки из следующих оптимизированных конфигураций для повышения безопасности.
Оптимизирован client.conf с протоколом UDP (для копирования & вставки):
## Обобщенная
версия UDP client.conf с краткими комментариями со всеми важными параметрами и настройками для большей безопасности. ##
fragment 1200 # Фрагментация пакетов для UDP. Обязательно добавьте его в UDP.
auth-nocache # Не кэшируйте пароль сертификата в оперативной памяти.
auth SHA512 # По соображениям безопасности
аутентификация HMAC была увеличена с SHA1 (по умолчанию) до SHA512.
verify-x509-name
server name # Предотвращает атаки типа «человек посередине». Здесь вы должны использовать общее имя (CN) для сертификата сервера.
# Подсказка: В этом руководстве CN сервера — это просто "
server".
client # конфигурация клиента.
dev tun # Routing im OSI Layer 3/Маршрутизация на третьем уровне OSI.
proto udp4 # UDP через IPv4.
remote
x.x.x.x 1194 # Введите общедоступный IP-адрес (x.x.x.x) или идентификатор DynDNS для VPN-сервера и используемый порт.
resolv-retry infinite # Повторяйте установление соединения бесконечно в случае возникновения ошибок. Альтернативно, спецификация в секундах (длительность попыток).
nobind
;user nobody # Ограничение прав на сервере -> повысить безопасность. Эти записи следует активировать только для клиентов Linux.
;group nogroup
persist-key
persist-tun
ca ca.crt # Информация о пути для сертификатов/ключей.
cert client.crt
key client.key
remote-cert-tls server # Предотвращает атаки типа «человек посередине».
tls-crypt ta.key # Добавляйте подписи HMAC к пакетам -> повышайте безопасность. Заменяет параметр 'tls-auth ta.key 1'.
# Отсутствующий 1 так правильно. Также в tls-crypt больше нет необходимости указывать 'key-direction 1'.
# Важно: Здесь можно использовать только один вариант, т.е. либо tls-crypt (рекомендуется), либо tls-auth (устаревший).
cipher AES-256-GCM # Verschlüsselung festlegen. Weitere über: "openvpn --show-ciphers".
;compress lz4-v2 # Опционально: Komprimierung der Daten vor der Übertragung. Aus
Sicherheitsgründen sollte man die Komprimierung nicht aktivieren.
verb 3 # Detailgrad des Logfiles festlegen von 0-9, 2-4 empfohlen, 5-9 nur für Debug.
Оптимизирован файл client.conf с использованием TCP-Protokoll (для копирования & вставки рекомендуется) 👍:
## Краткое описание
TCP-версии client.conf с короткими комментариями со всеми важными параметрами и корректировками для большей безопасности. ##
auth-nocache # Не кэшируйте пароль сертификата в оперативной памяти.
auth SHA512 #
Аутентификация HMAC была увеличена с SHA1 (стандартного) до SHA512 по соображениям безопасности.
verify-x509-name
server name # Предотвращает атаки типа "человек посередине". Здесь должно использоваться общее имя (CN) сертификата сервера.
# Подсказка: В этом руководстве CN сервера — это просто «
server».
client # Конфигурация клиента.
dev tun # Маршрутизация на уровне 3 OSI.
proto tcp4 # TCP через IPv4.
remote
x.x.x.x 1194 # Введите публичный IP-адрес (x.x.x.x) или идентификатор DynDNS для VPN-сервера и используемый порт.
resolv-retry infinite # Повторять установку соединения бесконечно часто в случае возникновения ошибок. В качестве альтернативы укажите в секундах (продолжительность попыток).
nobind
;user nobody # Ограничение прав на сервере -> повышение безопасности. Эти записи должны быть активированы только для клиентов Linux.
;group nogroup
persist-key
persist-tun
ca ca.crt # Информация о пути к сертификатам/ключам.
cert client.crt
key client.key
remote-cert-tls server # Предотвращает атаки типа "человек посередине".
tls-crypt ta.key # Добавляет HMAC-подписи в пакеты -> повышает безопасность. Заменяет параметр 'tls-auth ta.key 1'.
# Отсутствующая 1 верна. Указание 'key-direction 1' также больше не требуется в tls-crypt.
# Важно: Здесь может использоваться только один вариант, т.е. либо tls-crypt (рекомендуется), либо tls-auth (устаревший).
cipher AES-256-GCM # Установите шифрование. Подробнее: "openvpn --show-ciphers".
;compress lz4-v2 # Опционально: Сжатие данных перед передачей. По
соображениям безопасности не следует включать сжатие.
verb 3 # Установите уровень детализации файла журнала от 0 до 9, рекомендуется 2-4, 5-9 только для отладки.
Клиентский скрипт для создания .ovpn файла:
34.
Обобщите файлы конфигурации:
Различные отдельные файлы могут быть объединены в один файл.
Самый простой способ сделать это - создать следующий сценарий:
nano ~/client/make_client_ovpn.sh
# в терминале/без GUI
pluma ~/client/make_client_ovpn.sh
# в рабочем столе/с GUI
Вставьте сюда следующее (рекомендуется скопировать и вставить):
#!/bin/bash
# $1 это первый передаваемый параметр (имя клиента).
# Этот скрипт создает файл *.ovpn для указанного клиента.
KEY_DIR=~/client/keys
OUT_DIR=~/client/files
cat ~/client/client.conf > ${OUT_DIR}/$1.ovpn | echo -e "
<ca> \n$(cat ${KEY_DIR}/ca.crt)\n</ca>
<cert> \n$(cat ${KEY_DIR}/$1.crt)\n</cert>
<key> \n$(cat ${KEY_DIR}/$1.key)\n</key>
<tls-crypt>\n$(cat ${KEY_DIR}/ta.key)\n</tls-crypt>" >> ${OUT_DIR}/$1.ovpn
Wichtige Дополнительные примечания:
1. Для ta.key используйте либо «tls-crypt» из OpenVPN 2.4 (как уже указано здесь в скрипте), либо «tls-auth». ' для старых версий.
2. Скопируйте скрипт в точности так, как указано здесь.
Важно: Дополнительные пробелы не могут быть помещены перед сертификатом или ключом в начале.
Все ключи должны присутствовать именно следующим образом:
client.conf # Bсегда соответствующее содержимое файла.
<ca> # Правильно: Ключ распознается без пробела.
ca.crt # Правильно: Без пробела в начале первой строки.
</ca>
<cert>
clientXX.crt
</cert>
<key>
clientXX.key
</key>
<tls-crypt>
ta.key
</tls-crypt>
Обратите внимание на следующее:
Ключи могут вообще не быть найдены, если вы вставите их рядом друг с другом, как показано здесь
или если файл сертификата или ключа начинается с пробела в начале первой строки:
client.conf # Всегда соответствующее содержимое файла.
# В заголовке допускаются любые пустые строки и строки комментариев.
<ca> # Правильно: без пробелов = ключ распознан.
-----BEGIN CERTIFICATE----- # Правильно: Без пробела в начале первой строки.
....
ca.crt
</ca>
<cert>
clientXX.crt
</cert> <key> # Ошибка 1: Ключи нельзя группировать рядом друг с другом.
-----BEGIN PRIVATE KEY----- # Ошибка 2: В начале первой строки есть дополнительный пробел.
....
clientXX.key # Таким образом, clientXX.key не найден.
</key>
# Между записями может быть любое количество пустых строк без каких-либо проблем.
<tls-crypt>
ta.key
</tls-crypt>
Ошибка 1:
Если теги сертификата или ключа объединены в одной строке в файле .ovpn, при установлении соединения может возникнуть следующая ошибка:
Thu Mar 19 14:56:34 2020 OpenVPN GUI>OpenVPN terminated with exit code 1. See the log file for details
В файле журнала появляется следующее сообщение об ошибке:
...
Options error: Unrecognized option or missing or extra parameter(s) in client02.ovpn:33: Certificate: (2.4.8)
Use --help for more information.
Соединение немедленно прерывается, поскольку программа OpenVPN не может найти ключи или параметры в файле конфигурации.
Ошибка 2:
Если в файле .ovpn перед фактическим сертификатом или ключом в начале содержимого в первой строке имеются дополнительные пробелы, то при установлении соединения может возникнуть следующая ошибка:
...
Thu Mar 19 12:43:44 2020 SIGUSR1[soft,private-key-password-failure] received, process restarting
Thu Mar 19 12:43:44 2020 MANAGEMENT: >STATE:1584618224,RECONNECTING,private-key-password-failure,,,,,
Thu Mar 19 12:43:44 2020 Restart pause, 5 second(s)
Thu Mar 19 12:43:49 2020 SIGUSR1[soft,private-key-password-failure] received, process restarting
Thu Mar 19 12:43:49 2020 MANAGEMENT: >STATE:1584618229,RECONNECTING,private-key-password-failure,,,,,
Thu Mar 19 12:43:49 2020 Restart pause, 5 second(s)
...
Ошибка продолжает повторяться. Также невозможно подключиться.
35.
Создайте файл конфигурации клиента (.ovpn):
chmod 700 ~/client/make_client_ovpn.sh
# Флаг исполняемости скрипта (необходим только один раз).
~/client/make_client_ovpn.sh client02
# Создает файл client02.ovpn для пользователя client02 (настройте соответствующим образом).
ls -l ~/client/files/
# Проверьте, был ли создан файл .ovpn для клиента.
Созданный файл .ovpn находится в
папке '~/client/files'.
Теперь для установления соединения клиентам нужен только этот единственный файл .ovpn и, если применимо, соответствующий пароль.
Настройка сервера завершена.
Подключения к журналу (необязательно/рекомендуется):
36.
Чтобы регистрировать VPN-соединения, нужно добавить несколько записей в файл server.conf.
.
Поэтому снова откройте файл server.conf с помощью редактора:
nano /etc/openvpn/server.conf
# в терминале/без GUI
nohup pluma /etc/openvpn/server.conf
# в рабочем столе/с GUI
Здесь вы добавляете следующие записи в файл server.conf (желательно в самом начале):
script-security 2 # Разрешите выполнение скриптов (требуется для ведения журнала).
client-connect /adm/logon.sh # Указанный скрипт запускается на сервере при подключении клиента. Сбор данных: подключенных клиентов, даты, IP и т. д.
client-disconnect /adm/logout.sh # Скрипт запускается на сервере при отключении клиента. Сбор данных: отключенные клиенты, дата, IP, продолжительность, трафик и т. д.
Подсказка: Обратите внимание, что сервер OpenVPN запустится снова только после того, как указанные здесь сценарии будут созданы соответствующим образом.
Поэтому, пожалуйста, продолжайте следовать инструкциям перед перезапуском сервера.
37.
Создайте каталог для сценариев журналирования и журнала пользователя:
mkdir -pv /adm
38.
Создайте скрипт входа в систему (client-connect):
nano /adm/logon.sh
# в терминале/без GUI
pluma /adm/logon.sh
# в рабочем столе/с GUI
Вставьте сюда следующее:
#!/bin/sh
echo logon , $common_name,
$(date "+%Y-%m-%d, %H:%M"), $trusted_ip >> /adm/userlog.csv.txt
exit 0
39.
Создайте сценарий выхода из системы (client-disconnect):
nano /adm/logout.sh
# в терминале/без GUI
pluma /adm/logout.sh
# в рабочем столе/с GUI
Вставьте сюда следующее:
#!/bin/sh
echo logout, $common_name,
$(date "+%Y-%m-%d, %H:%M"), $trusted_ip, $time_duration, $bytes_sent, $bytes_received >> /adm/userlog.csv.txt
exit 0
Пояснения к параметрам:
- %common_name% = это общее имя сертификата (CN), например client02, к которому подключается пользователь клиента OpenVPN (переменная окружения OpenVPN). Это позволяет назначить уникального пользователя.
- $(date "+%Y-%m-%d, %H:%M") = определяет дату и время для ведения журнала (переменные системного окружения).
- %trusted_ip% = это публичный удаленный IP-адрес, через который клиент подключен к Интернету (переменная окружения OpenVPN).
- %time_duration% = указывает продолжительность соединения клиента в секундах (переменная среды OpenVPN).
- %bytes_sent% = это объем данных в байтах, который клиент загрузил из сети сервера. Описывает данные, которые VPN-сервер отправил клиенту.
Слишком высокое значение и в противном случае совершенно неизвестный IP-адрес могут указывать на злоупотребление со стороны третьего лица. Другими словами, кто-то скачивает большие объемы данных (переменная окружения OpenVPN).
- %bytes_received% = это количество данных в байтах, которые клиент отправил в сеть сервера, то есть данные, которые VPN-сервер получил (переменная среды OpenVPN).
- echo = команда сохраняет содержимое переменных OpenVPN и системного окружения, описанных выше, в файле userlog.csv.txt.
Я рекомендую использовать запятые в качестве разделителей между значениями, потому что тогда вы сможете легко прочитать этот файл в Microsoft Excel или LibreOffice Calc, например, и обработать его там для дальнейшего анализа.
Расширение файла .txt было выбрано для лог-файла, потому что его можно просматривать непосредственно в веб-браузере.
40.
Далее вам нужно сделать скрипты исполняемыми:
chmod +x /adm/logon.sh
chmod +x /adm/logout.sh
Если вы установили повышенную безопасность в файле server.conf, т. е. активировали записи «user nobody» и «group nobody», то теперь вам необходимо включить файл журнала для записи.
Если вы этого не сделаете, файл userlog.csv.txt не будет создан, и в файле журнала появится ошибка. '... cannot create /adm/userlog.csv: Permission denied'.
41.
Создайте пустой файл журнала и настройте права доступа к нему:
touch /adm/userlog.csv.txt
# Создайте новый пустой файл.
chmod 666 /adm/userlog.csv.txt
# Установите права доступа к файлам.
Важно: Если вам следует удалить файл. Затем вам придется создать его снова с этими разрешениями.
42.
Чтобы применить настройки ведения журнала, вам необходимо снова перезагрузить сервер OpenVPN:
systemctl restart openvpn@server
Вот краткий пример файла журнала:
logon , client02, 2020-02-04, 13:15, 185.66.194.29
logout, client02, 2020-02-04, 13:16, 185.66.194.29, 29, 5134, 77031
...
Запись в журнал завершается здесь.
Выпустите протоколы в сети с lighttpd (optional):
43.
Если вы хотите просматривать файл журнала ежедневно, мы рекомендуем установить тонкий веб-сервер.
Из множества доступных веб-серверов есть lighttpd оказался лучшим кандидатом.
lighttpd [1] [2]
в настоящее время является одним из лучших веб-серверов.
lighttpd в настоящее время активно разрабатывается. Таким образом, программное обеспечение является актуальным и безопасным.
Более того, веб-сервер, как следует из названия, «легкий». Это означает, что потребление ресурсов относительно низкое.
Конфигурация также намного проще и рациональнее, чем, например, с веб-сервером Apache Tomcat.
Так что всё говорит в пользу лайттпд (моя рекомендация).
Den Webserver installieren:
sudo apt-get install lighttpd
44.
Настройте конфигурацию веб-сервера:
nano /etc/lighttpd/lighttpd.conf
# в терминале/без GUI
pluma /etc/lighttpd/lighttpd.conf
# в рабочем столе/с GUI
Здесь укажите путь и имя файла журнала для отмеченной записи:
...
server.modules = (
"mod_indexfile",
"mod_access",
"mod_alias",
"mod_redirect",
)
server.document-root = "/adm/userlog.csv.txt"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
...
45.
Чтобы применить изменения, необходимо перезапустить веб-сервер.
Также необходимо настроить брандмауэр, чтобы разрешить доступ в сети:
systemctl restart lighttpd
# Перезапустите веб-сервер.
ufw allow 80/tcp
# Включите доступ к веб-серверу в брандмауэре.
Файл журнала теперь должен быть доступен в веб-браузере через http://127.0.0.1 (localhost) непосредственно на сервере или через http:// x.x.x.x
(настройте IP-адрес локального сервера) можно просмотреть из любой точки локальной сети.
Здесь теперь вы можете в любое время просмотреть различные данные дозвона, продолжительность и объем переданных данных.
Отзыв сертификатов:
46.
Сертификат клиента или сертификат сервера можно заблокировать, вызвав:
cd ~/EasyRSA-3.0.8
./easyrsa revoke client02
Подтвердите блокировку, введя yes и ENTER.
Важно:
Вызов отзывает сертификат из центра сертификации (CA).
Однако сам сервер OpenVPN не проверяет, были ли заблокированы клиенты.
47.
С помощью следующего вызова вы создаете необходимый
Список отзыва сертификатов (CRL):
на ПК центра сертификации (CA).
./easyrsa gen-crl
Создано: ~/EasyRSA-3.0.8/pki/crl.pem
48.
Скопируйте файл crl.pem в папку /etc/openvpn/:
cp ~/EasyRSA-3.06/pki/crl.pem /etc/openvpn/
49.
Теперь вам нужно обратиться к списку отзыва сертификатов (crl.pem) в файле OpenVPN server.conf:
nano /etc/openvpn/server.conf
# в терминале/без GUI
pluma /etc/openvpn/server.conf
# в рабочем столе/с GUI
Здесь вам нужно добавить следующую строку:
crl-verify crl.pem # Добавьте эту строку желательно в конец (не важно где).
Важно: Эту запись можно добавить только после отзыва хотя бы одного сертификата.
Если вы активируете запись заранее, вы не сможете установить соединение (OpenVPN больше не запустится).
50.
Наконец, вам необходимо перезапустить OpenVPN, чтобы принять во внимание заблокированные сертификаты:
systemctl restart openvpn@server
Заблокированные клиенты больше не смогут подключиться.
Уже подключенные клиенты будут на короткое время отключены.
Im Router die Portfreigabe einrichten:
Freigabe im Router einrichten:
Damit der Server auch über das Internet erreichbar ist, muss man im [DSL-Router-im-VPN-Server-Netzwerk]
den verwendeten Port [1194] mit dem verwendeten Protokoll [UDP oder TCP] (entsprechend anpassen)
auf die interne [IP-Adresse des OpenVPN-Servers] weiterleiten.
Man muss also eine Portweiterleitung/Port-Forwarding/Portfreigabe im Router einrichten.
Ich stelle hier zwei Varianten vor, einmal mit einer handelsüblichen Fritz!Box und einmal mit einem Business LANCOM Router.
51.
Den Port gibt man in der Fritz!Box 7590 wie folgt frei:
1. Klickt links im Menü auf [Internet] und [Freigaben].
2. Dann auf den Karteireiter [Portfreigaben] klicken und unten rechts auf [Gerät für Freigaben hinzufügen] klicken.
3. Wählt hier zunächst bei [Gerät] euren VPN-Server aus oder gebt die entsprechenden interne IP-Adresse des VPN-Servers manuell ein.
Klickt hier dann unten rechts auf [Neue Freigabe].
4. In dem sich neu öffnenden Fenster stellt man dann folgendes ein:
Anwendung [Andere Anwendung]
Bezeichnung [VPN]
Protokoll [UDP] = hier UDP oder TCP einstellen.
Port an Gerät [1194] bis Port [1194] = dies ist der Port auf dem der VPN-Server intern lauscht.
Port extern gewünscht [1194] = dies ist der Port über den der VPN-Server später extern erreichbar sein soll.
[✓] Freigabe aktivieren
5. Das Ganze dann einfach mit [OK] und [Übernehmen] speichern.
6. Wenn alles geklappt hat sollte die Portfreigabe jetzt mit einem grünen Punkt in der Übersicht erscheinen.
Sonstige weitere Routeranpassungen muss man nicht vornehmen.
Zur besseren Verdeutlichung habe ich die Schritte hier noch mal als Animation vorbereitet.
Beachtet auch den Mauszeiger dieser zeigt immer den nächsten Schritt an.
Hinweise: Dies ist eine Schritt-für-Schritt-Animation, die Bilder wechseln alle 10 Sekunden automatisch.
Die Animation wird derzeit nur auf Webbrowsern gezeigt die webp Unterstützen (nicht im Internet-Explorer).
52.
Das Portforwarding im LANCOM R884VA Router einrichten:
Подсказка: In der Testumgebung wurde hier das TCP- und UDP-Protokoll weitergeleitet. Im produktiven Betrieb reicht es wenn man nur das tatsächlich verwendete Protokoll weiterleitet.
Das Port-Forwarding richtet man über die folgenden Menüpunkte ein:
[Konfiguration], [IP-Router], [Maskierung] und [Port-Forwarding-Tabelle]
Hier unten auf [Hinzufügen] klicken und die entsprechenden Werte eingeben. Der Rest sollte dann klar sein.
Sonstige weitere Routeranpassungen muss man nicht vornehmen.
Die optimale MTU Größe ermitteln:
53.
Wenn man größere Daten übertragen möchte dann werden diese nicht am Stück übertragen, sondern in viele kleine Datenpakete (fragmente) verpackt.
Die MTU (maximum transmission unit) legt nun fest wie groß die jeweiligen TCP/IP-Datenpakete sind.
Die Datenpakete enthalten dabei nicht nur Daten, sondern eine Vielzahl von weiteren Informationen (Header-Daten) wie Beispielsweise: Quelle, Ziel, Status, Fragmentierung, Prüfsumme.
Daraus kann man ableiten, je größer der MTU-Wert ist, desto günstiger wird das Verhältnis von TCP/IP-Header zu Nutzdaten.
Eine größere MTU würde die Verbindung somit beschleunigen.
Doch Vorsicht!
Datenpakete die zu groß sind werden bei der Übertragung auf Routern (bzw. in der Firewall u. ä.) oft einfach verworfen. Dies trifft vor allem auf verbindungslose UDP-Datenpakete zu.
Zwar könnten Router zu große Datenpakete entsprechend umfragmentieren. Dies wird aber heutzutage häufig nicht mehr durchgeführt, da dies Leistung kostet. Zu große Pakete werden daher in der Regel einfach verworfen.
Das verwerfen von Paketen kann auch unterwegs auf dem Router beim Internetprovider passieren.
Важно: Zu hohe MTU/fragment Werte machen die Verbindung daher ggf. instabil.
Bei einem zu hohem MTU-Wert wird die Verbindung zwar meist aufgebaut. Man kann aber oft nicht vernünftig Daten übertragen.
Typische Symptome sind:
- Die Verbindung ist nur wenige Sekunden nutzbar.
Bzw. sobald man Daten übertragen will (sobald die Auslastung der Datenpakete steigt) bricht die Verbindung zusammen.
- Hängende Web-Anwendungen. Der Aufbau klappt nur nach mehrfachen reload der Webseiten.
- Extrem langsame Verbindungen.
- Ständig abgebrochene Downloads/Datenübertragungen.
Und all das obwohl die VPN-Verbindung in der Regel nach wie vor steht.
54.
Wie findet man nun den optimalen MTU-Wert heraus?
Wenn mehrere Verbindungen zur Verfügung stehen (verschiedene Standorte, Mobilfunk, Freifunk usw.) dann testet diese alle.
Beachtet in dem Zuge auch, Routen sind im Internet niemals statisch. Änderungen auch während der Laufzeit sind immer möglich.
Man sollte daher von dem ermittelten Maximalwert ggf. auch eine kleine Reserve für ungeplantes (andere Orte, andere MTU) abziehen.
Beim Ermitteln der optimalen MTU beginnt man zunächst mit einem größeren Wert (1500 bei Standard Ethernet),
diesen verkleinert man nun so lange bis die Pakete nicht mehr fragmentiert werden.
Beachtet dabei, dieser ermittelte Wert ist nur der netto Datenwert (Datenbytes).
Um die optimale MTU zu erhalten fügt man noch 28 Bytes (Header-Bytes) hinzu.
Die Berechnung des optimalen MTU-Wertes (für IPv4) erfolgt daher wie folgt:
nicht_fragmentierter_Ping_Wert + 28 = optimale MTU
55.
Test unter Windows:
ping -f -l 1252 1.1 # unter Windows
Parametererklärungen:
-f = Pakete nicht fragmentieren (gilt nur für IPv4).
-l 1252 = Bestimmt die Paketgröße. Diese kann man anpassen von 68 (Minimum) bis 1500 (Standard Ethernet).
Man beginnt bei 1500 und verkleinert den Wert so lange bis das Datenpaket nicht mehr fragmentiert wird.
Im Freifunk Netz von saar.freifunk.net ist 1252 (Stand 2020-01-14) die größte Paketgröße (Datenbytes ohne Header).
Wenn man die Verbindung auch Unterwegs (von verschiedenen Standorten aus) nutzen will, dann sollte man die Paketgröße nicht zu hoch einstellen.
Ich habe daher den MTU-Wert oben im Tutorial auf 1200 gesenkt (meine Empfehlung wenn man UDP verwendet/sehr stabiler Betrieb).
Werte bis 1280 sind sicher auch noch für die meisten Ok. Noch höhere Werte können die eben beschriebenen Probleme verursachen.
1.1 ist hier das Ping-Ziel. 1.1 ist dabei die Kurzform von 1.0.0.1.
Man kann hier auch eine andere beliebige Domainnamen wie z. B. www.ctaas.de verwenden.
Hinweise: Hier ein Beispiel ping unter einer typischen Windows 10 Installation.
Der erste ping mit einer Paketgröße von 1465 schlägt hier fehl. Das Datenpaket müsste hier fragmentiert werden. Was jedoch durch den Parameter -f verboten wurde. Die Datenübertragung schlägt also fehl.
Der zweite ping mit einer Paketgröße von 1464 klappt. Die optimale MTU-Größe wäre hier 1492 (1464 Datenbytes + 28 Header-Bytes).
Beachtet hier aber, dass unterwegs wie z. B. in Hotels, bei mobilen und freien Netzen wie z. B. Freifunk der größte nicht fragmentierte MTU-Wert viel kleiner sein kann.
Im Freifunk Netz von saar.freifunk.net ist der größtmögliche MTU Wert z. B. nur 1280 (1252 Datenbytes + 28 Header-Bytes).
Die MTU-Werte vom Windows System anzeigen:
netsh interface ipv4 show interfaces # unter Windows
Hinweise: Hier ein Beispiel unter Windows 10 mit installiertem VirtualBox Netzwerkadapter.
56.
Test unter Linux:
ping -c 4 -s 1464 -M do 1.1 # unter Linux
Parametererklärungen:
-c 4 = (count) Bestimmt die Anzahl der zu sendenden Pakete.
-s 1464 = (size) Legt die Größe der zu sendenden Pakete fest von 68 (Minimum) bis 1500 (Standard Ethernet).
-M do = (pmtudisc_option) Legt die "Path MTU Discovery" variante fest.
Hierbei bedeutet:
do = verbiete überall die Fragmentierung (auch lokal).
want = Führe "Path MTU Discovery" aus, fragmentiere lokal, wenn das Paket zu groß ist.
dont = DF nicht setzen.
1.1 ist hier wieder das Ping-Ziel. 1.1 ist dabei die Kurzform von 1.0.0.1.
Man kann hier auch eine andere beliebige Domainnamen wie z. B. www.ctaas.de verwenden.
Hinweise: Hier ein Beispiel ping unter Xubuntu 20.04 LTS.
Der erste ping mit einer Paketgröße von 1465 schlägt hier mit der Meldung: 'ping: lokaler Fehler Nachricht zu lang, ...' fehl.
Das Datenpaket müsste hier fragmentiert werden. Was jedoch durch den Parameter '-M do' verboten wurde. Die Datenübertragung schlägt also fehl.
Beachtet man die Meldung genau, dann fällt einem auf, dass am Ende bereits die maximale MTU ausgegeben wird, hier 'MTU=1492'
Der zweite ping mit einer Paketgröße von 1464 klappt. Die optimale MTU-Größe wäre hier 1492 (1464 Datenbytes + 28 Header-Bytes).
Die MTU-Werte vom Linux System anzeigen:
ip link # unter Linux - neue Systeme
ifconfig # unter Linux - ältere Systeme
Hinweise: Hier ein Beispiel unter Xubuntu 20.04 LTS mit gestartetem OpenVPN Server (tun0 Netzwerkadapter).
Fazit:
Mit dem hier im Tutorial voreingestellten Wert von 1200 (nur bei UDP) habe ich gute Erfahrungen gemacht.
Tendenziell empfehle ich die Verwendung des TCP-Protokolls, da hier weniger Paketverluste auftreten, auch wenn der Paketoverhead bei TCP etwas größer ist.
Denn die TCP-Pakete werden automatisch an die entsprechende Paketgröße angepasst. Die Geschwindigkeit passt sich somit bei unterschiedlichen Gegebenheiten viel besser an.
Weiterhin muss man bedenken, der Geschwindigkeitsunterschied zwischen UDP und TCP ist dank moderner Internet-Verbindungen heutzutage kaum noch feststellbar.
Früher bei langsamen ISDN oder Modem Verbindungen war dies vielleicht noch ausschlaggebend, heutzutage mit GLAN und MBit Verbindungen kann man dies vernachlässigen.
TCP-Verbindungen sind definitiv stabiler und daher meine Empfehlung.
Fehlermeldungen bei doppelter/mehrfacher Nutzung der Verbindung mit ein und demselben Zertifikat:
57.
Beachtet bitte das man für jeden User bzw. genauer für jedes Gerät was sich verbinden soll ein separates Zertifikat benötigt.
Hat ein User zwei oder mehre Geräte und möchte sich mit diesen gleichzeitig verbinden dann muss man für jedes Gerät ein separates Zertifikat erzeugen.
Beachtet man dies nicht, so kommt es zu folgendem Verhalten:
- Die Verbindung wird sauber aufgebaut und das Icon im Tray bei der Verwendung der Windows Clients wird auch kurz grün.
- Die Verbindung bricht aber innerhalb weniger ms/s wieder zusammen und das Tray Icon wird wieder gelb und es startet ein erneuter Verbindungsaufbau.
- Die Verbindung steht dann also nicht stabil. Sie bricht immer wiederkehrend zusammen und ein Arbeiten ist praktisch unmöglich.
- Die Verbindung baut sich in der Minute ca. 6-mal neu auf. Letzteres ist natürlich abhängig von der Geschwindigkeit der Verbindungen.
- Im Logfile stehen dann Fehler wie: [Connection reset, restarting [0]], [SIGUSR1[soft,connection-reset] received, process restarting] bzw. [RECONNECTING,connection-reset].
- Das Problem ist hier einfach das alle Geräte, die das gleiche Zertifikat verwenden, sich hier gegenseitig immer rauswerfen. Dadurch wird die Verbindung gegenseitig ständig getrennt.
Hier zur Verdeutlichung mal ein anonymisiertes Beispiel eines fehlerhaften Logfiles:
2022-11-28 09:03:25 OpenVPN 2.5.8 [git:release/2.5/0357ceb877687faa] Windows-MSVC [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Nov 11 2022
2022-11-28 09:03:25 Windows version 10.0 (Windows 10 or greater) 64bit
2022-11-28 09:03:25 library versions: OpenSSL 1.1.1s 1 Nov 2022, LZO 2.10
2022-11-28 09:03:25 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
2022-11-28 09:03:25 Need hold release from management interface, waiting...
2022-11-28 09:03:25 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
2022-11-28 09:03:25 MANAGEMENT: CMD 'state on'
2022-11-28 09:03:25 MANAGEMENT: CMD 'log on all'
2022-11-28 09:03:25 MANAGEMENT: CMD 'echo on all'
2022-11-28 09:03:25 MANAGEMENT: CMD 'bytecount 5'
2022-11-28 09:03:25 MANAGEMENT: CMD 'state'
2022-11-28 09:03:25 MANAGEMENT: CMD 'hold off'
2022-11-28 09:03:25 MANAGEMENT: CMD 'hold release'
2022-11-28 09:03:37 MANAGEMENT: CMD 'password [...]'
2022-11-28 09:03:37 Outgoing Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
2022-11-28 09:03:37 Outgoing Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
2022-11-28 09:03:37 Incoming Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
2022-11-28 09:03:37 Incoming Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
2022-11-28 09:03:37 TCP/UDP: Preserving recently used remote address: [AF_INET]80.153.75.167:1194
2022-11-28 09:03:37 Socket Buffers: R=[65536->65536] S=[65536->65536]
2022-11-28 09:03:37 Attempting to establish TCP connection with [AF_INET]80.153.75.167:1194 [nonblock]
2022-11-28 09:03:37 MANAGEMENT: >STATE:1669622617,TCP_CONNECT,,,,,,
2022-11-28 09:03:37 TCP connection established with [AF_INET]80.153.75.167:1194
2022-11-28 09:03:37 TCPv4_CLIENT link local: (not bound)
2022-11-28 09:03:37 TCPv4_CLIENT link remote: [AF_INET]80.153.75.167:1194
2022-11-28 09:03:37 MANAGEMENT: >STATE:1669622617,WAIT,,,,,,
2022-11-28 09:03:37 MANAGEMENT: >STATE:1669622617,AUTH,,,,,,
2022-11-28 09:03:37 TLS: Initial packet from [AF_INET]80.153.75.167:1194, sid=5a4de6eb 07743b7f
2022-11-28 09:03:37 VERIFY OK: depth=1, C=DE, ST=TH, L=Kahla, O=Computertechnik, OU=IT-VPN, CN=Easy-RSA CA, emailAddress=mail@ctaas.de
2022-11-28 09:03:37 VERIFY KU OK
2022-11-28 09:03:37 Validating certificate extended key usage
2022-11-28 09:03:37 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
2022-11-28 09:03:37 VERIFY EKU OK
2022-11-28 09:03:37 VERIFY X509NAME OK: C=DE, ST=TH, L=Kahla, O=Computertechnik, OU=IT-VPN, CN=server, emailAddress=mail@ctaas.de
2022-11-28 09:03:37 VERIFY OK: depth=0, C=DE, ST=TH, L=Kahla, O=Computertechnik, OU=IT-VPN, CN=server, emailAddress=mail@ctaas.de
2022-11-28 09:03:38 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer certificate: 8761 bit RSA, signature: RSA-SHA256
2022-11-28 09:03:38 [server] Peer Connection Initiated with [AF_INET]80.153.75.167:1194
2022-11-28 09:03:38 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 192.168.20.10,dhcp-option DNS 9.9.9.9,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.10 10.8.0.9,peer-id 0,cipher AES-256-GCM'
2022-11-28 09:03:38 OPTIONS IMPORT: timers and/or timeouts modified
2022-11-28 09:03:38 OPTIONS IMPORT: --ifconfig/up options modified
2022-11-28 09:03:38 OPTIONS IMPORT: route options modified
2022-11-28 09:03:38 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
2022-11-28 09:03:38 OPTIONS IMPORT: peer-id set
2022-11-28 09:03:38 OPTIONS IMPORT: adjusting link_mtu to 1626
2022-11-28 09:03:38 OPTIONS IMPORT: data channel crypto options modified
2022-11-28 09:03:38 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
2022-11-28 09:03:38 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
2022-11-28 09:03:38 interactive service msg_channel=456
2022-11-28 09:03:38 open_tun
2022-11-28 09:03:38 tap-windows6 device [OpenVPN TAP-Windows6] opened
2022-11-28 09:03:38 TAP-Windows Driver Version 9.24
2022-11-28 09:03:38 Notified TAP-Windows driver to set a DHCP IP/netmask of 10.8.0.10/255.255.255.252 on interface {8A581024-BC1C-4998-9866-EE30A9E63F21} [DHCP-serv: 10.8.0.9, lease-time: 31536000]
2022-11-28 09:03:38 Successful ARP Flush on interface [8] {8A581024-BC1C-4998-9866-EE30A9E63F21}
2022-11-28 09:03:38 MANAGEMENT: >STATE:1669622618,ASSIGN_IP,,10.8.0.10,,,,
2022-11-28 09:03:38 IPv4 MTU set to 1500 on interface 8 using service
2022-11-28 09:03:43 TEST ROUTES: 2/2 succeeded len=1 ret=1 a=0 u/d=up
2022-11-28 09:03:43 C:\Windows\system32\route.exe ADD 80.153.75.167 MASK 255.255.255.255 10.24.193.3
2022-11-28 09:03:43 Route addition via service succeeded
2022-11-28 09:03:43 C:\Windows\system32\route.exe ADD 0.0.0.0 MASK 128.0.0.0 10.8.0.9
2022-11-28 09:03:43 Route addition via service succeeded
2022-11-28 09:03:43 C:\Windows\system32\route.exe ADD 128.0.0.0 MASK 128.0.0.0 10.8.0.9
2022-11-28 09:03:43 Route addition via service succeeded
2022-11-28 09:03:43 MANAGEMENT: >STATE:1669622623,ADD_ROUTES,,,,,,
2022-11-28 09:03:43 C:\Windows\system32\route.exe ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.9
2022-11-28 09:03:43 Route addition via service succeeded
2022-11-28 09:03:43 Initialization Sequence Completed
2022-11-28 09:03:43 MANAGEMENT: >STATE:1669622623,CONNECTED,SUCCESS,10.8.0.10,80.153.75.167,1194,10.24.207.56,52002
2022-11-28 09:03:43 Connection reset, restarting [0]
2022-11-28 09:03:43 SIGUSR1[soft,connection-reset] received, process restarting
2022-11-28 09:03:43 MANAGEMENT: >STATE:1669622623,RECONNECTING,connection-reset,,,,,
2022-11-28 09:03:43 Restart pause, 5 second(s)
2022-11-28 09:03:48 Outgoing Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
2022-11-28 09:03:48 Outgoing Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
2022-11-28 09:03:48 Incoming Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
2022-11-28 09:03:48 Incoming Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
2022-11-28 09:03:48 TCP/UDP: Preserving recently used remote address: [AF_INET]80.153.75.167:1194
2022-11-28 09:03:48 Socket Buffers: R=[65536->65536] S=[65536->65536]
2022-11-28 09:03:48 Attempting to establish TCP connection with [AF_INET]80.153.75.167:1194 [nonblock]
2022-11-28 09:03:48 MANAGEMENT: >STATE:1669622628,TCP_CONNECT,,,,,,
2022-11-28 09:03:48 TCP connection established with [AF_INET]80.153.75.167:1194
2022-11-28 09:03:48 TCPv4_CLIENT link local: (not bound)
2022-11-28 09:03:48 TCPv4_CLIENT link remote: [AF_INET]80.153.75.167:1194
2022-11-28 09:03:48 MANAGEMENT: >STATE:1669622628,WAIT,,,,,,
2022-11-28 09:03:48 MANAGEMENT: >STATE:1669622628,AUTH,,,,,,
2022-11-28 09:03:48 TLS: Initial packet from [AF_INET]80.153.75.167:1194, sid=69f19f98 08355026
2022-11-28 09:03:48 VERIFY OK: depth=1, C=DE, ST=TH, L=Kahla, O=Computertechnik, OU=IT-VPN, CN=Easy-RSA CA, emailAddress=mail@ctaas.de
2022-11-28 09:03:48 VERIFY KU OK
2022-11-28 09:03:48 Validating certificate extended key usage
2022-11-28 09:03:48 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
2022-11-28 09:03:48 VERIFY EKU OK
2022-11-28 09:03:48 VERIFY X509NAME OK: C=DE, ST=TH, L=Kahla, O=Computertechnik, OU=IT-VPN, CN=server, emailAddress=mail@ctaas.de
2022-11-28 09:03:48 VERIFY OK: depth=0, C=DE, ST=TH, L=Kahla, O=Computertechnik, OU=IT-VPN, CN=server, emailAddress=mail@ctaas.de
2022-11-28 09:03:48 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer certificate: 8761 bit RSA, signature: RSA-SHA256
2022-11-28 09:03:48 [server] Peer Connection Initiated with [AF_INET]80.153.75.167:1194
2022-11-28 09:03:48 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 192.168.20.10,dhcp-option DNS 9.9.9.9,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.10 10.8.0.9,peer-id 0,cipher AES-256-GCM'
2022-11-28 09:03:48 OPTIONS IMPORT: timers and/or timeouts modified
2022-11-28 09:03:48 OPTIONS IMPORT: --ifconfig/up options modified
2022-11-28 09:03:48 OPTIONS IMPORT: route options modified
2022-11-28 09:03:48 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
2022-11-28 09:03:48 OPTIONS IMPORT: peer-id set
2022-11-28 09:03:48 OPTIONS IMPORT: adjusting link_mtu to 1626
2022-11-28 09:03:48 OPTIONS IMPORT: data channel crypto options modified
2022-11-28 09:03:48 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
2022-11-28 09:03:48 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
2022-11-28 09:03:48 Preserving previous TUN/TAP instance: OpenVPN TAP-Windows6
2022-11-28 09:03:48 Initialization Sequence Completed
2022-11-28 09:03:48 MANAGEMENT: >STATE:1669622628,CONNECTED,SUCCESS,10.8.0.10,80.153.75.167,1194,10.24.207.56,52013
2022-11-28 09:03:54 Connection reset, restarting [-1]
2022-11-28 09:03:54 SIGUSR1[soft,connection-reset] received, process restarting
2022-11-28 09:03:54 MANAGEMENT: >STATE:1669622634,RECONNECTING,connection-reset,,,,,
2022-11-28 09:03:54 Restart pause, 5 second(s)
2022-11-28 09:03:59 Outgoing Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
2022-11-28 09:03:59 Outgoing Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
2022-11-28 09:03:59 Incoming Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
2022-11-28 09:03:59 Incoming Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
2022-11-28 09:03:59 TCP/UDP: Preserving recently used remote address: [AF_INET]80.153.75.167:1194
2022-11-28 09:03:59 Socket Buffers: R=[65536->65536] S=[65536->65536]
2022-11-28 09:03:59 Attempting to establish TCP connection with [AF_INET]80.153.75.167:1194 [nonblock]
2022-11-28 09:03:59 MANAGEMENT: >STATE:1669622639,TCP_CONNECT,,,,,,
2022-11-28 09:03:59 TCP connection established with [AF_INET]80.153.75.167:1194
2022-11-28 09:03:59 TCPv4_CLIENT link local: (not bound)
2022-11-28 09:03:59 TCPv4_CLIENT link remote: [AF_INET]80.153.75.167:1194
2022-11-28 09:03:59 MANAGEMENT: >STATE:1669622639,WAIT,,,,,,
2022-11-28 09:03:59 MANAGEMENT: >STATE:1669622639,AUTH,,,,,,
2022-11-28 09:03:59 TLS: Initial packet from [AF_INET]80.153.75.167:1194, sid=2e2f4e80 77229c19
2022-11-28 09:03:59 VERIFY OK: depth=1, C=DE, ST=TH, L=Kahla, O=Computertechnik, OU=IT-VPN, CN=Easy-RSA CA, emailAddress=mail@ctaas.de
2022-11-28 09:03:59 VERIFY KU OK
2022-11-28 09:03:59 Validating certificate extended key usage
2022-11-28 09:03:59 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
2022-11-28 09:03:59 VERIFY EKU OK
2022-11-28 09:03:59 VERIFY X509NAME OK: C=DE, ST=TH, L=Kahla, O=Computertechnik, OU=IT-VPN, CN=server, emailAddress=mail@ctaas.de
2022-11-28 09:03:59 VERIFY OK: depth=0, C=DE, ST=TH, L=Kahla, O=Computertechnik, OU=IT-VPN, CN=server, emailAddress=mail@ctaas.de
2022-11-28 09:03:59 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer certificate: 8761 bit RSA, signature: RSA-SHA256
2022-11-28 09:03:59 [server] Peer Connection Initiated with [AF_INET]80.153.75.167:1194
2022-11-28 09:03:59 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 192.168.20.10,dhcp-option DNS 9.9.9.9,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.10 10.8.0.9,peer-id 0,cipher AES-256-GCM'
2022-11-28 09:03:59 OPTIONS IMPORT: timers and/or timeouts modified
2022-11-28 09:03:59 OPTIONS IMPORT: --ifconfig/up options modified
2022-11-28 09:03:59 OPTIONS IMPORT: route options modified
2022-11-28 09:03:59 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
2022-11-28 09:03:59 OPTIONS IMPORT: peer-id set
2022-11-28 09:03:59 OPTIONS IMPORT: adjusting link_mtu to 1626
2022-11-28 09:03:59 OPTIONS IMPORT: data channel crypto options modified
2022-11-28 09:03:59 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
2022-11-28 09:03:59 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
2022-11-28 09:03:59 Preserving previous TUN/TAP instance: OpenVPN TAP-Windows6
2022-11-28 09:03:59 Initialization Sequence Completed
2022-11-28 09:03:59 MANAGEMENT: >STATE:1669622639,CONNECTED,SUCCESS,10.8.0.10,80.153.75.167,1194,10.24.207.56,64757
2022-11-28 09:04:05 Connection reset, restarting [0]
2022-11-28 09:04:05 SIGUSR1[soft,connection-reset] received, process restarting
2022-11-28 09:04:05 MANAGEMENT: >STATE:1669622645,RECONNECTING,connection-reset,,,,,
2022-11-28 09:04:05 Restart pause, 5 second(s)
2022-11-28 09:04:10 Outgoing Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
2022-11-28 09:04:10 Outgoing Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
2022-11-28 09:04:10 Incoming Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
2022-11-28 09:04:10 Incoming Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
2022-11-28 09:04:10 TCP/UDP: Preserving recently used remote address: [AF_INET]80.153.75.167:1194
2022-11-28 09:04:10 Socket Buffers: R=[65536->65536] S=[65536->65536]
2022-11-28 09:04:10 Attempting to establish TCP connection with [AF_INET]80.153.75.167:1194 [nonblock]
2022-11-28 09:04:10 MANAGEMENT: >STATE:1669622650,TCP_CONNECT,,,,,,
2022-11-28 09:04:10 TCP connection established with [AF_INET]80.153.75.167:1194
2022-11-28 09:04:10 TCPv4_CLIENT link local: (not bound)
2022-11-28 09:04:10 TCPv4_CLIENT link remote: [AF_INET]80.153.75.167:1194
2022-11-28 09:04:10 MANAGEMENT: >STATE:1669622650,WAIT,,,,,,
2022-11-28 09:04:10 MANAGEMENT: >STATE:1669622650,AUTH,,,,,,
2022-11-28 09:04:10 TLS: Initial packet from [AF_INET]80.153.75.167:1194, sid=5a0019ad 7902d7d0
2022-11-28 09:04:10 VERIFY OK: depth=1, C=DE, ST=TH, L=Kahla, O=Computertechnik, OU=IT-VPN, CN=Easy-RSA CA, emailAddress=mail@ctaas.de
2022-11-28 09:04:10 VERIFY KU OK
2022-11-28 09:04:10 Validating certificate extended key usage
2022-11-28 09:04:10 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
2022-11-28 09:04:10 VERIFY EKU OK
2022-11-28 09:04:10 VERIFY X509NAME OK: C=DE, ST=TH, L=Kahla, O=Computertechnik, OU=IT-VPN, CN=server, emailAddress=mail@ctaas.de
2022-11-28 09:04:10 VERIFY OK: depth=0, C=DE, ST=TH, L=Kahla, O=Computertechnik, OU=IT-VPN, CN=server, emailAddress=mail@ctaas.de
2022-11-28 09:04:11 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer certificate: 8761 bit RSA, signature: RSA-SHA256
2022-11-28 09:04:11 [server] Peer Connection Initiated with [AF_INET]80.153.75.167:1194
2022-11-28 09:04:11 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 192.168.20.10,dhcp-option DNS 9.9.9.9,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.10 10.8.0.9,peer-id 0,cipher AES-256-GCM'
2022-11-28 09:04:11 OPTIONS IMPORT: timers and/or timeouts modified
2022-11-28 09:04:11 OPTIONS IMPORT: --ifconfig/up options modified
2022-11-28 09:04:11 OPTIONS IMPORT: route options modified
2022-11-28 09:04:11 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
2022-11-28 09:04:11 OPTIONS IMPORT: peer-id set
2022-11-28 09:04:11 OPTIONS IMPORT: adjusting link_mtu to 1626
2022-11-28 09:04:11 OPTIONS IMPORT: data channel crypto options modified
2022-11-28 09:04:11 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
2022-11-28 09:04:11 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
2022-11-28 09:04:11 Preserving previous TUN/TAP instance: OpenVPN TAP-Windows6
2022-11-28 09:04:11 Initialization Sequence Completed
2022-11-28 09:04:11 MANAGEMENT: >STATE:1669622651,CONNECTED,SUCCESS,10.8.0.10,80.153.75.167,1194,10.24.207.56,64777
...
Wie man hier im Logfile gut erkennen kann, wurde die Verbindung circa alle 10 Sekunden neu aufgebaut.
Zwischenzeitlich kann man die Verbindung nur wenige ms/s nutzen, da die Verbindung ja ständig wieder getrennt wird.
Das Logfile wurde gekürzt. Das Logfile würde so wie die letzten Abschnitte sind immer wiederholt weiter gehen.
Die Lösung für das Problem ist relativ einfach:
Verwendet für unterschiedliche Geräte die gleichzeitig eine Verbindung benötigen immer einfach ein individuelles Zertifikat.
Dann gibt es keine Probleme.
Abschließende Hinweise:
IP-Adressen, E-Mailadressen, Namen u. ä. wurden für die Dokumentation geändert, hacken ist also zwecklos.
Die Nutzung der Anleitung erfolgt auf eigene Gefahr, für jegliche Schäden wird keine Garantie/Haftung übernommen.
Die Dokumentation entstand aus verschiedenen Tests, sowie produktiven Installationen und stellt eine Zusammenfassung wichtiger und empfohlener Schritte dar.
Bevor sie eventuell Fragen stellen bitte ich sie die Dokumentation komplett zu lesen.
Hinweise auf Fehler, Anregungen, Danksagungen oder ähnliches sind immer willkommen.
Alte Tutorial Versionen finden Sie archiviert hier:
OpenVPN tun/NAT : routing : Layer 3 : Protokollierung - gegeigent für Ubuntu 14.04/14.10 (veraltete Archiv-Version)
OpenVPN tap/NAT : bridging : Layer 2 : Protokollierung - gegeigent für Ubuntu 14.04/14.10 (veraltete Archiv-Version)
Was ist noch geplant?
Demnächst ist noch eine aktuelle bridging Variante geplant, da die alte Version nicht mehr unter den neuen Ubuntu/Debian Versionen funktioniert.
Weiterhin möchte ich demnächst noch die IPv6-Unterstützung und Debian spezifische Eigenheiten ergänzen.
Die Tests hierzu dauern aber noch an.
Design:
© ctaas.de, A. Schröder - Kahla, Impressum