我想收集UFW服务的信息,以便进一步分析。
典型的UFW日志条目如下所示:
[UFW BLOCK] IN = eth0 OUT = MAC = 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地址?
谢谢!
以下应该足够了。 请注意,我使用了扩展正则expression式,这使得事情变得更加可读。 要真正理解这个,你需要学习正则expression式,也是sed。
sed -rn -e 's,.* SRC=([0-9.]+) DST=([0-9.]+) .*,\1 \2,p'
你也可以用grep来做到这一点。 再次,我将使用扩展正则expression式,它们是旧式“基本”正则expression式的“首选”types。 在这里,我使用-o来让grep只打印出匹配的部分。
grep -Eo 'SRC=[0-9.]+ DST=[0-9.]+'
你可以在SRC之前改善这个要求, 我想你可以在SRC之前加一个\b来完成这个任务,但是一般情况下是不需要的。
干杯,卡梅隆