LINUX.ORG.RU
ФорумAdmin

iptables проброс портов

 ,


0

1

Зимой делал - работало, сейчас раскомментил строчки - работать не захотело. Пробрасываю порт для RDP и для доступа к файлам, не работает ни один. 192.168.1.1 - внутренний ip шлюза, 192.168.1.2 - внутренний ip сервера

rio@pooh:/etc$ sudo iptables-save
# Generated by iptables-save v1.4.12 on Wed Jun 26 09:22:54 2013
*mangle
:PREROUTING ACCEPT [2015:522008]
:INPUT ACCEPT [1487:368824]
:FORWARD ACCEPT [528:153184]
:OUTPUT ACCEPT [1384:3060563]
:POSTROUTING ACCEPT [1911:3213670]
COMMIT
# Completed on Wed Jun 26 09:22:54 2013
# Generated by iptables-save v1.4.12 on Wed Jun 26 09:22:54 2013
*filter
:INPUT DROP [47:2991]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -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 -i 192.168.1.201 -j DROP
-A INPUT -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --set --name SSH --rsource
-A INPUT -i eth0 -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --update --seconds 60 --hitcount 4 --name SSH --rsource -j DROP
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A FORWARD -d 192.168.1.2/32 -i 192.168.1.1 -j ACCEPT
-A FORWARD -d 192.168.1.2/32 -i 192.168.1.1 -j ACCEPT
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth1 -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 Wed Jun 26 09:22:54 2013
# Generated by iptables-save v1.4.12 on Wed Jun 26 09:22:54 2013
*nat
:PREROUTING ACCEPT [171:27290]
:INPUT ACCEPT [14:740]
:OUTPUT ACCEPT [15:920]
:POSTROUTING ACCEPT [15:920]
-A PREROUTING -d внешний_ip/32 -p tcp -m tcp --dport 445 -j DNAT --to-destination 192.168.1.2:445
-A PREROUTING -d внешний_ip/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.2:3389
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth1 -p tcp -m tcp --dport 8080 -j REDIRECT --to-ports 3128
-A OUTPUT -d внешний_ip/32 -p tcp -m tcp --dport 445 -j DNAT --to-destination 192.168.1.2:445
-A OUTPUT -d внешний_ip/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.2:3389
-A POSTROUTING -d 192.168.1.2/32 -p tcp -m tcp --dport 445 -j SNAT --to-source 192.168.1.1
-A POSTROUTING -d 192.168.1.2/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.1.1
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Wed Jun 26 09:22:54 2013

iptables -t nat -A PREROUTING -d внешний_ip/32 -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.2:3389

вот так должно, ну и sysctl net.ipv4.conf.default.forwarding=1

outsider ★★ ()
Последнее исправление: outsider (всего исправлений: 2)

В правилах уже разрешены установленные соединения и включен маскарадинг, вот эти строчки лишние:

-A OUTPUT -d внешний_ip/32 -p tcp -m tcp --dport 445 -j DNAT --to-destination 192.168.1.2:445
-A OUTPUT -d внешний_ip/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.2:3389
-A POSTROUTING -d 192.168.1.2/32 -p tcp -m tcp --dport 445 -j SNAT --to-source 192.168.1.1
-A POSTROUTING -d 192.168.1.2/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.1.1
vxzvxz ★★★ ()
watch iptables -t nat -vnL

При попытке подключения по rdp попадают пакеты в правило, или нет?

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

Если да, то нужно сделать правило для логирования обратных пакетов (приведено ниже) и смотреть, есть ли они. Если нету - возможно, не включен rdp-сервис на самом сервере?

iptables -I FORWARD -p tcp --sport 3389 -j LOG
pianolender ★★★ ()
Ответ на: комментарий от pianolender

Попадают

