SSH güvenliğini nasıl artırabilirim? Hem anahtar hem de şifre isteyebilir miyim?


16

Küçük bir sunucu ağım var ve genel güvenliği artırmak istiyorum. Bir VPN kurmak için yeterli zamanım / param / paranoyam yok - sistemimin güvenliğini arttırmanın temel yolu nedir?

Bir şey, kullanıcıların hem anahtarlarını göndermelerini hem de bir şifre girmelerini istemek olabilir. Çünkü "ssh anahtar parola" hakkında her şey bir parola olmadan sshing hakkında çünkü bu google için zor. :-)

Her zaman oynamak istediğim bir şema, gelen bağlantıların sadece dyndns ip adreslerinin bir beyaz listesinden gelmesini gerektiriyor. Bazı güvenlik başkanlarının bu düşüncenin düşüncesinde kusacağını biliyorum, ama asıl mesele, bir kutuyu kullanmak için çok önemli bir karmaşıklık katacağıdır.

Ne düşünüyorsun? Orada başka ne var?


AllowUsers veya DenyUsers yönergelerini kullanarak bağlanmasına izin verilen kullanıcıların listesini de kısıtlayabilirsiniz. Bu yazı hakkında daha fazla bilgi .
Fred

Yanıtlar:


8

Şifre ve anahtar ile giriş "sadece anahtar ile" ile aynıdır. Anahtar oluşturma sırasında sizden parola girmeniz istenir. Boş bırakırsanız, şifre girmeniz istenmez. Bazı parolaları doldurursanız, her giriş yapmak istediğinizde sizden istenir.

Güvenlik konusunda endişeleriniz varsa, bu forumda trilyon kez belirtilen şu önerileri dikkate alın:

  • Kök için ssh girişini devre dışı bırak
  • Yalnızca tanımlanmış ip adreslerinden ssh erişimine izin ver (iptables, hosts.allow, ...)
  • Ssh portunu başka bir porta taşıyın (güvenlikten daha belirsiz; ancak işe yarıyor)
  • Yabancı giriş denemelerini izleyin ve buna göre tepki verin
  • Sisteminizi güncel tutun

Vs vs.

Güncelleme: OpenSSH sunucusuyla hem ortak anahtar hem de yerel sistem şifresi gerektirme konusunda lütfen cevaba bakınız .


Tüm ipuçlarınız için teşekkürler, bunlara bakacağız. anahtar ve parola gerekiyorsa, bir açıklayıcı bir parola bulursa (kullanıcı güvensiz olan başka bir yerde kullanıyorsa), anahtar olmadan giremezler ve açıklayıcı anahtarı kullanıcının makinesinden çalarsa , şifreyi bilmeden giremezler… değil mi?
John Bachir

12
Aynı şey değil. Yalnızca anahtara ihtiyacınız varsa, sunucu anahtar üzerinde parola güvenlik ilkesi uygulayamaz. Dikkatsiz bir kullanıcı, istemcinin üzerinde şifrelenmemiş bir özel anahtarın çalınması durumunda sunucunuzu savunmasız bırakmasını sağlayabilir.
200_success

mkudlacek - Daha önce hosts.allow hakkında bilmiyordum - etrafta dolaşmak, sanki benim beyaz liste fikrim o kadar aptalca değil, sanırım bunu deneyeceğim.
John Bachir

1
200_success - bu yüzden hem bir anahtar hem de bir şifre gerekli mi?
John Bachir

DenyHosts uygulamasını, içeri girmeye ve başarısız olmaya çalışan insanları kilitlemeye yardımcı olmak için de kullanıyorum. İnsanları kara listeye almak için güzel bir proaktif otomatikleştirilmiş yol ..
James T Snell

6

İlginç bulduğum bir fikir port çalma - temel olarak, ssh bağlantısı kurmak için, ssh sunucusu bir bağlantı isteğini kabul etmeden önce, diğer bağlantı noktalarının bir sırasını araştırmanız gerekir. Doğru bağlantı noktaları dizisi kullanılmazsa, yanıt gelmez, bu nedenle etkin olarak çalışan bir ssh sunucusu yokmuş gibi görünür. Bağlantı noktalarının sırası özelleştirilebilir ve hedeflediğiniz kullanıcılarla paylaşılabilir; diğer herkes etkili bir şekilde bağlantı kuramaz.

