linux系统加固

Linux系统加固是保障服务器或终端安全的关键步骤,通过减少攻击面、限制权限和监控异常行为来提升系统安全性。以下是针对Linux系统的详细加固指南,适用于个人用户及企业环境:


一、账户与权限管理

  1. 密码策略

    • 修改密码复杂度规则(编辑 /etc/security/pwquality.conf 或 /etc/pam.d/common-password):

      bash

      复制

      下载

      minlen = 12  
      minclass = 4  # 包含大写、小写、数字、符号  
      maxrepeat = 3  # 禁止连续重复字符  
    • 设置密码有效期(编辑 /etc/login.defs):

      bash

      复制

      下载

      PASS_MAX_DAYS 90  
      PASS_MIN_DAYS 1  
      PASS_WARN_AGE 7  
    • 使用 chage -l <用户> 检查密码状态。

  2. 用户与组权限

    • 删除无用账户:userdel <用户名>

    • 限制特权用户:

      • 使用 sudo 代替直接使用 root

      • 通过 /etc/sudoers 限制 sudo 权限(使用 visudo 编辑):

        bash

        复制

        下载

        %admin ALL=(ALL) NOPASSWD: /usr/bin/apt, /usr/bin/systemctl  
    • 禁止非特权用户登录:在 /etc/ssh/sshd_config 中设置 AllowUsers user1 user2

  3. 账户锁定策略

    • 安装 pam_tally2 模块(编辑 /etc/pam.d/login):

      bash

      复制

      下载

      auth required pam_tally2.so deny=5 unlock_time=300  
    • 查看失败登录记录:pam_tally2 --user <用户名>


二、服务与进程管理

  1. 关闭不必要的服务

    • 列出所有服务:systemctl list-unit-files --type=service

    • 禁用高危服务(如 rpcbindtelnetnfs 等):

      bash

      复制

      下载

      systemctl stop <服务名>  
      systemctl disable <服务名>  
  2. 限制后台进程

    • 使用 ps aux 或 top 检查异常进程。

    • 通过 crontab -u root -e 检查计划任务,删除可疑条目。

    • 禁用 Ctrl+Alt+Del 重启:注释 /etc/systemd/system/ctrl-alt-del.target


三、网络与防火墙配置

  1. 防火墙规则

    • 使用 ufw(Ubuntu)或 firewalld(RHEL/CentOS):

      bash

      复制

      下载

      ufw default deny incoming  
      ufw allow 22/tcp  # 仅允许SSH端口  
      ufw enable  
    • 高级规则(iptables):

      bash

      复制

      下载

      iptables -A INPUT -p tcp --dport 22 -j ACCEPT  
      iptables -A INPUT -j DROP  
  2. SSH加固

    • 编辑 /etc/ssh/sshd_config

      bash

      复制

      下载

      Port 2222  # 修改默认端口  
      PermitRootLogin no  
      PasswordAuthentication no  # 强制使用密钥认证  
      MaxAuthTries 3  
      ClientAliveInterval 300  # 超时断开空闲连接  
    • 重启SSH服务:systemctl restart sshd

  3. 禁用IPv6(若无需使用)

    • 编辑 /etc/sysctl.conf

      bash

      复制

      下载

      net.ipv6.conf.all.disable_ipv6 = 1  
      net.ipv6.conf.default.disable_ipv6 = 1  
    • 生效配置:sysctl -p


四、文件系统与权限

  1. 关键目录权限

    • 设置敏感目录权限:

      bash

      复制

      下载

      chmod 700 /root  
      chmod 644 /etc/passwd /etc/group  
      chmod 600 /etc/shadow /etc/gshadow  
    • 限制SUID/SGID文件:

      bash

      复制

      下载

      find / -perm /4000 -exec ls -ld {} \;  # 查找SUID文件  
      find / -perm /2000 -exec ls -ld {} \;  # 查找SGID文件  
  2. 挂载选项加固

    • 编辑 /etc/fstab,为分区添加 noexec,nosuid,nodev 选项:

      bash

      复制

      下载

      /dev/sda1 / ext4 defaults,noexec,nosuid,nodev 0 1  
  3. 文件完整性监控

    • 使用 aide 或 tripwire 监控文件变更:

      bash

      复制

      下载

      aide --init  
      aide --check  

五、内核参数调优

  1. 防止常见攻击

    • 编辑 /etc/sysctl.conf

      bash

      复制

      下载

      # 禁止ICMP重定向  
      net.ipv4.conf.all.accept_redirects = 0  
      net.ipv4.conf.default.accept_redirects = 0  
      
      # 防止SYN洪水攻击  
      net.ipv4.tcp_syncookies = 1  
      
      # 禁止内核转储(防止敏感信息泄露)  
      fs.suid_dumpable = 0  
    • 生效配置:sysctl -p


