Есть ли способ изменить настройки Logwatch так, чтобы он прекратил выполнение обратного разрешения DNS-имен на всех хостах, которые пытались зондировать сервер или были заблокированы?
Эти URL-адреса вызывают электронные письма должны быть заблокированы, особенно Gmail, и тем самым сделать Logwatch непригодным для использования в качестве инструмента системного администратора.
Я бы предпочел ответ, в котором используются уже существующие файлы конфигурации в Ubuntu или Debian, но я возьму все, что смогу получить.
Возможное решение:
В Ubuntu 18.04 LTS:
#First copy sshd script from default location to /etc location to have
#LogWatch override the default script even if there is a LogWatch package update
cp /usr/share/logwatch/scripts/services/sshd /etc/logwatch/scripts/services/sshd
#Then replace all occurrences of "my $name = LookupIP($ip);" with "my $name = $ip;"
sed -i "s/my \$name = LookupIP\(\$ip\);/my \$name = \$ip;/g" /etc/logwatch/scripts/services/sshd
В качестве альтернативы вы можете отредактировать файл вручную:
#vi /etc/logwatch/scripts/services/sshd
Найти все вхождения "my $ name = LookupIP ($ ip); "
Замените на" my $ name = $ ip; "
Сначала я попытался просто добавить" my $ DoLookup = 0; " в верхней части сценария sshd вручную, поскольку просмотр /usr/share/logwatch/lib/Logwatch.pm, похоже, указывает на то, что установка этого параметра приведет к тому, что функция LookupIP пропустит поиск имени хоста, но это не сработало.
Этот ответ во многом вдохновлен оригинальным ответом @RedScourge , но отключает LookupIP
через конфигурацию и вносит минимально инвазивные изменения в сценарий sshd
только в случае необходимости.
В ответ на вопрос пользователя о возможности выборочного отключения поиска имен хостов для определенных службв logwatch был внесен патч , который включает эту функцию для SSHD. На момент написания этой статьи исправление не является частью помеченного выпуска, но его легко применить локально. В качестве дополнительного бонуса это значительно ускоряет создание журнала , если на вашем сервере много попыток SSH.
Шаг 1: Убедитесь, что флаг sshd_ip_lookup
обрабатывается вашей локальной версией logwatch
.
Откройте /usr/share/logwatch/scripts/services/sshd
и найдите sshd_ip_lookup
.
Если вы не найдете ссылок на этот флаг, то...
a. Скопируйте скрипт sshd
в /etc
, чтобы он не был перезаписан при обновлении logwatch
sudo cp /usr/share/logwatch/scripts/ сервисы/sshd /etc/logwatch/скрипты/сервисы/sshd
б. Откройте /etc/logwatch/scripts/services/sshd
в предпочитаемом вами редакторе
sudo nano /etc/logwatch/scripts/services/sshd
в. Измените скрипт с изменениями из этой фиксации.
то естьвставьте следующее, непосредственно перед my $DebugCounter = 0;
(или где-нибудь ближе к началу):
$main::DoLookup = $ENV{'sshd_ip_lookup'};
Шаг 2: Установите для флага sshd_ip_lookup
значение Нет
/etc/logwatch/conf/services/sshd.conf
с помощью предпочитаемого вами редактора.# Установите значение Нет, чтобы отключить поиск IP
$sshd_ip_lookup = Нет
Попробуйте еще раз запустить logwatch!
Дополнение: Обнаружение спама в Google Mail (GMail)
Я также столкнулся с тем, что Google блокировал электронные письма журнала. Они так и не попали в папку со спамом получателя; Google заблокировал письмо на выходе. Анализ @RedScourge о том, что это связано с большим количеством доменных имен в отчете журнала, кажется правильным. Электронное письмо должно выглядеть так, будто оно содержит URL-адреса спам-фильтров Google.
Я полагаю, что существует корреляция между IP-адресами, которые Google Mail связывает при отображении электронного письма, и IP-адресами, которые его спам-фильтр считает ссылкой до отправки электронного письма. Я заметил, что Google Mail связал IP-адрес в 123.123.123.123: X раз
, но не связал IP-адрес в 123.123.123.123 : X раз
. Имея это в виду, я поставил пробел после IP-адреса и перед двоеточием в разделах «Сбой согласования» и «Нелегальные пользователи из». С тех пор, как я это сделал — несколько недель назад и сейчас — у меня не было ни одного сообщения, заблокированного почтой Google.
Изменения в /etc/logwatch/scripts/services/sshd
включают:
if (keys %NegotiationFailed) { ... }
измените:
напечатать " $Host: " .число раз($HostTotal);
в:
напечатайте " $Host : " . число раз($HostTotal);
if (keys %IllegalUsers) { ... }
измените:
напечатать " $name: " . число раз($totcount);
в:
напечатайте " $name : " . число раз($totcount);
Суть этих изменений доступна здесь.
Примечания
Я отправил запрос в список пожеланий, чтобы добавить патч logwatch основной ветки разработки в LTS-релизы Ubuntu. Я не уверен, что он будет одобрен, но вы можете подписаться на него здесь, чтобы отслеживать его статус: https://bugs.launchpad.net/ubuntu/+source/logwatch/+bug/1904362