iptables-F 后 SSH 链接断开

最近回收利用一台被征用作邮件服务的服务器,从新部署新的业务。shell

清理了全部的安装软件和目录文件后,调整了网络安全组规则,仅开放所需端口。安全

看了下防火墙的配置:服务器

# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3s 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:imap 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:imaps 
...
...

Chain FORWARD (policy DROP)
target     prot opt source               destination         
...
...
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

部署业务服务的时候,发现对应的tcp端口,除了本机127.0.0.1,,内外网都不能访问!网络

确认,网络安全组规则已经开放了公网访问。ssh

更换端口也不能够访问。tcp

这就很奇怪了。阿里云

想到iptables的规则,为避免干扰,先清理下:spa

# iptables -F

结果,xshell当即断开。 怎么重试,都不能链接。 走服务器所在内网机器,ssh也不能链接。日志

附:服务器在Azure,系统为 CentOS6.10 Final。code

从Azure 的控制台,能够从虚拟机的串行控制台链接上。

可是Azure的串行控制台,日志刷屏太厉害了,不只看不到命令执行的结果,连输入命令都是很困难的事情。

想了个招,登陆进去,执行命令查看了sshd_config,hosts.allow,hosts.deny等相关的设置, 都是正常的。

剩下的就是iptables的规则是清空的。

这下就凉凉了。

Azure 不像 AWS,阿里云,腾讯云,百度云,华为云等,能够在OS盘上,重装系统。
能够操做的只有:

  • 尝试从新部署
  • 有备份,进行还原;
  • 交换OS系统盘;
  • 从新建一个虚拟机;

尝试从新部署,ssh链接恢复正常。从新部署后,除了临时硬盘的数据会所有丢失,其余虚拟机的配置,数据等都保持不变。

再次查看业务部署的TCP端口,内外网仍是不能访问。

发现iptables又是如出一辙的。

顿时,好奇心来了,再次清空iptables:

# iptables -F

结果,ssh 马上就断开了。 又是内外网都不能链接。

瞬间老实了,马上进串行控制台,添加iptables的ssh端口规则,网络安全组已经开放22端口:

# iptables -I INPUT -p tcp --dport 22 -j ACCEPT

ssh 当即恢复正常。

仔细瞅瞅iptables 的规则,发现INPUT链路的策略是DROP
Chain INPUT (policy DROP)

修改INPUT策略为ACCEPT:

# iptables -P INPUT ACCEPT

再次清空iptables:

# iptables -F

发现: 1.ssh没有断开链接,内外网ssh均可以正常访问; 2. 服务部署的tcp端口,能够正常访问;

相关文章
相关标签/搜索