Bir sunucumla ilgili birkaç güvenlik sorunum var, birkaç SSH kullanıcısı yangınlar olarak da adlandırılıyor.
İsterim:
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. :)
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.
[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:
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>
.
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ı .
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
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.
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/
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.