İnternete ssh ile kişisel bir sunucu açmak ne kadar riskli?


25

Başlığın devamı “İnternet güvenliği konusunda sınırlı bilgiye sahipken” olacaktır.

Geçenlerde kişisel bir veri deposu olarak kullanmak amacıyla debian çalışan düşük uçlu bir bilgisayara sahip küçük bir sunucu kurdum. Ssh'yi etkinleştirdim ve kaba kuvvet saldırıları ve benzeri şeylerden muzdarip olduğu çabukluğa oldukça şaşırdım. Sonra bu olduğunu okumak oldukça yaygın ve (onunla ServerFault anlaşma üzerinde soru ve kopyaların sürü örneğin bkz bu saldırıları savuşturmak için temel güvenlik önlemleri hakkında öğrenilen bu bir veya bunu ).

Ama şimdi merak ediyorum, bütün bunlar çabaya değer mi? Çoğunlukla eğlence için kendi sunucumu kurmaya karar verdim: sadece gitbucket.org, bettercodes.org, vb. Tarafından sunulanlar gibi üçüncü taraf çözümlerine güvenebilirdim. Bir uzman olmaya adamak ve doğru korunma önlemlerini aldığımdan neredeyse emin olmak için yeterli zaman.

Bu oyuncak projesinde oynamaya devam edip etmeyeceğime karar vermek için, bunu yaparken gerçekten neyi riske attığımı bilmek istiyorum. Örneğin, ağımla bağlantılı diğer bilgisayarlar da ne ölçüde tehdit ediyor? Bu bilgisayarların bazıları, Windows işletim sisteminden daha az bilgiye sahip kişiler tarafından kullanılıyor.

Güçlü parola, ssh için engelli kök erişimi, ssh için standart olmayan bağlantı noktası ve parola girişini devre dışı bırakma ve fail2ban, denyhosts veya iptables kurallarından birini kullanma gibi temel yönergeleri izlerseniz, başım derde girme ihtimalim nedir?

Başka bir deyişle, korkmam gereken bazı kötü kurtlar var mı, yoksa hepsi senaryo çocuklarından kaçmakla mı ilgili?


$ TECHNOLOGY güvenliğinde uzman olmak için vaktiniz veya eğilmeniz olmadığını söylerken kafandaki tırnağa çarptığınızı düşünüyorum; Bu, barındırılan bir çözümü kullanmanın birincil nedenidir. Şirket içi vs barındırmadaki değerlendirmenin diğer ortak argümanı maliyetidir. Github ve benzerleri ücretsiz olduğu için, esasen git repoyu nasıl çalıştıracağınız hakkında bilgi edinmek için kişisel zamanınızı bırakıyorsunuz. Size kişisel zamanınızla ne yapmanız gerektiğini söyleyemeyiz, ancak profesyonel bir durumda bunun bir anlamı olmaz. (ihtar emptor: karmaşık durumlarda daha değişken var).
Chris S

1
Kendi sunucunuzu çalıştırmaya karar verirseniz, çalıştırdığınız her hizmet için güncellemeleri ve güvenlik açıklarını kontrol eden yapılacaklar listesine de ekleyin. Sadece ayarlamak yeterli değil.
hafta

İki kelime: @Stephane'nin dediği gibi genel anahtarlar . keyboard-interactiveKimlik doğrulamayı devre dışı bırakın ve yalnızca pubkeykimlik doğrulamasını kullanın .
kostix

Yanıtlar:


14

IMO SSH, açık internette dinlemek için en güvenli şeylerden biri. Gerçekten endişeleniyorsanız, standart olmayan bir yüksek uç bağlantı noktasında dinleyin. Kutunuzla gerçek İnternet arasında hala bir (aygıt seviyesi) güvenlik duvarı var ve SSH için bağlantı noktası iletmeyi kullanıyorum, ancak bu diğer hizmetlere karşı bir önlem. SSH'nin kendisi oldukça sağlam.

Ben var (Time Warner Cable açık) insanlar bazen benim ev SSH sunucusuna hit vardı. Asla gerçek bir etkisi olmadı.

SSH'yi daha güvenli hale getirmek için yapabileceğiniz bazı ek şeyler, aynı IP adresinden bir ev cihazı için tekrarlanan girişimleri önlemek gibidir.

MaxStartups 2:30:10

/ etc / ssh / sshd_config dosyasında, başarılı bir şekilde giriş yapmadan önce bir satırda kaç tane bağlantı oluşturulabileceğini kısıtlar.


İnternet servis sağlayıcım, ssh için bir bağlantı noktası açarken parametrelerini gördüğüm bir güvenlik duvarı sağlıyor. Bahsettiğiniz şey mi?
Alfred M.

2
Olabilir, bazı ISS'ler size aptal bir cihaz, bazıları ise güvenlik duvarı olan bir yönlendirici verir. Sadece , ne tür önlemler alırsanız alınsın, doğrudan İnternet'e genel amaçlı bir işletim sistemi koymanın ASLA iyi bir fikir olmadığını söylüyorum . Sen ve kötü arasında bir çeşit donanım cihazı (ya da DD-WRT gibi bir şey) istiyorsun.
TheFiddlerWins

