确保Ubuntu SSH的安全性是非常重要的,因为SSH是远程访问服务器的主要方式之一。以下是一些提高Ubuntu SSH安全性的建议:
更改默认端口:默认情况下,SSH使用端口22。将SSH服务更改为使用非标准端口可以减少自动化攻击的风险。
编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config
找到
#Port 22
这一行,取消注释并更改为你选择的端口号,例如:Port 2222
保存并退出编辑器,然后重启SSH服务:
sudo systemctl restart ssh
禁用root登录:编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config
找到
PermitRootLogin
这一行,将其设置为no
:PermitRootLogin no
这样可以防止root用户直接通过SSH登录,从而增加一层安全保护。
使用公钥认证:使用公钥认证而不是密码认证可以大大提高安全性。生成SSH密钥对并将其添加到服务器的
authorized_keys
文件中。在本地机器上生成SSH密钥对:
ssh-keygen -t rsa -b 4096
将公钥复制到服务器:
ssh-copy-id user@server_ip -p 2222
确保在
sshd_config
文件中启用了公钥认证:PubkeyAuthentication yes
限制SSH访问:使用防火墙限制SSH访问,只允许特定IP地址访问SSH端口。
使用
ufw
(Uncomplicated Firewall)配置防火墙规则:sudo ufw allow 2222/tcpsudo ufw enable
使用Fail2Ban:Fail2Ban是一个入侵防御软件框架,可以监控日志文件并禁止恶意IP地址访问SSH。
安装Fail2Ban:
sudo apt-get install fail2ban
配置Fail2Ban以监控SSH日志并禁止恶意IP地址:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localsudo nano /etc/fail2ban/jail.local
在
[ssh]
部分进行如下配置:[ssh]enabled = trueport = 2222filter = sshdlogpath = /var/log/auth.logmaxretry = 3bantime = 600
重启Fail2Ban服务:
sudo systemctl restart fail2ban
定期更新系统和软件:定期更新Ubuntu系统和SSH软件包,以确保所有安全补丁都已应用。
更新系统:
sudo apt-get updatesudo apt-get upgrade
通过以上步骤,你可以显著提高Ubuntu SSH的安全性。记住,安全性是一个持续的过程,需要定期检查和更新你的安全措施。