查看fail2ban停止的IP和历史记录

要查看fail2ban停止的IP和历史记录,可以使用以下几种方法:

1. 查看当前被ban的IP地址

方法一:使用fail2ban-client命令

bash 复制代码
# 查看所有jail的状态(包括被ban的IP数量)
sudo fail2ban-client status

# 查看特定jail的状态(如sshd)
sudo fail2ban-client status sshd

方法二:直接查看fail2ban的数据库

bash 复制代码
# 查看所有被ban的IP
sudo fail2ban-client banned

# 查看特定jail中被ban的IP
sudo fail2ban-client get sshd banned

方法三:查看防火墙规则

bash 复制代码
# 如果使用iptables
sudo iptables -L -n
sudo iptables -L f2b-sshd -n  # 查看sshd jail的规则

# 如果使用firewalld
sudo firewall-cmd --direct --get-all-rules

2. 查看历史记录(日志文件)

方法一:查看fail2ban主日志

bash 复制代码
# 查看完整日志
sudo less /var/log/fail2ban.log

# 查看实时日志
sudo tail -f /var/log/fail2ban.log

# 只查看封禁记录
sudo grep "Ban" /var/log/fail2ban.log

# 查看封禁和解封记录
sudo grep -E "(Ban|Unban)" /var/log/fail2ban.log

# 查看特定IP的历史
sudo grep "192.168.1.100" /var/log/fail2ban.log

方法二:如果使用systemd journal

bash 复制代码
# 查看fail2ban的日志
sudo journalctl -u fail2ban
sudo journalctl -u fail2ban --since "2024-01-01" --until "2024-01-31"

# 查看包含IP地址的日志
sudo journalctl -u fail2ban | grep -E "Ban|Unban"

3. 查看详细的封禁统计

创建统计脚本

bash 复制代码
# 创建一个简单的统计脚本
cat > fail2ban_stats.sh << 'EOF'
#!/bin/bash
echo "=== 被封禁IP统计 ==="
sudo grep "Ban" /var/log/fail2ban.log | awk '{print $8}' | sort | uniq -c | sort -rn | head -20

echo -e "\n=== 按jail统计 ==="
sudo grep "Ban" /var/log/fail2ban.log | awk '{print $6}' | sort | uniq -c | sort -rn

echo -e "\n=== 最近10次封禁 ==="
sudo grep "Ban" /var/log/fail2ban.log | tail -10
EOF

chmod +x fail2ban_stats.sh
./fail2ban_stats.sh

4. 使用fail2ban自带的查询工具

fail2ban的交互式客户端

bash 复制代码
# 进入fail2ban客户端交互模式
sudo fail2ban-client -i

# 在交互模式中执行命令
status
status sshd
get sshd banned
get sshd bantime
get sshd findtime
get sshd maxretry

5. 查看被永久封禁的IP(如果有配置)

bash 复制代码
# 查看永久封禁列表(如果有persistent bans)
sudo cat /etc/fail2ban/action.d/iptables-allports.local
sudo cat /etc/fail2ban/jail.local

6. 实用的一行命令汇总

bash 复制代码
# 查看当前所有被ban的IP
sudo fail2ban-client banned

# 查看sshd jail的详细状态
sudo fail2ban-client status sshd

# 查看今天被封禁的IP
sudo grep "$(date +'%Y-%m-%d')" /var/log/fail2ban.log | grep "Ban"

# 查看封禁次数最多的前10个IP
sudo grep "Ban" /var/log/fail2ban.log | awk '{print $8}' | sort | uniq -c | sort -rn | head -10

# 实时监控fail2ban活动
sudo tail -f /var/log/fail2ban.log | grep -E "(Ban|Unban|ERROR|WARNING)"

7. 解封IP地址

如果需要解封某个IP:

bash 复制代码
# 从sshd jail中解封特定IP
sudo fail2ban-client set sshd unbanip 192.168.1.100

# 解封所有IP
sudo fail2ban-client set sshd unbanall

注意事项

  1. 日志位置可能不同 :有些系统可能将日志存储在 /var/log/fail2ban/fail2ban.log 或通过journald管理
  2. 权限要求:大部分命令需要sudo或root权限
  3. 数据库后端 :fail2ban默认使用sqlite3存储状态,数据库位置通常在 /var/lib/fail2ban/fail2ban.sqlite3,但直接查询数据库不推荐,建议使用fail2ban-client命令
  4. 日志轮转 :注意日志可能被轮转压缩,历史记录可能在 fail2ban.log.1.gz 等文件中

通过这些命令,你可以全面了解fail2ban的当前状态和历史封禁记录。

相关推荐
程序猿阿伟1 小时前
《Chrome隔离机制的维度落地指南》
前端·chrome
我是一颗柠檬1 小时前
【计算机网络全面教学】网络层与IP协议,子网划分到路由协议全掌握Day3(2026年)
网络协议·tcp/ip·计算机网络
袁小皮皮不皮2 小时前
2.HCIP OSPF路由基础(优化版)
运维·服务器·网络·网络协议·智能路由器
普马萨特2 小时前
Wi-Fi 扫描频率多层限制机制解析
网络协议·安卓
阿米亚波2 小时前
SSH+TCP流程及抓包说明
网络·笔记·网络协议·tcp/ip·计算机网络·wireshark·ssh
艾莉丝努力练剑2 小时前
【Qt】界面优化:绘图API
linux·运维·开发语言·网络·qt·tcp/ip·udp
BlockWay3 小时前
WEEX WebSocket 与 API 生态,正在解决什么问题?
网络·websocket·网络协议
资源分享交流3 小时前
OmniGet:一个更省事的跨平台下载器,支持 yt-dlp、BT、磁力和 P2P 传输
网络·网络协议·p2p
我是一颗柠檬3 小时前
【计算机网络全面教学】传输层TCP与UDP,三次握手到拥塞控制彻底搞懂Day4(2026年)
tcp/ip·计算机网络·udp
逻极3 小时前
HTTP/HTTPS 协议从入门到精通:从原理到性能提升400%的完整路径(协议优化实战)
网络协议·http·性能优化·https·tls