centos

SSH在CentOS上如何安全使用

小樊
51
2025-06-24 07:15:56
栏目: 智能运维

在CentOS上安全使用SSH,可以遵循以下步骤和建议:

1. 更新系统

确保你的CentOS系统是最新的,以修复已知的安全漏洞。

sudo yum update -y

2. 修改SSH默认端口

将SSH端口更改为非标准端口(例如2222)可以减少自动化攻击的风险。

sudo vi /etc/ssh/sshd_config

找到并修改以下行:

Port 22

改为:

Port 2222

保存并退出编辑器,然后重启SSH服务:

sudo systemctl restart sshd

3. 禁用root登录

为了防止root用户直接通过SSH登录,可以在sshd_config文件中禁用root登录。

sudo vi /etc/ssh/sshd_config

找到并修改以下行:

PermitRootLogin yes

改为:

PermitRootLogin no

保存并退出编辑器,然后重启SSH服务:

sudo systemctl restart sshd

4. 使用公钥认证

使用公钥认证代替密码认证可以提高安全性。

生成SSH密钥对

在本地机器上生成SSH密钥对:

ssh-keygen -t rsa -b 4096

将公钥复制到服务器

将生成的公钥复制到服务器的~/.ssh/authorized_keys文件中:

ssh-copy-id user@remote_host

配置SSH服务器以启用公钥认证

编辑/etc/ssh/sshd_config文件,确保以下行未被注释:

PubkeyAuthentication yes
PasswordAuthentication no

保存文件并退出编辑器,然后重启SSH服务以应用更改:

sudo systemctl restart sshd

5. 配置防火墙

使用firewalldiptables配置防火墙规则,仅允许特定IP地址或网络访问SSH端口。

使用firewalld

sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp
sudo firewall-cmd --reload

使用iptables

sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo service iptables save
sudo service iptables restart

6. 启用Fail2Ban

Fail2Ban可以防止暴力破解攻击。

sudo yum install fail2ban -y
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

编辑Fail2Ban配置文件/etc/fail2ban/jail.local,添加以下内容:

[ssh]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 600

7. 定期更新SSH

确保SSH软件包是最新的,以修复已知的安全漏洞。

sudo yum update openssh-server -y

8. 监控和日志记录

定期检查SSH日志文件/var/log/secure,监控异常登录尝试。

sudo tail -f /var/log/secure

9. 使用SELinux

如果系统启用了SELinux,确保它正确配置以增强安全性。

sudo setenforce 1
sudo vi /etc/selinux/config

SELINUX=enforcing设置为SELINUX=enforcing

通过以上步骤,你可以显著提高CentOS系统上SSH的安全性。

0
看了该问题的人还看了