SSH Girişlerini Telegram veya E-posta ile Bildirim Alma

Sunucu güvenliği, modern BT altyapılarında kritik bir önceliktir. SSH protokolü üzerinden yapılan girişler, yetkisiz erişim girişimlerinin en yaygın yollarından biridir.

Sunucu güvenliği, modern BT altyapılarında kritik bir önceliktir. SSH protokolü üzerinden yapılan girişler, yetkisiz erişim girişimlerinin en yaygın yollarından biridir. Bu girişleri gerçek zamanlı olarak izlemek ve bildirim almak, olası tehditleri hızla tespit etmenizi sağlar. Bu makalede, Linux tabanlı sunucularda SSH erişimlerini Telegram botu veya e-posta yoluyla bildirim alacak şekilde yapılandırmanın pratik yöntemlerini adım adım ele alacağız. Bu yaklaşım, sistem yöneticilerine proaktif bir izleme imkanı sunar ve manuel log incelemeyi ortadan kaldırır. Yapılandırma işlemleri, hem bireysel hem de kurumsal ortamlarda güvenilir sonuçlar verir.

SSH Loglarını Etkili Şekilde İzleme

SSH erişim bildirimlerinin temelini, sistem loglarını doğru yapılandırmak oluşturur. Ubuntu veya Debian tabanlı sistemlerde, SSH logları varsayılan olarak /var/log/auth.log dosyasında tutulur. Bu dosyayı izlemek için öncelikle SSH servisinin log seviyesini artırmak faydalıdır. /etc/ssh/sshd_config dosyasını düzenleyin ve LogLevel VERBOSE satırını ekleyin. Değişiklikleri uygulamak üzere systemctl restart ssh komutuyla servisi yeniden başlatın. Bu ayar sayesinde, her başarılı erişimde kullanıcı adı, kaynak IP adresi, bağlantı zamanı ve kullanılan kimlik doğrulama yöntemi gibi detaylar ayrıntılı olarak kaydedilir. Log seviyesini yükseltmek, başarısız giriş girişimlerini de yakalayarak kapsamlı bir izleme sağlar.

Logları gerçek zamanlı izlemek için özel bir betik geliştirmek esastır. Bash tabanlı bir script ile tail -f /var/log/auth.log | grep 'Accepted publickey\|Accepted password' komutunu kullanarak erişim olaylarını filtreleyin. Bu filtreleme, hem publickey hem de parola tabanlı bağlantıları etkin şekilde yakalar. Betiği cron job olarak çalıştırmak yerine, systemd service dosyası oluşturarak daemon olarak yönetin. Örneğin, /etc/systemd/system/ssh-monitor.service dosyasını hazırlayın ve ExecStart=/usr/local/bin/ssh-notify.sh direktifiyle tetikleyin. Bu yöntem, log rotasyonuna karşı dayanıklıdır ve yüksek hacimli sunucularda bile minimum kaynak tüketimiyle çalışır. Uygulamadan önce filtrelemeyi test edin: Kendi hesabınızdan bir SSH bağlantısı kurun, log çıktısını inceleyin ve beklenen detayların yakalandığından emin olun. Ayrıca, başarısız girişler için ayrı bir filtre ekleyerek güvenlik olaylarını daha iyi sınıflandırabilirsiniz. Bu yapılandırma, sistem yöneticilerinin günlük operasyonlarını optimize eder ve erken uyarı mekanizmalarını güçlendirir. (Toplam 248 kelime)

Telegram Botu ile Anlık Bildirimler

Telegram entegrasyonu, mobil cihazlara hızlı bildirim göndermenin en verimli yoludur. İşleme başlamadan önce Telegram uygulamasında @BotFather hesabıyla yeni bir bot oluşturun ve elde ettiğiniz API token’ını not edin. Bildirimlerin gönderileceği kanal veya sohbetin chat ID’sini belirlemek için ilgili API endpoint’ini manuel olarak sorgulayın. Python tabanlı bir script geliştirerek entegrasyonu sağlayın; öncelikle pip install requests komutuyla gerekli kütüphaneyi yükleyin. Bu altyapı, sunucu loglarını anlık olarak tarar ve onaylanmış bağlantıları saniyeler içinde kullanıcıya ulaştırır. Kurumsal ekipler için birden fazla sunucudan merkezi bildirim toplama özelliği sunar.

Python Script Örneği

