LINUX.ORG.RU

IPTABLES ингнорирует пакеты на 445 порт


0

1

Здраствуйте. Уже неделю пытаюсь настроить обычный домашний роутер, но NAT работает очень странно. С IPTABLES не знаком, поэтому задаю вопрос. Существует ли причины, по которым правила IPTABLES могут игнорироваться? Я прописал на роутере во такие правила:

admin@RT-AC56U:/tmp/home/root# iptables -t raw -L -vn
Chain PREROUTING (policy ACCEPT 231 packets, 20040 bytes)
 pkts bytes target     prot opt in     out     source               destination
   17   908 logpack    all  --  *      *       0.0.0.0/0            192.168.2.0/24

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

Chain logpack (1 references)
 pkts bytes target     prot opt in     out     source               destination
    6   304 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 7 level 4 prefix "DROP"
На компьютере в качестве шлюза для 192.168.2.0/24 указан IP адрес роутера. Я набираю telnet 192.168.2.222 446 и в логе роутера появлются записи. Набираю telnet 192.168.2.222 445 и в логе роутера ПУСТО. В чём может быть причина? NAT для пакетов на TCP порт 445 не отрабатывает вообще...

Полностью правила:

admin@RT-AC56U:/tmp/home/root# iptables -L -vn -t raw
Chain PREROUTING (policy ACCEPT 1395 packets, 164K bytes)
 pkts bytes target     prot opt in     out     source               destination
   17   908 logpack    all  --  *      *       0.0.0.0/0            192.168.2.0/24

