您的位置:首页 > 运维架构 > Linux

linux防火墙

2015-10-08 20:20 471 查看
今天早上登服务器测试,试了很多次就是连接不上,折腾了很久发现是因为今天服务器重启了,然后没有把防火墙关闭。因为是内网测试服务器,所以图省事每次服务器重启之后都会把防火墙关了,这样就能正常登陆了。于是今天忘了关了就查了很久……

还是为了图省事,决定更改防火墙设置,来个一劳永逸。

linux防火墙默认阻挡了大部分端口的外部连接,也就是说如果你不修改防火墙,你从外面主动连接不到linux内部,但是可以从linux内部向外部发起连接。

下面是我服务器上的默认防火墙配置

vim /etc/sysconfig/iptables

如果没有/etc/sysconfig/iptables文件,则可以直接运行命令:

iptables -A INPUT -p tcp -m state –state NEW -m tcp –dport 3306 -j ACCEPT

service iptables save

service iptables restart

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [55:3890]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


可以看到它只默认打开了22端口,即ftp服务端口。

但是登录服务器的话要连接你自己的服务器端口,所以要把服务器监听端口添加到配置文件里面。

以mysql服务端口3306为例,

vim /etc/sysconfig/iptables

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [55:3890]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT #就是这里
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


然后重启防火墙服务service iptables restart

注意要把-A INPUT -p tcp -m state –state NEW -m tcp –dport 3306 -j ACCEPT这句添加到icmp那句的上面,不然配置不生效(关于这点网上也有人说放在22那句下面或者COMMIT上面之类的,都试了下不怎么管用,不知道是不是系统原因)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: