Электронная почта на неудавшейся попытке входа в систему?

Я задавался вопросом, возможно ли настроить его таким способом, которым на неудавшемся входе в систему Ubuntu пошлет мне электронное письмо? И конечно если компьютер не подключен к Интернету, когда попытка происходит, затем это должно послать мне электронное письмо, после того как существует интернет-соединение снова вместо просто попытки, сбоя и затем никогда предупреждения меня к тому входу в систему. Электронная почта должна содержать дату и время (day/month/year - hour:minute:second) из неудавшейся попытки входа в систему, и также (хотя дополнительно - другими словами, ответ, который не объясняет, как сделать, это приемлемо, поскольку это может быть большое, спрашивают), любые принятые меры, так например, если у меня есть он установка для блокирования человека в течение 5 минут или чего-то затем, что это должно предупредить меня к тому, что это приняло те меры. Я выполняю Ubuntu GNOME 15.10 с GNOME 3.18, действительно ли что-то вроде этого возможно?

3
задан 1 February 2016 в 16:22

2 ответа

Доступ к журналам

Один с полномочиями пользователя root может использовать команду lastb видеть весь неудавшийся вход в систему пытается в компьютере, также намного более подробный файл журнала, который записывает неудавшиеся попытки входа в систему в отрезке времени недели, может быть найден в /var/log/auth.log (никакие необходимые полномочия пользователя root), и плохие попытки входа в систему будут перечислены как это:

MONTH  DAY HH:MM:SS MACHINE lightdm: pam_unix(lightdm:auth): authentication failure; logname= uid=0 euid=0 tty=:0 ruser= rhost=  user=USER

Сценарий

Можно записать сценарий, чтобы считать те файлы журнала и отправить их Вам по электронной почте каждый раз, когда новая плохая попытка входа в систему зарегистрирована. Вот мое взятие на этом:

Сначала давайте инициируем выполнение сценария каждый раз, когда кто-то пытается войти в систему и перестать работать. PAM сохраняет /var/log/auth.log таким образом, мы можем использовать его для инициирования нашего сценария. Открытый /etc/pam.d/common-auth:

sudo vim /etc/pam.d/common-auth

Затем незадолго до строки:

auth    requisite                       pam_deny.so

Добавьте это:

auth [default=ignore] pam_exec.so seteuid /usr/bin/report_badlogin

И в строках выше изменяют любое возникновение success=1 кому: success=2 и, если таковые имеются, success=2 кому: success=3 и так далее.

Теперь создайте указанный сценарий:

sudo vim /usr/bin/report_badlogin

Запишите в нем команды для отправки Вам электронного письма отчета:

#! /bin/sh
# report_badlogin

if grep -F -x -v -f /var/log/auth.log.old /var/log/auth.log | grep -n 'authentication failure' | mail -s "Bad login attempt notification" "yourpersonal@email.com"; then
  cp -f /var/log/auth.log /var/log/auth.log.old
  chown YOURUSERNAME /var/log/auth.log.old
fi

exit 0

Краткое объяснение: Сначала grep получает изменения на файле журнала путем вычитания его из последней сохраненной копии его (.old). Второй grep получает просто строку, которая имеет значение, тот, который сообщает Вам дата, время и пользователь, на котором вход в систему был попыткой. mail отправляет Вас, что одна строка как электронное письмо с предметом Плохо входит в уведомление о попытке. Если электронное письмо было послано успешно auth.log.old обновляется, но поскольку сценарии работают как корень, мы задерживаем владение по файлу Вашему пользователю.

Сохраните его и закройте его (команда VIM :wq).

Удостоверьтесь, что сценарий имеет разрешение выполнения:

sudo chmod a+x /usr/bin/report_badlogin

Вручную создайте первую копию auth.log:

cp /var/log/auth.log{,.old}

Контакт без сценариев интернет-соединения

Потенциальный захватчик может разъединить Ваш ПК от Интернета, в то время как он пытается предположить пароль для предотвращения уведомления по электронной почте, но даже когда он делает тот свой плохой вход в систему, попытки все регистрируются к auth.log.

