SSH'nin sürüm numarasını tanıtmasını önleme


13

Kullandığım sunucu Ubuntu 10.10. Güvenliği sağlamak için sunucunun istemciye gönderdiği büyük başlığı düzenlemek istiyorum.

Bağlantı noktası 22 üzerindeki sunucuma telnet yaparsam, çalıştırdığım SSH'nin tam sürümünü (SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu4) söyler. Durum MySQL ve Cyrus için de aynı.

Herhangi bir öneri? En azından SSH için mi?

Teşekkürler


5
Umarım sunucunuzun güvenli olduğundan emin olmak için bu banner'ları kaldırmanın ötesinde bir şey olduğunu fark edersiniz.
Ben Pilbrow

10
Bu bilgiler büyük ölçüde ilgisizdir, botlar, sunucunuzun hangi sürüm bilgilerine bakılmaksızın eski sürümde çalışan saldırıları deneyecektir. Kötü niyetli olarak sunucunuza saldıran düşman kullanıcılar endişelerinizin en azıdır; dikkatsiz kullanıcılar genellikle çok daha tehlikelidir.
Chris S

Ben, sanırım ne istediğimi biliyorum. Ve nasıl bir NIX-Server korumak için biliyorum teşekkürler. Chris, karanlıkta gropping da iyidir. Snort ne olursa olsun, iptables
fail2bans

bildiğiniz sürece bu yapılacak çok şeyden biri, sorun değil. Sisteminizin süper güvenli olduğunu düşündüğünüzden gitmenizi istemedim, hepsi bu.
Ben Pilbrow

Auticracy'nin işaret ettiği gibi en azından "Debian-3ubuntu4" ü gizlemek istiyorum.
Lerikun

Yanıtlar:


17

Neredeyse evrensel olarak, banner'ları tanımlamak derlenmiş kodun bir parçasıdır ve bunları değiştirmek veya bastırmak için yapılandırma seçeneklerine sahip değildir. Bu yazılım parçalarını yeniden derlemeniz gerekecek.


Teşekkürler. Burada tek gerçek faydalı cevap. TCP Wrapper'a sadece bir banner ekliyorlar, ancak gerçek bilgileri gizlemiyorlar?
Lerikun

6
Sadece derlenmekle kalmaz, aynı zamanda istemciler tarafından uyumlu bağlantı düzeylerini belirlemek için kullanılır.
Jeremy Bouse

32

SSH arka plan programınızın sürüm numarasını gizlemek oldukça zor olsa da, linux sürümünü kolayca gizleyebilirsiniz (Debian-3ubuntu4)

Şu satırı ekle: /etc/ssh/sshd_config

DebianBanner no

Ve SSH arka plan programınızı yeniden başlatın: /etc/init.d/ssh restartveyaservice ssh restart


7
Teşekkürler, bu mükemmel çalışıyor! Sürüm bilgilerinin kaldırılmasının belirsiz bir güvenlik olduğunu ve çözdüğü daha fazla soruna neden olabileceğini kabul ediyorum. Debian olsa da, OpenSSH sadece kendi sürümünü değil, işletim sisteminin sürümünü ve özel lezzetini de duyurur - yani "SSH-2.0-OpenSSH_6.7p1 Raspbian-5 + deb8u3". Tebrikler, herhangi bir kimlik doğrulama olmadan, şimdi Raspbian çalıştıran bir RaspberryPi ile konuştuğunuzun farkındasınız ve bir sonraki belirgin adımınız varsayılan parolayla "pi" olarak bağlanmaya çalışmak olacaktır. IMHO bu ilk tarihte çok bilgi yol WAY veriyor.
Saustrup

Parlak, burada bulunan en iyi gizli mücevherlerden biri.
Rui F Ribeiro

19

Bunları gizlemek sunucunuzu güvenli hale getirmez. Sisteminizin çalıştığını parmak iziyle izlemenin daha birçok yolu vardır. Özellikle SSH için sürüm duyurusu protokolün bir parçasıdır ve gereklidir.

http://www.snailbook.com/faq/version-string.auto.html


