Должен ли я игнорировать или полностью блокировать попытки команд, не относящихся к SMTP?

Еще несколько вариантов:

  1. Perl

     $ bt-device --list | perl -lne 'print $ 1 if /Mouse.*\((.*)\)/' file 
    34: 88: 5D: 3F: 1B: 88 
     

    Во многих инструментах, При работе с регулярными выражениями круглые скобки ( () ) используются для захвата совпадающего шаблона таким образом, чтобы его можно было использовать позже. В Perl первый такой захваченный шаблон - $ 1 , второй $ 2 и т. Д. Здесь мы ищем строку, которая соответствует Mouse , а затем строку в круглые скобки. Содержимое круглых скобок сохраняется как $ 1 и печатается, если соответствие было успешным.

  2. grep + cut + tr

     $ bt-device --list grep Mouse | cut -d '(' -f2 | tr -d ')' 
    34: 88: 5D: 3F: 1B: 88 
     

    Здесь мы используем grep чтобы найти соответствующую строку (строки), вырезать , чтобы напечатать второе ( -определенное поле ( 34: 88: 5D: 3F: 1B: 88) ) и tr для удаления завершающего ) .

  3. Ради удовольствия, вот решение с join :

     $ join -1 1 -2 2 -o 2.4 <(echo "Mouse (") <(bt-device --list) 2> / dev / null | tr -d '()' 
    34: 88: 5D: 3F: 1B: 88 
     
0
05.02.2015, 00:05
2 ответа

Я использую fail2ban. Вы можете отредактировать /etc/fail2ban/filter.d/postfix.conf, чтобы отловить все дальнейшие попытки. Я слежу за файлами /var/log/mail.log в поисках подозрительного поведения и при необходимости вношу изменения в postfix.conf. Вот мой postfix.conf, который отлавливает строку, о которой вы упомянули выше.

[INCLUDES]


before = common.conf

[Definition]

_daemon = postfix/smtpd

failregex = ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 554 5\.7\.1 .*$
        ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 450 4\.7\.1 : Helo       command rejected: Host not found; from=<> to=<> proto=ESMTP helo= *$
        ^%(__prefix_line)sNOQUEUE: reject: VRFY from \S+\[<HOST>\]: 550 5\.1\.1 .*$
        ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 454 4\.7\.1 :*$
        reject: RCPT from (.*)\[<HOST>\]: 550 5.1.1
        reject: RCPT from (.*)\[<HOST>\]: 450 4.7.1
        reject: RCPT from (.*)\[<HOST>\]: 554 5.7.1
    reject: RCPT from unknown\[<HOST>\]: 454 4.7.1
    connect from unknown\[<HOST>\]

ignoreregex = 

Вы также можете добавить

warning: non-SMTP command from unknown\[<HOST>\]:: GET / HTTP/1.0

если вышеупомянутое не поймает все.

Если вы хотите запретить исторические IP-адреса вручную, используйте IP-таблицы.

С уважением и удачи,

Matt

2
29.04.2021, 00:32

Нет необходимости блокировать "команду". Если вы обнаружите, что кто-то выполняет массу недопустимых команд, заблокируйте этот IP-адрес. Недопустимая команда ничего не повредит и в некоторых случаях практична (например, поддерживает клиентов с ошибками).

0
29.04.2021, 00:32

Теги

Похожие вопросы