一、故障现象:
早上刚开电脑就接到朋友电话,说他的一台阿里云的服务器(CentOS7)无法登陆进去,让我帮忙看看,然后有了接下来的对话:
我:“服务器昨天有做过什么操作没?比如iptables,阿里云的安全组策略调整”。
他:“昨天下班前还好好的啊,我没动过什么啊。”
二、分析处理过程:
检测1:开始ping那台服务器(发现没有包返回)
检测2:查看远程连接端口是否开启(端口提示连接失败)
检测3:登陆阿里云控制台(通过终端登陆系统)
检测4:点击“远程连接”,然后输入远程连接密码,进入终端
检测5:登陆到终端(检测端口情况、网络访问情况等)
端口是正常的(而且我确认安全组中22端口也是开放的),接着我觉得有必要检查下防火墙策略(虽然朋友一直跟我说没碰iptables)。
检测6:检查iptables的状态
默认的出口策略居然是DROP,怪不得没有任何回应的包
修改完后,重新测试下,发现立马可以登录了。
接着我们开始下面的对话:
我:“防火墙的默认策略被调整了吧,我已经调整回来了,现在OK了”
他:“要不帮我把iptables关了吧”
我:“好的”
先清空相关策略,然后停止iptables服务(提示没服务找不到)
Failed to stop iptables.service: Unit iptables.service not loaded.
centos从7开始默认用的是firewalld,这个是基于iptables的,所有默认会有iptables的核心,但是iptables的服务是没安装的。
所以当你想使用iptables并且对它进行管理,需要安装iptables-service:
[[email protected] ~]# yum -y install iptables-services [[email protected] ~]# systemctl stop iptables.service
关闭iptabls,设置开机不启动
到此,整个处理过程就完成了。
三、小结:
1、线上调整iptables之前,最后在计划任务里面添加一条定期关闭iptables服务的命令(避免出现被被挡在门外的情况)。
2、我一般是在测试环境中先进行调试,确认无误后,然后才在生产环境中进行操作,这样误操作的概率会小很多。