İnsanlar sisteminiz hakkında ne kadar az bilgi sahibi olurlar ... Katılmıyorsunuz. Peki ya diğer hizmetler? Genel olarak Cyrus (IMAP / POP3) ve MySQL ve diğerleri hakkında konuşuyorum. Ve iki Yönetici varsa - protokole bağlı kalmam gerekmiyor mu ?!
Lerikun

3
@lerikun: Korkutucu hackerlarla paylaşmakla ilgili değil. SSH'nin bağlanamamasıyla ilgili çünkü hangi protokolü kullanacağını bilmiyor. SSHD duyurmak zorunda.
Aralık'ta Satanicpuppy

9
"Sisteminizi ne kadar az kişi bilirse o kadar iyi". Evet, bu kulağa hoş gelen ama fazla bir şey yapmayan bir ifade, "Eğer piyangoyu kazanırsam ..." gibi. Belirsizlik yoluyla güvenlik en iyi ihtimalle zayıf güvenliktir.
Rob Moir

1
Robert, bu bir anlam ifade ediyor. Kasa neden kimsenin göremediği karanlık odada? ... Boşver. Sunucumu nasıl güven altına alacağımı sormuyorum. Sanırım sorum açıktı. Evet Otokrasi En azından onlardan kurtulmak istiyorum.
Lerikun

2
Değeri için, robert moir tamamen doğru.
Sirex

8

Sürüm duyurusunu gerçekten değiştiremeyeceğinizden eminim.

SSHD'yi korumanın en iyi yolları:

  1. Varsayılan bağlantı noktası numarasını değiştirin.
  2. Kök oturum açmalarını yasaklayın.
  3. Protokol 2'yi zorla (varsayılan olarak yapılmadığı varsayılarak).
  4. SSH'ye girmesine izin verilen sunucuları beyaz listeye alın.

İlk üçü / etc / sshd_config değiştirerek yapılabilir

Dördüncü, hangi güvenlik duvarı yazılımını kullandığınıza bağlıdır.


1/2/3 zaten yapıldı. sertifika kullanan parola yok. Fail2ban (IMAP, POP, SMTP, VPN, WEB) ve denyhosts (SSH) Soru, diğer hizmetler için sürüm duyurularıyla ilgili.
Lerikun

6

Yukarıda belirtildiği gibi, sürüm numarasını değiştirmek

  1. Yapması zor
  2. Belirsizlik yoluyla güvenlik
  3. Esnek değil

Benim önerdiğim Port Knocking uygulaması. Sunucunuzda çalışan her şeyi gizlemek oldukça basit bir tekniktir.

İşte iyi bir uygulama: http://www.zeroflux.org/projects/knock

SSH'yi sadece 'gizli vuruşu' bilen insanlara açmak için sunucularıma (diğer numaralar) şu şekilde uyguladım:

[openSSH]
    sequence = 300,4000,32
    seq_timeout = 5
    command = /opencloseport.sh %IP% 2305
    tcpflags = syn

Bu, 3 SYN paketinin doğru sırada alınması gereken 5 saniyelik bir pencere verecektir. Birbirinden uzak ve sıralı olmayan bağlantı noktalarını seçin. Bu şekilde, bir portscanner bağlantı noktasını yanlışlıkla açamaz. Bu portların iptables tarafından açılmasına gerek yoktur.

Aradığım senaryo bu. SYN paketlerini gönderen IP için 5 saniye boyunca belirli bir bağlantı noktasını açar.

#!/bin/bash
/sbin/iptables -I INPUT -s $1 -p tcp --dport $2  -j ACCEPT
sleep 5
/sbin/iptables -D INPUT -s $1 -p tcp --dport $2  -j ACCEPT

Sunucularımın SSH'sine bağlanmak için betiği kullanmak için SYN paketlerini göndermek gerçek bir acı olabilir:

#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh $5@$1 -p $6

(Burada neler olduğu çok açık ...)

Bağlantı kurulduktan sonra, bağlantı noktası kapatılabilir. İpucu: Anahtar kimlik doğrulamasını kullanın. Aksi takdirde şifrenizi yazmak için çok hızlı olmanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.