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端口,能夠正常訪問;

相關文章
相關標籤/搜索