SSH安全设置
SSH服务常常用于远程访问服务器。但是,对于暴露在公网的服务器来说,使用默认的配置是十分不安全。可能会收到大量的恶意暴力破解。通过下面的几种方式可有效提高服务器的安全性
1. 修改端口
vim /etc/ssh/sshd_config
service sshd restart //重启服务
ufw allow PORT //放行端口
2. 禁止root用户登录ssh
vim /etc/ssh/sshd_config
腾讯云禁用ubuntu用户
- 修改
/etc/sudoers
文件sudo vi /etc/sudoers
在最后一行找到,在行头加上#注释即可。
ubuntu ALL=(ALL:ALL) NOPASSWD: ALL
- 禁止ubuntu用户登录
修改
/etc/passwd
文件sudo vi /etc/passwd
找到ubuntu用户,在该行的最后面加上 /nologin
ubuntu:x:500:500:ubuntu,,,:/home/ubuntu:/bin/bash //改为 ubuntu:x:500:500:ubuntu,,,:/home/ubuntu:/bin/bash/nologin
3. ssh登录邮箱通知(以gmail为例)
安装ssmtp
和mailutils
套件
sudo apt-get install ssmtp mailutils
修改ssmtp
配置/etc/ssmtp/ssmtp.conf
# 接收系統郵件的 Email
root=example@email.com
# 使用 GMail 的 MTA 送信
#mailhub=smtp.gmail.com:587
# 或者使用163邮箱
#mailhub=smtp.163.com:465
# 設定 hostname
hostname=YourHostname
# 允許使用者設定 Email 的 From 欄位
FromLineOverride=YES
# 邮箱账户和密码
AuthUser=example@email.com
#谷歌应用专用密码,如果是其他邮箱则是授权码
AuthPass=YOUR_PASSWORD
# 启用安全加密
UseSTARTTLS=YES #如果使用163邮箱,注释掉该行
UseTLS=YES
Debug=YES
修改revaliases
sudo vim /etc/ssmtp/revaliases
//添加以下内容 User改为你的用户名
// 如果使用谷歌邮箱
root:example@gmail.com:smtp.gmail.com:587
User:example@gmail.com:smtp.gmail.com:587
// 如果使用163邮箱
root:example@163.com:smtp.163.com:465
User:example@163.com:smtp.163.com:465
测试可否正常使用
echo "This is a test" | ssmtp recipient@your.domain.com
- 为root用户添加登录邮箱通知
- 编辑
vim /root/.bashrc
。将下面内容添加到最后。recipient@gmail.com
改为个人邮箱
echo 'ALERT - SSH root shell access found on '$HOSTNAME' on:' `date` `who` | mail -s "Alert: SSH root shell access" recipient@gmail.com
- 执行
source /root/.bashrc
生效配置
- 编辑
- 为其他用户添加登录邮箱通知
- 编辑
vim /home/USER/.bashrc
。将下面内容添加到最后。recipient@gmail.com
改为个人邮箱
echo 'ALERT - 'USER' shell access found on 'HOSTNAME' on:' `date` `who` | mail -s "Alert: User shell access" recipient@gmail.com
- 执行
source /home/ $USER/.ashrc
生效配置
- 编辑
- 为所有用户添加登录邮箱通知
- 编辑
vim /etc/bashrc
。将下面内容添加到最后。recipient@gmail.com
改为个人邮箱
vim /etc/bashrc echo 'ALERT - 'USER' shell access found on 'HOSTNAME' on:' `date` `who` | mail -s "Alert: User shell access" recipient@gmail.com
- 编辑
4. 安装Fail2ban
- 安装 Fail2ban
sudo apt-get install fail2ban
- Debian 12 及以上的版本需要手动安装 rsyslog
sudo apt-get install rsyslog
- 启动 Fail2ban 服务
sudo systemctl start fail2ban
- 开机自启动**
sudo systemctl enable fail2ban
- 查看 Fail2ban 服务状态。
sudo systemctl status fail2ban