在Linux/网络术语中,"bogon"指的是不应该出现在公共互联网上的无效或保留IP地址。这些地址包括: - 私有IP地址范围(如10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) - 保留地址(如127.0.0.0/8) - 未分配地址 - 多播地址等
# 使用tcpdump检测异常流量
sudo tcpdump -n -i eth0 'net 10.0.0.0/8 or net 172.16.0.0/12 or net 192.168.0.0/16'
# 使用iftop查看网络连接
sudo iftop -n -P
# 查看当前所有网络连接
netstat -tulnp
# 或使用ss命令(更现代)
ss -tulnp
# 查看系统日志中的网络相关条目
grep -i "bogon" /var/log/syslog
grep -i "invalid" /var/log/syslog
# 下载Team Cymru的bogon列表
wget https://www.team-cymru.org/Services/Bogons/fullbogons-ipv4.txt
使用iptables或nftables阻止bogon流量:
# iptables示例
sudo iptables -A INPUT -s 10.0.0.0/8 -j DROP
sudo iptables -A INPUT -s 172.16.0.0/12 -j DROP
sudo iptables -A INPUT -s 192.168.0.0/16 -j DROP
sudo iptables -A INPUT -s 127.0.0.0/8 -j DROP
如果是网络边界设备,应配置BGP过滤:
# 使用bgpq3工具生成过滤列表
bgpq3 -4 -l "BOGON_FILTER" AS-EXAMPLE > bogon-filter.conf
# 创建自动更新脚本
#!/bin/bash
wget -O /etc/iptables/bogons.txt https://www.team-cymru.org/Services/Bogons/fullbogons-ipv4.txt
iptables -F BOGON_FILTER
for ip in $(cat /etc/iptables/bogons.txt); do
iptables -A BOGON_FILTER -s $ip -j DROP
done
# 启用严格的反向路径验证
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
如果系统主机名显示为"bogon",这通常是由于DNS反向解析失败导致的。解决方法:
# 1. 检查/etc/hosts文件
sudo nano /etc/hosts
# 确保包含类似内容
127.0.0.1 localhost yourhostname
::1 localhost yourhostname
# 2. 检查/etc/hostname文件
sudo nano /etc/hostname
# 确保包含正确主机名
# 3. 重启网络服务
sudo systemctl restart networking
通过以上方法,您可以有效检测和防范Linux系统中的bogon相关问题。