六、日志与审计

  1. 启用审计服务

    • 使用 auditd 记录关键操作:

      bash

      复制

      下载

      auditctl -a always,exit -F arch=b64 -S execve  # 监控进程执行  
      auditctl -w /etc/passwd -p wa  # 监控文件修改  
    • 查看日志:ausearch -k <审计规则名>

  2. 集中化日志管理

    • 配置 rsyslog 或 systemd-journald 将日志发送至远程服务器。

    • 示例(rsyslog):

      bash

      复制

      下载

      *.* @192.168.1.100:514  

七、安全工具与自动化

  1. 漏洞扫描与基线检查

    • 使用工具自动化加固:

      • Lynislynis audit system

      • OpenSCAP:根据CIS基准扫描。

    • 定期运行:cron 定时任务。

  2. 入侵检测系统(IDS)

    • 部署 fail2ban 防止暴力破解:

      bash

      复制

      下载

      apt install fail2ban  
      systemctl enable fail2ban  
  3. SELinux/AppArmor

    • 启用并配置强制模式:

      bash

      复制

      下载

      # SELinux(RHEL/CentOS)  
      setenforce 1  
      sed -i 's/SELINUX=permissive/SELINUX=enforcing/g' /etc/selinux/config  
      
      # AppArmor(Ubuntu/Debian)  
      systemctl enable apparmor  
      systemctl start apparmor  

八、加密与备份

  1. 磁盘加密

    • 使用LUKS加密分区:

      bash

      复制

      下载

      cryptsetup luksFormat /dev/sdb1  
      cryptsetup open /dev/sdb1 encrypted_volume  
      mkfs.ext4 /dev/mapper/encrypted_volume  
  2. 定期备份

    • 使用 rsync 或 borg 增量备份:

      bash

      复制

      下载

      borg create /backup::"{now}" /data  
    • 加密备份文件:gpg -c backup.tar.gz


注意事项

  • 最小权限原则:所有操作遵循“仅授予必要权限”。

  • 测试与回滚:加固前备份配置文件,并在测试环境验证。

  • 持续监控:结合Prometheus+Grafana或ELK监控系统状态。

  • 合规要求:参考CIS Benchmark、NIST或企业安全规范。

通过以上措施,可显著提升Linux系统的安全性。企业环境中建议结合Ansible/Puppet实现批量配置管理,并定期进行渗透测试验证防护效果。

Linux系统中,系统加固是确保系统安全的重要步骤。以下是一些常见的Linux系统加固实践代码和命令: ### 1. 更新系统 首先,确保系统是最新的,以修补已知的安全漏洞。 ```bash sudo apt update && sudo apt upgrade -y ``` ### 2. 禁用不必要的服务 禁用不必要的服务和启动项,以减少攻击面。 ```bash sudo systemctl disable <service_name> sudo systemctl stop <service_name> ``` ### 3. 配置防火墙 使用`ufw`(Uncomplicated Firewall)来配置防火墙规则。 ```bash sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw enable ``` ### 4. 增强SSH安全性 修改SSH配置文件以增强安全性,例如禁用root登录和更改默认端口。 ```bash sudo nano /etc/ssh/sshd_config ``` 在文件中进行以下更改: ```plaintext PermitRootLogin no Port <new_port_number> PasswordAuthentication no ``` 保存并退出文件,然后重启SSH服务: ```bash sudo systemctl restart sshd ``` ### 5. 安装和配置Fail2Ban Fail2Ban可以防止暴力破解攻击。 ```bash sudo apt install fail2ban -y sudo nano /etc/fail2ban/jail.local ``` 在文件中添加以下内容: ```plaintext [sshd] enabled = true port = <new_port_number> filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 600 ``` 保存并退出文件,然后重启Fail2Ban服务: ```bash sudo systemctl restart fail2ban ``` ### 6. 启用SELinux或AppArmor 根据发行版不同,启用SELinux或AppArmor以提供额外的安全层。 #### 启用SELinux ```bash sudo setenforce 1 ``` #### 启用AppArmor ```bash sudo systemctl enable apparmor sudo systemctl start apparmor ``` ### 7. 文件系统权限 确保关键文件和目录的权限设置正确。 ```bash sudo chmod -R go-w /etc sudo chmod -R go-rw /var/log ``` ### 8. 定期审计和监控 使用工具如`Lynis`进行系统审计。 ```bash sudo apt install lynis -y sudo lynis audit system ``` ### 9. 日志管理 配置系统日志以确保日志文件的完整性和安全性。 ```bash sudo nano /etc/rsyslog.conf ``` 确保以下行未被注释: ```plaintext $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 ``` 保存并退出文件,然后重启rsyslog服务: ```bash sudo systemctl restart rsyslog ``` 通过这些步骤,可以显著提高Linux系统安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

默然zxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值