当前位置: 技术问答>linux和unix
关于iptables的疑问
来源: 互联网 发布时间:2015-09-01
本文导语: #iptables -I INPUT -p tcp --dport 21 -j REJECT 上面的命令会禁止外部访问本机的21端口,也就是说外部进入本机21端口的数据会被“丢弃” 我的问题是,现在本机的数据可以由21端口出去吗?是不是上面的命令只“丢弃...
#iptables -I INPUT -p tcp --dport 21 -j REJECT
上面的命令会禁止外部访问本机的21端口,也就是说外部进入本机21端口的数据会被“丢弃”
我的问题是,现在本机的数据可以由21端口出去吗?是不是上面的命令只“丢弃”进的数据包呢?
上面的命令会禁止外部访问本机的21端口,也就是说外部进入本机21端口的数据会被“丢弃”
我的问题是,现在本机的数据可以由21端口出去吗?是不是上面的命令只“丢弃”进的数据包呢?
|
OUTPUT是数据包出去的检查链表
iptables -I OUTPUT -p tcp --dport 23 -j REJECT
表示拒绝目的端口为23的数据包出去
你telnet到本机时数据包的目的端口是23,这时应该在INPUT链中REJECT
当数据包从本机出去时源端口为23,这时应该在OUTPUT 链中REJECT
但是你用的规则是--dport 23,这是过滤目的端口
所以这条规则不能达你的目的
正确的应该是
iptables -I OUTPUT -p tcp --source-port 23 -j REJECT
iptables -I OUTPUT -p tcp --dport 23 -j REJECT
表示拒绝目的端口为23的数据包出去
你telnet到本机时数据包的目的端口是23,这时应该在INPUT链中REJECT
当数据包从本机出去时源端口为23,这时应该在OUTPUT 链中REJECT
但是你用的规则是--dport 23,这是过滤目的端口
所以这条规则不能达你的目的
正确的应该是
iptables -I OUTPUT -p tcp --source-port 23 -j REJECT
|
那么运行iptables -I OUTPUT -p tcp --dport 23 -j REJECT后,是不是本机数据不能由端口23出去?
那为什么我调用后,仍然可以用telnet远程登陆我的机器呢?
你加上这条规则后 你不能从本机telnet到别人, 别的机器可以telnet到你
因为封的是出去的包, 目的端口为23,
你可以找个源码,把telnet client端的源port改成23
就可以看到问题所在了
那为什么我调用后,仍然可以用telnet远程登陆我的机器呢?
你加上这条规则后 你不能从本机telnet到别人, 别的机器可以telnet到你
因为封的是出去的包, 目的端口为23,
你可以找个源码,把telnet client端的源port改成23
就可以看到问题所在了
|
没错,当然可以通过
本机的数据包的源端口是21,而你定义的规则是拒绝目的端口为21的数据包
本机的数据包的源端口是21,而你定义的规则是拒绝目的端口为21的数据包
|
呵呵,当然啊。