Что можно сделать для тихого получения, уведомления как можно скорее должен инициировать немного отличающийся сценарий после успешного входа в систему с машиной, подключенной к Интернету. Сделать, которые позволяют нам использовать ~/.bashrc сценарий, который выполняется каждый раз, когда Вы входите в систему:

vim ~/.bashrc

Добавьте эти строки в конец файла:

# Pending bad login attempts notification
sh /usr/bin/report_pending

Сохраните его и выйдите. Теперь создайте тот сценарий:

sudo vim /usr/bin/report_pending

И запишите в него следующее:

#! /bin/sh
# report_pending

if grep -F -x -v -f /var/log/auth.log.old /var/log/auth.log | grep -n 'authentication failure'; then
    if grep -F -x -v -f /var/log/auth.log.old /var/log/auth.log | grep -n 'authentication failure' | mail -s "Bad login attempt notification" "yourpersonal@email.com"; then
        cp -f /var/log/auth.log /var/log/auth.log.old
    fi
fi

exit 0

Краткое объяснение: Этот сценарий делает почти то же как первое, но поскольку это всегда выполняется на входе в систему, мы сначала проверяем на существование незаконченных отчетов, иначе каждый раз, когда Вы входите в систему, Вы получили бы пустое электронное письмо. Заметьте, что этот сценарий не работает с полномочиями пользователя root, таким образом, нет никакой потребности измениться auth.log.old владение после того, как это обновляется.

Теперь просто добавьте разрешение выполнения к сценарию:

sudo chmod a+x /usr/bin/report_pending

Настройки Configure SMTP

Чтобы на адрес электронной почты, который будет отправлен установку mailutils и sSMTP:

sudo apt-get install mailutils ssmtp

Настройте sSMTP:

sudo vim /etc/ssmtp/ssmtp.conf

Отредактируйте его к чему-то вроде этого:

root=yoursmtpemail@gmail.com    
mailhub=smtp.gmail.com:587    
AuthUser=yoursmtpemail    
AuthPass=PASSWORD    
UseSTARTTLS=YES    
hostname=yoursmtpemail@gmail.com    
FromLineOverride=YES

Если Вы не используете Gmail, просто изменяют его на Вашего поставщика.

Я рекомендую Вам создать электронное письмо только, чтобы использоваться в качестве сервера SMTP (yoursmtpemail@gmail.com) а не использовать Вашу персональную электронную почту, потому что, поскольку Вы видите Вас, хранят пароль этой электронной почты в файле простого текста (только корень может получить доступ к этому файлу, но это не хорошая практика так или иначе, хотя я не знаю, как сделать это любым другим способом...).

В случае Gmail (я не попробовал другими поставщиками) все еще необходимо предоставить Доступ для меньшего количества защищенных приложений. При попытке работать echo "Test mail" | mail -s "Testing" yourpersonal@email.com необходимо получить электронное письмо в yoursmtpemail@gmail.com при информировании Вас, что доступ к тому, что электронная почта была отклонена к приложению, которое не встретило уровень безопасности Gmail и что, если Вы хотите Вас, может Узнать больше о предоставлении доступа для меньшего количества защищенных приложений, нажать на него и Gmail, в конечном счете представит Вас опция позволить его.

Готово!

6
ответ дан 1 December 2019 в 13:24

Это - вероятно, излишество, но Брандмауэр ConfigServer (CSF) и LFD может помочь контролировать и защитить Ваши машины.

Передающие уведомления о неудавшихся попытках входа в систему только одна из его многих функций. Это должно работать из поля, поставляя уведомление по электронной почте для укоренения.

для получения почты на другой машине, Вам будет нужна программа, которая может отправить почту. При установке mail-transport-agent пакет может быть достаточно, но я обычно устанавливаю exim4 сервер, который может стоять в очереди доставка, если Вы в режиме офлайн (в течение максимум 3 дней, я верю).

CSF не стал пакетом Ubuntu, таким образом, необходимо будет следовать за их инструкции по установке :

cd /usr/src
rm -fv csf.tgz
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
1
ответ дан 1 December 2019 в 13:24

Другие вопросы по тегам:

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