Bunu kendim denemedim, ancak duyduğumdan (aslında çok fazla değil) ek yük ihmal edilebilir ve görünürlük profilinizi muazzam bir şekilde düşürür.


Ben sadece "genel güvenliği artırmak" istiyorsanız ben bununla giderdim ama bunun yerine muhtemelen belirli güvenlik sorunlarını çözmeye çalışmalısınız.
Stefan Thyberg

Bunu ssh yaptığım tüm sitelerde kullanıyorum ve çok etkili bir imho.
Sirex

Bu, 4 karakterden daha uzun bir parolaya sahip olmakla aynı şey değil mi?
John Bachir

pek sayılmaz. 65536 port ve 26 harf var. Ayrıca herhangi bir uzunlukta vuruntu dizisine sahipsiniz ve standart güvenlik duvarı tekniklerini kullanarak yeniden denemeleri sınırlayabilirsiniz. Kendi başına güvenlik değil, ama olması güzel.
Sirex

Peki o zaman 8 veya 12 karakter daha uzun :-D
John Bachir

3

Doğrudan SSH'de etkinleştirme ile ilgili yamalar ve ilgili birçok tartışma:

Bu, ForceCommandyapılandırma seçeneğinin kullanımı ile birleştirilmiş bir parola doğrulama komut dosyasına sahip olarak değişiklik yapılmadan da yapılabilir .

Son olarak, bunun için hiçbir modül mevcut olmasa da, ortak anahtar kimlik doğrulamasını PAM'a taşıdıysanız, PAM kimlik doğrulaması başarılı sayılmadan önce her iki adımı da geçmeniz gerekebilir.


2

Sadece kullan

RequiredAuthentications publickey, password

içinde sshd_configsen ssh.com gelen sshd kullanıyorsanız. Bu özellik OpenSSH'de mevcut değildir.


RequiredAuthenticationskesinlikle OpenSSH'nin standart dışı bir uzantısıdır
Hubert Kario

Hangi sshd uygulamalarının bunu desteklediğini biliyor musunuz?
John Bachir

Tectia SSH sunucusu bunu destekliyor. BTW: Yorumlarına cevap verirken @nameOfUser kullanın, bu şekilde cevap hakkında bilgilendirilirler
Hubert Kario


1

Güvenliği artırmak için bir defalık şifreler de kullanabilirsiniz . Bu, kullanıcıların daha önce bir sonraki şifreyi oluşturmaları durumunda, tuş kaydediciye sahip olabilecek güvenli olmayan bir terminalden giriş yapmalarını sağlar. Ayrıca, her zaman yanınızda taşıdığınız eski Java MIDP telefonlarına bile kurulabilen parola oluşturucular vardır.


Evet, kişisel sunucumda şifreme ek olarak bir Yubikey jetonu kullanıyorum. Simge bir defalık bir şifre oluşturur. Her ikisi de kimlik doğrulaması için gereklidir. Alternatif olarak, bir SSH anahtarıyla kimlik doğrulaması yaparsanız, parola / otp çiftinin atlanmasına izin veririm. Yubikey ucuz ve Linux'un genişletilebilir kimlik doğrulama sistemi Pam ile entegre olacak birçok yazılım var.
Martijn Heemels

1

Ben hiç bir sshd, rdp ya da IP kısıtlaması olmadan böyle bir yönetim hizmetleri çalıştırmak asla tavsiye ederim. Aslında, VPN üzerinden bağlanan yöneticilere bu tür hizmetlere erişimi sınırlamanızı öneririm.


1

Hem anahtar hem de şifre istemeyle ilgili orijinal sorunuzla ilgili olarak, RHEL veya CentOS 6.3 çalıştırıyorsanız, bu artık mümkündür. RHEL 6.3 sürüm notları sizin sshd_config bu ekleme meselesi, tarif

RequiredAuthentications2 publickey,password

0

3molo ile kesinlikle katılıyorum. OpenSSH, Linux ve Unix'in varsayılan SSH sunucusudur. Bunu değiştirmek için hiçbir nedenimiz yok, özellikle güvenlik için. VPN, trafiğimizi şifreleyebilen ve 2 adımlı şifre yetkilendirmesi sağlayabilen en iyi çözüm olmalıdır.


0

Kimsenin neden bahsetmediğinden emin değilim - - artık güvenli kabul edilmeyen varsayılan 1024 bit'ten daha uzun anahtarlar oluşturduğunuzdan emin olmalısınız.

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.