LINUX.ORG.RU

Сообщения WinsentVega

 

Передача IP адреса Openvpn клиента на сервер Openvpn через HAProxy. TCP mode.

Всем доброго времени суток! На работе стоит задача по передаче 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 и иже с ними изменял разнообразным образом, впн клиент не подключается. Быть может кто то сможет подсказать возможные пути решешия данной задачи?

Спасибо всем кто дочитал до конца)

 ,

WinsentVega
()

Ejabberd у одного пользователя часть конференций исчезает после реконекта к серверу.

Доброго времени суток, недавно столкнулся с одной проблемой, у одного абонета в ejabberd исчезают некоторые конференции после ребута телефона или реконекта.

Имеется: uname -a Linux srv-ejabberd1 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u6 (2018-10-08) x86_64 GNU/Linux ejabberd-17.08 + MySQL mysql -V mysql Ver 14.14 Distrib 5.7.23, for Linux (x86_64) using EditLine wrapper

На телефоне клиент: Conversations 1.23.3

Что делалось:

- удалял юзера из проблемных групп и добавлял заново, не помогло. Что интересно при отправке приглашения в юзеру в чат, этот чат на телефоне у него не появляется, приходиться добавлять руками.

- на клоне сервера удалял эту учётку, и заводил её заново с тем же именем, проблема осталась.

- Пробовал на разных телефонах, без разницы.

- Прогонял чек с исправлением, БД MySQL, ошибок не было, проблема осталась.

