插件窝 干货文章 Linux服务器上常见的安全漏洞及其修复方法

Linux服务器上常见的安全漏洞及其修复方法

sudo 漏洞 修复 bash 1038    来源:    2025-04-17

Linux服务器常见安全漏洞及修复方法

1. 未及时更新的系统和软件

漏洞描述:未安装安全补丁的系统和软件容易受到已知漏洞攻击。

修复方法

# 更新所有软件包
sudo apt update && sudo apt upgrade -y  # Debian/Ubuntu
sudo yum update -y  # CentOS/RHEL
sudo dnf upgrade -y  # Fedora

# 设置自动更新(可选)
sudo apt install unattended-upgrades  # Debian/Ubuntu
sudo dpkg-reconfigure unattended-upgrades  # 配置自动更新

2. 弱密码和默认凭据

漏洞描述:使用默认或弱密码容易被暴力破解。

修复方法: - 强制使用强密码策略: ```bash sudo apt install libpam-pwquality # Debian/Ubuntu sudo yum install libpwquality # CentOS/RHEL

# 编辑密码策略 sudo nano /etc/security/pwquality.conf 添加/修改以下内容: minlen = 12 dcredit = -1 ucredit = -1 ocredit = -1 lcredit = -1 ```

  • 禁用root SSH登录: bash sudo nano /etc/ssh/sshd_config 修改: PermitRootLogin no 然后重启SSH服务: bash sudo systemctl restart sshd

3. 不必要的开放端口和服务

漏洞描述:运行不必要的服务会增加攻击面。

修复方法

# 查看监听端口
sudo netstat -tulnp
sudo ss -tulnp

# 禁用不必要的服务
sudo systemctl stop <service_name>
sudo systemctl disable <service_name>

# 使用防火墙限制访问
sudo ufw enable  # Ubuntu
sudo ufw allow 22/tcp  # 只允许SSH
sudo ufw allow from 192.168.1.0/24 to any port 22  # 限制IP范围

# CentOS/RHEL使用firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --remove-service=http  # 移除不需要的服务
sudo firewall-cmd --reload

4. 配置不当的文件权限

漏洞描述:关键文件权限设置不当可能导致信息泄露或权限提升。

修复方法

# 关键目录权限设置
sudo chmod 700 /root
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd

# 设置用户home目录权限
sudo chmod 750 /home/*

# 查找全局可写文件
sudo find / -xdev -type f -perm -0002 -exec ls -l {} \;
sudo find / -xdev -type d -perm -0002 -exec ls -ld {} \;

# 查找无主文件
sudo find / -xdev -nouser -o -nogroup

5. SSH安全配置不足

漏洞描述:SSH配置不当可能导致暴力破解或中间人攻击。

修复方法: 编辑/etc/ssh/sshd_config

Port 2222  # 更改默认端口
Protocol 2
PermitRootLogin no
MaxAuthTries 3
LoginGraceTime 1m
ClientAliveInterval 300
ClientAliveCountMax 0
AllowUsers user1 user2  # 只允许特定用户
UsePAM yes
X11Forwarding no
PrintMotd no
TCPKeepAlive no
AllowTcpForwarding no
PermitTunnel no

然后重启SSH服务:

sudo systemctl restart sshd

6. SUID/SGID可执行文件风险

漏洞描述:不当的SUID/SGID设置可能导致权限提升。

修复方法

# 查找所有SUID/SGID文件
sudo find / -perm -4000 -type f -exec ls -la {} 2>/dev/null \;
sudo find / -perm -2000 -type f -exec ls -la {} 2>/dev/null \;

# 移除不必要的SUID/SGID
sudo chmod u-s /path/to/file
sudo chmod g-s /path/to/file

7. 内核参数配置不当

漏洞描述:内核参数配置不当可能导致系统更容易受到攻击。

修复方法: 编辑/etc/sysctl.conf

# 禁用IP转发
net.ipv4.ip_forward = 0
net.ipv6.conf.all.forwarding = 0

# 禁用ICMP重定向
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0

# 启用SYN Cookie保护
net.ipv4.tcp_syncookies = 1

# 禁用源路由
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0

# 启用IP欺骗保护
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# 记录可疑数据包
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1

应用配置:

sudo sysctl -p

8. 未配置日志监控

漏洞描述:缺乏日志监控可能导致无法及时发现入侵行为。

修复方法

# 安装并配置logwatch
sudo apt install logwatch  # Debian/Ubuntu
sudo yum install logwatch  # CentOS/RHEL

# 配置每日日志报告
sudo nano /etc/logwatch/conf/logwatch.conf

设置:

Output = mail
Format = html
MailTo = admin@example.com
Range = yesterday
Detail = High

考虑使用更高级的日志监控方案如ELK Stack、Graylog或Splunk。

9. 未加密的敏感数据传输

漏洞描述:明文传输敏感数据容易被窃听。

修复方法: - 使用SSH替代Telnet/FTP - 为Web服务启用HTTPS - 使用SFTP/SCP替代FTP - 考虑使用VPN进行远程访问

10. 缺乏定期备份

漏洞描述:缺乏备份可能导致数据永久丢失。

修复方法

# 简单备份脚本示例
#!/bin/bash
BACKUP_DIR="/backups"
DATE=$(date +%Y-%m-%d)
tar -czf $BACKUP_DIR/backup-$DATE.tar.gz /path/to/important/data

# 设置cron定期执行
crontab -e

添加:

0 2 * * * /path/to/backup_script.sh

考虑使用专业备份工具如Bacula、Duplicity或rsnapshot。

定期安全审计建议

  1. 使用安全扫描工具:

    sudo apt install lynis  # Debian/Ubuntu
    sudo yum install lynis  # CentOS/RHEL
    sudo lynis audit system
    
  2. 检查rootkit:

    sudo apt install rkhunter  # Debian/Ubuntu
    sudo yum install rkhunter  # CentOS/RHEL
    sudo rkhunter --update
    sudo rkhunter --check
    
  3. 检查开放端口:

    sudo nmap -sS -O 127.0.0.1
    

通过实施以上措施,可以显著提高Linux服务器的安全性,减少被攻击的风险。