LINUX.ORG.RU
ФорумAdmin

Debian 8 и NAT Loopback

 ,


0

1

Сделал из Debian 8.x роутер, всё работает, кроме одной мелочи. Сделан проброс порта 8000 в локалку, на видеорегистратор. Если я снаружи пытаюсь присоединиться (использовать софт) - всё ок. Если из локалки - только пинг ходит на внешний айпи, всё остальное отклоняется.

Правила iptables

# Generated by iptables-save v1.4.21 on Fri Sep 16 17:46:59 2016
*filter
:INPUT DROP [7:2011]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i ppp0 -p udp -m udp --dport 80 -j ACCEPT
-A INPUT -i ppp0 -p gre -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -i ppp0 -p udp -m udp --dport 1723 -j ACCEPT
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -i eth0 -o ppp0 -j ACCEPT
-A FORWARD -i ppp0 -o eth0 -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth0 -j ACCEPT
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
COMMIT
# Completed on Fri Sep 16 17:46:59 2016
# Generated by iptables-save v1.4.21 on Fri Sep 16 17:46:59 2016
*nat
:PREROUTING ACCEPT [2884:264561]
:INPUT ACCEPT [57:9795]
:OUTPUT ACCEPT [4:247]
:POSTROUTING ACCEPT [4:247]
#-A PREROUTING -d 78.137.6.111/32 -p tcp -m tcp --dport 8000 -j DNAT --to-destination 172.16.50.110
-A POSTROUTING -s 172.16.50.0/24 -o ppp0 -j MASQUERADE
#-A POSTROUTING -d 172.16.50.110/32 -p tcp -m tcp --dport 8000 -j SNAT --to-source 78.137.6.111
COMMIT
# Completed on Fri Sep 16 17:46:59 2016
# Generated by iptables-save v1.4.21 on Fri Sep 16 17:46:59 2016
*mangle
:PREROUTING ACCEPT [26664:12208071]
:INPUT ACCEPT [2008:363303]
:FORWARD ACCEPT [22564:11660648]
:OUTPUT ACCEPT [1062:222855]
:POSTROUTING ACCEPT [23600:11882259]
COMMIT
# Completed on Fri Sep 16 17:46:59 2016

пытался пробовать всевозможные решения из инета и с форума, но не работает. заодно был бы рад оценке правил, может поправить что стоит.

Заранее спасибо!

#-A POSTROUTING -d 172.16.50.110/32 -p tcp -m tcp --dport 8000 -j SNAT --to-source 78.137.6.111

Почему --to-source 78.137.6.111 ? Должно быть ip роутера из 172.16.50.0/24

anc ★★★★★ ()
Ответ на: комментарий от anc

В тему критики:
Считайте что у вас forward пакетов разрешен, дропаются только INVALID
Если вы оставите одно правило -A FORWARD -m state --state INVALID -j DROP будет тоже самое.
Смысла в каких-то правилах у output кроме ACCEPT, только если не отдельные случаи, нет.

anc ★★★★★ ()
Ответ на: комментарий от anc

упс. эти правила вообще закоментарены. пробросом портов занимается linux-igd(upnp), забыл упомянуть, сорри. но от этого ситуация не меняется. снаружи порт 8000 доступен, изнутри если попытаться сделать telnet exterlanip 8000 - refused connection:(

shashilx ★★ ()
Ответ на: комментарий от anc
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -i eth0 -o ppp0 -j ACCEPT
-A FORWARD -i ppp0 -o eth0 -j REJECT --reject-with icmp-port-unreachable

этот блок не нужен, получается? кроме одного правила

-A FORWARD -m state --state INVALID -j DROP

верно?

shashilx ★★ ()
Ответ на: комментарий от shashilx

-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Это тоже оставить, простите забыл отдельно указать.

anc ★★★★★ ()
Ответ на: комментарий от shashilx

Но в целом вопрос в другом, вам нужен свободный forward ? Я бы не стал так делать.

anc ★★★★★ ()
Ответ на: комментарий от anc

без этих правил форварда у локалки теряется интернет, у меня теряется доступ к локалке через впн.

вобщем, мне нужно чтоб из локалки могли пойти куда хотят и каким угодно протоколом. не моя забота, что там в локалке происходит. моя забота дать локалке инет полностью.

shashilx ★★ ()
Ответ на: комментарий от shashilx

Еще раз, правило:
-A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
Уже дает разрешение на все кроме INVALID
Правило:
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
По простому, для правки mss. Т.е. оставляем.
В целом если вам так нравиться, то оставляйте как были все правила. Это же из раздела критики.

По теме я написал Debian 8 и NAT Loopback (комментарий)
Вы похоже так и не поправили.

anc ★★★★★ ()
Ответ на: комментарий от anc

упс. я не то правило выходит оставил ;)

оставил только:

-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ppp0 -o eth0 -j REJECT --reject-with icmp-port-unreachable

всё работает, спасибо.

shashilx ★★ ()

Подобная проблема была с вебсервером, с интернета все гуд, а из локалки не виден. Решил проблему такими правилами (измените для себя)

#Пробрасываем доступ к WEB серверу $IPT -t nat -A PREROUTING -p tcp --dport 80 -i $WAN -j DNAT --to 192.168.1.2:80 $IPT -A FORWARD -i ppp0 -p tcp -d 192.168.1.2 --dport 80 -j ACCEPT $IPT -t nat -A PREROUTING -i $LAN1 -s 192.168.1.0/24 -d <внешний статический адрес> -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.