最近回收利用一臺被徵用作郵件服務的服務器,從新部署新的業務。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盤上,重裝系統。
能夠操做的只有:
嘗試從新部署,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端口,能夠正常訪問;