it-swarm-tr.com

Sunucumdaki kullanıcıları ve SSH erişim denemelerini nasıl denetleyebilirim?

Bir sunucumla ilgili birkaç güvenlik sorunum var, birkaç SSH kullanıcısı yangınlar olarak da adlandırılıyor.

İsterim:

  • Kullanıcı oturumlarını ve çıkışları izleme
  • Herhangi bir kötü amaçlı etkinliği keşfetmek için bu SSH'nin etkinliğini izleyin
  • Kullanıcıların günlükleri silmesini önleme

Ben bir sys yöneticisi değilim ve bu konuda oldukça deneyimsizim, bu nedenle her türlü tavsiye çok hoş ve çok yararlı olacaktır. :)

28
RadiantHex

SSH sunucularından bahsettiğimiz için size komut satırı çözümleri vereceğim.

  • Kullanıcı oturumlarını ve çıkışları izleyin. Bu kolay, /var/log/auth.log Dosyasında bu bilgiler bulunmalıdır.

  • Bu kullanıcıların etkinliklerini izleyin: Oldukça masumlarsa, kendi dizinlerinde .bash_history Dosyasını kontrol edebilirsiniz. Yürüttükleri komutların bir listesini göreceksiniz. Sorun tabii ki bu dosyayı silebilir veya düzenleyebilir.

  • Kullanıcıların günlükleri silmesini önleme: Kullanıcılar auth.log Öğesine dokunamamalıdır. .bash_history İle oynamalarını durdurmak için birkaç numara yapmanız gerekir.

  • Kullanıcı root erişimi elde etmeyi başarırsa ne olur? : Sarhoşsun. Bir hata yapmazlarsa tüm adımlarını gizleyebilecekler.

27
Javier Rivera

[YASAL UYARI] Partiye geç kaldığımı fark ettim, ama verdiğim bir cevabı başka bir soruya yapıştırmak istiyorum , çünkü okuyuculara iyi bir fikir verebilir ve bu soru temel ssh bilgileri için en iyi yer gibi görünüyor.

AskUbuntu'daki this sorusunu okuduktan ve VPS'mi kontrol ettikten sonra, sadece bazilyon kaba kuvvet girişimlerini görmek için beni etkileyen benzer bir sorun vardı. İşte o zaman harekete geçmeye karar verdim.

Şimdi bağlandığım soruya göre, ssh üzerinde makinenizde başarısız giriş denemelerini görmek istiyorsanız (kaba kuvvet girişimleri veya herhangi bir şey olabilir) şunu yazmayı deneyin:

grep sshd.\*Failed /var/log/auth.log | less

Çıktı birden fazla satırdan oluşuyorsa, bu özellikle kaba aralıklar arasında gerçekleşmişse birçok kaba kuvvet teşebbüsüdür, aşağıdaki eylem parçalarını yapmak isteyebilirsiniz:

Ssh yapılandırma dosyasını değiştirme

Bunu yapmak için, /etc/ssh/sshd_config konumundaki dosyayı _ gibi favori düzenleyicinizle açın vim /etc/ssh/sshd_config.

1. Ssh'yi 22 numaralı bağlantı noktasından taşımayı deneyin : Şimdi şu satırı bulun:

# What ports, IPs and protocols we listen for
Port 22

ve Port 22'ye yorum yapın ve hoşunuza giden herkesi kullanın. Misal:

# What ports, IPs and protocols we listen for
# Port 22
Port 28934

Lütfen 1024'ün altındaki bağlantı noktalarının özel (kök) izne ihtiyacı olduğunu unutmayın. Bunun nasıl müdahale edebileceğini bilmiyorum, ama sadece söylüyorum.

2. Kök oturumlarını ssh ile devre dışı bırak: Kök kullanıcı adı öngörülebilir olduğundan ve sisteminize tam erişim sağladığından, SSH üzerinden bu hesaba izinsiz erişim sağlamak akıllıca değildir. PermitRootLogin satırını bulun ve no olarak ayarlayın.

