记录下我每次开通新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
保存后,先不要关闭当前的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
完成
发表回复