1
Ortak anahtar kimlik doğrulamasını başka bir cevapta belirtildiği gibi ayarlayın ve / etc / ssh / sshd_config dosyasında ChallengeResponseAuthentication ve PasswordAuthentication'ı KAPATIN.
Randy Orrison

Bunun aptalca bir soru olduğunu biliyorum ama internetten sunucuma (ssh veya tarayıcı üzerinden) erişmek için bir alan adı almam gerekiyor mu?
TheRookierLearner

@TheRookierLearner - hayır, ISS'nizin size verdiği IP adresini kullanabilirsiniz. Ancak, ev ağınızın yapılandırmasına bağlı olarak, tüm cihazlarınızda PNAT adlı bir şeyle paylaşılabilir (çoğu kişi sadece NAT der). İnsanların çoğunluğunu seviyorsanız, internetten erişmek istediğiniz belirli cihazın "NATed" IP'sini bulmanız gerekir (sistemde sadece ifconfig / ipconfig ise, bir 10.xxx, 172.16 olacaktır.). xx veya 192.168.xx adresi, bu numaralara önem verdiğinizden daha fazla bilgi için RFC 1918'e bakın) ve yönlendiricinize "port ileri" veya "DMZ" port 22'ye
göndermelerini söyleyin

10

SSH ile ortak bir anahtar kimlik doğrulama sistemi kurmak gerçekten önemsizdir ve kurulumu yaklaşık 5 dakika sürer .

Tüm SSH bağlantılarını kullanmaya zorlarsanız, sisteminizi güvenlik altyapısına LOT yatırmadan umut edebileceğiniz kadar esnek hale getirir. Açıkçası, o kadar basit ve etkili (200 hesabınız olmadığı sürece - o zaman dağınık olur) kullanmamak kamu suçu olmalıdır.


3
SSH bağlantılarını ayarladıktan sonra genel anahtar kimlik doğrulamasını kullanmaya zorlamak için, / etc / ssh / sshd_config dosyasında ChallengeResponseAuthentication ve PasswordAuthentication'ı KAPALI konuma getirdiğinizden emin olun. Bunu bir kez unuttum, pişmanlığımdan çok (bir kez ve bir daha asla).
Randy Orrison

8

Ayrıca SSH'de dünyaya açık kişisel bir git sunucusu çalıştırıyorum ve aynı zamanda sizin gibi aynı kaba kuvvet sorunlarına da sahibim, böylece durumunuza sempati duyabilirim.

TheFiddlerWins, zaten SSH'nin herkesin erişebileceği bir IP'de açık olmasının temel güvenlik etkilerini ele aldı, ancak kaba kuvvet girişimlerine yanıt olarak en iyi araç IMO'su Fail2Ban - kimlik doğrulama günlük dosyalarınızı izleyen, izinsiz giriş denemelerini tespit eden ve güvenlik duvarı kurallarını ekleyen yazılım Makinenin yerel iptablesgüvenlik duvarı. Hem bir yasaklamadan önce kaç deneme yapılabileceğini hem de yasağın uzunluğunu yapılandırabilirsiniz (varsayılan değer 10 gündür).


Önceki yazıdaki yorumumun belirttiği gibi, NAS'ımın evde kullandığı şeydi ve birkaç ay sonra, katılımcıların sayısı önemli ölçüde azaldı.
mveroone

2

Bununla başa çıkmanın başka bir yolu da VPN kurmak. Doğrudan ev sunucunuzdaki SSH bağlantı noktalarına bağlanmak yerine, önce VPN'e bağlanın, ardından tüm trafiğinizi şifreli, güvenli bağlantı üzerinden geçirin.

Bunu yapmanın ideal yolu, bir VPN Endpoint'i içeren bir güvenlik duvarıdır, ancak bir VPN sunucusu olarak çalışacak bir Windows bilgisayarı da ayarlayabilirsiniz.

İşte bir örnek:

http://www.howtogeek.com/135996/

Şimdi, uygun bir güvenlik yapılandırmasının, iç ağınızdan izole edilmiş olan bir ortak (veya yarı ortak) bilgisayarı içereceğini unutmayın. Bir web sunucusu veya kamuya açık hizmetleri barındıran herhangi bir bilgisayar, evinizin veya ofisinizin güvenli ağının dışında olmalıdır. İnternet ile aranızda güvenli bir bölge veya bir DMZ oluşturmak için 2 yönlendirici kullanırsınız.

Bu şekilde, sunucunuz saldırıya uğradığında, diğer bilgisayarlara saldırmak için bir vektör olarak kullanılamaz.

Böylece kurulum şöyle görünürdü:

DMZ Yapılandırması


Küçük resim için üzgünüm ... Gönderimimi nasıl düzenleyeceğimi bilemiyorum.
TomXP411

2

Cevaplar çok iyi, sadece iki şeyi öneriyorum:

  • Erişimi yalnızca anahtar kimlik doğrulama sistemi ile düşünün
  • Denyhosts Kullan : Sunucunuza, geçersiz auth ile erişmeye çalışan ana bilgisayarları yasaklar.
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.