Aşağıdaki örnek script, log dosyasını sürekli izleyerek Telegram’a bildirim gönderir. Script #!/usr/bin/env python3 shebang’iyle başlar, ardından import requests, re, subprocess, time modüllerini içe aktarın. Log izleme için process = subprocess.Popen(['tail', '-f', '/var/log/auth.log'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) kullanın. Her satır okunduğunda regex deseniyle eşleştirme yapın: match = re.search(r'Accepted (publickey|password) for (\w+) from ([\d.]+) port \d+', line). Eşleşme durumunda mesajı biçimlendirin: message = f"SSH Erişimi: Kullanıcı {match.group(2)} ({match.group(1)} yöntemi), IP: {match.group(3)}". Bildirimi göndermek için requests.post('https://api.telegram.org/bot{token}/sendMessage', data={'chat_id': chat_id, 'text': message}) fonksiyonunu çağırın. Script’i /usr/local/bin/ssh-telegram.py konumuna kaydedin, chmod +x /usr/local/bin/ssh-telegram.py ile çalıştırılabilir hale getirin ve systemd service olarak etkinleştirin. Bu kurulum, yüksek performanslı sunucularda kesintisiz çalışır ve test aşamasında manuel log girişleriyle doğrulanabilir. (Toplam 162 kelime)

Güvenlik ve Optimizasyon İpuçları

API token’ınızı korumak için /etc/ssh-telegram.conf gibi salt okunur bir konfigürasyon dosyasında saklayın; script içinde config = configparser.ConfigParser(); config.read('/etc/ssh-telegram.conf'); token = config['telegram']['token'] ile erişin. Aşırı bildirimleri önlemek adına rate limiting uygulayın: time.sleep(2) ekleyin. Proxy gereksinimlerinde proxies={'https': 'http://proxy:port'} parametresini requests çağrısına dahil edin. Log filtrelemesini regex ile hassaslaştırarak yalnızca kritik olayları yakalayın. Bu önlemler, kurumsal ölçekte DDoS benzeri spam saldırılarına karşı koruma sağlar ve kaynak kullanımını minimize eder. Gerçek senaryolarda, yoğun trafikli bir sunucuda filtreleme sayesinde bildirim hacmi yüzde 90 oranında azalır, sistem kararlılığını artırır. Düzenli güncellemelerle script’i bakım moduna alın. (Toplam 118 kelime)

Telegram entegrasyonu tamamlandıktan sonra, birden fazla sunucu için merkezi bir kanal oluşturarak ekip koordinasyonunu güçlendirin. (Toplam 312 kelime)

E-posta Tabanlı Bildirim Yapılandırması

E-posta bildirimleri, geleneksel sistemlerde güvenilir bir alternatif sunar. Yerel Mail Transfer Agent (MTA) olarak ssmtp veya Postfix kurun: apt update && apt install ssmtp mailutils komutlarıyla başlayın. /etc/ssmtp/ssmtp.conf dosyasını yapılandırın; örnek ayarlar: [email protected], mailhub=smtp.gmail.com:587, [email protected], AuthPass=uygulama-sifresi. Gmail kullanıyorsanız, 2FA etkin hesap için uygulama şifresi oluşturun. Test için echo "Test" | mail -s "Deneme" [email protected] çalıştırın. Bu kurulum, SSH monitor script’ine sorunsuz entegre olur ve arşivlenebilir bildirimler sağlar.

Bash tabanlı script ile entegrasyonu sağlayın: #!/bin/bash ile başlayın, ardından tail -f /var/log/auth.log | while read line; do if [[ $line =~ "Accepted" ]]; then user=$(echo "$line" | awk '{print $9}'); ip=$(echo "$line" | awk '{print $11}'); method=$(echo "$line" | awk '{print $8}'); echo "Yeni SSH Erişimi: Kullanıcı $user ($method), IP: $ip, Zaman: $(date)" | mail -s "Güvenlik Bildirimi - SSH Girişi" [email protected]; fi; done. Script’i /usr/local/bin/ssh-email.sh olarak kaydedin, chmod +x uygulayın ve systemd service ile daemonize edin. Log rotasyonunda kesinti olmaması için Restart=always direktifini ekleyin. Bu yöntem, e-posta filtreleme araçlarıyla uyumludur ve kurumsal SIEM sistemlerine entegre edilebilir. Test edin: Yeni bir bağlantı kurun ve gelen kutunuzu kontrol edin. (Toplam 168 kelime)

E-posta sistemini optimize etmek için SPF, DKIM ve DMARC kayıtlarını domain’inize ekleyin, spam filtrelerini aşın. Başarısız girişler için ayrı bir bildirim akışı tanımlayın. Bu yapılandırma, uzun vadeli log tutma ihtiyacını karşılar ve yedekleme stratejilerine uyar. (Toplam 312 kelime)

Bu yapılandırmalarla SSH erişimlerinizi etkili şekilde izleyebilir, güvenlik olaylarına anında müdahale edebilirsiniz. Uygulamadan sonra düzenli testler yaparak sistem bütünlüğünü koruyun ve gerektiğinde log filtrelerini ince ayarlayın. Proaktif izleme, sunucu güvenliğinizi önemli ölçüde güçlendirir.

Kategori: Güvenlik
Yazar: Lorem
çerik: 853 kelime
Okuma Süresi: 6 dakika
Zaman: Bugün
Yayım: 24-02-2026
Güncelleme: 24-02-2026