凌峰创科服务平台

Linux服务器安全配置关键步骤有哪些?

Linux 服务器基本安全配置方案

核心思想:纵深防御

安全不是单一措施能保证的,而是需要层层设防,一个层面的被攻破不应导致整个系统的崩溃,本方案将从以下几大方面进行配置:

Linux服务器安全配置关键步骤有哪些?-图1
(图片来源网络,侵删)
  1. 账号与访问控制
  2. 系统与服务加固
  3. 网络安全
  4. 日志与监控
  5. 定期维护与更新

第一部分:账号与访问控制 (最基础,最重要)

这是安全的第一道防线,目标是确保只有授权用户才能以最小权限访问服务器。

1 使用普通用户进行日常操作

  • 做法:永远不要直接使用 root 账号进行日常登录和操作。

  • 步骤

    1. 创建一个普通用户,并赋予 sudo 权限。

      Linux服务器安全配置关键步骤有哪些?-图2
      (图片来源网络,侵删)
      # 创建新用户 ( admin)
      adduser admin
      # 赋予 sudo 权限 (方法一,推荐)
      # 编辑 /etc/sudoers 文件,使用 visudo 命令可以防止语法错误
      visudo
      # 在文件末尾添加: admin ALL=(ALL:ALL) ALL
    2. 之后,使用 ssh admin@your_server_ip 登录,需要执行特权命令时,使用 sudo command

2 禁用或重命名 root 登录

  • 做法:直接禁止 root 通过 SSH 登录,大大增加暴力破解的难度。

  • 步骤

    1. 编辑 SSH 配置文件 /etc/ssh/sshd_config

      Linux服务器安全配置关键步骤有哪些?-图3
      (图片来源网络,侵删)
      sudo vi /etc/ssh/sshd_config
    2. 找到并修改以下两行:

      # PermitRootLogin yes
      # 改为
      PermitRootLogin no
      # 也可以考虑重命名 root 用户 (不推荐,可能带来兼容性问题)
      # usermod -l newrootname root
    3. 保存文件并重启 SSH 服务。

      sudo systemctl restart sshd

3 使用 SSH 密钥对进行登录

  • 做法:彻底禁用密码登录,只允许通过 SSH 密钥对进行认证,这是目前最安全的远程登录方式。

  • 步骤 (在客户端机器上操作)

    1. 生成 SSH 密钥对(如果没有):
      ssh-keygen -t rsa -b 4096

      一路回车即可,会在 ~/.ssh/ 目录下生成 id_rsa (私钥) 和 id_rsa.pub (公钥)。

    2. 将公钥上传到服务器:
      # 假设用户是 admin
      ssh-copy-id admin@your_server_ip

      此命令会要求你输入 admin 用户的密码,然后将公钥追加到服务器上 ~/.ssh/authorized_keys 文件中。

  • 步骤 (在服务器上配置)

    1. 再次编辑 /etc/ssh/sshd_config

      # PasswordAuthentication yes
      # 改为
      PasswordAuthentication no
      # 确保以下设置存在且开启
      PubkeyAuthentication yes
      AuthorizedKeysFile .ssh/authorized_keys
    2. 重启 SSH 服务:

      sudo systemctl restart sshd

      注意:配置完成后,请确保自己还能通过密钥成功登录,否则可能被锁在门外。

4 设置强密码策略

  • 做法:强制用户使用复杂的密码,并定期更换。
  • 步骤 (以 libpam-pwquality 为例)
    1. 安装密码质量检查工具:
      sudo apt-get install libpam-pwquality  # Debian/Ubuntu
      # 或
      sudo yum install libpwquality        # CentOS/RHEL
    2. 编辑 /etc/security/pwquality.conf,设置密码策略:
      minlen = 12      # 最小长度
      minclass = 3     # 至少包含3种字符类型 (大写、小写、数字、特殊符号)
      maxrepeat = 3    # 同一字符不能连续出现超过3次
    3. 修改 /etc/login.defs 来设置密码过期策略:
      PASS_MAX_DAYS 90   # 密码最长90天过期
      PASS_MIN_DAYS 7    # 修改密码后7天内不能再次修改
      PASS_WARN_AGE 7    # 密码过期前7天开始警告

5 锁定无用账号

  • 做法:禁用或删除系统自带的、不需要登录的账号(如 games, news, nobody 等)。

  • 步骤

    # 锁定账号
    sudo usermod -L games
    # 如果确定不需要,可以删除 (谨慎操作)
    # sudo userdel games

第二部分:系统与服务加固

减少攻击面,即关闭或最小化不必要的服务和功能。

1 更新系统

  • 做法:这是最简单也最有效的安全措施。

  • 步骤

    # Debian/Ubuntu
    sudo apt update && sudo apt upgrade -y
    # CentOS/RHEL
    sudo yum update -y

2 关闭不必要的服务

  • 做法:检查并关闭所有非必需的系统服务。

  • 步骤

    1. 查看正在运行的服务:

      systemctl list-units --type=service --state=running
    2. 关闭不必要的服务(telnet, rsh, nfs-server 等):

      # 禁止服务开机自启
      sudo systemctl disable telnet.socket
      # 停止当前运行的服务
      sudo systemctl stop telnet.socket

3 配置防火墙 (Firewall)

  • 做法:只开放必要的端口,拒绝所有其他连接。

  • 步骤

    • 对于 Debian/Ubuntu (使用 UFW - Uncomplicated Firewall)

      # 启用防火墙
      sudo ufw enable
      # 允许 SSH 连接 (这是必须的,否则会被锁在外面)
      sudo ufw allow ssh
      # 允许 HTTP (80) 和 HTTPS (443) 端口
      sudo ufw allow http
      sudo ufw allow https
      # 查看规则
      sudo ufw status
    • 对于 CentOS/RHEL (使用 firewalld)

      # 启动并启用防火墙
      sudo systemctl start firewalld
      sudo systemctl enable firewalld
      # 添加永久规则 (SSH, HTTP, HTTPS)
      sudo firewall-cmd --permanent --add-service=ssh
      sudo firewall-cmd --permanent --add-service=http
      sudo firewall-cmd --permanent --add-service=https
      # 重新加载防火墙使规则生效
      sudo firewall-cmd --reload
      # 查看规则
      sudo firewall-cmd --list-all

4 禁用 IPv6 (如果不需要)

  • 做法:如果你的网络环境不需要 IPv6,可以禁用它以减少潜在攻击面。
  • 步骤
    1. 编辑内核启动参数 /etc/default/grub
      sudo vi /etc/default/grub
    2. 找到 GRUB_CMDLINE_LINUX 行,添加 ipv6.disable=1
      GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rhgb quiet"
    3. 更新 GRUB 配置并重启。
      sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      sudo reboot

第三部分:网络安全

1 配置 Fail2ban

  • 做法:一个防止暴力破解的利器,它会自动监控日志,并在检测到来自同一IP的多次失败尝试后,暂时封禁该IP。
  • 步骤
    1. 安装 Fail2ban:
      sudo apt install fail2ban -y  # Debian/Ubuntu
      # sudo yum install fail2ban -y # CentOS/RHEL
    2. 复制并编辑配置文件:
      sudo
分享:
扫描分享到社交APP
上一篇
下一篇