Bugün beraber SSH Login Bildirimi Gönderme kısmına değinmeye çalışacağım. Linux sistemlerde root giriş bildirimleri için logrotate kullanılabilir. Logrotate, sistem kayıtlarını sıkıştırır, arşivler ve siler ve yapılandırılabilir olarak bildirim gönderir. Bu kısımda uygulayacağım işletim sistemi Linux CentOS 7.9’dur
SSH Login Bildirimi Gönderme Başlamadan Önce
İlk olarak başlamadan önce kurulu değilse, aşağıdaki komutu kullanarak ilgili paketleri kurmamız gerekli.
yum install epel-release
yum -y install postfix cyrus-sasl-plain mailx certbot python2-certbot-apache mod_ssl
Kurulum sonrasında izleyeceğimiz adımlar;
systemctl restart postfix
systemctl enable postfix
Bu adımlar ile postfix sistemini başlatım her sistem yeniden başladığında otomatik olarak başlamasını sağladık.
Bu kısımda ben mail gönderimlerimi gmail üzerinden yapacağım için postfix ayarlarımda bir düzenleme yapacağım. Sizde gmail vb. bir email sistemi kullanacaksanız bu yapılandırmayı kendinize göre kurulum yapınız.
/etc/postfix/main.cf
## eklemeler
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
Yukarıdaki işlemlerimizin ardından mail gönderimi için kullanacağımız kullanıcı adı ve şifre işlemi için aşağıdaki adımları takip ediyoruz;
nano /etc/postfix/sasl_passwd
aşağıdaki satırı ekledikten sonra kendinize göre düzenleyin
[smtp.gmail.com]:587 mailadresi:password
Yukarıdaki satırı ekleyip kendi bilgileriniz ile güncelledikten sonra ayarlarımızı postfix’e kaydetmek için çalıştırmamız gereken kod;
postmap /etc/postfix/sasl_passwd
Ayarları postfix’e kayıt ettikten sonra gerekli izinler için çalıştırmamız gereken kod;
chown root:postfix /etc/postfix/sasl_passwd*
chmod 640 /etc/postfix/sasl_passwd*
Hangi işlemleri yaptık
Bu kısma kadar postfix, mail ve certbot kurulumlarını gerçekleştirdik, daha sonra mail gönderimi sırasında aksaklık yaşamamak için mail hesap bilgilerimizi postfix’e tanımlayıp gerekli izinleri verdik. Bu kısımdan sonra yapacağımız işlem ise login olduktan sonra mail gönderimini sağlamak.
sudo nano /etc/profile
Yukarıdaki gibi profile dosyamızı düzenleme modunda açalım ve en alt satıra gelelim. Bu işlemleri yapmadan önce profile dosyanızı mutlaka yedekleyin, bir problem oluşması halinde geri alabilmek önemli.
if [ -n "$SSH_CLIENT" ]; then
TEXT="$(date): ssh login to ${USER}@$(hostname -f)"
TEXT="$TEXT from $(echo $SSH_CLIENT|awk '{print $1}')"
echo $TEXT|mail -s "ssh login" [email protected]
fi
Yukarıdaki işlemleri uyguladıktan sonra kaydedip çıkış yapıyoruz. Bu işlemden sonra her login sonrası tarafınıza mail gelmeye başlayacaktır.

Otomatik olarak login bilgilerinin mail olarak gelmesi ve logrotate Örneği :
- Bir konfigürasyon dosyası oluşturun: /etc/logrotate.d/sudo dizininde.
- Dosyayı açın ve aşağıdaki yapılandırmayı ekleyin:
/var/log/auth.log {
rotate 7
size=100M
daily
missingok
notifempty
compress
delaycompress
postrotate
/usr/local/bin/logrotate_mail.sh
endscript
}
- Bir script oluşturun /usr/local/bin/logrotate_mail.sh ve aşağıdaki kodları ekleyip ardından kaydedin.
#!/bin/bash
SUBJECT="Root Login Detect"
EMAIL="[email protected]"
/usr/bin/logger -t root -p local6.notice "Root Login Detect"
echo "Root Login Detect" | mail -s "$SUBJECT" "$EMAIL"
- Sistemi yeniden başlatın veya logrotate komutunu çalıştırın.
Bu yapılandırma, /var/log/auth.log dosyasını günlük olarak döndürür, en fazla 100 MB boyutunda tutar ve boş olmayan kayıtları sıkıştırır. Ayrıca, root girişleri tespit edildiğinde “Root Login Detect” mesajını gönderen bir logger
komutu çalıştırır.
Bu yapılandırma, her gün /var/log/auth.log dosyasını döndürür ve logrotate_mail.sh script’ini çalıştırarak SSH login olduğunda bir e-posta bildirimi gönderir.
Not: Bu yapılandırma, /var/log/auth.log dosyasında SSH login kayıtlarının bulunduğu varsayılmaktadır. SSH log dosyası farklı bir dizinde bulunuyorsa, logrotate yapılandırmasındaki dosya yolunu güncellemelisiniz.