ARM虛擬機器防止預設遠端埠直接暴露在公網方法
由於Azure的公網IP範圍是公開的,ARM虛擬機器網絡卡如果關聯了公網IP,則預設的遠端埠(Windows為3389;Linux為22)相當於對所有人都是開放的,這就不排除有人會利用這一點長期惡意檢測並攻擊所有Azure公網IP的3389/22埠,以達到非法控制伺服器並利用其進行非法行為的目的,例如盜取資料、種植木馬、散播病毒或挖礦牟利等等。
本文基於此來探討如何降低這種攻擊風險並提高伺服器安全性的方法。
一、 修改預設遠端埠
說明:虛擬機器可以通過修改其內部預設的遠端埠來防範此類攻擊行為,如果使用了NSG,則需要在NSG中開放新埠
Windows伺服器修改方法
示例:WindowsServer 2012 R2 DataCenter
登錄檔修改埠
[HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\TerminalServer\ Wds\rdpwd\Tds\tcp]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro1Set\Control\TerminalServer\ WinStations\RDP-Tcp]
防火牆放開對應埠規則(TCP、UDP)
相同的方法建立UDP規則,這裡不再贅述。(也可以不新增UDP)
重啟伺服器後我們使用公網IP+ 33899埠進行遠端測試登入成功
Linux伺服器修改方法
示例:CentOS7.2
登入伺服器,開啟sshd_config檔案
找到#Port22,預設是註釋掉的,先把前面的#號去掉,再插入一行設定成你想要的埠號,注意不要跟現有埠號重複
儲存後退出,重啟sshd服務
此時我們驗證可以使用33899埠登入後即可將22埠再註釋掉。這樣做的目的是防止新埠無法登入時可以使用22埠進行排錯。
二、 啟用堡壘機
說明:
1. 設定一臺面對公網的堡壘機
2. 取消目標伺服器的公共IP或將預設遠端埠3389/22從NSG中禁止公網訪問
3. 所有遠端管理必須先遠端到堡壘機再進行操作
示例:WindowsServer 2012 R2 DataCenter
取消目標伺服器公共IP關聯後Windows虛擬機器連線功能不可用
從堡壘機內部使用內網IP進行RDP/SSH連線
嘗試在沒有關聯公共IP的伺服器中訪問外網我們發現,雖然ping返回超時,但是可以正常訪問外網資源。
三、 啟用負載均衡器
說明:由於Azure現在的4層負載均衡器為免費使用,我們可以利用負載均衡器做埠對映來實現修改公網訪問預設遠端埠的目的。
示例:WindowsServer 2012 R2 DataCenter
取消目標Windows伺服器的公共IP關聯後連線功能不可用
建立負載均衡器
新增後端池
新增入站NAT規則
新增負載均衡器後,Windows虛擬機器連線功能為可用,可以直接下載RDP檔案進行遠端
或使用LB公共IP +33899埠進行遠端登入驗證,可以成功登入