iptables centOS端口转发无法正常工作

时间:2013-10-18 05:54:28

标签: linux centos iptables

我想将转发到端口10500的udp数据包转发到10600,但它无法使用以下配置。

我的iptables看起来像这样,

[root@mymachine ~]# service iptables status
Table: filter
Chain INPUT (policy DROP)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0
2    LOG        all  --  224.0.0.0/4          0.0.0.0/0           LOG flags 0 level 4 prefix `IP DROP MULTICAST D: '
3    LOG        all  --  240.0.0.0/5          0.0.0.0/0           LOG flags 0 level 4 prefix `IP DROP SPOOF E: '
4    LOG        all  --  0.0.0.0/0            127.0.0.0/8         LOG flags 0 level 4 prefix `IP DROP LOOPBAK: '

Chain FORWARD (policy DROP)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0
2    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:10600 state NEW

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Chain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 0
3    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 3
4    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 11
5    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 8
6    ACCEPT     udp  --  0.0.0.0/0            224.0.0.251         udp dpt:5353
7    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
9    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:53
10   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:53
11   ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:69
12   ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:514
13   DROP       all  --  0.0.0.0/0            0.0.0.0/0
14   ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:10500
15   ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:10600

Table: nat
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination
1    DNAT       udp  --  0.0.0.0/0            192.168.80.128      udp dpt:10500 to:192.168.80.128:10600

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

因为它是CentOS,我添加了以下内容。 net.ipv4.ip_forward = 1

告诉我哪里出错了。

3 个答案:

答案 0 :(得分:1)

要实现您的目标,您必须为INPUT过滤表添加规则。并在nat-table中添加REDIRECTION

示例:

iptables -A INPUT -p tcp --dport 10600 -j ACCEPT

iptables -A PREROUTING -t nat -p tcp --dport 10500 REDIRECT --to-port 10600

工作原理:

第一个表是 NAT PREROUTING 。 tcp:10500的流量将 REDIRECT 编辑为tcp:10600。之后,此流量将转到表过滤器 INPUT ,防火墙 ACCEPT s。

答案 1 :(得分:0)

尝试使用REDIRECT。 示例:iptables -t nat -I PREROUTING 1 -s 0.0.0.0/0 -d 192.168.75.128 -p udp -m udp --dport 10500 -j REDIRECT --to-ports 10600

答案 2 :(得分:0)

Chain RH-Firewall-1-INPUT13 DROP all -- 0.0.0.0/0 0.0.0.0/0行拒绝在其之前不允许的每一行。在“DROP of everything”之前放置所有允许的规则,否则它们将被忽略。 (第14-15行必须在链RH-Firewall-1-INPUT中的第13行之前)