linux防火墙

来源:互联网 发布:朝闻道 刘慈欣 知乎 编辑:程序博客网 时间:2024/06/04 23:36

今天早上登服务器测试,试了很多次就是连接不上,折腾了很久发现是因为今天服务器重启了,然后没有把防火墙关闭。因为是内网测试服务器,所以图省事每次服务器重启之后都会把防火墙关了,这样就能正常登陆了。于是今天忘了关了就查了很久……
还是为了图省事,决定更改防火墙设置,来个一劳永逸。
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-prohibitedCOMMIT

可以看到它只默认打开了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-prohibitedCOMMIT

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

注意要把-A INPUT -p tcp -m state –state NEW -m tcp –dport 3306 -j ACCEPT这句添加到icmp那句的上面,不然配置不生效(关于这点网上也有人说放在22那句下面或者COMMIT上面之类的,都试了下不怎么管用,不知道是不是系统原因)

0 0