linux服务器安全建议

黑白记忆 网络攻防 514

确保 Linux 服务器的安全是系统管理员的核心任务之一。以下是一份全面的安全建议清单,涵盖身份验证、网络防护、文件系统安全、监控与审计等方面,帮助加固你的服务器。


1. 系统更新与补丁管理

  • 定期更新系统和软件包:

    bash
    复制
    # Debian/Ubuntusudo apt update && sudo apt upgrade -y# RHEL/CentOSsudo yum update -y# 或者使用 dnf(Fedora/CentOS 8+)sudo dnf upgrade -y
  • 启用自动安全更新(可选):

    bash
    复制
    # Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron

2. 用户与权限管理

(1) 禁用 root 直接登录

  • 禁止 root SSH 登录:

    bash
    复制
    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd
  • 使用 sudo 替代 root,仅授权必要用户:

    bash
    复制
    # 添加用户并赋予 sudo 权限sudo adduser usernamesudo usermod -aG sudo username  # Debian/Ubuntusudo usermod -aG wheel username  # RHEL/CentOS

(2) 强密码策略

  • 设置密码复杂度要求(编辑 /etc/login.defs 和 /etc/pam.d/common-password 或 /etc/security/pwquality.conf)。

  • 强制定期更换密码:

    bash
    复制
    sudo chage -M 90 username  # 90 天后过期

(3) 使用 SSH 密钥认证

  • 生成密钥对(本地机器):

    bash
    复制
    ssh-keygen -t ed25519 -C "your_email@example.com"
  • 上传公钥到服务器:

    bash
    复制
    ssh-copy-id username@server_ip
  • 禁用密码登录(仅允许密钥):

    bash
    复制
    sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_configsudo systemctl restart sshd

3. 防火墙与网络防护

(1) 配置防火墙(UFW/firewalld)

  • UFW(Ubuntu/Debian):

    bash
    复制
    sudo ufw enablesudo ufw allow 22/tcp   # SSHsudo ufw allow 80/tcp   # HTTPsudo ufw allow 443/tcp  # HTTPS
  • firewalld(RHEL/CentOS):

    bash
    复制
    sudo firewall-cmd --permanent --add-service=sshsudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=httpssudo firewall-cmd --reload

(2) 限制 SSH 访问

  • 更改默认 SSH 端口(如 2222):

    bash
    复制
    # Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron0
  • 仅允许特定 IP 访问 SSH:

    bash
    复制
    # Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron1

(3) 禁用不必要服务

  • 检查运行的服务:

    bash
    复制
    # Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron2
  • 关闭高风险服务(如 telnetftprpcbind):

    bash
    复制
    # Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron3

4. 文件系统安全

(1) 关键目录权限

  • 限制敏感目录:

    bash
    复制
    # Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron4
  • 防止提权攻击:

    bash
    复制
    # Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron5

(2) 禁用 SUID/SGID 危险文件

  • 查找并移除不必要的 SUID 文件:

    bash
    复制
    # Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron6
  • 移除危险文件的 SUID 位(如 chmod u-s /bin/xxx)。

(3) 启用文件完整性监控(AIDE/Tripwire)

  • 安装 AIDE(高级入侵检测工具):

    bash
    复制
    # Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron7

5. 入侵检测与日志监控

(1) 安装 Fail2Ban

  • 自动封禁暴力破解 IP:

    bash
    复制
    # Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron8
  • 配置规则(/etc/fail2ban/jail.local):

    ini
    复制
    # Debian/Ubuntusudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgrades# RHEL/CentOSsudo yum install yum-cronsudo systemctl enable --now yum-cron9

(2) 日志分析

  • 检查 SSH 登录失败记录:

    bash
    复制
    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd0
  • 监控系统日志:

    bash
    复制
    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd1

(3) Rootkit 检测

  • 使用 rkhunter 或 chkrootkit

    bash
    复制
    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd2

6. 其他高级防护

(1) SELinux/AppArmor

  • 启用 SELinux(RHEL/CentOS):

    bash
    复制
    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd3
  • 启用 AppArmor(Debian/Ubuntu):

    bash
    复制
    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd4

(2) 内核参数加固

  • 编辑 /etc/sysctl.conf

    ini
    复制
    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd5
  • 应用配置:

    bash
    复制
    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd6

7. 备份与灾难恢复

  • 定期备份关键数据(使用 rsynctar 或云存储):

    bash
    复制
    sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_configsudo systemctl restart sshd7
  • 测试备份可恢复性,避免紧急情况失效。


总结

  • 最小权限原则:只开放必要的服务和端口。

  • 纵深防御:结合防火墙、入侵检测、日志监控多层防护。

  • 自动化监控:使用工具(如 fail2banAIDE)减少人工干预。

  • 定期审计:检查用户、进程、文件变更。

通过以上措施,你的 Linux 服务器将具备较高的安全性,但仍需定期复查和更新策略以应对新威胁。

标签: 服务器安全 服务器 LINUX

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~

欢迎光临本站!本站即将改版,请记住我们的新域名itriji.com

×