- Включал логирование запросов на MySQL ничего необычного не выявилось. (Запросы при логоне с рабочими группами ничем не отличались от запросов к проблемным группам (это те которые исчезают после реконнекта).

- Запускал дебаг на ejabberd, и удалял/добавлял юзера из конференции, делал перелогон. Ошибок, варнингов, и пр. там не было.

Подскажите куда копать.

 , ,

WinsentVega
()

iptables проброс портов, помогите разобраться с мистикой.

Доброго времени суток!

Имеется Debian Stretch cat /etc/debian_version

9.4

uname -a

Linux srv-vpn2 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux

На сервере 4 сетевых интерфейса:

ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever

2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:50:56:a4:84:33 brd ff:ff:ff:ff:ff:ff inet 192.168.10.21/24 brd 192.168.10.255 scope global ens192 valid_lft forever preferred_lft forever

3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:50:56:a4:1e:e8 brd ff:ff:ff:ff:ff:ff inet 11.22.33.44/19 brd 11.22.33.55 scope global ens224 valid_lft forever preferred_lft forever

4: ens256: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:50:56:a4:1b:49 brd ff:ff:ff:ff:ff:ff inet 10.10.2.4/29 brd 10.10.2.7 scope global ens256 valid_lft forever preferred_lft forever

5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100 link/none inet 172.16.124.1 peer 172.16.124.2/32 scope global tun0 valid_lft forever preferred_lft forever

Где: ens192 это LAN, ens224 WAN, ens256 DMZ, tun0 сеть для VPN клиентов.

Мне нужно настроить проброс для :80 и :443 порта к серверу который находится в DMZ 10.10.2.5, с ip адресов филиалов 1.1.1.1 и 2.2.2.2.

Проброс с ip 1.1.1.1 работает корректно, а с ip 2.2.2.2 пробрасывается только порт 80, 443 порт режектится на шлюзе.

Делал проброс для роутера который в и-нет через сим карту ходит, все работает. (узнавал внешний ip роутера 3.3.3.3, прописывал в правила, тестировал, все ок).

Если открыть проброс для любого source, то тоже всё работает хорошо. Отрывал всему и-нету таким правилами:

-A PREROUTING -i ens224 -p tcp --dport 80 -j DNAT --to-destination 10.10.2.5

-A PREROUTING -i ens224 -p tcp --dport 443 -j DNAT --to-destination 10.10.2.5

А если задать нужные source (1.1.1.1, 2.2.2.2, 3.3.3.3), то c 2.2.2.2 443 порт режектится, 80-й работает норм.

-A PREROUTING -i ens224 -s 2.2.2.2 -p tcp --dport 80 -j DNAT --to-destination 10.10.2.5:80

-A PREROUTING -i ens224 -s 2.2.2.2 -p tcp --dport 443 -j DNAT --to-destination 10.10.2.5:443

Запускал tcpdump на шлюзе при запросе сайта по 443 порту пишет reject 443 порта.

Если смотреть access логи на 10.10.2.5, то обращение по 443 с 2.2.2.2 до сервера не доходит при ограниченном доступе, 80 порт открыт нормально в логах обращение вижу, с другого офиса и с мобильного роутера запросы ходят нормально, в access логах все есть. Web сервер nginx.

Уже и в гугле на эту тему читал, и доки проброса смотрел, правила правил по разному, апдейты ставил, ребутил, - ничего не помогает. Помогите разобраться плиз!!!

Ну и сами правила iptables: ----------------------------------------------------------------

iptables -t nat -L -n

Chain PREROUTING (policy ACCEPT)

target prot opt source destination

DNAT tcp  — 1.1.1.1 0.0.0.0/0 tcp dpt:80 to:10.10.2.5:80

DNAT tcp  — 1.1.1.1 0.0.0.0/0 tcp dpt:443 to:10.10.2.5:443

DNAT tcp  — 2.2.2.2 0.0.0.0/0 tcp dpt:80 to:10.10.2.5:80

DNAT tcp  — 2.2.2.2 0.0.0.0/0 tcp dpt:443 to:10.10.2.5:443

DNAT tcp  — 3.3.3.3 0.0.0.0/0 tcp dpt:80 to:10.10.2.5:80

DNAT tcp  — 3.3.3.3 0.0.0.0/0 tcp dpt:443 to:10.10.2.5:443

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

SNAT all  — 172.16.124.0/24 0.0.0.0/0 to:192.168.10.21

SNAT all  — 172.16.124.0/24 0.0.0.0/0 to:10.10.2.4

SNAT all  — 172.16.124.0/24 0.0.0.0/0 to:1.1.1.1

SNAT all  — 10.10.2.5 0.0.0.0/0 to:1.1.1.1

SNAT tcp  — 0.0.0.0/0 10.10.2.5 tcp dpt:80 to:10.10.2.5:80

SNAT tcp  — 0.0.0.0/0 10.10.2.5 tcp dpt:443 to:10.10.2.5:443

iptables -L -n -v

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target prot opt in out source destination

0 0 ACCEPT all  — lo * 0.0.0.0/0 0.0.0.0/0

47 1880 REJECT all  — * * 0.0.0.0/0 0.0.0.0/0 state INVALID reject-with icmp-port-unreachable

7602 1215K ACCEPT all  — * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

183 11906 ACCEPT icmp — * * 0.0.0.0/0 0.0.0.0/0 icmptype 8 limit: avg 1/sec burst 10

1 60 ACCEPT tcp  — ens192 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 state NEW

1 70 ACCEPT udp  — * * 0.0.0.0/0 0.0.0.0/0 udp dpt:1194 state NEW

6215 1664K REJECT all  — * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target prot opt in out source destination

6346 4508K ACCEPT all  — * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

81 5400 ACCEPT all  — * * 172.16.124.0/24 0.0.0.0/0

0 0 ACCEPT all  — * * 192.168.10.0/24 172.16.124.0/24

0 0 ACCEPT tcp  — * * 10.10.2.2 172.16.124.0/24 tcp dpt:4307

0 0 ACCEPT tcp  — * * 10.10.2.2 172.16.124.0/24 tcp dpt:40443

0 0 ACCEPT icmp — * * 10.10.2.2 172.16.124.0/24 icmptype 8

0 0 ACCEPT tcp  — ens224 ens256 1.1.1.1 0.0.0.0/0 tcp dpt:80 flags:0x17/0x02 ctstate NEW

1 60 ACCEPT tcp  — ens224 ens256 1.1.1.1 0.0.0.0/0 tcp dpt:443 flags:0x17/0x02 ctstate NEW

0 0 ACCEPT tcp  — ens224 ens256 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 flags:0x17/0x02 ctstate NEW,RELATED,ESTABLISHED

2 104 ACCEPT tcp  — ens224 ens256 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 flags:0x17/0x02 ctstate NEW,RELATED,ESTABLISHED

0 0 ACCEPT tcp  — ens224 ens256 0.0.0.0/0 0.0.0.0/0 tcp dpt:80

0 0 ACCEPT tcp  — ens224 ens256 0.0.0.0/0 0.0.0.0/0 tcp dpt:443

15 1014 ACCEPT all  — ens256 ens224 10.10.2.5 0.0.0.0/0

14 840 REJECT all  — * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT 5393 packets, 2506K bytes)