Chain OUTPUT (policy ACCEPT 1388 packets, 236K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain logpack (1 references)
 pkts bytes target     prot opt in     out     source               destination
    6   304 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 7 level 4 prefix "DROP"
admin@RT-AC56U:/tmp/home/root#
admin@RT-AC56U:/tmp/home/root#
admin@RT-AC56U:/tmp/home/root#
admin@RT-AC56U:/tmp/home/root# iptables -L -vn -t mangle
Chain PREROUTING (policy ACCEPT 17767 packets, 1938K bytes)
 pkts bytes target     prot opt in     out     source               destination
  116 10295 MARK       all  --  !eth0  *       0.0.0.0/0            192.168.0.1          MARK set 0xd001

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

Chain FORWARD (policy ACCEPT 14 packets, 774 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 18413 packets, 18M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 18438 packets, 18M bytes)
 pkts bytes target     prot opt in     out     source               destination
admin@RT-AC56U:/tmp/home/root#
admin@RT-AC56U:/tmp/home/root#
admin@RT-AC56U:/tmp/home/root#
admin@RT-AC56U:/tmp/home/root# iptables -L -vn -t filter
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            state INVALID
13200 1445K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
 1379  291K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0            state NEW
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:5916
 3056  186K ACCEPT     all  --  br0    *       0.0.0.0/0            0.0.0.0/0            state NEW
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
   13   696 DROP       all  --  !br0   eth0    0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            state INVALID
    0     0 ACCEPT     all  --  br0    br0     0.0.0.0/0            0.0.0.0/0
    0     0 DROP       icmp --  eth0   *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate DNAT
    1    78 ACCEPT     all  --  br0    *       0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 18469 packets, 18M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FUPNP (0 references)
 pkts bytes target     prot opt in     out     source               destination

Chain PControls (0 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain logaccept (0 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW LOG flags 7 level 4 prefix "ACCEPT "
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain logdrop (0 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW LOG flags 7 level 4 prefix "DROP"
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0
admin@RT-AC56U:/tmp/home/root#
admin@RT-AC56U:/tmp/home/root#
admin@RT-AC56U:/tmp/home/root#
admin@RT-AC56U:/tmp/home/root# iptables -L -vn -t nat
Chain PREROUTING (policy ACCEPT 2526 packets, 149K bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 VSERVER    all  --  *      *       0.0.0.0/0            192.168.0.1

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

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

Chain POSTROUTING (policy ACCEPT 656 packets, 59647 bytes)
 pkts bytes target     prot opt in     out     source               destination
    1    78 MASQUERADE  all  --  *      eth0   !192.168.0.1          0.0.0.0/0
    0     0 MASQUERADE  all  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0xd001

Chain LOCALSRV (0 references)
 pkts bytes target     prot opt in     out     source               destination

Chain VSERVER (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 VUPNP      all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain VUPNP (1 references)
 pkts bytes target     prot opt in     out     source               destination

На клиентской машине венда? Это ж порт SMB. Проверь брендмауер на клиенте.

anonymous ()

Покажи лучше выхлоп iptables-save

Правила выполняются до первого совпадения.

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

Снифер фиксирует пакет исходящий с WAN порта роутера и IP адресом отправившего его узла (правила NAT полностью проигнорированы).

ABEgorov ()
Ответ на: комментарий от anonymous
admin@RT-AC56U:/tmp/mnt/OPT/asusware.arm/bin# iptables-save
-sh: iptables-save: not found
admin@RT-AC56U:/tmp/mnt/OPT/asusware.arm/bin#
admin@RT-AC56U:/tmp/mnt/OPT/asusware.arm/bin#
admin@RT-AC56U:/tmp/mnt/OPT/asusware.arm/bin#
admin@RT-AC56U:/tmp/mnt/OPT/asusware.arm/bin# iptables -S -v -t raw
-P PREROUTING ACCEPT -c 9411 1162967
-P OUTPUT ACCEPT -c 10004 3863248
-N logpack
-A PREROUTING -d 192.168.2.0/24 -c 17 908 -j logpack
-A logpack -c 6 304 -j LOG --log-prefix DROP --log-tcp-sequence --log-tcp-options --log-ip-options
admin@RT-AC56U:/tmp/mnt/OPT/asusware.arm/bin# iptables -S -v -t mangle
-P PREROUTING ACCEPT -c 25784 2937543
-P INPUT ACCEPT -c 25495 2903672
-P FORWARD ACCEPT -c 14 774
-P OUTPUT ACCEPT -c 27018 22080004
-P POSTROUTING ACCEPT -c 27162 22102209
-A PREROUTING -d 192.168.0.1/32 ! -i eth0 -c 116 10295 -j MARK --set-xmark 0xd001/0xffffffff
admin@RT-AC56U:/tmp/mnt/OPT/asusware.arm/bin# iptables -S -v -t filter
-P INPUT ACCEPT -c 0 0
-P FORWARD DROP -c 0 0
-P OUTPUT ACCEPT -c 27190 22122066
-N FUPNP
-N PControls
-N logaccept
-N logdrop
-A INPUT -m state --state INVALID -c 0 0 -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -c 18239 2020683 -j ACCEPT
-A INPUT -i lo -m state --state NEW -c 2999 623627 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5916 -c 0 0 -j DROP
-A INPUT -i br0 -m state --state NEW -c 4408 275329 -j ACCEPT
-A INPUT -c 43 5487 -j DROP
-A FORWARD -m state --state RELATED,ESTABLISHED -c 0 0 -j ACCEPT
-A FORWARD ! -i br0 -o eth0 -c 13 696 -j DROP
-A FORWARD -m state --state INVALID -c 0 0 -j DROP
-A FORWARD -i br0 -o br0 -c 0 0 -j ACCEPT
-A FORWARD -i eth0 -p icmp -c 0 0 -j DROP
-A FORWARD -m conntrack --ctstate DNAT -c 0 0 -j ACCEPT
-A FORWARD -i br0 -c 1 78 -j ACCEPT
-A PControls -c 0 0 -j ACCEPT
-A logaccept -m state --state NEW -c 0 0 -j LOG --log-prefix "ACCEPT " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logaccept -c 0 0 -j ACCEPT
-A logdrop -m state --state NEW -c 0 0 -j LOG --log-prefix DROP --log-tcp-sequence --log-tcp-options --log-ip-options
-A logdrop -c 0 0 -j DROP
admin@RT-AC56U:/tmp/mnt/OPT/asusware.arm/bin# iptables -S -v -t nat
-P PREROUTING ACCEPT -c 3655 218967
-P INPUT ACCEPT -c 3363 184075
-P OUTPUT ACCEPT -c 1342 121680
-P POSTROUTING ACCEPT -c 1342 121680
-N LOCALSRV
-N VSERVER
-N VUPNP
-A PREROUTING -d 192.168.0.1/32 -c 0 0 -j VSERVER
-A POSTROUTING ! -s 192.168.0.1/32 -o eth0 -c 1 78 -j MASQUERADE
-A POSTROUTING -m mark --mark 0xd001 -c 0 0 -j MASQUERADE
-A VSERVER -c 0 0 -j VUPNP
admin@RT-AC56U:/tmp/mnt/OPT/asusware.arm/bin#
ABEgorov ()
Ответ на: комментарий от anonymous
admin@RT-AC56U:/usr/sbin# ln -s /usr/sbin/xtables-multi /opt/bin/iptables-save
admin@RT-AC56U:/usr/sbin# iptables-save
# Generated by iptables-save v1.4.14 on Fri Dec 31 13:54:24 2010
*raw
:PREROUTING ACCEPT [16283:2077211]
:OUTPUT ACCEPT [17272:5700831]
:logpack - [0:0]
-A PREROUTING -d 192.168.2.0/24 -j logpack
-A logpack -j LOG --log-prefix DROP --log-tcp-sequence --log-tcp-options --log-ip-options
COMMIT
# Completed on Fri Dec 31 13:54:24 2010
# Generated by iptables-save v1.4.14 on Fri Dec 31 13:54:24 2010
*nat
:PREROUTING ACCEPT [4658:278313]
:INPUT ACCEPT [4303:235013]
:OUTPUT ACCEPT [1711:157129]
:POSTROUTING ACCEPT [1711:157129]
:LOCALSRV - [0:0]
:VSERVER - [0:0]
:VUPNP - [0:0]
-A PREROUTING -d 192.168.0.1/32 -j VSERVER
-A POSTROUTING ! -s 192.168.0.1/32 -o eth0 -j MASQUERADE
-A POSTROUTING -m mark --mark 0xd001 -j MASQUERADE
-A VSERVER -j VUPNP
COMMIT
# Completed on Fri Dec 31 13:54:24 2010
# Generated by iptables-save v1.4.14 on Fri Dec 31 13:54:24 2010
*mangle
:PREROUTING ACCEPT [32602:3846412]
:INPUT ACCEPT [32244:3803167]
:FORWARD ACCEPT [14:774]
:OUTPUT ACCEPT [34247:23909945]
:POSTROUTING ACCEPT [34426:23939020]
-A PREROUTING -d 192.168.0.1/32 ! -i eth0 -j MARK --set-xmark 0xd001/0xffffffff
COMMIT
# Completed on Fri Dec 31 13:54:24 2010
# Generated by iptables-save v1.4.14 on Fri Dec 31 13:54:24 2010
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [34235:23909344]
:FUPNP - [0:0]
:PControls - [0:0]
:logaccept - [0:0]
:logdrop - [0:0]
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5916 -j DROP
-A INPUT -i br0 -m state --state NEW -j ACCEPT
-A INPUT -j DROP
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD ! -i br0 -o eth0 -j DROP
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -i eth0 -p icmp -j DROP
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
-A FORWARD -i br0 -j ACCEPT
-A PControls -j ACCEPT
-A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logaccept -j ACCEPT
-A logdrop -m state --state NEW -j LOG --log-prefix DROP --log-tcp-sequence --log-tcp-options --log-ip-options
-A logdrop -j DROP
COMMIT
# Completed on Fri Dec 31 13:54:24 2010
ABEgorov ()

делай -j TRACE и кури чо у тебя где матчится

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte
admin@RT-AC56U:/usr/sbin# iptables -t raw -A PREROUTING -d 192.168.2.0/24 -j TRACE
iptables: No chain/target/match by that name.
ABEgorov ()
Ответ на: комментарий от ABEgorov

Пичаль, чо. Собирай поддержку raw или втыкай LOG на каждый чих и парси. И да, убедись что у тебя УЖЕ нет открытых соединений на этот порт, ибо тогда у тебя всё по conntrack-у пойдет

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

Прописал:

iptables -t filter -I INPUT -d 192.168.2.0/24 -j LOG --log-prefix "FILTER_INPUT" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t filter -I FORWARD -d 192.168.2.0/24 -j LOG --log-prefix "FILTER_FORWARD" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t filter -I OUTPUT -d 192.168.2.0/24 -j LOG --log-prefix "FILTER_OUTPUT" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t filter -I FUPNP -d 192.168.2.0/24 -j LOG --log-prefix "FILTER_UPNP" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t filter -I PControls -d 192.168.2.0/24 -j LOG --log-prefix "FILTER_PControls" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t filter -I logaccept -d 192.168.2.0/24 -j LOG --log-prefix "FILTER_logaccept" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t filter -I logdrop -d 192.168.2.0/24 -j LOG --log-prefix "FILTER_logdrop" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t mangle -I PREROUTING -d 192.168.2.0/24 -j LOG --log-prefix "MANGLE_PREROUTING" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t mangle -I INPUT -d 192.168.2.0/24 -j LOG --log-prefix "MANGLE_INPUT" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t mangle -I FORWARD -d 192.168.2.0/24 -j LOG --log-prefix "MANGLE_FORWARD" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t mangle -I OUTPUT -d 192.168.2.0/24 -j LOG --log-prefix "MANGLE_OUTPUT" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t mangle -I POSTROUTING -d 192.168.2.0/24 -j LOG --log-prefix "MANGLE_POSTROUTING" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t raw -I PREROUTING -d 192.168.2.0/24 -j LOG --log-prefix "RAW_PREROUTING" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t raw -I OUTPUT -d 192.168.2.0/24 -j LOG --log-prefix "RAW_OUTPUT" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t nat -I PREROUTING -d 192.168.2.0/24 -j LOG --log-prefix "NAT_PREROUTING" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t nat -I INPUT -d 192.168.2.0/24 -j LOG --log-prefix "NAT_INPUT" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t nat -I OUTPUT -d 192.168.2.0/24 -j LOG --log-prefix "NAT_OUTPUT" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t nat -I POSTROUTING -d 192.168.2.0/24 -j LOG --log-prefix "NAT_POSTROUTING" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t nat -I LOCALSRV -d 192.168.2.0/24 -j LOG --log-prefix "NAT_LOCALSRV" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t nat -I VSERVER -d 192.168.2.0/24 -j LOG --log-prefix "NAT_VSERVER" --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -t nat -I VUPNP -d 192.168.2.0/24 -j LOG --log-prefix "NAT_VUPNP" --log-tcp-sequence --log-tcp-options --log-ip-options
на telnet 192.168.2.222 445 в логах ЧИСТО! Вообще ни одной строчки не добавилось.

На telnet 192.168.2.222 446 есть реакция в следующей последовательности RAW_PREROUTING, MANGLE_PREROUTING, NAT_PREROUTING, MANGLE_FORWARD, FILTER_FORWARD.

Открытых соединений на 445 порт нет:

admin@RT-AC56U:/usr/sbin# netstat -ane | grep 445
admin@RT-AC56U:/usr/sbin# cat /proc/net/nf_conntrack | grep 445
admin@RT-AC56U:/usr/sbin# cat /proc/net/ip_conntrack | grep 445
admin@RT-AC56U:/usr/sbin#

ABEgorov ()
Ответ на: комментарий от Pinkbyte
admin@RT-AC56U:/usr/sbin# uname -a
Linux RT-AC56U 2.6.36.4brcmarm #1 SMP PREEMPT Thu Sep 12 15:53:40 MSK 2013 armv7l GNU/Linux

Прошивку я сам скомпилил вчера, взяв за основу: https://github.com/RMerl/asuswrt-merlin/tree/3.0.0.4.374.32 и удалив код из функций add_samba_rules(void) и del_samba_rules(void) из файла https://github.com/RMerl/asuswrt-merlin/blob/3.0.0.4.374.32/release/src/route...

Казалось, что причина в этом коде, но не помогло. Без него тоже не работает. В прошивке от производителя NAT тоже не работает.

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

А, ну тогда проблема где-то в сырцах ядра вестимо. Судя по удаленным функциям используется какие-то специфичные хаки

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