插件窝 干货文章 深入理解Linux服务器安全性:命令的运用与维护

深入理解Linux服务器安全性:命令的运用与维护

sudo 检查 文件 安全 690    来源:    2025-04-12

Linux服务器安全性:命令运用与维护指南

基础安全命令

1. 用户与权限管理

# 查看当前登录用户
who
w

# 用户管理
useradd -m -s /bin/bash username  # 创建用户
passwd username                  # 设置密码
usermod -aG sudo username       # 添加sudo权限
userdel -r username             # 删除用户及主目录

# 权限检查
ls -la /etc/passwd /etc/shadow  # 检查关键文件权限
stat -c "%a %n" /etc/shadow     # 查看文件权限数字表示

2. 文件系统安全

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

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

# 检查世界可写文件
find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
find / -xdev -type f \( -perm -0002 \) -print

高级安全监控

1. 系统审计

# 使用auditd进行系统审计
sudo apt-get install auditd   # Debian/Ubuntu
sudo yum install audit        # RHEL/CentOS

# 常用auditctl命令
auditctl -l                   # 列出当前规则
auditctl -w /etc/passwd -p wa -k passwd_changes  # 监控passwd文件
auditctl -a always,exit -F arch=b64 -S open -k file_access  # 监控文件访问

# 查看审计日志
ausearch -k passwd_changes    # 按关键字搜索
aureport -f                   # 文件访问报告

2. 网络连接监控

# 查看网络连接
netstat -tulnp
ss -tulnp
lsof -i

# 检查异常连接
netstat -anp | grep ESTABLISHED
ss -antp | grep ESTABLISHED

安全加固命令

1. SSH安全配置

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

# 推荐配置项
PermitRootLogin no
PasswordAuthentication no
AllowUsers yourusername
Port 2222                      # 更改默认端口
MaxAuthTries 3
LoginGraceTime 1m

# 应用更改
sudo systemctl restart sshd

2. 防火墙配置

# UFW (Ubuntu)
sudo ufw enable
sudo ufw allow 2222/tcp        # 允许新SSH端口
sudo ufw deny 22/tcp           # 拒绝默认SSH端口
sudo ufw status verbose

# firewalld (RHEL/CentOS)
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --remove-port=22/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

自动化安全扫描

1. Lynis系统审计

# 安装Lynis
sudo apt-get install lynis      # Debian/Ubuntu
sudo yum install lynis         # RHEL/CentOS

# 执行审计
sudo lynis audit system

2. Rootkit检查

# 安装rkhunter
sudo apt-get install rkhunter  # Debian/Ubuntu
sudo yum install rkhunter      # RHEL/CentOS

# 更新并运行检查
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check --sk

日志分析与入侵检测

1. 关键日志检查

# 查看认证日志
sudo tail -f /var/log/auth.log  # Debian/Ubuntu
sudo tail -f /var/log/secure   # RHEL/CentOS

# 检查失败登录尝试
grep "Failed password" /var/log/auth.log
grep "Invalid user" /var/log/auth.log

# 检查sudo使用
grep sudo /var/log/auth.log

2. 使用fail2ban防止暴力破解

# 安装fail2ban
sudo apt-get install fail2ban   # Debian/Ubuntu
sudo yum install fail2ban       # RHEL/CentOS

# 配置
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

# 启动服务
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo fail2ban-client status

定期维护脚本示例

#!/bin/bash

# 安全维护脚本示例
LOG_FILE="/var/log/security_maintenance.log"

{
    echo "===== 安全维护开始于 $(date) ====="

    # 1. 更新系统
    echo "--- 系统更新 ---"
    sudo apt-get update && sudo apt-get upgrade -y

    # 2. 检查rootkit
    echo "--- Rootkit检查 ---"
    sudo rkhunter --check --sk

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

    # 4. 检查异常进程
    echo "--- 异常进程检查 ---"
    ps aux | grep -E '[s]shd|ftp|telnet|nc|netcat'

    # 5. 检查异常网络连接
    echo "--- 网络连接检查 ---"
    netstat -tulnp

    echo "===== 安全维护结束于 $(date) ====="
} | tee -a $LOG_FILE

最佳实践建议

  1. 最小权限原则:始终使用最低必要权限完成任务
  2. 定期更新:保持系统和所有软件包更新到最新版本
  3. 备份策略:实施3-2-1备份策略(3份备份,2种介质,1份离线)
  4. 监控与告警:设置关键事件的监控和告警
  5. 禁用不必要服务:关闭所有不需要的网络服务
  6. 使用密钥认证:SSH优先使用密钥认证而非密码
  7. 日志集中管理:考虑使用ELK或Graylog集中管理日志
  8. 定期审计:至少每季度进行一次全面安全审计

通过合理运用这些命令和策略,您可以显著提高Linux服务器的安全性,并建立有效的安全监控和维护机制。