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

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

保存后,先不要关闭当前的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

完成


Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注