為了防止 CentOS 系統上的 SSH 服務被攻擊,你可以采取以下措施:
sudo yum update
編輯 /etc/ssh/sshd_config
文件:
sudo vi /etc/ssh/sshd_config
找到 #Port 22
這一行,取消注釋并更改端口號,例如:
Port 2222
保存文件并重啟 SSH 服務:
sudo systemctl restart sshd
/etc/ssh/sshd_config
文件,找到 PermitRootLogin
這一行,將其更改為 prohibit-password
或 no
。PermitRootLogin prohibit-password
保存文件并重啟 SSH 服務:
sudo systemctl restart sshd
在客戶端生成 SSH 密鑰對(如果尚未生成):
ssh-keygen
將公鑰復制到服務器的 ~/.ssh/authorized_keys
文件中:
ssh-copy-id -p 2222 your_username@your_server_ip
確保 sshd_config
文件中的以下設置已啟用:
PubkeyAuthentication yes
PasswordAuthentication no
保存文件并重啟 SSH 服務:
sudo systemctl restart sshd
例如,使用 firewalld 僅允許特定 IP 地址訪問 SSH:
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="your_ip_address" port protocol="tcp" port="2222" accept'
sudo firewall-cmd --reload
安裝 Fail2ban:
sudo yum install fail2ban
創建一個新的 Fail2ban 配置文件 /etc/fail2ban/jail.local
,并添加以下內容:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 600
啟動并啟用 Fail2ban 服務:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
通過采取這些措施,你可以大大降低 CentOS 系統上 SSH 服務被攻擊的風險。請確保定期檢查和更新系統,以便保持安全性。