Добрый день, коллеги!
Пожалуйста, помогите мне распутаться в задачке с выделением IP адресов неудавшихся интрудеров, которые отметились в /var/log/secure* (CentOS 7.3) при попытке войти по ssh при вЫключенной авторизации по паролю (/etc/ssh/sshd_config: PasswordAuthentification no)
Имеем:
- Строки, выбранные из /var/log/secure*, содержащие упоминание о попытке входа:
grep 'BREAK-IN ATTEMPT' /var/lor/secure* > /tmp/break-in.log
- Попытку вытащить из квадратных скобок IP с помощью sed (как наиболее лёгкий и быстрый фильтр):
sed -r 's/.* [^[]*\[([^]]*)\].*/\1/' /tmp/break-in.log > /tmp/break-in_ip.log
Беда в том, что там же в логе, в таких же квадратных скобках пишется ещё и порт источника (если я ничего не путаю). Как бы то ни было, первое числовое значение, упоминаемое в строке лога в квадратных скобках, нужно отбросить и забрать только сам IP, т.е. текст из ВТОРОЙ пары квадратых скобок.
Аналогичная задача для вычленения IP горе-интрудеров при включЁнной аутентификации у меня решается аналогично и проблем не вызывает:
grep 'Failed' /var/log/secure* | sed -n 's/.*from \([0-9.]\+\).*/\1/p'