🛡️ 前言
在这个数字化时代,服务器安全成为了至关重要的议题。Linux 系统由于其开放性和灵活性,广泛用于服务器领域。但是,仅仅依赖默认配置往往是不够的。本指南旨在介绍如何加固你的 Linux 服务器,提高其安全性。
🎯 要点
🛠️ 加固步骤
1️⃣ 更新操作系统和软件包
-
步骤1: 使用以下命令更新系统。
sudo apt update && sudo apt upgrade
-
步骤2: 定期检查更新。
建议每周至少检查一次系统更新。
2️⃣ 设置防火墙规则
-
步骤1: 使用
ufw
来简化防火墙设置。sudo apt install ufw
-
步骤2: 启动并设置基础规则。
sudo ufw enable sudo ufw allow ssh
3️⃣ 最小化安装的软件
-
步骤1: 使用
dpkg
或apt
查看已安装的软件包。dpkg -l
-
步骤2: 卸载不必要的软件包。
sudo apt remove
4️⃣ 管理用户权限
-
步骤1: 创建一个普通用户,并使用
sudo
提供管理员权限。sudo adduser sudo usermod -aG sudo
-
步骤2: 禁用 root 登录。
sudo passwd -l root
5️⃣ 配置 SSH 安全选项
-
步骤1: 编辑 SSH 配置文件。
sudo nano /etc/ssh/sshd_config
-
步骤2: 更改以下几个设置。
- 禁用 root 登录:
PermitRootLogin no
- 更改默认端口:
Port
- 使用密钥认证:
PasswordAuthentication no
- 禁用 root 登录:
6️⃣ 安装安全监控工具
-
步骤1: 安装 Fail2ban。
sudo apt install fail2ban
-
步骤2: 启动并配置 Fail2ban。
sudo systemctl start fail2ban
这些步骤只是加固 Linux 服务器的基础,随着安全需求的变化,可能需要进一步的配置和审计。接下来,我们编写一个自动执行服务器加固的脚本。
📜 自动化脚本
#!/bin/bash
# 退出脚本,如果任何语句的执行结果是非零
set -e
# 设置 umask 为 077,仅当前用户有权操作新生成的文件
umask 077
# 自定义字段(UDF),用于从用户输入获取参数
# UDF 用于获取 WireGuard IP 地址
#
# UDF 用于获取 WireGuard 对等节点的公钥
#
# UDF 用于获取 WireGuard 对等节点的允许的 IPs 设置
#
# UDF 用于获取管理员用户
#
# 更新 apt 包列表并安装必要软件
apt-get update
apt-get upgrade -y
apt-get install -y acl wireguard ufw
# 把 umask 设置加入到系统配置
echo -e "numask 077" >> /etc/profile
# 创建管理用户,赋予 root 权限
useradd -m -s /bin/bash
-G users,sudo
-p $(awk -F: '/^root:/ { print $2 }' /etc/shadow)
$ADMIN_USER
# 禁用 root 用户 SSH 登录
passwd -l root
cat >/etc/ssh/sshd_config.d/01-disable-root.conf /etc/ssh/sshd_config.d/03-no-passwords.conf /etc/wireguard/wg0.conf /etc/issue