Доброго дня! Пытаюсь разобраться как парсить логи. ОС ubuntu, файл /var/log/auth.log У меня задача: выделить все айпишники из файла и передать их iptables'у.
со вторым проблем нет, но вот выделить все айпишники не могу, т.к.:
Apr 7 18:45:31 mail sshd[26579]: Failed password for invalid user ts1 from 109.200.103.226 port 39892 ssh2
Apr 7 18:45:34 mail sshd[26581]: Failed password for invalid user ts3 from 109.200.103.226 port 40405 ssh2
Apr 8 01:59:07 mail sshd[27835]: Failed password for root from 46.252.130.123 port 34199 ssh2
Apr 8 01:59:10 mail sshd[27837]: Failed password for root from 46.252.130.123 port 34758 ssh2
есть строки с «for invalid user ts1 from » и есть с «for root from». я пытался сделать так:
cat auth_log_viewer.sh
#!/bin/bash
for ip in `grep "Failed password for invalid user " /var/log/auth.log | gawk '{print $13}' | sort -u`
do
#Перебор INPUT OUTPUT FORWARD
for tabs in INPUT OUTPUT FORWARD
do
echo "Заносим $ip в REJECT... ok"
iptables -A $tabs -s $ip -j REJECT
let "inner+=1"
done
echo
done
exit 0
Но это только для «Failed password for invalid user »
Как-то можно без использования временных файлов выдернуть из текста все айпишники? Пробовал так же по маске [0-9][0-9].[0-9] и т.д., но айпишники могуть быть и 1.1.1.1 10.1.1.1 100.1.1.1 и т.д.
Заранее спасибо за помощь!!!