pkts bytes target prot opt in out source destination

----------------------------------------- cat /etc/iptables.rules

# Generated by iptables-save v1.6.0 on Thu Jan 11 15:19:52 2018 *nat

:PREROUTING ACCEPT [3514:328059]

:INPUT ACCEPT [9:594]

:OUTPUT ACCEPT [38:2636]

:POSTROUTING ACCEPT [38:2636]

-A POSTROUTING -s 172.16.124.0/24 -o ens192 -j SNAT --to-source 192.168.10.21

-A POSTROUTING -s 172.16.124.0/24 -o ens256 -j SNAT --to-source 10.10.2.4

-A POSTROUTING -s 172.16.124.0/24 -o ens224 -j SNAT --to-source 1.1.1.1

-A POSTROUTING -s 10.10.2.5/32 -o ens224 -j SNAT --to-source 1.1.1.1

# Probros ports 80.443 1.1.1.1 --> 10.10.2.5 i obratno.

-A PREROUTING -i ens224 -s 1.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 10.10.2.5:80

-A PREROUTING -i ens224 -s 1.1.1.1 -p tcp --dport 443 -j DNAT --to-destination 10.10.2.5:443

#-A PREROUTING -i ens224 -p tcp --dport 80 -j DNAT --to-destination 10.10.2.5

#-A PREROUTING -i ens224 -p tcp --dport 443 -j DNAT --to-destination 10.10.2.5

# probros portov

-A PREROUTING -i ens224 -s 2.2.2.2 -p tcp --dport 80 -j DNAT --to-destination 10.10.2.5:80

-A PREROUTING -i ens224 -s 2.2.2.2 -p tcp --dport 443 -j DNAT --to-destination 10.10.2.5:443

-A PREROUTING -i ens224 -s 3.3.3.3 -p tcp --dport 80 -j DNAT --to-destination 10.10.2.5:80

-A PREROUTING -i ens224 -s 3.3.3.3 -p tcp --dport 443 -j DNAT --to-destination 10.10.2.5:443

-A POSTROUTING -o ens224 -d 10.10.2.5 -p tcp --dport 80 -j SNAT --to-source 10.10.2.5:80

-A POSTROUTING -o ens224 -d 10.10.2.5 -p tcp --dport 443 -j SNAT --to-source 10.10.2.5:443

COMMIT

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [118:15351]

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state INVALID -j REJECT --reject-with icmp-port-unreachable

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec --limit-burst 10 -j ACCEPT

-A INPUT -i ens192 -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT

-A INPUT -p udp -m udp --dport 1194 -m state --state NEW -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-port-unreachable

-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

-A FORWARD -s 172.16.124.0/24 -j ACCEPT

-A FORWARD -s 192.168.10.0/24 -d 172.16.124.0/24 -j ACCEPT

-A FORWARD -s 10.10.2.2/32 -d 172.16.124.0/24 -p tcp --dport 4307 -j ACCEPT

-A FORWARD -s 10.10.2.2/32 -d 172.16.124.0/24 -p tcp --dport 40443 -j ACCEPT

-A FORWARD -s 10.10.2.2/32 -d 172.16.124.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT

# Probros portov

-A FORWARD -i ens224 -o ens256 -s 1.1.1.1 -p tcp --syn --dport 80 -m conntrack --ctstate NEW -j ACCEPT

-A FORWARD -i ens224 -o ens256 -s 1.1.1.1 -p tcp --syn --dport 443 -m conntrack --ctstate NEW -j ACCEPT

-A FORWARD -i ens224 -o ens256 -p tcp --syn --dport 80 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT

-A FORWARD -i ens224 -o ens256 -p tcp --syn --dport 443 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT

-A FORWARD -i ens224 -o ens256 -p tcp --dport 80 -j ACCEPT

-A FORWARD -i ens224 -o ens256 -p tcp --dport 443 -j ACCEPT

# Allow inet from 10.10.2.5

-A FORWARD -i ens256 -s 10.10.2.5 -o ens224 -j ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

COMMIT

Помогите разобраться почему 443 порт блочится!!!

 , ,

WinsentVega
()

RSS подписка на новые темы