作为IT工程师,掌握命令行工具对于保障Linux服务器安全至关重要。以下是一套全面的命令行安全实践指南:
# 查看运行中的进程
ps aux
top
htop
# 查找可疑进程
ps aux | grep -i 'crypt|miner|backdoor|shell'
# 查看进程树
pstree -ap
# 查看登录历史
last
lastb (失败的登录尝试)
# 查看当前登录用户
who
w
# 检查认证日志
grep -i "fail\|accept" /var/log/auth.log
# 查找SUID/SGID文件
find / -perm -4000 -o -perm -2000 -type f -exec ls -la {} \;
# 查找可写文件
find / -perm -o+w -type f -exec ls -la {} \;
# 查找最近修改的文件
find / -mtime -7 -type f -exec ls -la {} \;
# 创建重要文件的哈希基准
sha256sum /bin/* /sbin/* /usr/bin/* > /root/file_hashes.baseline
# 定期校验
sha256sum -c /root/file_hashes.baseline
# 查看活动连接
netstat -tulnp
ss -tulnp
# 检查异常连接
lsof -i
# 查看路由表
ip route
# iptables基本检查
iptables -L -n -v
# 查看防火墙规则
nft list ruleset
# 临时阻止IP
iptables -A INPUT -s 1.2.3.4 -j DROP
# 查看用户列表
cat /etc/passwd
# 检查空密码账户
awk -F: '($2 == "") {print}' /etc/shadow
# 检查sudo权限用户
grep -Po '^sudo.+:\K.*$' /etc/group
# 检查密码过期
chage -l username
# 修改密码策略
vim /etc/login.defs
vim /etc/pam.d/common-password
# 使用lynis进行系统审计
lynis audit system
# 使用rkhunter检查rootkit
rkhunter --check
# 使用clamav进行病毒扫描
clamscan -r /home
# 使用nmap扫描本地服务
nmap -sV -O 127.0.0.1
# 检查开放端口
netstat -tuln
ss -tuln
# 检查系统日志
journalctl -xe
# 检查安全相关日志
grep -i "error\|fail\|denied\|attack" /var/log/{auth.log,syslog,messages}
# 实时监控日志
tail -f /var/log/auth.log
#!/bin/bash
echo "=== 安全检查开始 ==="
date
echo ""
echo "1. 检查异常用户..."
awk -F: '($3 < 1000) {print}' /etc/passwd
echo ""
echo "2. 检查SUID/SGID文件..."
find / -perm -4000 -o -perm -2000 -type f -exec ls -la {} \; 2>/dev/null
echo ""
echo "3. 检查cron任务..."
ls -la /etc/cron*
echo ""
echo "4. 检查网络连接..."
netstat -tulnp
echo ""
echo "=== 安全检查结束 ==="
# 终止可疑进程
kill -9 PID
# 阻止进程自启动
systemctl disable suspicious-service
# 断开网络连接
ifconfig eth0 down
# 进入单用户模式
init 1
定期更新系统:
apt update && apt upgrade -y # Debian/Ubuntu
yum update -y # CentOS/RHEL
最小化安装原则:只安装必要的软件包
使用SSH密钥认证而非密码登录
配置自动安全更新:
apt install unattended-upgrades
dpkg-reconfigure unattended-upgrades
定期备份重要数据并验证备份完整性
通过熟练掌握这些命令行工具和技术,您可以有效提升Linux服务器的安全性,及时发现并应对潜在威胁。