# 查看当前登录用户
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 # 查看文件权限数字表示
# 查找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
# 使用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 # 文件访问报告
# 查看网络连接
netstat -tulnp
ss -tulnp
lsof -i
# 检查异常连接
netstat -anp | grep ESTABLISHED
ss -antp | grep ESTABLISHED
# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
# 推荐配置项
PermitRootLogin no
PasswordAuthentication no
AllowUsers yourusername
Port 2222 # 更改默认端口
MaxAuthTries 3
LoginGraceTime 1m
# 应用更改
sudo systemctl restart sshd
# 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
# 安装Lynis
sudo apt-get install lynis # Debian/Ubuntu
sudo yum install lynis # RHEL/CentOS
# 执行审计
sudo lynis audit system
# 安装rkhunter
sudo apt-get install rkhunter # Debian/Ubuntu
sudo yum install rkhunter # RHEL/CentOS
# 更新并运行检查
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check --sk
# 查看认证日志
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
# 安装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
通过合理运用这些命令和策略,您可以显著提高Linux服务器的安全性,并建立有效的安全监控和维护机制。