я в лабиринте, тщетно пытаюсь настроить правила для иметь возможность доступа из Интернета к моему внутреннему веб-серверу (192.168.12.10).
дома у меня есть шлюз Ubuntu 20.04 (192.168.12.1) с двумя интерфейсами:
Еще у меня есть ноутбуки.
Кажется, все работает нормально со следующими правилами iptables. По умолчанию у меня нет доступа извне к внутреннему.
iptables -vnL --line-number
Chain INPUT (policy DROP 373 packets, 25051 bytes)
num pkts bytes target prot opt in out source destination
1 101 9891 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
2 16175 3203K ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0
3 2517 342K ACCEPT all -- eth1 * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- lo lo 0.0.0.0/0 0.0.0.0/0
2 0 0 ACCEPT all -- lo eth1 0.0.0.0/0 0.0.0.0/0
3 0 0 ACCEPT all -- br0 br0 0.0.0.0/0 0.0.0.0/0
4 58714 11M ACCEPT all -- br0 eth1 0.0.0.0/0 0.0.0.0/0
5 60179 155M ACCEPT all -- eth1 br0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
6 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/min burst 5 LOG flags 0 level 7 prefix "FW FW denied: "
Chain OUTPUT (policy ACCEPT 2098 packets, 234K bytes)
num pkts bytes target prot opt in out source destination
iptables -t nat -vnL --line-number
Chain PREROUTING (policy ACCEPT 2209 packets, 192K bytes)
num pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 1215 packets, 89074 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 648 packets, 59463 bytes)
num pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 3807 290K MASQUERADE all -- * eth1 0.0.0.0/0 0.0.0.0/0
Моя проблема в том, что я не могу установить правильные правила для доступа к моему веб-серверу из снаружи.
У меня было два правила в цепочке FORWARD и два правила в цепочке PREROUTING.
iptables -vnL --line-number
Chain INPUT (policy ACCEPT 2 packets, 100 bytes)
num pkts bytes target prot opt in out source destination
1 155 14331 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
2 21779 4281K ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0
3 2953 401K ACCEPT all -- eth1 * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- lo lo 0.0.0.0/0 0.0.0.0/0
2 0 0 ACCEPT all -- lo eth1 0.0.0.0/0 0.0.0.0/0
3 0 0 ACCEPT all -- br0 br0 0.0.0.0/0 0.0.0.0/0
4 67303 12M ACCEPT all -- br0 eth1 0.0.0.0/0 0.0.0.0/0
5 0 0 ACCEPT tcp -- eth1 * 0.0.0.0/0 192.168.12.10 ctstate NEW,RELATED,ESTABLISHED tcp dpt:80
6 0 0 ACCEPT tcp -- eth1 * 0.0.0.0/0 192.168.12.10 ctstate NEW,RELATED,ESTABLISHED tcp dpt:443
7 69670 168M ACCEPT all -- eth1 br0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
8 1 60 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/min burst 5 LOG flags 0 level 7 prefix "FW FW denied: "
Chain OUTPUT (policy ACCEPT 8 packets, 1208 bytes)
num pkts bytes target prot opt in out source destination
iptables -t nat -vnL --line-number
Chain PREROUTING (policy ACCEPT 211 packets, 19200 bytes)
num pkts bytes target prot opt in out source destination
1 1 40 DNAT tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:192.168.12.10:80
2 0 0 DNAT tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 to:192.168.12.10:443
Chain INPUT (policy ACCEPT 169 packets, 9937 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 21 packets, 1677 bytes)
num pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 12 packets, 813 bytes)
num pkts bytes target prot opt in out source destination
1 4419 338K MASQUERADE all -- * eth1 0.0.0.0/0 0.0.0.0/0
Результат всегда один и тот же.
Когда я пробую, например, curl -I 123.123.123.123
, запрос отправляется на веб-сервер внутри шлюза. Когда работает, я получаю ответ, когда не работает curl: (7) Не удалось подключиться к порту 123.123.123.123. 80: В соединении отказано
Мой запрос никогда не достигает внутреннего веб-сервера 192.168.12.10.
UFW не работает, и я установил net.ipv4.ip_forward = 1.
Если кто-нибудь может мне помочь?
Спасибо
Я не совсем специалист, но блокирует ли ваш брандмауэр доступ к нужным портам? Попробуйте запустить
firewall-cmd --list-ports
и посмотрите, открыты ли ваши порты 80 и 443.