最近回收利用一臺被徵用做郵件服務的服務器,重新部署新的業務。
清理了所有的安裝軟件和目錄文件後,調整了網絡安全組規則,僅開放所需端口。
看了下防火牆的配置:
# 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端口,可以正常訪問;