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、日常的備份
最后也是最重要的一步,常在河邊走哪能不濕鞋,做好日常重要文件和數據的備份,確保萬無一失。