Назад | Перейти на главную страницу

Iptables - переадресация портов не действует

У меня есть выделенный сервер с одним общедоступным IP-адресом (скажем, 1.2.3.4) под управлением CentOS. С помощью virt-manager я добавил виртуальную машину под управлением CentOS.

Они связаны через виртуальную сеть:

Моя цель - настроить сервер TeamSpeak на гостевой системе, доступный по общедоступному IP-адресу хоста.

Просматривая форумы, я пришел к таким правилам:

iptables -t nat -A PREROUTING -p udp --dport 9987 -j DNAT --to 192.168.100.2:9987
iptables -I FORWARD -d 192.168.100.2 -p udp -m state --state NEW,RELATED,ESTABLISHED -m udp --dport 9987 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 30033 -j DNAT --to 192.168.100.2:30033
iptables -I FORWARD -d 192.168.100.2 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 30033 -j ACCEPT
iptables -t nat -A PREROUTING -p udp --dport 30033 -j DNAT --to 192.168.100.2:30033
iptables -I FORWARD -d 192.168.100.2 -p udp -m state --state NEW,RELATED,ESTABLISHED -m udp --dport 30033 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 10011 -j DNAT --to 192.168.100.2:10011
iptables -I FORWARD -d 192.168.100.2 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 10011 -j ACCEPT

К сожалению, я не получаю ответа при попытке подключиться с помощью TeamSpeak.

Не могли бы вы просветить меня?

------------------------------------ РЕДАКТИРОВАТЬ ------------- -----------------------

Запустив "tcpdump -i eth0 -n udp port 9987" на обеих машинах, я могу увидеть перенаправленные пакеты.

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

netstat -an | grep -w 9987

udp        0      0 0.0.0.0:9987                0.0.0.0:*

ЖУРНАЛ всех - где угодно и где угодно Ограничение: в среднем 10 / сек, пакет 5, предупреждение об уровне ЖУРНАЛА

Jun 21 04:17:07 sd-xxxxx kernel: IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:0c:c4:7a:08:xx:xx:xx:xx SRC=62.xx.xx.52 DST=62.xx.xx.255 LEN=49 TOS=0x00 PREC=0x00 TTL=64 ID=45280 DF PROTO=UDP SPT=47579 DPT=32414 LEN=29 
Jun 21 04:17:09 sd-xxxxx kernel: IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:0c:c4:7a:09:xx:xx:xx:xx SRC=62.xx.xx.188 DST=255.255.255.255 LEN=201 TOS=0x00 PREC=0x00 TTL=64 ID=65 DF PROTO=UDP SPT=55996 DPT=1900 LEN=181

Я обнаружил, что правило для порта 9987 не описывается так же в блоке FORWARD iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
LOG        all  --  anywhere             anywhere            limit: avg 10/sec burst 5 LOG level warning 
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             192.168.100.2       state NEW,RELATED,ESTABLISHED tcp dpt:10011 
ACCEPT     udp  --  anywhere             192.168.100.2       state NEW,RELATED,ESTABLISHED udp dpt:30033 
ACCEPT     tcp  --  anywhere             192.168.100.2       state NEW,RELATED,ESTABLISHED tcp dpt:30033 
ACCEPT     udp  --  anywhere             192.168.100.2       state NEW,RELATED,ESTABLISHED udp dpt:dsm-scm-target 
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Нет журнала добавления правил ниже ни на хосте, ни на госте

iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP