作为IT工程师,命令行工具是我们维护Linux服务器安全的核心武器。下面我将介绍一系列关键工具和技术,帮助您有效应对服务器安全挑战。
netstat
/ ss
# 查看所有网络连接
sudo netstat -tulnp
# 或使用更现代的ss命令
sudo ss -tulnp
lsof
# 查看打开的文件和网络连接
sudo lsof -i
ps
/ top
/ htop
# 查看进程信息
ps auxf
# 交互式进程监控
htop
last
/ lastb
# 查看成功登录记录
last
# 查看失败登录尝试
lastb
passwd
/ chage
# 强制用户下次登录修改密码
passwd -e username
# 设置密码过期策略
chage -M 90 -m 7 -W 14 username
sudo
配置审计# 查看sudo配置
sudo visudo
# 检查用户sudo权限
sudo -l -U username
find
查找可疑文件# 查找SUID/SGID文件
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
# 查找世界可写文件
find / -type f -perm -o+w -exec ls -l {} \;
# 查找最近修改的文件
find / -type f -mtime -3 -exec ls -l {} \;
chmod
/ chown
权限修复# 移除文件的世界可写权限
chmod o-w filename
# 正确设置文件所有权
chown root:root sensitive_file
chmod 600 sensitive_file
iptables
/ nftables
# 基本防火墙规则示例
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j DROP
fail2ban
防暴力破解# 安装fail2ban
sudo apt install fail2ban # Debian/Ubuntu
sudo yum install fail2ban # CentOS/RHEL
# 查看状态
sudo fail2ban-client status sshd
grep
/ awk
/ sed
# 分析认证日志
grep "Failed password" /var/log/auth.log
grep "Accepted password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
journalctl
(systemd系统)# 查看系统日志
journalctl -xe
# 查看特定服务的日志
journalctl -u nginx.service
lynis
系统审计# 安装
sudo apt install lynis # Debian/Ubuntu
sudo yum install lynis # CentOS/RHEL
# 运行审计
sudo lynis audit system
rkhunter
后门检测# 安装
sudo apt install rkhunter
# 更新数据库
sudo rkhunter --update
# 运行扫描
sudo rkhunter --check
#!/bin/bash
# 安全监控脚本示例
DATE=$(date +%Y%m%d)
LOG_FILE="/var/log/security_monitor_$DATE.log"
{
echo "===== 安全检查报告 $(date) ====="
echo ""
echo "----- 1. 用户登录检查 -----"
last | head -20
echo ""
echo "----- 2. 失败登录尝试 -----"
lastb | head -20
echo ""
echo "----- 3. 可疑进程检查 -----"
ps auxf | grep -E "(\./|tmp|sh -c)"
echo ""
echo "----- 4. 网络连接检查 -----"
netstat -tulnp
echo ""
echo "----- 5. SUID/SGID文件检查 -----"
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \; 2>/dev/null
} > "$LOG_FILE"
# 发送邮件通知
mail -s "每日安全报告 $(date)" admin@example.com < "$LOG_FILE"
定期更新:保持系统和软件包最新
sudo apt update && sudo apt upgrade # Debian/Ubuntu
sudo yum update # CentOS/RHEL
最小权限原则:只授予必要的权限
SSH加固:
# 禁用root登录
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
# 使用密钥认证
sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
# 重启SSH服务
sudo systemctl restart sshd
定期备份:确保有可恢复的备份
监控和警报:设置关键事件的自动警报
通过熟练使用这些命令行工具和技术,您可以有效提升Linux服务器的安全性,及时发现并应对潜在威胁。