Chain PREROUTING (policy ACCEPT 7041 packets, 628K bytes)
 pkts bytes target     prot opt in     out     source               destination
 2374  121K REDIRECT   tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 3128
    0     0 REDIRECT   tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080 redir ports 3128
   12   608 DNAT       tcp  --  *      *       0.0.0.0/0            внешний_ip          tcp dpt:3389 to:192.168.1.2:3389
   12   608 DNAT       tcp  --  *      *       0.0.0.0/0            внешний_ip          tcp dpt:445 to:192.168.1.2:445

Chain INPUT (policy ACCEPT 2819 packets, 160K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 1641 packets, 98557 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 1641 packets, 98557 bytes)
 pkts bytes target     prot opt in     out     source               destination
 3250  232K MASQUERADE  all  --  *      eth0    192.168.1.0/24       0.0.0.0/0
rdp включен, я из локалки на сервер захожу.

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

работу RDP сервера так проверь, прям из локалки:

telnet 192.168.1.2 3389

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

при

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

SNAT не нужен!

достаточно добавить

-A PREROUTING -i ppp0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.2:3389 
-A FORWARD -d 192.168.1.2/32 -i ppp0 -p tcp -m tcp --dport 3389 -j ACCEPT 

ну и прописать на сервере RDP шлюз

vxzvxz ★★★ ()
Ответ на: комментарий от pianolender
Chain FORWARD (policy DROP 6 packets, 304 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp spt:3389 LOG flags 0 level 4
    0     0 ACCEPT     all  --  192.168.1.1 *       0.0.0.0/0            192.168.1.2
 5600  281K TCPMSS     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcpflags: 0x06/0x02 TCPMSS clamp to PMTU
 136K  108M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
  420 19059 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            state INVALID
 7073  520K ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0
    0     0 REJECT     all  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

DROP растет после каждой попытки подключения

tutpusto ()
Ответ на: комментарий от vxzvxz

Это я уже убрал, по вашему совету, спасибо

-A OUTPUT -d внешний_ip/32 -p tcp -m tcp --dport 445 -j DNAT --to-destination 192.168.1.2:445
-A OUTPUT -d внешний_ip/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.2:3389
-A POSTROUTING -d 192.168.1.2/32 -p tcp -m tcp --dport 445 -j SNAT --to-source 192.168.1.1
-A POSTROUTING -d 192.168.1.2/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.1.1

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

с помощью tcpdump смотри где затык, а не логером iptables

vxzvxz ★★★ ()
-A FORWARD -d 192.168.1.2/32 -i 192.168.1.1 -j ACCEPT
-A FORWARD -d 192.168.1.2/32 -i 192.168.1.1 -j ACCEPT

Немного избыточный конфиг, кажется?

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

Скорее -I FORWARD - для верности.

Вообще конфиг сложноватый, может, на какое-то время его обнулить и отладить отдельно rdp?

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

Набор правил чтобы работал smb:

$IPT -t nat -A PREROUTING -d $IP_EXT -p tcp --dport 445 -j DNAT --to-destination $DATA_IP:445
$IPT -t nat -A PREROUTING -d $IP_EXT -p tcp --dport 136 -j DNAT --to-destination $DATA_IP:136
$IPT -t nat -A PREROUTING -d $IP_EXT -p tcp --dport 137 -j DNAT --to-destination $DATA_IP:137
$IPT -t nat -A PREROUTING -d $IP_EXT -p tcp --dport 138 -j DNAT --to-destination $DATA_IP:138
$IPT -t nat -A PREROUTING -d $IP_EXT -p tcp --dport 139 -j DNAT --to-destination $DATA_IP:139
$IPT -I FORWARD -i $WAN -p tcp --dport 445 -j ACCEPT
$IPT -I FORWARD -i $WAN -p tcp --dport 136 -j ACCEPT
$IPT -I FORWARD -i $WAN -p tcp --dport 137 -j ACCEPT
$IPT -I FORWARD -i $WAN -p tcp --dport 138 -j ACCEPT
$IPT -I FORWARD -i $WAN -p tcp --dport 139 -j ACCEPT
где-то я читал что используются только 2 порта, проверить не удается - что-то где-то запоминается и даже когда я все пять отрубил - продолжало работать. Или я дурак. Еще раз всем спасибо.

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