文章目录
- 一、服务器购买
- 二、更新密码
- 三、修改ssh端口
- 四、防火墙配置(ufw)
- 五、防暴力入侵(failban)
- Reference
本文所有命令在root用户下操作,如在非root下,需添加sudo命令
一、服务器购买
笔者云服务器使用的Debian12 系统
cat /etc/debian_version
12.0
二、更新密码
passwd
# 输入 new password
三、修改ssh端口
默认22端口极易被攻击,可改为其他端口,可以一定程度上降低风险。
vim /etc/ssh/sshd_config
将#Port 22修改为Port 端口号
# 重启ssh服务
service sshd restart
四、防火墙配置(ufw)
ufw
是为轻量化配置iptables而开发的一款工具。笔者使用该工具来配置防火墙。具体配置如下:
1、安装ufw
# 1、安装ufw
apt install -y ufw
2、启用ipv6配置
因为笔者的云服务器默认启用了ipv6,因此防火墙配置需要同时包括ipv4和ipv6
vim /etc/default/ufw
# 确保 IPV6=yes 设置
3、设置默认策略
# 禁止所有入流量
ufw default deny incoming
# stdout
Output
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)# 允许所有出流量
ufw default allow outgoing
# stdout
Output
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)
4、设置特殊端口访问
如前文中修改的SSH端口
ufw allow <新ssh端口>
5、查看设置的规则并启动ufw
# 查看规则
ufw show added# 启用规则
ufw enable
# 该步骤需要二次确定
6、检查规则设置
ufw show added
# stdout
Added user rules (see 'ufw status' for running firewall):
ufw allow OpenSSH
ufw deny 22/tcp
ufw allow 22222
ufw allow 80/tcp
ufw deny 22
root@york:~# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skipTo Action From
-- ------ ----
xx/tcp ALLOW IN Anywhere
xx/tcp DENY IN Anywhere
7、设置自启动
systemctl enable ufw
五、防暴力入侵(failban)
fail2ban是一个用来防止系统入侵的工具,主要是防止暴力破解系统密码。
虽然前文修改了SSH端口,但是仍然有可能被暴力攻击,因此笔者用fail2ban来防御对SSH的暴力破解。
1、fail2ban安装
apt install -y fail2ban
2、配置SSH防御
vim /etc/fail2ban/jail.local
# 内容如下
[DEFAULT]
#此参数为加白的网段、IP,可以是域名、网段或单个IP,空格隔开。
ignoreip = 127.0.0.1/8 ::1#设置被封锁的时间间隔,如下表示10分钟,可以是秒(s)、分钟(m)、小时(h)、天(d),不带单位则默认为s,-1表示永久封锁。
bantime = 10m#检测的间隔时间,在间隔时间内,当>=maxtretry设置的失败次数,则触发限制,禁止访问。
findtime = 10m#findtime时间内的最大失败次数
maxretry = 5backend = systemd
[sshd]
enabled = true
port = <ssh端口>
logpath = /var/log/auth.log
backend = %(sshd_backend)s
ignoreip = 127.0.0.1/8 ::1 10.10.0.0/16 172.16.0.0/16
# 封锁一个月
bantime = 1mon
findtime = 2m
maxretry = 5
以上sshd配置表示,两分钟内如果ssh登陆失败五次,则封锁访问的IP,同时排除本地回环地址和一些内网网段
PS: 谨慎使用当前配置服务器的机器来测试 fail2ban 封锁功能,会导致无法访问服务器(笔者深有体会)
3、启动并设置自启动
# 启动
systemctl start fail2ban
# 查看状态
systemctl status fail2ban
# 自启动
system enable fail2ban
Reference
- How to Set Up a Firewall with UFW on Ubuntu
- 使用 fail2ban 防范 SSH 暴力破解攻击
- Fail2Ban安全配置与应用 - 高度可定制化/支持多种服务
- fail2ban 启动失败问题处理