插件窝 干货文章 命令行是你的武器:保护你的Linux服务器

命令行是你的武器:保护你的Linux服务器

Sudo 安全 bash 检查 792    来源:    2025-04-11

保护Linux服务器的命令行武器库

作为IT工程师,保护Linux服务器是我们的核心职责之一。以下是一系列强大的命令行工具和技术,可以帮助您加固服务器安全。

1. 系统监控与审计

实时监控

# 查看系统进程
top
htop

# 监控网络连接
netstat -tulnp
ss -tulnp

# 查看登录用户
who
w

# 检查最近登录
last
lastb  # 查看失败的登录尝试

日志审计

# 查看系统日志
journalctl -xe
tail -f /var/log/syslog
tail -f /var/log/auth.log  # 认证相关日志

# 使用grep筛选关键信息
grep -i "fail" /var/log/auth.log
grep -i "invalid" /var/log/auth.log

2. 用户与权限管理

用户账户安全

# 检查空密码账户
awk -F: '($2 == "") {print}' /etc/shadow

# 检查root权限用户
awk -F: '($3 == "0") {print}' /etc/passwd

# 锁定/解锁用户
passwd -l username  # 锁定
passwd -u username  # 解锁

# 设置密码策略
chage -M 90 username  # 设置密码90天过期
chage -l username     # 查看密码策略

Sudo权限管理

# 查看sudo权限
sudo -l

# 编辑sudoers文件(使用visudo而不是直接编辑)
visudo

3. 防火墙与网络保护

UFW防火墙(简单易用)

sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw status verbose

iptables防火墙(更强大)

# 基本规则示例
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP

# 保存规则(根据发行版不同)
sudo iptables-save > /etc/iptables.rules

4. 文件系统安全

文件权限检查

# 查找SUID/SGID文件
find / -perm -4000 -type f -exec ls -la {} \; 2>/dev/null
find / -perm -2000 -type f -exec ls -la {} \; 2>/dev/null

# 查找可写文件
find / -perm -o+w -type f -exec ls -la {} \; 2>/dev/null

# 查找无主文件
find / -nouser -o -nogroup -exec ls -la {} \; 2>/dev/null

文件完整性检查

# 使用AIDE进行文件完整性检查
sudo aide --init
sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
sudo aide --check

5. 安全扫描工具

Lynis - 系统安全审计

sudo apt install lynis  # Debian/Ubuntu
sudo yum install lynis  # CentOS/RHEL

sudo lynis audit system

Rkhunter - Rootkit检测

sudo apt install rkhunter
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check

ClamAV - 病毒扫描

sudo apt install clamav clamav-daemon
sudo freshclam  # 更新病毒库
sudo clamscan -r /  # 全盘扫描

6. SSH安全加固

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

# 推荐修改项:
Port 2222                     # 修改默认端口
PermitRootLogin no            # 禁止root直接登录
PasswordAuthentication no     # 禁用密码认证,仅使用密钥
MaxAuthTries 3                # 最大尝试次数
ClientAliveInterval 300       # 客户端活动检查
ClientAliveCountMax 2         # 客户端活动检查次数
AllowUsers user1 user2        # 仅允许特定用户

# 重启SSH服务
sudo systemctl restart sshd

7. 自动安全更新

# Debian/Ubuntu
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

# CentOS/RHEL
sudo yum install yum-cron
sudo systemctl enable yum-cron
sudo systemctl start yum-cron

8. 备份关键数据

# 简单备份命令示例
sudo tar -czvf /backup/etc-$(date +%Y%m%d).tar.gz /etc
sudo tar -czvf /backup/home-$(date +%Y%m%d).tar.gz /home

# 使用rsync同步到远程服务器
rsync -avz -e ssh /backup/ user@remote-server:/remote/backup/

9. 容器安全(如果使用Docker)

# 检查容器安全
docker ps --no-trunc  # 查看运行中的容器
docker inspect <container_id>  # 检查容器配置

# 使用安全扫描工具
docker scan <image_name>

10. 定期安全任务

设置cron作业进行定期安全检查:

# 编辑crontab
sudo crontab -e

# 示例:每周运行安全扫描
0 3 * * 0 /usr/bin/rkhunter --cronjob --report-warnings-only
0 4 * * 0 /usr/bin/clamscan -r / --quiet --log=/var/log/clamav/weekly-scan.log

通过熟练使用这些命令行工具和技术,您可以显著提高Linux服务器的安全性。记住,安全是一个持续的过程,需要定期审查和更新您的安全措施。