Всем доброго времени суток! На работе стоит задача по передаче IP адреса Openvpn клиента на сервер Openvpn через HAProxy. Схематично в тестовой среде выглядит так: Оpenvpn-Client 192.168.10.206 -> HAProxy 192.168.10.216 -> Openvpn-Server 192.168.10.121.
Openvpn-client:
#cat /etc/openvpn/client/Client1.conf
client
dev tun
proto tcp
remote 192.168.10.216 1194
remote 192.168.10.216 443
resolv-retry infinite
nobind
cipher AES-256-CBC
remote-cert-tls server
comp-lzo
log Client1.log
verb 3
tls-auth ta.key 1
ca ca.crt [br]
cert Client1.crt
key Client1.key
HAProxy:
#cat haproxy.cfg
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level
admin expose-fd listeners
stats timeout 30s
user root
group root
daemon
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
ssl-default-bind-ciphers
ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
frontend vpn-in01
mode tcp
option tcplog
bind *:443
bind *:1194
default_backend servers01
backend servers01
mode tcp
server vpn2-clone 192.168.10.121:1194 check fall 3 rise 2
# server vpn2-clone 192.168.10.121:1194 check send-proxy
Openvpn-Server:
#cat /etc/openvpn/srv-openvpn.conf
port 1194
proto tcp
dev tun
multihome
ca ca.crt
cert srv-openvpn.crt
key srv-openvpn.key
dh dh2048.pem
tls-auth ta.key 0
cipher AES-256-CBC
server 172.16.124.0 255.255.254.0
keepalive 10 120
persist-key
persist-tun
mute 20
client-config-dir ccd
status srv-openvpn-status.log
log /var/log/srv-openvpn.log
log-append /var/log/srv-openvpn.log
management localhost 7505
verb 3
comp-lzo
sndbuf 0
rcvbuf 0
client-to-client
crl-verify /etc/openvpn/easy-rsa/keys/crl.pem
push "register-dns"
push "redirect-gateway"
push "dhcp-option DNS 192.168.10.22"
route 192.168.43.0 255.255.255.0
route 192.168.44.0 255.255.255.0
С данными настройками клиент подключается, но у всех клиентов ip адрес источника = ip адресу HAProxy. Если в настройках бэкэнда прописать строку:
server vpn2-clone 192.168.10.121:1194 check send-proxy
вместо текущей:
server vpn2-clone 192.168.10.121:1194 check fall 3 rise 2
То на впн сервере при подключении следующие ошибки:
Mon Jun 1 16:53:02 2020 192.168.10.216:57348 SIGUSR1[soft,connection-reset] received, client-instance restarting
Mon Jun 1 16:53:04 2020 WARNING: normally if you use --mssfix and/or --fragment, you should also set --tun-mtu 1500 (currently it is 1400)
Mon Jun 1 16:53:04 2020 TCP connection established with [AF_INET]192.168.10.216:57350
Mon Jun 1 16:53:04 2020 192.168.10.216:57350 WARNING: Bad encapsulated packet length from peer (20562), which must be > 0 and <= 1527 — please ensure that --tun-mtu or --link-mtu is equal on both peers — this condition could also indicate a possible active attack on the TCP link — [Attempting restart...]
Mon Jun 1 16:53:04 2020 192.168.10.216:57350 Connection reset, restarting [0]
На клиенте и на сервере настройки MTU и иже с ними изменял разнообразным образом, впн клиент не подключается. Быть может кто то сможет подсказать возможные пути решешия данной задачи?
Спасибо всем кто дочитал до конца)