PermitRootLogin no

3. Parola kimlik doğrulamasını devre dışı bırak : Sisteminizde oturum açmak için SSH anahtarları oluşturun ve kullanın. Parolalar etkinleştirilmeden, saldırganların sunucunuza erişmek için SSH özel anahtarınızı tahmin etmesi (veya çalması) gerekir. Çok zor bir şey. PasswordAuthentication yazan satırı bulmaya devam edin ve no olarak ayarlayın

PasswordAuthentication no

! UYARI! Bunu yapmadan önce, lütfen sertifika kimlik doğrulamasının nasıl ayarlanacağı hakkında bu kılavuza bakın buraya .

NOT: Değişiklikleri yaptıktan sonra Sudo /etc/init.d/ssh restart. Başka bir bağlantı noktasına ssh ile bağlanmak için: ssh [email protected] -p <port_number>.

Güvenlik duvarı kurun

Linux'a entegre edilmiş son derece güçlü ve etkili bir güvenlik duvarının nasıl kurulacağı konusunda lütfen bu kılavuz , IPTable'ları .

Güvenlik konusunda size yardımcı olacak komut dosyaları ayarlama

Kişisel ve hızlı bir şekilde aklıma gelen biri Fail2Ban . Fail2ban, başarısız giriş girişimleri için günlük dosyalarınızı izleyecektir. Bir IP adresi maksimum kimlik doğrulama girişimi sayısını aştıktan sonra, ağ düzeyinde engellenir ve etkinlik oturum açılır /var/log/fail2ban.log. Yüklemek için: Sudo apt-get install fail2ban

Komut geçmişini ssh ile kontrol etme

Bu noktaya kadar hangi komutların girildiğini görmenizi sağlayan history adlı bir linux komutu vardır. O noktaya kadar olan tüm komutları görmek için bir terminale history yazmayı deneyin. kök olmanız size yardımcı olabilir.

Belirli bir komutu ( aramak için şunu deneyin: history | grep command-name

Kime ssh sonrası tüm komutları listelemek için : fc -l ssh

Ayrıca vi kullanarak komutları düzenleyebilirsiniz (vim de denemedim, ama ben de işe yarıyor varsayıyorum): fc -e vi

Ayrıca geçmişi silebilirsiniz : history -c

NOT: history komutunun hayranı değilseniz, ana dizininizde de bir dosya vardır (cd ~) olarak adlandırılır . bash_history (bash kullanıyorsanız), yazılanların tümünü görmek için cat bash Kabuk.

6
NlightNFotis

Biraz abartılı, ancak "process event connector" kullanarak sisteminizde çalıştırılan her şeyi görebilirsiniz:

http://www.outflux.net/blog/archives/2010/07/01/reporting-all-execs/

4
Kees Cook
  1. Javier bunu zaten yanıtladı: /var/log/auth.log
  2. Bununla ilgili harika bir makale buldum burada .
  3. Kullanıcılarınızın root erişimi yoksa, günlük dosyalarınızın güvenli olması gerekir. Kullanıcılarınızın neye erişebileceğini ve nasıl erişeceğini kısıtlamak için sudoers dosyasında bazı özel kurallar oluşturmayı deneyebilirsiniz. Ayrıca sshd arka plan programı için günlük seviyesini artırabilirsiniz.
3
Radu Cotescu

Girişin yanı sıra, kullanıcıların temel Linux bilgilerine sahip olduklarını varsayarak, Shell günlüğünü devre dışı bırakabilecekleri veya diğer kabuklardan (örn.

Bunun yerine ssh erişimi sağlama konusunda muhafazakar olmalısınız, gerçekten buna ihtiyaçları var mı? Shell sağlama işinde değilseniz ssh erişimi vermek çok yaygın değildir.

3
João Pinto