[Exim-users] SMTP protocol error in "AUTH LOGIN"

2018-09-24 Thread Mikhail Golub

Доброго времени суток.

Подскажите, пожалуйста, где (в каких acl) отловить события чтобы их 
заблокировать (событие указано ниже)?


Exim собран без авторизации:
Exim version 4.91 #3 (FreeBSD 11.2) built 27-Aug-2018 11:58:37
Copyright (c) University of Cambridge, 1995 - 2018
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 
- 2018

Probably Berkeley DB version 1.8x (native mode)
Support for: iconv() use_setclassresources Expand_dlfunc OpenSSL PRDR
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm 
dbmjz dbmnz dnsdb dsearch passwd

Authenticators:
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/mbx autoreply pipe smtp
Fixed never_users: 0
Configure owner: 0:0
Size of off_t: 8
Configuration file is /usr/local/etc/exim/configure


Подобные коннекты напрягают (не мешают, но лог забивают):
2018-09-25 05:04:18 SMTP connection from [182.38.95.137] (TCP/IP 
connection count = 1)
2018-09-25 05:04:19 SMTP protocol error in "AUTH LOGIN" 
H=(vcuawmzrqq.com) [182.38.95.137] AUTH command used when not advertised
2018-09-25 05:04:20 SMTP connection from (vcuawmzrqq.com) 
[182.38.95.137] lost D=1s



