iptables-F 後 SSH 連接斷開

最近回收利用一臺被徵用做郵件服務的服務器,重新部署新的業務。

清理了所有的安裝軟件和目錄文件後,調整了網絡安全組規則,僅開放所需端口。

看了下防火牆的配置:

# 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,,內外網都不能訪問!

確認,網絡安全組規則已經開放了公網訪問。

更換端口也不可以訪問。

這就很奇怪了。

想到iptables的規則,爲避免干擾,先清理下:

# iptables -F

結果,xshell立即斷開。 怎麼重試,都不能連接。 走服務器所在內網機器,ssh也不能連接。

附:服務器在Azure,系統爲 CentOS6.10 Final。

從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端口,可以正常訪問;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章