对待生命,不妨大胆一点,因为我们终将失去它

分类: vps


  • VPS的初始化安全设置

    记录下我每次开通新VPS后的安全配置,适用于Debian系

    基础设置

    登陆
    ssh root@ip
    升级系统
    apt update && apt upgrade -y
    安装必要软件
    apt install vim sudo curl uidmap fail2ban ufw -y
    添加非root用户
    adduser your_name
    加入sudo
    usermod -aG sudo your_name


    在本地电脑上生成新的ssh密钥对
    ssh-keygen -t rsa -b 4096 -C "your-vps-name"
    它会提示你保存的位置,我默认保存到~/.ssh/your-vps-name
    将公钥发送到vps
    ssh-copy-id -i ~/.ssh/your-vps-name.pub your_name@ip
    验证ssh密钥
    ssh -i ~/.ssh/your-vps-name -o PasswordAuthentication=no your_name@ip


    在vps里执行:
    使用非root用户登陆
    禁用ssh的密码和root登陆
    sudo vim /etc/ssh/sshd_config
    查找并启用下面的设置

    PermitRootLogin no
    ChallengeResponseAuthentication no
    PasswordAuthentication no
    UsePAM no

    保存后,重启服务sudo systemctl restart ssh
    先不要关闭当前的ssh连接,开新的终端测试下,应该只允许非root使用密钥登陆,root和密码登录都是不允许的


    安全设置

    启用 ufw 防火墙

    先禁用 ufw
    sudo ufw disable
    设置默认规则

    sudo ufw default deny incoming
    sudo ufw default allow outgoing

    添加需要的端口

    sudo ufw allow ssh
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp

    确认当前配置的规则
    sudo ufw show added
    启用 ufw
    sudo ufw enable
    确认 ufw 正在运行
    sudo ufw status verbose

    启用 fail2ban

    进入配置目录并创建配置文件

    cd /etc/fail2ban
    sudo cp jail.conf jail.local

    编辑配置文档
    sudo vim jail.local
    找到 [sshd] 模块, 添加

    [sshd]
    enabled = true
    mode = aggressive

    启用服务

    sudo systemctl start fail2ban
    sudo systemctl enable fail2ban

    解封ip命令:sudo fail2ban-client set sshd unbanip <ip地址>
    日志文件在:/var/log/fail2ban.log

    完成