Доброго времени суток!
Имеется 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 порт блочится!!!