Linux安全加固知识详解

123456
16
2025-04-08

Linux主机加固知识详解

Linux主机加固是通过配置、优化和限制系统功能,提升服务器安全性,降低被攻击风险的过程。以下是系统化的加固方案,涵盖基础配置、权限管理、服务安全、日志监控等核心内容。


一、系统更新与补丁管理

  1. 定期更新软件包

    bash

    #sudo: 确保显示所有进程的端口(包括 root 权限的进程)。
    # Debian/Ubuntu
    sudo apt update && sudo apt upgrade -y
    # CentOS/RHEL
    sudo yum update -y
  2. 启用自动安全更新

    bash

    # Debian/Ubuntu(安装unattended-upgrades)
    sudo apt install unattended-upgrades
    ​
    #--priority=low 优先级选择;low、medium、high、critical
    sudo dpkg-reconfigure --priority=low unattended-upgrades
    ​
    # CentOS/RHEL(使用yum-cron)
    sudo yum install yum-cron
    sudo systemctl enable yum-cron && sudo systemctl start yum-cron
  3. 移除废弃软件包

    bash

    sudo apt autoremove && sudo apt clean       # Debian/Ubuntu
    sudo yum autoremove && sudo yum clean all  # CentOS/RHEL

二、用户与权限管理

  1. 禁用Root直接登录

    • 修改SSH配置:

      bash

      sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
      sudo systemctl restart sshd
  2. 创建普通用户并授权

    bash

    sudo useradd -m -s /bin/bash admin
    sudo passwd admin
    # 授予sudo权限(Debian/Ubuntu),-a(追加用户到组)、-G(指定组名)
    sudo usermod -aG sudo admin
    # CentOS/RHEL
    sudo usermod -aG wheel admin
  3. 密码策略强化

    • 修改/etc/login.defs

      bash

      #设置密码到期天数
      PASS_MAX_DAYS 90
      #可用的最少天数
      PASS_MIN_DAYS 7
       #设置到期警告天数
      PASS_WARN_AGE 14

三、SSH安全配置

  1. 修改默认端口

    bash

    sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
  2. 启用密钥登录,禁用密码登录

    bash

    sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
    sudo systemctl restart sshd
  3. 限制SSH访问IP

    bash

    sudo vim /etc/hosts.allow
    sshd: 192.168.1.0/24, 10.0.0.5
    sudo vim /etc/hosts.deny
    sshd: ALL
    • 安装libpam-pwquality(Debian/Ubuntu)或libpwquality(CentOS)限制密码复杂度:

      sudo vim /etc/security/pwquality.conf
      minlen = 12
      dcredit = -1  # 至少1位数字
      ucredit = -1  # 至少1位大写字母

四、防火墙配置

  1. 使用UFW(Ubuntu)或Firewalld(CentOS)

    bash

    # Ubuntu
    # 设置默认策略(需确保已放行SSH)
    sudo ufw default deny incoming
    
    # 放行SSH(例如已配置SSH使用2222端口)
    sudo ufw allow 2222/tcp  # SSH端口
    
    # 放行Web端口
    sudo ufw allow 80/tcp    # HTTP
    sudo ufw allow 443/tcp   # HTTPS
    
    #启用防火墙
    sudo ufw enable
    
    # CentOS
    sudo firewall-cmd --permanent --add-port=2222/tcp
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --reload
  2. 禁用IPv6(如非必要)

    bash

    sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
    sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

五、服务与进程管理

  1. 停止无用服务

    bash

    sudo systemctl stop bluetooth cups
    sudo systemctl disable bluetooth cups
  2. 检查监听端口

    bash

    sudo netstat -tulnp
    sudo ss -tuln
    
    ss: 替代 netstat 的现代工具,用于查看网络连接信息。
    -t: 显示 TCP 协议 的连接。
    -u: 显示 UDP 协议 的连接。
    -l: 仅显示 监听(LISTEN) 状态的端口。
    -n: 以数字形式显示地址和端口(不解析域名和服务名)。
    sudo: 确保显示所有进程的端口(包括 root 权限的进程)。
  3. 使用chkconfig管理启动项(CentOS 6)

    bash

    sudo chkconfig --list | grep '3:on'
    sudo chkconfig <service> off

六、文件系统安全

  1. 关键目录权限控制

    bash

    sudo chmod 700 /root
    sudo chmod 600 /etc/shadow
    sudo chmod 644 /etc/passwd
  2. 启用文件系统保护

    • 挂载选项添加noexec,nosuid

      bash

      sudo vim /etc/fstab
      /dev/sda1 /tmp ext4 defaults,noexec,nosuid 0 0
  3. 安装AIDE进行文件完整性检查

    bash

    sudo apt install aide        # Debian/Ubuntu
    sudo yum install aide       # CentOS/RHEL
    sudo aideinit
    sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
    sudo aide.wrapper --check    # 定期检查

七、内核参数调优

  1. 修改/etc/sysctl.conf

    bash

    # 防止SYN洪水攻击
    net.ipv4.tcp_syncookies = 1
    # 禁止ICMP重定向
    net.ipv4.conf.all.accept_redirects = 0
    # 限制核心转储
    fs.suid_dumpable = 0
    sudo sysctl -p  # 应用配置

八、日志与监控

  1. 集中日志管理(rsyslog)

    bash

    sudo vim /etc/rsyslog.conf
    *.* @192.168.1.100:514  # 转发到日志服务器
    sudo systemctl restart rsyslog
  2. 安装Fail2ban防御暴力破解

    bash

    sudo apt install fail2ban    # Debian/Ubuntu
    sudo yum install fail2ban    # CentOS/RHEL
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    sudo systemctl enable fail2ban && sudo systemctl start fail2ban

九、安全审计工具

  1. 使用Lynis进行自动化审计

    bash

    sudo apt install lynis      # Debian/Ubuntu
    sudo yum install lynis     # CentOS/RHEL
    sudo lynis audit system
  2. OpenSCAP合规检查

    bash

    sudo yum install openscap-scanner scap-security-guide  # CentOS/RHEL
    sudo oscap xccdf eval --profile stig-rhel7-disa /usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml

十、备份与恢复

  1. 定期全量备份

    bash

    sudo tar -czvf /backup/$(date +%F).tar.gz /etc /home /var/www
  2. 配置自动化备份(cron)

    bash

    sudo crontab -e
    0 2 * * * /usr/bin/tar -czvf /backup/$(date +\%F).tar.gz /etc /home

总结

通过以上步骤,可显著提升Linux主机的安全性。实际环境中需根据业务需求调整配置,并定期进行漏洞扫描与渗透测试。安全加固是一个持续过程,需结合监控、日志分析和应急响应,形成完整的安全防护体系。

遇到的问题

1、kali换源+签名无效问题

wget archive.kali.org/archive-key.asc //下载签名

apt-key add archive-key.asc //安装签名


动物装饰