Я задавался вопросом, возможно ли настроить его таким способом, которым на неудавшемся входе в систему Ubuntu пошлет мне электронное письмо? И конечно если компьютер не подключен к Интернету, когда попытка происходит, затем это должно послать мне электронное письмо, после того как существует интернет-соединение снова вместо просто попытки, сбоя и затем никогда предупреждения меня к тому входу в систему. Электронная почта должна содержать дату и время (day/month/year - hour:minute:second
) из неудавшейся попытки входа в систему, и также (хотя дополнительно - другими словами, ответ, который не объясняет, как сделать, это приемлемо, поскольку это может быть большое, спрашивают), любые принятые меры, так например, если у меня есть он установка для блокирования человека в течение 5 минут или чего-то затем, что это должно предупредить меня к тому, что это приняло те меры. Я выполняю Ubuntu GNOME 15.10 с GNOME 3.18, действительно ли что-то вроде этого возможно?
Один с полномочиями пользователя 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
Чтобы на адрес электронной почты, который будет отправлен установку 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, в конечном счете представит Вас опция позволить его.
Готово!
Это - вероятно, излишество, но Брандмауэр 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