当前位置: 技术问答>linux和unix
各位老大帮忙看看我的iptables 设置的对不对
来源: 互联网 发布时间:2016-05-20
本文导语: 昨天晚上用SSH登录带服务器上设置iptables导致SSH端口都被关闭了, 当时依次用使用了下面的命令(参考自http://hi.baidu.com/xuhonghui126/blog/item/7645447b6ff07df70bd187a8.html): [root@tp ~]# iptables -F 清除预设表filter中的...
昨天晚上用SSH登录带服务器上设置iptables导致SSH端口都被关闭了,
当时依次用使用了下面的命令(参考自http://hi.baidu.com/xuhonghui126/blog/item/7645447b6ff07df70bd187a8.html):
[root@tp ~]# iptables -F 清除预设表filter中的所有规则链的规则
[root@tp ~]# iptables -X 清除预设表filter中使用者自定链中的规则
[root@tp ~]# iptables -P INPUT DROP
[root@tp ~]# iptables -P OUTPUT ACCEPT
[root@tp ~]# iptables -P FORWARD DROP
结果导致SSH端口和ping的端口和http端口都被封了,联系管理元把防火墙给关了,服务器离我有1000多公里,只能在网上通过SSH来设置,下面是我初步设置的iptables的规则,不过心里总感觉不太对劲。
哪位老大知道怎么弄,现在我想做的就是:
通过SSH登录,清除所有的设置规则,封闭除SSH 22以外的所有端口,然后再打开80,21等常用端口,在这个过程中不能导致把自己给堵到外面了。
[root@vpsip /]# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
Chain FORWARD (policy DROP)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:4444
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:4444
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:445
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:445
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:69
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:69
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:135
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:135
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:135
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:139
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:139
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:80
当时依次用使用了下面的命令(参考自http://hi.baidu.com/xuhonghui126/blog/item/7645447b6ff07df70bd187a8.html):
[root@tp ~]# iptables -F 清除预设表filter中的所有规则链的规则
[root@tp ~]# iptables -X 清除预设表filter中使用者自定链中的规则
[root@tp ~]# iptables -P INPUT DROP
[root@tp ~]# iptables -P OUTPUT ACCEPT
[root@tp ~]# iptables -P FORWARD DROP
结果导致SSH端口和ping的端口和http端口都被封了,联系管理元把防火墙给关了,服务器离我有1000多公里,只能在网上通过SSH来设置,下面是我初步设置的iptables的规则,不过心里总感觉不太对劲。
哪位老大知道怎么弄,现在我想做的就是:
通过SSH登录,清除所有的设置规则,封闭除SSH 22以外的所有端口,然后再打开80,21等常用端口,在这个过程中不能导致把自己给堵到外面了。
[root@vpsip /]# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
Chain FORWARD (policy DROP)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:4444
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:4444
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:445
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:445
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:69
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:69
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:135
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:135
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:135
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:139
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:139
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:80
|
呵呵,楼主没仔细看那个链接的文档吧,注意这最后一句:
(3)设定预设规则
[root@tp ~]# iptables -p INPUT DROP
[root@tp ~]# iptables -p OUTPUT ACCEPT
[root@tp ~]# iptables -p FORWARD DROP
上面的意思是,当超出了IPTABLES里filter表里的两个链规则(INPUT,FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流入数据包
而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在着个规则里的包怎么办呢,那就是通过.
可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过.
这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,而且要写的规则就会增加.但如果你只想要有限的几个规则是,如只做WEB服务器.还是推荐三个链都是DROP.
注:如果你是远程SSH登陆的话,当你输入第一个命令回车的时候就应该掉了.因为你没有设置任何规则.
怎么办,去本机操作呗!
(3)设定预设规则
[root@tp ~]# iptables -p INPUT DROP
[root@tp ~]# iptables -p OUTPUT ACCEPT
[root@tp ~]# iptables -p FORWARD DROP
上面的意思是,当超出了IPTABLES里filter表里的两个链规则(INPUT,FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流入数据包
而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在着个规则里的包怎么办呢,那就是通过.
可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过.
这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,而且要写的规则就会增加.但如果你只想要有限的几个规则是,如只做WEB服务器.还是推荐三个链都是DROP.
注:如果你是远程SSH登陆的话,当你输入第一个命令回车的时候就应该掉了.因为你没有设置任何规则.
怎么办,去本机操作呗!
|
我觉得你不应该清除所有规则,那样的话,SSH也会被down掉的。
应该是先查看一下现有的规则,然后清除掉除SSH以外的所有规则,然后再继续
PS:我没这样配置过server,只是大概扫了一下你贴的那个链接和你对问题的描述,一点建议,希望能帮上你...
应该是先查看一下现有的规则,然后清除掉除SSH以外的所有规则,然后再继续
PS:我没这样配置过server,只是大概扫了一下你贴的那个链接和你对问题的描述,一点建议,希望能帮上你...