插件窝 干货文章 利用命令行工具提升Linux服务器安全

利用命令行工具提升Linux服务器安全

sudo install 安全 bash 702    来源:    2025-04-11

利用命令行工具提升Linux服务器安全

作为IT工程师,我们可以通过一系列命令行工具和技术来增强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. 用户账户安全

# 检查空密码账户
sudo awk -F: '($2 == "") {print}' /etc/shadow

# 强制密码复杂性要求
sudo apt install libpam-pwquality      # Debian/Ubuntu
sudo yum install pam_pwquality         # CentOS/RHEL

# 然后编辑/etc/pam.d/common-password或/etc/pam.d/system-auth

# 设置密码过期策略
sudo chage -M 90 -m 7 -W 7 username

# 锁定不必要账户
sudo passwd -l username

3. SSH安全加固

# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config

# 推荐设置:
Port 2222                              # 修改默认端口
PermitRootLogin no
PasswordAuthentication no             # 强制使用密钥认证
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 0
AllowUsers user1 user2                # 只允许特定用户

# 重启SSH服务
sudo systemctl restart sshd

# 生成SSH密钥对(在客户端执行)
ssh-keygen -t ed25519
ssh-copy-id -p 2222 user@server

4. 防火墙配置

# UFW (Ubuntu/Debian)
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp               # SSH端口
sudo ufw allow 80/tcp                 # HTTP
sudo ufw allow 443/tcp                # HTTPS

# firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

5. 入侵检测与日志监控

# 安装并配置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     # 根据需求调整

# 启动服务
sudo systemctl enable --now fail2ban

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

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

6. 文件系统安全

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

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

# 检查SUID/SGID文件
sudo find / -xdev -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;

# 设置文件权限
sudo chmod 750 /home/*
sudo chmod 700 /home/*/.ssh
sudo chmod 600 /home/*/.ssh/authorized_keys

7. 进程与服务管理

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

# 禁用不必要的服务
sudo systemctl disable servicename
sudo systemctl stop servicename

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

8. 安全审计工具

# 安装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 --check

9. 定期安全任务

# 创建每日安全检查脚本
sudo nano /etc/cron.daily/security_checks
#!/bin/bash
/usr/bin/rkhunter --cronjob --report-warnings-only
/usr/bin/lynis --quick
/usr/sbin/logwatch --output mail --mailto admin@example.com --detail high

# 设置可执行权限
sudo chmod +x /etc/cron.daily/security_checks

10. 备份策略

# 创建备份脚本
sudo nano /usr/local/bin/backup.sh
#!/bin/bash
tar -czf /backups/$(date +%Y%m%d).tar.gz --exclude=/backups --exclude=/proc --exclude=/tmp --exclude=/mnt --exclude=/dev --exclude=/sys /

# 设置cron任务每天执行
sudo crontab -e
0 2 * * * /usr/local/bin/backup.sh

通过以上命令行工具和技术的组合使用,可以显著提升Linux服务器的安全性。建议定期执行这些检查和配置更新,以应对新的安全威胁。