ShokaX

VPS保护流程

发布于 字数统计 3.3k 字 阅读时长 11 分钟

VPS保护流程

发布于 字数统计 3,258 阅读时长 17 分钟

以下操作均在debian12中操作

创建普通用户

useradd -m -s /usr/bin/bash <username>
# -m: 创建用户目录
# -s <shell>: 指定shell
# 若没有添加-s参数使用以下命令
# user -s /usr/bin/bash <username>

添加密码

passwd <username>

使用root权限

如果没有sudo,先安装

vim /etc/sudoers

找到root ALL=(ALL:ALL) ALL这行,复制粘贴到下一行,把root改为

使用su <username>可切换用户

上传公共密钥

客户端

创建.ssh目录

C:\Users\<username>/home/<username>创建.ssh目录

# Windows
md .ssh
# Mac or Linux
mkdir .ssh

生成密钥

# key name随便填
ssh-keygen -t ed25519 -C "<key name>"

按三次回车,密钥即可创建成功

上传密钥到服务器

ssh默认端口为22

# Windows
scp -P <port> C:\Users\<username>\.ssh\id_ed25519.pub <普通用户>@<域名或服务器IP>:~/.ssh/authorized_keys
# Linux or Mac
scp -P <port> ~/.ssh/id_ed25519.pub <普通用户>@<域名或服务器IP>:~/.ssh/authorized_keys

服务端

赋予密钥文件权限

chmod 600 authorized_keys

到这里已经可以使用密钥登陆了

SSH修改端口

端口共有35536个,范围0-65535

sudo vim /etc/ssh/sshd_config

修改以下内容

Port <随机ssh端>
PermitRootLogin no #禁用root用户登录
PasswordAuthentication no #禁用密码登录
PubkeyAuthentication yes #允许公钥认证
AddressFamily inet #sshd不监听ipv6端口

重启服务

sudo systemctl restart ssh

UFW 防火墙配置

sudo apt update && sudo apt install ufw 

启用防火墙

sudo ufw enable

允许端口

sudo ufw limit from 0.0.0.0/0 to any port <ssh端> proto tcp # 只开放ipv4端口,limit限速
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp

禁用端口

sudo ufw deny <port>/<udp or tcp>

载入规则

sudo ufw reload

查看规则

sudo ufw status

删除规则

sudo ufw status numbered
sudo ufw delete <>

禁用防火墙

sudo ufw disable

禁用Ping

sudo vim /etc/ufw/before.rules

echo-request,这有两个,把有input的那行的ACCEPT改成DROP

载入规则

sudo ufw reload

创建虚拟内存

sudo fallocate -l 512M /swap
sudo chmod 600 /swap
sudo mkswap /swap
sudo swapon /swap
echo '/swap none swap sw 0 0' | sudo tee -a /etc/fstab

验证

free -h
sudo swapon --show

/etc/sysctl.conf里追加vm.swappiness=10

使用以下命令载入规则

sudo sysctl -p

添加Sysctl规则

sudo vim /etc/sysctl.conf

追加规则

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_syncookies = 1

载入规则

sudo sysctl -p

Fail2ban

防止ssh被暴力破解

安装fail2ban

sudo apt update && sudo apt install fail2ban

复制文件

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

添加内容

[sshd]
enabled = true
port = <SSH port>
filter = sshd
logpath = /var/log/auth.log
backend = auto

maxretry = 3
findtime = 10m
bantime  = 7d

bantime.increment = true
bantime.factor = 2
bantime.maxtime = 30d

创建日志文件

sudo touch /var/log/auth.log

重启fail2ban

sudo systemctl enable fail2ban
sudo systemctl restart fail2ban

查看状态

sudo fail2ban-client status
sudo fail2ban-client status sshd

解除指定IP

sudo fail2ban-client set sshd unbanip <被禁用的IP>

修改日志大小上限

sudo vim /etc/systemd/journald.conf

修改以下参数

SystemMaxUse=200M
SystemKeepFree=500M
MaxRetentionSec=7day

重启服务

sudo systemctl restart systemd-journald
sudo systemctl status systemd-journald

时间同步

sudo apt update && sudo apt install chrony

sudo systemctl enable --now chrony
chronyc tracking

自动安全更新

小型vps不要弄

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

确保

Unattended-Upgrade::Origins-Pattern {
        ...
};

里面只有

"origin=Debian,codename=${distro_codename}-security,label=Debian-Security";

这一句,其它的注释掉

5488 字 19 分钟
Astro ShokaX 主题强力驱动