LINUX.ORG.RU

Избранные сообщения 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
()