SSH安全设置

SSH安全设置

673bef0f285b4.jpg

SSH服务常常用于远程访问服务器。但是,对于暴露在公网的服务器来说,使用默认的配置是十分不安全。可能会收到大量的恶意暴力破解。通过下面的几种方式可有效提高服务器的安全性

1. 修改端口

vim /etc/ssh/sshd_config

image-20241110154844045

service sshd restart    //重启服务
ufw allow PORT //放行端口

2. 禁止root用户登录ssh

vim /etc/ssh/sshd_config

image-20241110154854723

腾讯云禁用ubuntu用户

  1. 修改 /etc/sudoers 文件
    sudo vi /etc/sudoers
    

    在最后一行找到,在行头加上#注释即可。

    ubuntu ALL=(ALL:ALL) NOPASSWD: ALL
    
  2. 禁止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为例)

安装ssmtpmailutils套件

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

  1. 安装 Fail2ban
    sudo apt-get install fail2ban
    
  2. Debian 12 及以上的版本需要手动安装 rsyslog
    sudo apt-get install rsyslog
    
  3. 启动 Fail2ban 服务
    sudo systemctl start fail2ban
    
  4. 开机自启动**
    sudo systemctl enable fail2ban
    
  5. 查看 Fail2ban 服务状态。
    sudo systemctl status fail2ban
    
上一篇
下一篇