我想用我的 iptables 记录所有丢弃的数据包(默认情况下,除 ssh 外的所有数据包),但我想排除本地网络 IP 以及 0.0.0.0、255.255.255.255 和 192.168.0.255 不出现在日志中。排除其中一个很简单,但排除所有似乎是不可能的,因为它们不属于同一组 IP(因此我无法设置 192.168.0.0/24 中的范围)。我尝试创建多个日志命令,排除每个命令中的相应 IP,如下所示(请注意不同的名称,如 Iptables-Dropped1、2、3 和 4,以便稍后在日志中区分它们):
-N 日志记录
-A 输入 -j 日志
-A LOGGING -i wlp5s0 !-d 192.168.0.0/25 -m state --state NEW -j LOG --log-prefix "IPTables-Dropped1: " --log-level 4
-A LOGGING -i wlp5s0 !-d 255.255.255.255 -m state --state NEW -j LOG --log-prefix "IPTables-Dropped2: " --log-level 4
-A LOGGING -i wlp5s0 !-d 0.0.0.0 -m state --state NEW -j LOG --log-prefix "IPTables-Dropped3: " --log-level 4
-A LOGGING -i wlp5s0 !-d 192.168.0.255 -m state --state NEW -j LOG --log-prefix "IPTables-Dropped4: " --log-level 4
-A 日志记录 -j 删除
但是输出当然看起来像这样(可以看到,一个 IP 始终被正确阻止,但其他 IP 则没有被阻止:
8 月 8 日 18:59:35 用户内核:[31773.158959] IPTables-Dropped3:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.1 DST=224.0.0.1 LEN=36 TOS=0x00 PREC=0xC0 TTL=1 ID=0 PROTO=2
8 月 8 日 18:59:35 用户内核:[31773.158962] IPTables-Dropped4:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.1 DST=224.0.0.1 LEN=36 TOS=0x00 PREC=0xC0 TTL=1 ID=0 PROTO=2
8 月 8 日 18:59:36 用户内核:[31774.079050] IPTables-Dropped1:IN=wlp5s0 OUT=MAC=xxx SRC=0.0.0.0 DST=255.255.255.255 LEN=308 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=288
8 月 8 日 18:59:36 用户内核:[31774.079056] IPTables-Dropped3:IN=wlp5s0 OUT=MAC=xxx SRC=0.0.0.0 DST=255.255.255.255 LEN=308 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=288
8 月 8 日 18:59:36 用户内核:[31774.079060] IPTables-Dropped4:IN=wlp5s0 OUT=MAC=xxx SRC=0.0.0.0 DST=255.255.255.255 LEN=308 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=288
8 月 8 日 18:59:38 用户内核:[31775.922109] IPTables-Dropped1:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0x00 TTL=1 ID=39031 PROTO=2
8 月 8 日 18:59:38 用户内核:[31775.922115] IPTables-Dropped2:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0x00 TTL=1 ID=39031 PROTO=2
8 月 8 日 18:59:38 用户内核:[31775.922118] IPTables-Dropped3:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0x00 TTL=1 ID=39031 PROTO=2
8 月 8 日 18:59:38 用户内核:[31775.922122] IPTables-Dropped4:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0x00 TTL=1 ID=39031 PROTO=2
8 月 8 日 18:59:39 用户内核:[31777.051946] IPTables-Dropped1:IN=wlp5s0 OUT=MAC=xxx SRC=0.0.0.0 DST=255.255.255.255 LEN=308 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=288
8 月 8 日 18:59:39 用户内核:[31777.051952] IPTables-Dropped3:IN=wlp5s0 OUT=MAC=xxx SRC=0.0.0.0 DST=255.255.255.255 LEN=308 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=288
8 月 8 日 18:59:39 用户内核:[31777.051957] IPTables-Dropped4:IN=wlp5s0 OUT=MAC=xxx SRC=0.0.0.0 DST=255.255.255.255 LEN=308 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=288
8 月 8 日 18:59:40 用户内核:[31777.459943] IPTables-Dropped1:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=192.168.0.255 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=57133 PROTO=UDP SPT=57433 DPT=8612 LEN=24
8 月 8 日 18:59:40 用户内核:[31777.459950] IPTables-Dropped2:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=192.168.0.255 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=57133 PROTO=UDP SPT=57433 DPT=8612 LEN=24
8 月 8 日 18:59:40 用户内核:[31777.459953] IPTables-Dropped3:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=192.168.0.255 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=57133 PROTO=UDP SPT=57433 DPT=8612 LEN=24
8 月 8 日 18:59:40 用户内核:[31777.461083] IPTables-Dropped1:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=224.0.0.1 LEN=44 TOS=0x00 PREC=0x00 TTL=1 ID=38280 PROTO=UDP SPT=53684 DPT=8612 LEN=24
8 月 8 日 18:59:40 用户内核:[31777.461089] IPTables-Dropped2:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=224.0.0.1 LEN=44 TOS=0x00 PREC=0x00 TTL=1 ID=38280 PROTO=UDP SPT=53684 DPT=8612 LEN=24
8 月 8 日 18:59:40 用户内核:[31777.461093] IPTables-Dropped3:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=224.0.0.1 LEN=44 TOS=0x00 PREC=0x00 TTL=1 ID=38280 PROTO=UDP SPT=53684 DPT=8612 LEN=24
8 月 8 日 18:59:40 用户内核:[31777.461096] IPTables-Dropped4:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=224.0.0.1 LEN=44 TOS=0x00 PREC=0x00 TTL=1 ID=38280 PROTO=UDP SPT=53684 DPT=8612 LEN=24
8 月 8 日 18:59:42 用户内核:[31780.025003] IPTables-Dropped1:IN=wlp5s0 OUT=MAC=xxx SRC=0.0.0.0 DST=255.255.255.255 LEN=308 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=288
8 月 8 日 18:59:42 用户内核:[31780.025009] IPTables-Dropped3:IN=wlp5s0 OUT=MAC=xxx SRC=0.0.0.0 DST=255.255.255.255 LEN=308 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=288
8 月 8 日 18:59:42 用户内核:[31780.025013] IPTables-Dropped4:IN=wlp5s0 OUT=MAC=xxx SRC=0.0.0.0 DST=255.255.255.255 LEN=308 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=288
8 月 8 日 18:59:45 用户内核:[31783.100450] IPTables-Dropped1:IN=wlp5s0 OUT=MAC=xxx SRC=0.0.0.0 DST=255.255.255.255 LEN=308 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=288
8 月 8 日 18:59:45 用户内核:[31783.100457] IPTables-Dropped3:IN=wlp5s0 OUT=MAC=xxx SRC=0.0.0.0 DST=255.255.255.255 LEN=308 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=288
8 月 8 日 18:59:45 用户内核:[31783.100461] IPTables-Dropped4:IN=wlp5s0 OUT=MAC=xxx SRC=0.0.0.0 DST=255.255.255.255 LEN=308 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=288
8 月 8 日 18:59:47 用户内核:[31784.533540] IPTables-Dropped1:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=192.168.0.255 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=3013 PROTO=UDP SPT=58086 DPT=8612 LEN=24
8 月 8 日 18:59:47 用户内核:[31784.533546] IPTables-Dropped2:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=192.168.0.255 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=3013 PROTO=UDP SPT=58086 DPT=8612 LEN=24
8 月 8 日 18:59:47 用户内核:[31784.533550] IPTables-Dropped3:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=192.168.0.255 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=3013 PROTO=UDP SPT=58086 DPT=8612 LEN=24
8 月 8 日 18:59:47 用户内核:[31784.534631] IPTables-Dropped1:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=224.0.0.1 LEN=44 TOS=0x00 PREC=0x00 TTL=1 ID=18960 PROTO=UDP SPT=65462 DPT=8612 LEN=24
8 月 8 日 18:59:47 用户内核:[31784.534637] IPTables-Dropped2:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=224.0.0.1 LEN=44 TOS=0x00 PREC=0x00 TTL=1 ID=18960 PROTO=UDP SPT=65462 DPT=8612 LEN=24
8 月 8 日 18:59:47 用户内核:[31784.534641] IPTables-Dropped3:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=224.0.0.1 LEN=44 TOS=0x00 PREC=0x00 TTL=1 ID=18960 PROTO=UDP SPT=65462 DPT=8612 LEN=24
8 月 8 日 18:59:47 用户内核:[31784.534645] IPTables-Dropped4:IN=wlp5s0 OUT=MAC=xxx SRC=192.168.0.13 DST=224.0.0.1 LEN=44 TOS=0x00 PREC=0x00 TTL=1 ID=18960 PROTO=UDP SPT=65462 DPT=8612 LEN=24
由于在 iptables 中不可能只用一个命令来阻止用逗号分隔的多个 IP(这可以解决问题),还有其他方法可以做到吗?
我知道有 netfilter 和其他可能更专业的工具来记录(丢弃的)数据包,但如果可能的话,我想使用 iptables 来完成。
任何帮助我都会感激不尽。
答案1
更改如下
-N LOGGING
-N NOLOG
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m conntrack -j ACCEPT --ctstate RELATED,ESTABLISHED
-A INPUT -i wlp5s0 -d 192.168.0.0/25 -m state --state NEW -j NOLOG
-A INPUT -i wlp5s0 -d 255.255.255.255 -m state --state NEW -j NOLOG
-A INPUT -i wlp5s0 -d 0.0.0.0 -m state --state NEW -j NOLOG
-A INPUT -i wlp5s0 -d 192.168.0.255 -m state --state NEW -j NOLOG
-A INPUT -j LOGGING
-A LOGGING -m state --state NEW ! --dport 22 -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
-A LOGGING -j DROP
Then decide between
-A NOLOG -j DROP
or
-A NOLOG -j ACCEPT
现在,所有您不想记录的流量都会走不同的路。如果没有 RELATED,ESTABLISHED,您可以阻止所有通信。
如果你允许从互联网进行 ssh,你需要禁止失败因为 ssh 是互联网上最受攻击的端口之一。
如果您接触互联网,请准备好每天 2000 多个日志条目。您最好不要记录它们。我不知道您是否计划分析这些日志,但请注意,如果您手动执行此操作,您将每天需要数小时来完成此任务。我有一个禁令列表,禁令列表每天增加 100 个唯一 IP。