Azure 雲 Linux 安全建議
1、網絡與安全規劃
Azure 虛擬網絡 (VNet) 是用戶自己的網絡在雲中的表示形式,對用戶進行網絡邏輯隔離。類似 AWS 的 VPC,用戶可以完全控製該網絡中的 IP 地址塊、DNS 設置、安全策略和路由表。你還可以進一步將 VNet 細分成各個子網,子網之間可以直接通訊。
不論是否設置外網地址,所有的虛機缺省都可以直接訪問互聯網,可以通過網絡安全組 (NSG) 來控製訪問。網絡安全組您可以認為是一個自定義免費的網絡防火牆。網絡安全組 (NSG) 包含一係列訪問控製列表 (ACL) 規則,這些規則可以允許或拒絕虛擬網絡中流向 VM 實例的網絡流量。NSG 可以設置在不同維度:VNET,子網,某台虛機,虛機上的某個網卡,是非常強大的流量與訪問控製工具。
NSG 是 ACL(訪問控製列表)的升級版本,和訪問控製列表互斥。隻能選擇一種方式,在新的 ARM Portal 中,Azure 采用NSG 方式來進行訪問控製。防火牆按照優先級,根據源IP及端口,目的IP及端口,協議類型做出相應的動作訪問或者拒絕。
NSG 的詳細設置見官方文檔鏈接:https://www.azure.cn/documentation/articles/virtual-networks-nsg
網絡與安全建議匯總:
- 用戶網絡使用一個 VNet,可以劃分應用層,邏輯處理層和數據層,每層采用一個子網,根據需要可以設置 NSG 防火牆;
- 邏輯處理層和數據庫不設置外部 IP,這樣不會直接暴露在外麵;
- 可以單獨設置一台跳板管理機用來做後端服務器的管理;
- 可以使用 Azure VPN 或者專線來連接跳板管理機,安全性更高;
2、軟件安裝和組件
- 安裝過程中使用複雜密碼或者直接使用 SSH 密鑰方式;
- 安裝鏡像來源有 Azure 官方、鏡像市場、自傳鏡像,盡量使用 Azure 官方鏡像;
- 安裝(以 Ubuntu 為例)完成後查看已經安裝的軟件列表:
dpkg -l
; - 使用
ps -al
查看是否有可疑程序在運行; - 查看端口使用情況:
netstat -an
; - 根據上麵提示停止並刪除不需要的第三方程序。
3、係統安全與服務
- 密碼安全策略,符合 Azure 要求,盡量複雜難猜些;
- 使用
shadow
來隱藏密文,Azure 官方鏡像此處是默認設置; - 清除或者禁用不必要的係統帳戶;
- 不在
passwd
文件中包含個人信息; - 修改
shadow
、passwd
、gshadow
文件屬性為不可改變; - 不要使用
.netrc
文件; - 以前 Oracle 安裝 RAC 經常需要設置主機間信任關係,在雲端請不要使用對等信任文件
/.rhosts
、/etc/hosts.equiv
; - 使用 SSH 來代替 telnetd、ftpd、pop 等通用服務,傳統的網絡服務程序,如:ftp、pop 和 telnet 口令和數據是明文傳輸的。
4、網絡與服務安全
- 隻對外開放所需要的服務,關閉所有不需要的服務;
- 做好前後端的分離和訪問控製的控製;
- 將所需的不同服務分布在不同的主機上,這樣不僅提高係統的性能,同時便於配置和管理,減小係統的安全風險;
- 定期進行掃描檢測,建議可以使用 nmap 軟件進行自檢。
- 在負載均衡服務的入站規則中設置 NAT 端口轉換,將常用端口映射成高位端口,增加外部掃描難度;
- 關閉 PING(Azure 已經關閉);
- 在子網層級設置 NSG 將不需要使用的端口全部禁用;
5、文件加固
- Linux 開機啟動的服務程序都在
/etc/init.d
這個文件夾裏,定期檢查這些文件時間等屬性是否異常,做好備份; - 設置
/etc/services
文件權限為600。
6、防火牆
- 啟用 Linux 自帶的防火牆。
7、防病毒軟件
- Windows 環境在創建時可以選擇安裝防病毒軟件,Linux 鏡像沒有自帶防病毒軟件,需要安裝第三方防病毒軟件。
8、Fail2ban
- fail2ban 可以監視你的係統日誌,然後匹配日誌的錯誤信息執行相應的屏蔽動作(建議啟用服務器防火牆,可以用來做服務異常監控),如果發現異常,軟件會發送 e-mail 通知係統管理員並自動采取動作。
9、日常的備份
最後也是最重要的一步,常在河邊走哪能不濕鞋,做好日常重要文件和數據的備份,確保萬無一失。
原文發布時間為:2017-03-08
本文來自雲棲社區合作夥伴“Linux中國”
最後更新:2017-05-24 16:32:02