插件窝 干货文章 如何使用Linux命令来防御网络攻击

如何使用Linux命令来防御网络攻击

检查 iptables 使用 防御 919    来源:    2025-04-11

使用Linux命令防御网络攻击

作为IT工程师,我可以提供一系列使用Linux命令和工具来防御网络攻击的方法。以下是分层防御策略:

1. 网络监控与分析

# 实时监控网络连接
netstat -antp
ss -antp

# 检查异常连接
lsof -i

# 使用tcpdump抓包分析
tcpdump -i eth0 -n -w capture.pcap

2. 防火墙配置 (iptables/nftables)

# 基本防火墙规则示例
iptables -A INPUT -p tcp --dport 22 -j ACCEPT   # 允许SSH
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j DROP   # 默认拒绝所有其他入站

# 防御SYN洪水攻击
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

# 限制连接速率
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j DROP

3. 系统加固

# 检查不必要的开放端口
netstat -tulnp

# 禁用不必要的服务
systemctl disable <service_name>

# 检查SUID/SGID文件
find / -perm -4000 -o -perm -2000 -type f -exec ls -la {} \;

# 检查root权限的进程
ps -ef | grep ^root

4. 入侵检测

# 使用AIDE检查文件完整性
aide --check

# 检查可疑的cron任务
crontab -l
ls /etc/cron*

# 检查登录历史
last
lastb   # 查看失败登录尝试

# 检查auth日志
grep "Failed password" /var/log/auth.log

5. 自动化防御脚本

#!/bin/bash
# 自动封禁多次失败SSH登录的IP
FAILED_LOGIN_THRESHOLD=5
LOG_FILE="/var/log/auth.log"

# 获取失败登录超过阈值的IP
BAD_IPS=$(grep "Failed password" $LOG_FILE | awk '{print $(NF-3)}' | sort | uniq -c | awk -v limit=$FAILED_LOGIN_THRESHOLD '$1 > limit {print $2}')

for IP in $BAD_IPS; do
    # 检查是否已在黑名单
    if ! iptables -L INPUT -v -n | grep $IP; then
        iptables -A INPUT -s $IP -j DROP
        echo "$(date) - Banned IP: $IP" >> /var/log/iptables_ban.log
    fi
done

6. 高级工具

# 安装和使用Fail2ban
sudo apt-get install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# 使用TCP Wrappers (/etc/hosts.allow和/etc/hosts.deny)
echo "sshd: ALL" >> /etc/hosts.deny
echo "sshd: 192.168.1.0/24" >> /etc/hosts.allow

# 使用DenyHosts (针对SSH暴力破解)
sudo apt-get install denyhosts

7. 定期安全审计

# 使用Lynis进行安全审计
sudo apt-get install lynis
sudo lynis audit system

# 检查系统漏洞
sudo apt-get update
sudo apt-get upgrade

最佳实践建议

  1. 定期更新系统和软件包
  2. 使用SSH密钥认证而非密码
  3. 限制root直接登录
  4. 配置合理的文件权限
  5. 启用SELinux或AppArmor
  6. 定期备份重要数据
  7. 监控系统日志和异常行为

这些命令和工具可以组合使用,根据您的具体环境和安全需求进行调整。记住,安全是一个持续的过程,需要定期审查和更新防御措施。