一、安全組(Security Group)設置
安全組是云平臺提供的虛擬防火墻,用于控制?入站(Ingress)和出站(Egress)流量。
1. 基本安全組規則(推薦)
協議 | 端口 | 源IP | 用途 | 是否必需 |
---|---|---|---|---|
TCP | 22 | 你的IP或公司IP | SSH遠程管理 | ? 是 |
TCP | 3389 | 你的IP或公司IP | Windows RDP | ?(僅Windows需要) |
TCP | 80 | 0.0.0.0/0 | HTTP網站訪問 | ?(Web服務器需要) |
TCP | 443 | 0.0.0.0/0 | HTTPS安全訪問 | ?(Web服務器需要) |
TCP | 3306 | 你的IP或內網IP | MySQL數據庫 | ?(僅數據庫服務器需要) |
TCP | 6379 | 你的IP或內網IP | Redis | ?(僅緩存服務器需要) |
ICMP | - | 你的IP | Ping測試 | ?(可選,用于調試) |
2. 設置步驟(以萊卡云為例)
登錄云控制臺?→?ECS實例?→?安全組。
點擊?配置規則?→?添加安全組規則:
規則方向:入方向(Ingress)或出方向(Egress)。
授權策略:允許(Allow)或拒絕(Deny)。
協議類型:TCP/UDP/ICMP 等。
端口范圍:如?
22
(SSH)、80
(HTTP)、443
(HTTPS)。授權對象:
特定IP:
192.168.1.100/32
(僅允許該IP訪問)。全部開放:
0.0.0.0/0
(不推薦,除非必要)。
保存規則,并綁定到目標服務器。
3. 最佳實踐
最小權限原則:只開放必要的端口,如?
22
(SSH)僅限管理IP。禁止默認全開放:避免?
0.0.0.0/0
?開放高危端口(如?3306
、6379
)。多層級防護:結合?安全組 + 系統防火墻?雙重保護。
二、系統防火墻設置(iptables / firewalld)
安全組是云平臺層面的防護,而系統防火墻(如?iptables
/firewalld
)提供?操作系統級防護。
1. 使用?iptables
(Linux 傳統防火墻)
# 查看當前規則 iptables -L -n# 允許SSH(22端口) iptables -A INPUT -p tcp --dport 22 -j ACCEPT# 允許HTTP(80)、HTTPS(443) iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT# 允許Ping(ICMP) iptables -A INPUT -p icmp -j ACCEPT# 默認拒絕所有其他入站流量 iptables -P INPUT DROP iptables -P FORWARD DROP# 允許已建立的連接和回環接口 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT# 保存規則(CentOS 6/7) service iptables save
2. 使用?firewalld
(CentOS 7+/RHEL 8+)
# 啟動并設置開機自啟 systemctl start firewalld systemctl enable firewalld# 開放端口 firewall-cmd --zone=public --add-port=22/tcp --permanent # SSH firewall-cmd --zone=public --add-port=80/tcp --permanent # HTTP firewall-cmd --zone=public --add-port=443/tcp --permanent # HTTPS# 允許Ping firewall-cmd --add-icmp-block=echo-request --permanent# 重新加載防火墻 firewall-cmd --reload# 查看開放端口 firewall-cmd --list-ports
3. 使用?ufw
(Ubuntu/Debian 推薦)
# 啟用UFW ufw enable# 開放SSH、HTTP、HTTPS ufw allow 22/tcp ufw allow 80/tcp ufw allow 443/tcp# 允許Ping ufw allow icmp# 查看規則 ufw status
三、高級安全防護
1. 更改默認SSH端口(防止暴力破解)
# 修改SSH配置文件 vim /etc/ssh/sshd_config# 更改端口(如 2222) Port 2222# 重啟SSH服務 systemctl restart sshd# 防火墻開放新端口 iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
2. 使用 Fail2Ban 防暴力破解
# 安裝 Fail2Ban apt install fail2ban # Debian/Ubuntu yum install fail2ban # CentOS/RHEL# 配置SSH防護 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local vim /etc/fail2ban/jail.local# 修改如下配置 [sshd] enabled = true port = 22 # 或自定義SSH端口 maxretry = 3 # 嘗試3次后封禁 bantime = 3600 # 封禁1小時# 重啟Fail2Ban systemctl restart fail2ban
3. 關閉不必要的服務
# 查看運行中的服務 systemctl list-units --type=service# 禁用不必要的服務(如telnet) systemctl stop telnet.socket systemctl disable telnet.socket
四、總結
防護層級 | 工具/方法 | 作用 |
---|---|---|
云平臺層 | 安全組(Security Group) | 控制入站/出站流量 |
系統層 | iptables / firewalld / ufw | 操作系統級防火墻 |
應用層 | Fail2Ban / 更改SSH端口 | 防暴力破解 |
運維管理 | 定期審計日志 | 發現異常訪問 |
推薦方案:
安全組?僅開放必要端口(如?
22
、80
、443
)。系統防火墻?進一步限制訪問(如?
iptables
?或?firewalld
)。Fail2Ban?防止SSH暴力破解。
定期檢查日志(
/var/log/auth.log
、/var/log/secure
)。