Ubuntu基础安全加固

目标系统:Ubuntu 24+

  1. 保持系统更新
apt update
apt upgrade -y
apt dist-upgrade -y
  1. 强化认证
  • 创建新管理员用户
# 将 <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
  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
  1. 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