Top.Mail.Ru
rgert

Как получать письма при входе по SSH

Как получать письма при входе по SSH

При использовании сервера важно понимать, что на них происходит в данный момент: кто заходит по SSH и когда. Особенно это касается безопасности: если злоумышленник подберёт пароль и войдёт как root, у него будут неограниченные права — последствия очевидны.

Хорошая практика — запретить прямой вход root по SSH и работать через обычную учётную запись с sudo. Когда нужен доступ суперпользователя, входите как обычный пользователь и переключайтесь на root через su. А чтобы не пропустить подозрительные логины, можно настроить простые email-уведомления — письмо будет приходить на указанный адрес и содержать IP последнего входа.

Если вы увидели неизвестный IP, его легко заблокировать в файрволе.

Как быстро заблокировать IP с доступом к SSH

iptables:

sudo iptables -A INPUT -s <IP_Address> -p tcp --dport ssh -j DROP

firewalld:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<IP_Address>" port protocol="tcp" port="22" reject'

sudo firewall-cmd --reload

UFW:

sudo ufw deny from <IP_Address> to any port 22

sudo ufw reload

Настройка email-уведомлений о входе по SSH

Здесь понадобятся права root, минимальные навыки работы в nano или vi и установленный почтовый клиент mailx (он же mailutils на Debian-подобных системах), чтобы отсылать письма.

Установите mailx в вашей системе одной из команд:

sudo apt install mailutils     # Debian/Ubuntu/Mint

sudo yum install mailx         # RHEL/CentOS/Fedora/Rocky/AlmaLinux

sudo emerge -a sys-apps/mailx  # Gentoo

sudo apk add mailx             # Alpine

sudo pacman -S mailx           # Arch

sudo zypper install mailx      # openSUSE

sudo pkg install mailx         # FreeBSD

Письма при входе под root

Зайдите под root и перейдите в его домашний каталог:

cd /root

Откройте файл .bashrc в любимом редакторе. Учтите, это скрытый файл — его видно командой ls -la.

vi .bashrc

или

nano .bashrc

В конец файла добавьте строку, заменив ServerName на имя вашего сервера, а your@yourdomain.com — на ваш email:

echo 'ALERT - Root Shell Access (ServerName) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" your@yourdomain.com

Сохраните файл, выйдите из сессии и войдите снова по SSH. При каждом входе root будет отправляться письмо. Пример уведомления:

ALERT — Root Shell Access (Database Replica) on: Thu Nov 28 16:59:40 IST 2023 tecmint pts/0 2023-11-28 16:59 (172.16.25.125)

Письма при входе обычного пользователя

Авторизуйтесь под нужным пользователем (в примере — tecmint) и перейдите в его домашний каталог:

cd /home/tecmint

Откройте .bashrc и добавьте ту же строку (подставьте своё имя сервера и почту):

vi .bashrc

или

nano .bashrc

echo ‘ALERT — Root Shell Access (ServerName) on:’ `date` `who` | mail -s «Alert: Root Access from `who | cut -d'(‘ -f2 | cut -d’)’ -f1`» your@yourdomain.com

Сохраните, выйдите из системы и войдите снова. При каждом входе этого пользователя .bashrc выполнится и отправит письмо с данными о входе. Аналогично можно настроить уведомления для любого аккаунта: отредактируйте файл /home/имя_пользователя/.bashrc и добавьте указанную строку.

Такой простой механизм помогает оперативно замечать неожиданные логины и быстро блокировать нежелательные IP на уровне файрвола.

Похожее

Все статьи
46

GnuCash: строгий учет финансов без подписок и облаков

GnuCash — бесплатное опенсорсное ПО для ведения личных затрат и учета в небольшом бизнесе. Главное преимущество программы в том, что в отличие от многих упрощенных финансовых приложений, в GnuCash вся работа построена на классических бухгалтерских принципа: счета, проводки, баланс и…

21689576 6493510

FTP-протокол: основы, принцип работы и настройка

File Transfer Protocol — сетевой протокол, созданный специально для передачи файлов между компьютерами, серверами и любыми другими устройствами с выходом в интернет. Он базируется на надежном транспортном протоколе TCP, но, в отличие от привычных веб-стандартов, использует для работы сразу два…