LINUX.ORG.RU

Iptables и доступ из локальной сети к ресурсам, висящим на внешнем белом ip

 , ,


0

1

Добрый день.

Изучил документацию по iptables (работать начал с пакетом только недавно) на opennet, долго рыскал по форумам, но к сожалению так проблему своими силами решить и не смог, посему прошу вашей помощи в создании необходимых правил.

По порядку: есть шлюз на базе Debbian wheezy, на нем же располагается прокси сервер squid. Шлюз подключен к двум сетям - локальной с адресом вида 192.168.1.0 и к сети Интернет, вида 89.x.x.x. Из внутренней локальной сети правилами iptables прокинуты в Интернет определенные сервисы, например Moodle. Доступ из сети Интернет к сервису есть, но из локальной сети, через прокси-сервер, по белому ip доступ получить не удается - проксик пишет что хост недоступен.

Правила iptables:

# Generated by iptables-save v1.4.14 on Wed Mar 11 09:59:35 2015 *nat :PREROUTING ACCEPT [233:15548]

:INPUT ACCEPT [17:856]

:OUTPUT ACCEPT [23:1440]

:POSTROUTING ACCEPT [0:0]

-A PREROUTING -p tcp -m tcp --dport xx -j DNAT --to-destination 192.168.1.x:80

-A PREROUTING -d 89.x.x.x/32 -p tcp -m tcp --dport 98 -j DNAT --to-destination 192.168.1.x:80

-A PREROUTING -d 89.x.x.x/32 -p tcp -m tcp --dport 1723 -j DNAT --to-destination 192.168.1.x:1723

-A PREROUTING -d 89.x.x.x/32 -p tcp -m tcp --dport 5980 -j DNAT --to-destination 192.168.1.x:80

-A PREROUTING -d 89.x.x.x/32 -p tcp -m tcp --dport 5921 -j DNAT --to-destination 192.168.1.5:5921

-A PREROUTING -d 89.x.x.x/32 -p tcp -m tcp --dport 5920 -j DNAT --to-destination 192.168.1.x:5920

-A PREROUTING -d 89.x.x.x/32 -p tcp -m multiport --dports 31020:31030 -j DNAT --to-destination 192.168.1.x

-A PREROUTING -d 89.x.x.x/32 -p tcp -m multiport --dports 31031:31041 -j DNAT --to-destination 192.168.1.x

-A POSTROUTING -o eth2 -j MASQUERADE

-A POSTROUTING -d 192.168.1.x/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 89.x.x.x

-A POSTROUTING -d 192.168.1.x/32 -p tcp -m tcp --dport 1723 -j SNAT --to-source 89.x.x.x

-A POSTROUTING -d 192.168.1.x/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 89.x.x.x

-A POSTROUTING -d 192.168.1.x/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 89.x.x.x

-A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.5/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.x

-A POSTROUTING -d 192.168.1.x/32 -p tcp -m tcp --dport 5921 -j SNAT --to-source 89.x.x.x

-A POSTROUTING -d 192.168.1.x/32 -p tcp -m tcp --dport 5920 -j SNAT --to-source 89.x.x.x

-A POSTROUTING -d 192.168.1.x/32 -p tcp -m multiport --dports 31020:31030 -j SNAT --to-source 89.x.x.x

-A POSTROUTING -d 192.168.1.x/32 -p tcp -m multiport --dports 31031:31041 -j SNAT --to-source 89.x.x.x

COMMIT

# Completed on Wed Mar 11 09:59:35 2015 # Generated by iptables-save v1.4.14 on Wed Mar 11 09:59:35 2015 *filter :INPUT DROP [103:7157]

:FORWARD DROP [0:0]

:OUTPUT DROP [0:0]

-A INPUT -s 192.168.1.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT

-A INPUT -s 192.168.2.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset

-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -s 192.168.1.x/32 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -s 192.168.2.x/32 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 3551 -j ACCEPT

-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 81 -j ACCEPT

-A INPUT -s 192.168.1.0/24 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

-A INPUT -s 192.168.2.0/24 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

-A FORWARD -d 192.168.1.x/32 -i eth2 -o eth1 -p tcp -m tcp --dport 98 -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 -m conntrack --ctstate NEW -j ACCEPT

-A FORWARD -p -A FORWARD -p gre -j ACCEPT

gre -j ACCEPT

-A FORWARD -i eth2 -o eth0 -j REJECT --reject-with icmp-port-unreachable

-A OUTPUT -o lo -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

-A OUTPUT -p icmp -j ACCEPT

COMMIT # Completed on Wed Mar 11 09:59:35 2015 # Generated by iptables-save v1.4.14 on Wed Mar 11 09:59:35 2015 *mangle :PREROUTING ACCEPT [1704:809882] :INPUT ACCEPT [1396:786544] :FORWARD ACCEPT [300:22714] :OUTPUT ACCEPT [1815:1523186] :POSTROUTING ACCEPT [2115:1545900] COMMIT # Completed on Wed Mar 11 09:59:35 2015