Хочу через такое правило добавлять хост в таблицу firewall-а:
continue = ${run{SHELL -c "/usr/local/bin/sudo -u root /sbin/pfctl -t 
blocksmtp -T add $sender_host_address"}}


Но в какой ACL его добавить ..?



___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] SMTP protocol error in "AUTH LOGIN"

2018-09-25 Thread George L. Yermulnik
Hello!

On Tue, 25 Sep 2018 at 09:11:07 (+0300), Mikhail Golub wrote:

> Подскажите, пожалуйста, где (в каких acl) отловить события чтобы их 
> заблокировать (событие указано ниже)?

> Подобные коннекты напрягают (не мешают, но лог забивают):
> 2018-09-25 05:04:18 SMTP connection from [182.38.95.137] (TCP/IP 
> connection count = 1)
> 2018-09-25 05:04:19 SMTP protocol error in "AUTH LOGIN" 
> H=(vcuawmzrqq.com) [182.38.95.137] AUTH command used when not advertised
> 2018-09-25 05:04:20 SMTP connection from (vcuawmzrqq.com) 
> [182.38.95.137] lost D=1s

> Хочу через такое правило добавлять хост в таблицу firewall-а:
> continue = ${run{SHELL -c "/usr/local/bin/sudo -u root /sbin/pfctl -t 
> blocksmtp -T add $sender_host_address"}}

> Но в какой ACL его добавить ..?

Если я правильно понял (а могу понять и неправильно), то нету такого
acl'я, чтобы "словить" использование auth, если он не был предложен.
Поэтому, вероятно нужно смотреть в сторону fail2ban и иже с ним.

-- 
George L. Yermulnik
[YZ-RIPE]

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] SMTP protocol error in "AUTH LOGIN"

2018-09-25 Thread Vladimir Sharun
Привет,

tail на логи и ловить/парсить нужную строку.

Ты не попадёшь ни в один из ACL'ей, потому что это кейс - syntax error:
https://www.exim.org/exim-html-current/doc/html/spec_html/ch-smtp_authentication.html
If the connection is not using extended SMTP (that is, HELO was used rather 
than EHLO), the use of AUTH= is a syntax error.

И да, вариант с run shell - это перебор. Лучше уж сделать кондишн с sql 
запросом, который положит нужный ip/дату_время в базу, а внешний скрипт раз в 
секунду поллит изменения в таблице - забирает оттуда новеньких и пушит в 
файрвольную таблицу новый айтем. Держать в базе также полезно, потому что у 
тебя всегда есть доказательства, когда какой хост накосячил.

У нас таких странных на 12 часов в бан, потом бан снимается до след. инцидента.

25 вересня 2018, 09:11:52, від "Mikhail Golub" :

Доброго времени суток.

Подскажите, пожалуйста, где (в каких acl) отловить события чтобы их 
заблокировать (событие указано ниже)?

Exim собран без авторизации:
Exim version 4.91 #3 (FreeBSD 11.2) built 27-Aug-2018 11:58:37
Copyright (c) University of Cambridge, 1995 - 2018
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 
- 2018
Probably Berkeley DB version 1.8x (native mode)
Support for: iconv() use_setclassresources Expand_dlfunc OpenSSL PRDR
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm 
dbmjz dbmnz dnsdb dsearch passwd
Authenticators:
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/mbx autoreply pipe smtp
Fixed never_users: 0
Configure owner: 0:0
Size of off_t: 8
Configuration file is /usr/local/etc/exim/configure


Подобные коннекты напрягают (не мешают, но лог забивают):
2018-09-25 05:04:18 SMTP connection from [182.38.95.137] (TCP/IP 
connection count = 1)
2018-09-25 05:04:19 SMTP protocol error in "AUTH LOGIN" 
H=(vcuawmzrqq.com) [182.38.95.137] AUTH command used when not advertised
2018-09-25 05:04:20 SMTP connection from (vcuawmzrqq.com) 
[182.38.95.137] lost D=1s


Хочу через такое правило добавлять хост в таблицу firewall-а:
continue = ${run{SHELL -c "/usr/local/bin/sudo -u root /sbin/pfctl -t 
blocksmtp -T add $sender_host_address"}}

Но в какой ACL его добавить ..?



___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users
___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] SMTP protocol error in "AUTH LOGIN"

2018-09-25 Thread Mikhail Golub

Спасибо.

Я как-то раньше задавался этим вопросом, но ответа не нашел.
Искал в англоязычной рассылке - там тоже предлагали парсить логи, 
использовать fail2ban ...


Хотелось попроще.
Описанный вариант (run shell) работает уже для некоторых правил.

Вариант с SQL - вариант. Но ...
"Лучше уж сделать кондишн с sql запросом, который положит нужный 
ip/дату_время в базу" - вопрос тот же - где этот конфишн (в каком acl) 
разместить?



25.09.2018 11:00, Vladimir Sharun пишет:

Привет,

tail на логи и ловить/парсить нужную строку.

Ты не попадёшь ни в один из ACL'ей, потому что это кейс - syntax error:
https://www.exim.org/exim-html-current/doc/html/spec_html/ch-smtp_authentication.html
*If the connection is not using extended SMTP (that is, HELO was used 
rather than EHLO), the use of AUTH= is a syntax error.*


И да, вариант с run shell - это перебор. Лучше уж сделать кондишн с sql 
запросом, который положит нужный ip/дату_время в базу, а внешний скрипт 
раз в секунду поллит изменения в таблице - забирает оттуда новеньких и 
пушит в файрвольную таблицу новый айтем. Держать в базе также полезно, 
потому что у тебя всегда есть доказательства, когда какой хост накосячил.


У нас таких странных на 12 часов в бан, потом бан снимается до след. 
инцидента.


/25 вересня 2018, 09:11:52, від "Mikhail Golub" >:/


Доброго времени суток.

Подскажите, пожалуйста, где (в каких acl) отловить события чтобы их
заблокировать (событие указано ниже)?

Exim собран без авторизации:
Exim version 4.91 #3 (FreeBSD 11.2) built 27-Aug-2018 11:58:37
Copyright (c) University of Cambridge,1995 - 2018
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file,2007  
-2018

Probably Berkeley DB version 1.8x (native mode)
Support for: iconv() use_setclassresources Expand_dlfunc OpenSSL PRDR
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm
dbmjz dbmnz dnsdb dsearch passwd
Authenticators:
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/mbx autoreply pipe smtp
Fixed never_users: 0
Configure owner: 0:0
Size of off_t: 8
Configuration file is /usr/local/etc/exim/configure


Подобные коннекты напрягают (не мешают, но лог забивают):
2018-09-25 05:04:18 SMTP connection from [182.38.95.137] (TCP/IP
connection count = 1)
2018-09-25 05:04:19 SMTP protocol error in "AUTH LOGIN"
H=(vcuawmzrqq.com) [182.38.95.137] AUTH command used when not advertised
2018-09-25 05:04:20 SMTP connection from (vcuawmzrqq.com)
[182.38.95.137] lost D=1s


Хочу через такое правило добавлять хост в таблицу firewall-а:
continue = ${run{SHELL -c "/usr/local/bin/sudo -u root /sbin/pfctl -t
blocksmtp -T add $sender_host_address"}}

Но в какой ACL его добавить ..?



___
Exim-users mailing list
Exim-users@mailground.net 
http://mailground.net/mailman/listinfo/exim-users



___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users





___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] SMTP protocol error in "AUTH LOGIN"

2018-09-25 Thread Vladimir Sharun
Привет,

Это syntax error - я не думаю, что оно будет отсвечивать где-то в ACL. Как 
вместо RCPT написать RPCT.

25 вересня 2018, 11:19:55, від "Mikhail Golub" :

Спасибо.

Я как-то раньше задавался этим вопросом, но ответа не нашел.
Искал в англоязычной рассылке - там тоже предлагали парсить логи, 
использовать fail2ban ...

Хотелось попроще.
Описанный вариант (run shell) работает уже для некоторых правил.

Вариант с SQL - вариант. Но ...
"Лучше уж сделать кондишн с sql запросом, который положит нужный 
ip/дату_время в базу" - вопрос тот же - где этот конфишн (в каком acl) 
разместить?


25.09.2018 11:00, Vladimir Sharun пишет:
> Привет,
> 
> tail на логи и ловить/парсить нужную строку.
> 
> Ты не попадёшь ни в один из ACL'ей, потому что это кейс - syntax error:
> https://www.exim.org/exim-html-current/doc/html/spec_html/ch-smtp_authentication.html
> *If the connection is not using extended SMTP (that is, HELO was used 
> rather than EHLO), the use of AUTH= is a syntax error.*
> 
> И да, вариант с run shell - это перебор. Лучше уж сделать кондишн с sql 
> запросом, который положит нужный ip/дату_время в базу, а внешний скрипт 
> раз в секунду поллит изменения в таблице - забирает оттуда новеньких и 
> пушит в файрвольную таблицу новый айтем. Держать в базе также полезно, 
> потому что у тебя всегда есть доказательства, когда какой хост накосячил.
> 
> У нас таких странных на 12 часов в бан, потом бан снимается до след. 
> инцидента.
> 
> /25 вересня 2018, 09:11:52, від "Mikhail Golub"  >:/
> 
> Доброго времени суток.
> 
> Подскажите, пожалуйста, где (в каких acl) отловить события чтобы их
> заблокировать (событие указано ниже)?
> 
> Exim собран без авторизации:
> Exim version 4.91 #3 (FreeBSD 11.2) built 27-Aug-2018 11:58:37
> Copyright (c) University of Cambridge,1995 - 2018
> (c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file,2007  
> -2018
> Probably Berkeley DB version 1.8x (native mode)
> Support for: iconv() use_setclassresources Expand_dlfunc OpenSSL PRDR
> Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm
> dbmjz dbmnz dnsdb dsearch passwd
> Authenticators:
> Routers: accept dnslookup ipliteral manualroute queryprogram redirect
> Transports: appendfile/mbx autoreply pipe smtp
> Fixed never_users: 0
> Configure owner: 0:0
> Size of off_t: 8
> Configuration file is /usr/local/etc/exim/configure
> 
> 
> Подобные коннекты напрягают (не мешают, но лог забивают):
> 2018-09-25 05:04:18 SMTP connection from [182.38.95.137] (TCP/IP
> connection count = 1)
> 2018-09-25 05:04:19 SMTP protocol error in "AUTH LOGIN"
> H=(vcuawmzrqq.com) [182.38.95.137] AUTH command used when not advertised
> 2018-09-25 05:04:20 SMTP connection from (vcuawmzrqq.com)
> [182.38.95.137] lost D=1s
> 
> 
> Хочу через такое правило добавлять хост в таблицу firewall-а:
> continue = ${run{SHELL -c "/usr/local/bin/sudo -u root /sbin/pfctl -t
> blocksmtp -T add $sender_host_address"}}
> 
> Но в какой ACL его добавить ..?
> 
> 
> 
> ___
> Exim-users mailing list
> Exim-users@mailground.net 
> http://mailground.net/mailman/listinfo/exim-users
> 
> 
> 
> ___
> Exim-users mailing list
> Exim-users@mailground.net
> http://mailground.net/mailman/listinfo/exim-users
> 



___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users
___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] SMTP protocol error in "AUTH LOGIN"

2018-10-05 Thread Mikhail Golub

Всем спасибо за помощь.

Решил простеньким скриптом на Perl (честно взятым на просторах Интернет 
и переделанным под мои потребности), который запускается по расписанию и 
добавляет в таблицу pf провинившиеся IP.

Может кому будет полезно ...

#!/usr/local/bin/perl

use strict;
use warnings;

# Options to set up here.
#
# $conf is where to store the current state file.
# $maillog is the latest Exim main log.

my $conf = "/var/spool/exim/mainlog-state";
my $mainlog = "/var/log/exim/mainlog";

my $seek = 0;
my $inode = inode_number($mainlog);
my $cantseek = 0;

if (-r $conf) {
  open CONF, "< $conf";
  while () {
chomp;
s/^\s*//;
s/\s*$//;
next if /^$/;
if (/^inode=(\d+)$/) {
  $inode = $1;
}
if (/^seek=(.*)$/) {
  $seek = $1;
}
  }
  close CONF;
}

my @ips = ();


# see if we can seek to current position in the mainlog. If not, then
# it has most likely been rotated
open LOG, "< $mainlog" or die "cannot open exim log file $mainlog!";
if (!seek(LOG, $seek, 0)) {
  $cantseek = 1;
}
close LOG;

if ($inode != inode_number($mainlog) or $cantseek) {
  $inode = inode_number($mainlog);
  $seek = 0;
}

$seek = read_log($mainlog, $seek, \@ips);

# output
if (@ips) {
@ips = uniq(@ips);
foreach my $ip (@ips) {
`/sbin/pfctl -t blocksmtp -T add $ip > /dev/null 2>&1`;
}
}


# create config file
open CONF, "> $conf";
print CONF "inode=$inode\n";
print CONF "seek=$seek\n";
close CONF;

exit;



sub inode_number
{
  my $file = shift;
  my ($dummy, $inode) = stat($file);
  return $inode;
}

sub read_log
{
  my ($file, $seek, $stats) = @_;
  my $prevline = undef;
  my $line;
  my ($prevpos, $pos);
  local *LOG;

  open LOG, "< $file" or die "cannot open exim log file $file!";
  if (!seek(LOG, $seek, 0)) {
close LOG;
return $seek;
  }
  while ($line = ) {
if (defined $prevline) {
  if ($line =~ m/\[(.*)\] AUTH command used when not advertised/) {
push @ips, $1;
  }
}
$prevline = $line;
$prevpos = $pos;
$pos = tell LOG;
  }
  close LOG;

  $prevpos = $seek unless defined $prevpos;

  return $prevpos;
}

sub uniq {
my %seen;
grep !$seen{$_}++, @_;
}



25.09.2018 11:21, Vladimir Sharun пишет:

Привет,

Это syntax error - я не думаю, что оно будет отсвечивать где-то в ACL. 
Как вместо RCPT написать RPCT.


/25 вересня 2018, 11:19:55, від "Mikhail Golub" >:/


Спасибо.

Я как-то раньше задавался этим вопросом, но ответа не нашел.
Искал в англоязычной рассылке - там тоже предлагали парсить логи,
использовать fail2ban ...

Хотелось попроще.
Описанный вариант (run shell) работает уже для некоторых правил.

Вариант с SQL - вариант. Но ...
"Лучше уж сделать кондишн с sql запросом, который положит нужный
ip/дату_время в базу" - вопрос тот же - где этот конфишн (в каком acl)
разместить?


25.09.2018 11:00, Vladimir Sharun пишет:
> Привет,
> 
> tail на логи и ловить/парсить нужную строку.
> 
> Ты не попадёшь ни в один из ACL'ей, потому что это кейс - syntax error:

> 
https://www.exim.org/exim-html-current/doc/html/spec_html/ch-smtp_authentication.html
> *If the connection is not using extended SMTP (that is, HELO was used 
> rather than EHLO), the use of AUTH= is a syntax error.*
> 
> И да, вариант с run shell - это перебор. Лучше уж сделать кондишн с sql 
> запросом, который положит нужный ip/дату_время в базу, а внешний скрипт 
> раз в секунду поллит изменения в таблице - забирает оттуда новеньких и 
> пушит в файрвольную таблицу новый айтем. Держать в базе также полезно, 
> потому что у тебя всегда есть доказательства, когда какой хост накосячил.
> 
> У нас таких странных на 12 часов в бан, потом бан снимается до след. 
> инцидента.
> 
> /25 вересня 2018, 09:11:52, від "Mikhail Golub" mailto:g...@gmn.org.ua>  
> >:/
> 
> Доброго времени суток.
> 
> Подскажите, пожалуйста, где (в каких acl) отловить события чтобы их

> заблокировать (событие указано ниже)?
> 
> Exim собран без авторизации:

> Exim version 4.91 #3 (FreeBSD 11.2) built 27-Aug-2018 11:58:37
> Copyright (c) University of Cambridge,1995 - 2018
> (c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file,2007   
> -2018

> Probably Berkeley DB version 1.8x (native mode)
> Support for: iconv() use_setclassresources Expand_dlfunc OpenSSL PRDR
> Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm
> dbmjz dbmnz dnsdb dsearch passwd
> Authenticators:
> Routers: accept dnslookup ipliteral manualroute queryprogram redirect
> Transports: appendfile/mbx autoreply pipe smtp
> Fixed never_users: 0
> Configure owner: 0:0
> Size of off_t: 8
> Configuration file is /usr/local/etc/exim/configure
> 
> 
> Подобные 

Re: [Exim-users] SMTP protocol error in "AUTH LOGIN"

2018-11-27 Thread Victor Ustugov
приветствую

George L. Yermulnik wrote on 25.09.2018 10:56:

>> Подскажите, пожалуйста, где (в каких acl) отловить события чтобы их 
>> заблокировать (событие указано ниже)?
> 
>> Подобные коннекты напрягают (не мешают, но лог забивают):
>> 2018-09-25 05:04:18 SMTP connection from [182.38.95.137] (TCP/IP 
>> connection count = 1)
>> 2018-09-25 05:04:19 SMTP protocol error in "AUTH LOGIN" 
>> H=(vcuawmzrqq.com) [182.38.95.137] AUTH command used when not advertised
>> 2018-09-25 05:04:20 SMTP connection from (vcuawmzrqq.com) 
>> [182.38.95.137] lost D=1s
> 
>> Хочу через такое правило добавлять хост в таблицу firewall-а:
>> continue = ${run{SHELL -c "/usr/local/bin/sudo -u root /sbin/pfctl -t 
>> blocksmtp -T add $sender_host_address"}}
> 
>> Но в какой ACL его добавить ..?
> 
> Если я правильно понял (а могу понять и неправильно), то нету такого
> acl'я, чтобы "словить" использование auth, если он не был предложен.
> Поэтому, вероятно нужно смотреть в сторону fail2ban и иже с ним.

этот же вопрос подняли в англоязычном листе.

можно описать hostlist, в котором указать, кому мы анонсируем SMTP
аутентификацию. его уже указать в auth_advertise_hosts.

потом в acl_check_quit и acl_check_notquit проверить, входит ли адрес
хоста отправителя в hostlist.

если не входит, то проверить значение $smtp_command_history.

т. о. можно выловить попытку аутентифицироваться тогда, когда
аутентификация не анонсирована.

ну а дальше - дело вкуса каждого, где сохранять информацию о таком хосте
и что с ним делать в следующий раз в acl_check_connect.

-- 
Best wishes
Victor Ustugovmailto:vic...@corvax.kiev.ua
public GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc
Skype ID: corvax_nb   JID: vic...@corvax.kiev.ua

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users