Ubuntu基础安全加固
目标系统:Ubuntu 24+
- 保持系统更新
apt update
apt upgrade -y
apt dist-upgrade -y
- 强化认证
- 创建新管理员用户
# 将 <username> 替换为你想要的用户名
sudo adduser <username>
sudo usermod -aG sudo <username>
- 限制SSH登录用户
# 将 <username> 替换为你想要的用户名
echo "AllowUsers <username>" | sudo tee -a /etc/ssh/sshd_config
- 禁用Root登录
# 匹配PermitRootLogin.开头的行,并替换为PermitRootLogin no
# 用于禁止Root远程登录
sudo sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
# 重启ssh服务使其立即生效
sudo systemctl restart sshd
# 执行完成后当前ssh仍然保持,后续ssh连接已无法用root进行登录
- 设置强密码策略
# 安装强密码策略模块
sudo apt install libpam-pwquality
# 编辑密码策略配置文件
sudo nano /etc/security/pwquality.conf
添加如下内容:
# 密码最小长度11
minlen = 11
# 密码中至少包含1位数字(0-9)
dcredit = -1
# 密码中至少包含1个大写字母(A-Z)
ucredit = -1
# 密码中至少包含1个小写字母(a-z)
lcredit = -1
# 密码中至少包含1个特殊字符(如 `!@#$%^&*` 等)
ocredit = -1
- 防火墙配置
- 启用UFW防火墙
# 启用UFW防火墙
sudo ufw enable
# 拒绝所有入站请求
sudo ufw default deny incoming
# 允许所有出站请求
sudo ufw default allow outgoing
# 放通SSH端口
sudo ufw allow 22/tcp
# (可选)放通默认HTTP端口
sudo ufw allow 80/tcp
# (可选)放通默认HTTPS端口
sudo ufw allow 443/tcp
# (可选)放通你需要的其他端口,将<port>替换为你需要的端口
# sudo ufw allow <port>/tcp
- Fail2ban配置
- 安装fail2ban并设置配置文件
# 安装fail2ban
sudo apt install fail2ban -y
# (可选)用于发送失败邮件
sudo apt install sendmail -y
sudo apt install mailutils -y
# 复制配置文件,不建议直接修改默认配置文件
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# (可选)修改jail.local
vim /etc/fail2ban/jail.local
- (可选)检查并修改如下配置
# 可选修改:
[DEFAULT]
# 禁止IP的持续时间(秒)
bantime = 86400
# 检测时间窗口(允许的失败次数在此时间内触发)
findtime = 600
# 最大失败尝试次数
maxretry = 5
# 建议修改(需安装sendmail):
# sudo apt install sendmail
destemail = <目标邮箱>
sender = <发件邮箱>
# 邮件内容设置为包含日志
action = %(action_mwl)s
- 启动fail2ban
# 注册为系统服务,开启启动并立即启动fail2ban
sudo systemctl enable --now fail2ban
# 测试是否正常启动
sudo fail2ban-client --test
# 正常启动将看到如下输出
# OK: configuration test is successful