Linux系统如何进行安全加固
导读:Linux系统安全加固关键措施 1. 系统补丁与软件更新 及时更新系统内核及软件包是修复已知漏洞、降低被攻击风险的核心手段。通过包管理器(如Debian/Ubuntu的apt、CentOS/RHEL的yum)定期执行sudo apt upd...
Linux系统安全加固关键措施
1. 系统补丁与软件更新
及时更新系统内核及软件包是修复已知漏洞、降低被攻击风险的核心手段。通过包管理器(如Debian/Ubuntu的apt、CentOS/RHEL的yum)定期执行sudo apt update &
&
sudo apt upgrade或sudo yum update,确保系统组件为最新稳定版本。早期内核版本(如2.0.x以下)存在较多安全漏洞,需升级至2.0.x及以上版本,并移除不必要的软件包以减少攻击面。
2. 防火墙配置
防火墙是控制网络流量的第一道防线,需根据发行版选择合适工具并配置严格规则:
- UFW(Ubuntu/Debian):启用
sudo ufw enable,仅开放必要端口(如HTTP的80/tcp、HTTPS的443/tcp、SSH的22/tcp),例如sudo ufw allow 80/tcp;限制特定IP访问敏感端口(如sudo ufw allow from 192.168.1.100 to any port 22);查看状态sudo ufw status。 - Firewalld(CentOS/RHEL):启动
sudo systemctl start firewalld并设置默认区域为public(sudo firewall-cmd --set-default-zone=public);允许服务(如sudo firewall-cmd --permanent --add-service=ssh)或端口(如sudo firewall-cmd --permanent --add-port=80/tcp);重载配置sudo firewall-cmd --reload。 - Iptables:通过命令配置基础规则(如允许本地回环
sudo iptables -A INPUT -i lo -j ACCEPT、SSH连接sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT),默认拒绝所有输入流量(sudo iptables -P INPUT DROP);保存规则(如Debian/Ubuntu使用iptables-persistent)。
3. 用户与权限管理
- 禁用Root远程登录:编辑
/etc/ssh/sshd_config,设置PermitRootLogin no,避免攻击者通过暴力破解Root密码入侵;重启SSH服务sudo systemctl restart sshd。 - 使用SSH密钥认证:生成密钥对(
ssh-keygen -t rsa),将公钥(id_rsa.pub)复制到服务器~/.ssh/authorized_keys;禁用密码登录(PasswordAuthentication no),降低密码泄露风险。 - 最小权限原则:避免使用Root账户日常操作,通过
sudo执行需要特权的命令;为用户分配最小必要权限,例如将用户加入特定组(sudo usermod -aG developers devuser)而非直接赋予权限。 - 定期审查用户与权限:清理闲置账户(
sudo userdel -r username),检查/etc/passwd、/etc/group中的用户和组信息;使用sudo -l查看用户sudo权限,移除不必要的权限。
4. SSH服务加固
SSH是远程管理的关键服务,需优化配置以防范暴力破解:
- 修改
/etc/ssh/sshd_config,设置Port为非默认端口(如2222),增加猜测难度;禁用密码登录(PasswordAuthentication no),强制使用密钥认证;限制登录用户(AllowUsers devuser)或IP段(AllowGroups admins)。 - 安装防暴力破解工具(如Fail2ban),配置
/etc/fail2ban/jail.local,针对SSH设置maxretry = 3(允许3次失败尝试)、bantime = 3600(封禁1小时),自动屏蔽频繁失败的IP。
5. 文件与目录权限控制
合理的权限设置是防止数据泄露的重要手段:
- 避免过度权限:文件权限设置为
644(所有者可读写,其他用户只读),目录权限设置为755(所有者可读写执行,其他用户可读执行);敏感文件(如/etc/shadow、/etc/passwd)需限制为600(仅所有者可读写)。 - 使用
chmod、chown命令调整权限:例如sudo chmod 600 /etc/shadow、sudo chown root:root /etc/passwd;通过ls -l查看权限,确保无异常。 - 特殊权限与ACL:谨慎使用Setuid(
4)、Setgid(2)、Sticky Bit(1)(如sudo chmod u+s /usr/bin/passwd允许普通用户修改密码,但限制权限);使用ACL为单个用户/组设置权限(如sudo setfacl -m u:devuser:rwx /var/www/html允许devuser访问Web目录)。
6. 日志监控与审计
日志是检测异常行为的关键依据,需配置并定期审查:
- 启用系统日志(
rsyslog或syslog-ng),记录登录(/var/log/auth.log)、系统操作(/var/log/syslog)、服务日志(如/var/log/apache2/access.log);使用journalctl查看实时日志(如sudo journalctl -u sshd)。 - 定期审查日志:检查异常登录(如频繁失败的SSH尝试)、未授权访问(如访问敏感目录的记录);使用工具(如
logwatch、fail2ban)自动化日志分析,及时响应安全事件。
7. 禁用不必要的服务与端口
减少系统暴露面,降低被攻击风险:
- 查看运行中的服务(
systemctl list-units --type=service),禁用不需要的服务(如sudo systemctl stop apache2、sudo systemctl disable apache2);对于默认启用的服务(如Telnet、FTP),若无需使用则彻底关闭。 - 关闭未使用的端口:通过防火墙规则(如
sudo ufw deny 21/tcp禁用FTP端口)或停止对应服务,仅保留必要的端口(如SSH、HTTP、HTTPS)。
8. 加密与数据保护
- 传输加密:使用SSL/TLS协议加密远程登录(SSH)、文件传输(SFTP/SCP),避免数据在传输过程中被窃取;配置Web服务(如Apache/Nginx)启用HTTPS(通过Let’s Encrypt获取免费证书)。
- 存储加密:对敏感数据(如数据库文件、配置文件)使用加密工具(如LUKS加密磁盘分区、eCryptfs加密目录);设置强密码保护加密卷,防止未经授权的访问。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux系统如何进行安全加固
本文地址: https://pptw.com/jishu/736708.html
