LINUX.ORG.RU

Сообщения WinsentVega

 

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

Форум — Admin

Всем доброго времени суток! На работе стоит задача по передаче 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 у одного пользователя часть конференций исчезает после реконекта к серверу.

Форум — Admin

Доброго времени суток, недавно столкнулся с одной проблемой, у одного абонета в 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 проброс портов, помогите разобраться с мистикой.

Форум — Admin

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

Имеется 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 подписка на новые темы