我想从 UFW 服务收集信息,以便进一步分析。
典型的 UFW 日志条目如下所示:
[UFW BLOCK] IN=eth0 OUT= MAC=99:99:99:99:99:99:99:99:XX:XX:XX:XX:99:99:99 SRC=99.999.999.999 DST=999.99.99.9 LEN=40 TOS=0x00 PREC=0x00 TTL=243 ID=54321 PROTO=TCP SPT=56338 DPT=5800 WINDOW=65535 RES=0x00 SYN URGP=0
如何从日志中提取 SRC 和 DST IP 地址?
谢谢你!
答案1
以下内容应该足够了。请注意,我使用了扩展正则表达式,这使内容更具可读性。要真正理解这一点,您需要了解正则表达式以及 sed。
sed -rn -e 's,.* SRC=([0-9.]+) DST=([0-9.]+) .*,\1 \2,p'
您也可以使用 grep 执行此操作。同样,我将使用扩展正则表达式,它是比旧的“基本”正则表达式更受欢迎的类型。在这里,我使用-o
grep 仅打印出匹配的部分。
grep -Eo 'SRC=[0-9.]+ DST=[0-9.]+'
您可以对此进行改进,要求在 SRC 之前有一个单词边界;我认为您可以\b
在之前放置一个SRC
来实现这一点,但通常没有必要。
干杯,卡梅伦