插件窝 干货文章 加固Linux服务器:运用命令行工具提高安全性

加固Linux服务器:运用命令行工具提高安全性

sudo install etc systemctl 342    来源:    2025-04-12

Linux服务器安全加固指南

作为IT工程师,我将为您提供一套全面的Linux服务器安全加固方案,主要使用命令行工具实现。

1. 系统更新与补丁管理

# 更新软件包列表
sudo apt update && sudo apt upgrade -y  # Debian/Ubuntu
sudo yum update -y                      # CentOS/RHEL

# 设置自动安全更新
sudo apt install unattended-upgrades    # Debian/Ubuntu
sudo dpkg-reconfigure -plow unattended-upgrades

2. 用户账户安全

# 禁用root远程登录
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

# 创建新管理员用户
sudo useradd -m -s /bin/bash adminuser
sudo passwd adminuser
sudo usermod -aG sudo adminuser  # Debian/Ubuntu
sudo usermod -aG wheel adminuser # CentOS/RHEL

# 设置密码策略
sudo apt install libpam-pwquality  # Debian/Ubuntu
sudo yum install pam_pwquality     # CentOS/RHEL

# 编辑密码策略
sudo nano /etc/security/pwquality.conf
# 设置 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

3. SSH安全配置

# 修改SSH端口
sudo sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config

# 禁用密码认证,启用密钥认证
sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/^#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config

# 限制SSH访问IP
echo "sshd: 192.168.1.0/24" | sudo tee -a /etc/hosts.allow
echo "sshd: ALL" | sudo tee -a /etc/hosts.deny

# 应用更改
sudo systemctl restart sshd

4. 防火墙配置

# 使用UFW (Ubuntu)
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp  # SSH新端口
sudo ufw enable

# 使用firewalld (CentOS/RHEL)
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

5. 文件系统安全

# 检查重要文件权限
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd
sudo chmod 600 /etc/ssh/sshd_config

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

# 查找世界可写文件
sudo find / -perm -2 -type f -exec ls -ld {} \; 2>/dev/null

6. 入侵检测与日志监控

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

# 配置fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# 修改 bantime = 1h, findtime = 10m, maxretry = 3
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# 安装并配置日志分析工具
sudo apt install logwatch  # Debian/Ubuntu
sudo yum install logwatch  # CentOS/RHEL

7. 服务最小化

# 查看所有运行中的服务
sudo systemctl list-units --type=service --state=running

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

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

8. SELinux/AppArmor配置

# 检查SELinux状态 (CentOS/RHEL)
sudo sestatus
# 如果禁用,启用它
sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config

# 检查AppArmor状态 (Ubuntu)
sudo aa-status
# 如果没有运行,启用它
sudo systemctl enable apparmor
sudo systemctl start apparmor

9. 定期安全审计

# 安装并运行Lynis安全审计工具
sudo apt install lynis  # Debian/Ubuntu
sudo yum install lynis  # CentOS/RHEL
sudo lynis audit system

# 使用rkhunter检查rootkit
sudo apt install rkhunter  # Debian/Ubuntu
sudo yum install rkhunter  # CentOS/RHEL
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check

10. 备份重要配置

# 备份关键配置文件
sudo tar -czvf /root/server_backup_$(date +%Y%m%d).tar.gz \
/etc/ssh/sshd_config \
/etc/passwd \
/etc/shadow \
/etc/group \
/etc/sudoers \
/etc/hosts.allow \
/etc/hosts.deny

总结

以上命令提供了Linux服务器安全加固的全面方案。实施时请注意: 1. 先备份重要数据和配置 2. 在测试环境验证后再应用到生产环境 3. 确保不会锁定自己的访问权限 4. 定期审查和更新安全配置

安全是一个持续的过程,建议定期执行安全审计和更新策略。