作为IT工程师,掌握命令行工具是保障服务器安全的基础能力。以下是从安全角度必须掌握的关键命令行技能:
# 查看当前登录用户
who
w
# 检查系统登录历史
last
lastb # 查看失败登录尝试
# 监控系统进程
top
htop
ps aux | grep suspicious_process
# 检查网络连接
netstat -tulnp
ss -tulnp
lsof -i
# 用户账户管理
sudo useradd -m -s /bin/bash newuser
sudo passwd username
sudo usermod -aG sudo username # 授予sudo权限
sudo userdel -r username # 删除用户及其主目录
# 检查特权账户
awk -F: '($3 == "0") {print}' /etc/passwd
# 文件权限检查与修改
find / -perm -4000 -type f 2>/dev/null # 查找SUID文件
chmod 600 sensitive_file
chown root:root critical_file
# 查看系统日志
journalctl -xe
tail -f /var/log/auth.log # Ubuntu
tail -f /var/log/secure # CentOS/RHEL
# 查找失败登录尝试
grep "Failed password" /var/log/auth.log
grep "authentication failure" /var/log/auth.log
# 自定义日志监控
tail -f /var/log/syslog | grep -i "error\|fail\|warning"
# 防火墙管理 (UFW)
sudo ufw status
sudo ufw allow 22/tcp
sudo ufw enable
# iptables基础
sudo iptables -L -n -v
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 网络扫描工具
nmap -sV -O target_ip
netcat -zv target_ip 1-1000 # 简单端口扫描
# 查找最近修改的文件
find / -mtime -1 -type f 2>/dev/null
# 计算文件哈希值
sha256sum important_file
md5sum critical_file
# 查找可写文件
find / -perm -2 -type f 2>/dev/null
# 创建定期安全扫描任务 (crontab)
0 3 * * * /usr/bin/rkhunter --check
0 4 * * * /usr/bin/clamscan -r /home
# 使用脚本监控关键目录
#!/bin/bash
DIR="/etc"
find $DIR -type f -exec md5sum {} \; > /var/log/checksum_$(date +%F).log
# 禁用root SSH登录
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
# 启用SSH密钥认证
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
# 更新系统补丁
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # CentOS/RHEL
掌握这些命令行技能不仅能提高服务器安全性,还能在安全事件发生时快速响应。建议定期练习这些命令,并将其整合到日常运维流程中。