Однострочную лапшу не читал.

turtle_bazon ★★★★★
()

Тебе самому приятно такой лог читать?

post-factum ★★★★★
()
# Generated by iptables-save v1.4.14 on Wed Mar 11 09:59:35 2015 
*nat 
:PREROUTING ACCEPT [233:15548] 
:INPUT ACCEPT [17:856] :OUTPUT ACCEPT [23:1440] 
:POSTROUTING ACCEPT [0:0] 
-A PREROUTING -p tcp -m tcp --dport xx -j DNAT --to-destination 192.168.1.x:80 
-A PREROUTING -d 89.x.x.x/32 -p tcp -m tcp --dport 98 -j DNAT --to-destination 192.168.1.x:80 
-A PREROUTING -d 89.x.x.x/32 -p tcp -m tcp --dport 1723 -j DNAT --to-destination 192.168.1.x:1723 
-A PREROUTING -d 89.x.x.x/32 -p tcp -m tcp --dport 5980 -j DNAT --to-destination 192.168.1.x:80 
-A PREROUTING -d 89.x.x.x/32 -p tcp -m tcp --dport 5921 -j DNAT --to-destination 192.168.1.5:5921 
-A PREROUTING -d 89.x.x.x/32 -p tcp -m tcp --dport 5920 -j DNAT --to-destination 192.168.1.x:5920 
-A PREROUTING -d 89.x.x.x/32 -p tcp -m multiport --dports 31020:31030 -j DNAT --to-destination 192.168.1.x 
-A PREROUTING -d 89.x.x.x/32 -p tcp -m multiport --dports 31031:31041 -j DNAT --to-destination 192.168.1.x 
-A POSTROUTING -o eth2 -j MASQUERADE 
-A POSTROUTING -d 192.168.1.x/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 89.x.x.x 
-A POSTROUTING -d 192.168.1.x/32 -p tcp -m tcp --dport 1723 -j SNAT --to-source 89.x.x.x 
-A POSTROUTING -d 192.168.1.x/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 89.x.x.x 
-A POSTROUTING -d 192.168.1.x/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 89.x.x.x 
-A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.5/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.x 
-A POSTROUTING -d 192.168.1.x/32 -p tcp -m tcp --dport 5921 -j SNAT --to-source 89.x.x.x 
-A POSTROUTING -d 192.168.1.x/32 -p tcp -m tcp --dport 5920 -j SNAT --to-source 89.x.x.x 
-A POSTROUTING -d 192.168.1.x/32 -p tcp -m multiport --dports 31020:31030 -j SNAT --to-source 89.x.x.x 
-A POSTROUTING -d 192.168.1.x/32 -p tcp -m multiport --dports 31031:31041 -j SNAT --to-source 89.x.x.x 
COMMIT 
# Completed on Wed Mar 11 09:59:35 2015 
# Generated by iptables-save v1.4.14 on Wed Mar 11 09:59:35 2015 
*filter 
:INPUT DROP [103:7157] 
:FORWARD DROP [0:0] 
:OUTPUT DROP [0:0] 
-A INPUT -s 192.168.1.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A INPUT -s 192.168.2.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset 
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -s 192.168.1.x/32 -p tcp -m tcp --dport 22 -j ACCEPT 
-A INPUT -s 192.168.2.x/32 -p tcp -m tcp --dport 22 -j ACCEPT 
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 3551 -j ACCEPT 
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 81 -j ACCEPT 
-A INPUT -s 192.168.1.0/24 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT 
-A INPUT -s 192.168.2.0/24 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT 
-A FORWARD -d 192.168.1.x/32 -i eth2 -o eth1 -p tcp -m tcp --dport 98 -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 -m conntrack --ctstate NEW -j ACCEPT 
-A FORWARD -p gre -j ACCEPT
-A FORWARD -i eth2 -o eth0 -j REJECT --reject-with icmp-port-unreachable 
-A OUTPUT -o lo -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 
-A OUTPUT -p icmp -j ACCEPT COMMIT 
# Completed on Wed Mar 11 09:59:35 2015 
# Generated by iptables-save v1.4.14 on Wed Mar 11 09:59:35 2015 
*mangle 
:PREROUTING ACCEPT [1704:809882] 
:INPUT ACCEPT [1396:786544] 
:FORWARD ACCEPT [300:22714] 
:OUTPUT ACCEPT [1815:1523186] 
:POSTROUTING ACCEPT [2115:1545900] 
COMMIT 
# Completed on Wed Mar 11 09:59:35 2015

sT331h0rs3, turtle_bazon.

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

Так стыдливо номера портов прикрыты и внутренние IP, что ничего не разобрать.

post-factum ★★★★★
()

google «hairpin nat»

Deleted
()

Тема про то, что соединения от прокси-сервера нужно DNAT'ить в nat/OUTPUT, а не в nat/PREROUTING?

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

Мне ничего не нужно, это правила ТС из шапки темы нормально выложенные.

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