Ubuntu的SSH安全配置
查看登录日志文件:
1 | sudo vim /var/log/auth.log |
修改SSH的默认端口
1 | iptables -A INPUT -p tcp -m tcp --dport 6022 -j ACCEPT |
保存并重启iptables防火墙
1 | service iptables save |
修改SSH的默认端口
1 | sudo vim /etc/ssh/sshd_config |
把 # Port 22 修改为 Port 6022
最好使用1024到65535之间的一个别人猜不到的端口号
重启ssh服务
1 | sudo service sshd restart |
或
1 | sudo /etc/init.d/ssh restart |
可以用iptables检查端口是否开启
禁止SSH的root登录
修改 /etc/ssh/sshd_config
文件
1 | PermitRootLogin no |
重启ssh服务
1 | sudo service sshd restart |
禁用密码登陆,使用RSA私钥登录
1 | ssh-keygen #在客户端生成密钥 |
还需要配置服务端
1 | sudo vim /etc/ssh/sshd_config |
重启ssh服务
1 | sudo service sshd restart |
使用 Fail2ban
Ubuntu 16.04 系统源里带有 denyhosts ,到了Ubuntu 20.04默认不再包含。DenyHosts现在几乎不再更新了,所以来使用Fail2ban
检查是否安装了特定软件包
1 | sudo apt list --installed | grep denyhosts |
安装fail2ban
1 | sudo apt-get install fail2ban |
配置fail2ban
配置文件在 /etc/fail2ban/jail.conf
。 在配置文件的[DEFAULT]
区,可以在此定义所有受监控的服务的默认参数
1 | [DEFAULT] |
根据上述配置,fail2ban会自动禁止在最近10分钟内有超过5次访问尝试失败的任意IP地址。一旦被禁,这个IP地址将会在1小时内一直被禁止访问 SSH 服务
保存配置后重启服务
1 | sudo service fail2ban restart |
查看fail2ban运行状态
验证fail2ban成功运行:
1 | $ sudo fail2ban-client ping |
检验fail2ban状态
1 | $ sudo fail2ban-client status |
检验一个特定监狱的状态
1 | sudo fail2ban-client status |
上面的命令会显示出被禁止IP地址列表
解锁特定的IP地址
1 | sudo fail2ban-client set sshd unbanip 192.168.1.8 |
Ubuntu的SSH安全配置
You need to set
install_url
to use ShareThis. Please set it in _config.yml
.