Anasayfa » nasıl » Linux PC'nizdeki OpenSSH'in Ins ve Out'larını Öğrenin

    Linux PC'nizdeki OpenSSH'in Ins ve Out'larını Öğrenin

    Hem güvenlik hem de uzaktan erişim için SSH'nin erdemlerini defalarca tükettik. Sunucunun kendisine, bazı önemli “bakım” özelliklerine ve aksi takdirde yumuşak bir sürüşe türbülans katabilecek bazı tuhaflıklarlara bakalım..

    Bu kılavuzu Linux düşünülerek yazsak da, Mac OS X ve Windows 7'deki OpenSSH için Cygwin üzerinden de uygulanabilir..

    Neden Güvenli

    SSH'nin verileri bir noktadan diğerine güvenli bir şekilde bağlamak ve tünel oluşturmak için harika bir yol olduğunu defalarca belirttik. İşlerin nasıl yürüdüğüne kısaca göz atalım, böylece işlerin neden bazen garip olabileceği konusunda daha iyi bir fikir edinebilirsiniz..

    Başka bir bilgisayarla bağlantı kurmaya karar verdiğimizde, birlikte çalışması kolay olan protokolleri kullanırız. Hem Telnet hem de FTP akla geliyor. Bilgileri uzaktaki bir sunucuya göndeririz ve sonra bağlantımız hakkında onay alırız. Bir tür güvenlik sağlamak için, bu protokoller genellikle kullanıcı adı ve şifre kombinasyonlarını kullanır. Bu tamamen güvende oldukları anlamına geliyor, değil mi? Yanlış!

    Bağlanma sürecimizi posta olarak düşünürsek, FTP ve Telnet ve benzerlerini kullanmak standart posta zarfları kullanmak gibi değildir. Kartpostal kullanmak gibi bir şey. Birisi orta adım atmaya başlarsa, hem muhabirlerin adresleri, hem de gönderilen kullanıcı adı ve parola dahil tüm bilgileri görebilirler. Ardından mesajı değiştirerek bilgiyi aynı tutabilir ve bir muhabiri veya diğerini taklit edebilir. Bu, “ortadaki adam” saldırısı olarak bilinir ve yalnızca hesabınızı tehlikeye atmakla kalmaz, aynı zamanda gönderilen ve alınan her iletiyi de sorgular. Gönderenle konuşup konuşmadığınızdan emin olamazsınız ve olmasanız bile, kimsenin aradaki her şeye bakmadığından emin olamazsınız..

    Şimdi, HTTP'yi daha güvenli hale getiren tür olan SSL şifrelemesine bakalım. Burada, yazışmaları yapan, alıcınızın kendisi olduğunu iddia edip etmediğini kontrol eden ve postanıza bakılmasını önleyen yasalar bulunan bir postanemiz var. Genel olarak daha güvenli ve merkezi otorite - Verisign, HTTPS örneğimiz için bir tane - posta gönderdiğiniz kişinin teslim almasını sağlıyor. Kartpostallara izin vermeyerek bunu yaparlar (şifrelenmemiş kimlik bilgileri); bunun yerine gerçek zarfları zorunlu kılarlar.

    Son olarak, SSH'ye bakalım. Burada kurulum biraz farklı. Burada merkezi bir doğrulayıcı yok, ancak işler hala güvende. Bunun sebebi, zaten bildiğiniz birisine mektup gönderiyorsunuz - örneğin, telefonda onlarla sohbet ederek - ve zarfınızı imzalamak için gerçekten lüks bir matematik kullanıyorsunuz. Adresini alması için onu kardeşine, kız arkadaşına, babasına veya kızına teslim edersin ve sadece alıcının süslü matematik eşleşmesi, adresin olması gerektiği gibi olduğunu düşünür. Ardından, bu müthiş matematik tarafından meraklı gözlerden de korunan bir mektup alırsınız. Son olarak, kimlik bilgilerinizi hedefe başka bir algoritmik olarak gizlenmiş gizemli zarfta gönderirsiniz. Matematik eşleşmezse, orijinal alıcının taşındığını ve adreslerini tekrar doğrulamamız gerektiğini varsayabiliriz..

    Açıkladığımız sürece, onu orada keseceğimizi düşünüyoruz. Biraz daha fazla kavrayışınız varsa, elbette yorumlarda sohbet etmekten çekinmeyin. Şimdilik, yine de SSH, ana bilgisayar kimlik doğrulamasının en alakalı özelliğine bakalım:.

    Ana Bilgisayar Anahtarları

    Ana bilgisayar kimlik doğrulaması, esasen güvendiğiniz birinin zarfı aldığı (sihirli matematikle mühürlenmiş) ve alıcınızın adresini onayladığı kısımdır. Adresin oldukça ayrıntılı bir açıklaması ve hemen atlayacağımız karmaşık bir matematiğe dayanıyor. Bununla birlikte, bundan kaçınmanız gereken birkaç önemli şey var:

    1. Merkezi bir otorite olmadığından, asıl güvenlik ana bilgisayar anahtarında, genel anahtarlarda ve özel anahtarlarda bulunur. (Bu son iki anahtar, sisteme erişiminiz olduğunda yapılandırılmıştır.)
    2. Genellikle, başka bir bilgisayara SSH ile bağlandığınızda, ana bilgisayar anahtarı saklanır. Bu, gelecekteki eylemleri daha hızlı (veya daha az ayrıntılı) hale getirir.
    3. Ana bilgisayar anahtarı değişirse, büyük olasılıkla uyarılacaksınız ve dikkatli olmalısınız.!

    Ana bilgisayar anahtarı, SSH sunucusunun kimliğini belirlemek için kimlik doğrulamadan önce kullanıldığından, bağlanmadan önce anahtarı kontrol ettiğinizden emin olmalısınız. Aşağıdaki gibi bir onay iletişim kutusu göreceksiniz.

    Endişelenmemelisin! Genellikle güvenlik bir endişe olduğunda, ana bilgisayar anahtarının (yukarıdaki ECDSA parmak izi) onaylanabileceği özel bir yer olacaktır. Tamamen çevrimiçi girişimlerde, genellikle güvenli bir oturum açma sadece sitede olacaktır. Bu anahtarı telefon üzerinden onaylamak için BT departmanınızı telefon etmeniz (veya seçmeniz gerekebilir!) Gerekebilir. Anahtarın çalışma etiketinde veya özel “Acil Numaralar” listesinde olduğu bazı yerleri bile duydum. Hedef makineye fiziksel erişiminiz varsa, kendiniz de kontrol edebilirsiniz.!

    Sisteminizin Ana Bilgisayar Anahtarını Kontrol Etme

    Anahtar yapmak için kullanılan 4 tip şifreleme algoritması vardır, ancak OpenSSH için bu yılın başındaki varsayılanı ECDSA'dır (bazı sebeplerle). Bugün buna odaklanacağız. İşte erişiminiz olan SSH sunucusunda çalıştırabileceğiniz komut:

    ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l

    Çıktınız şöyle bir şey döndürmelidir:

    256 ca: 62: ea: 7c: e4: 9e: 2e: a6: 94: 20: 11: db: 9c: 78: c3: 4c /etc/ssh/ssh_host_ecdsa_key.pub

    İlk sayı, anahtarın bit uzunluğudur, ardından anahtarın kendisidir ve nihayet içinde kayıtlı dosyayı bulundurursunuz. Bu orta kısmı uzaktan oturum açmanız istendiğinde gördüklerinizle karşılaştırın. Eşleşmeli ve hepiniz hazırsınız. Olmazsa, o zaman başka bir şey olabilir.

    Bilinen_host dosyalarına bakarak SSH ile bağlanmış olan tüm ana bilgisayarları görüntüleyebilirsin. Genellikle bulunur:

    ~ / .Ssh / known_hosts

    Bunu herhangi bir metin düzenleyicide açabilirsiniz. Bakarsanız, tuşların nasıl saklandığına dikkat edin. Ana bilgisayarın adı (veya web adresi) ve IP adresiyle birlikte depolanırlar..

    Ana Bilgisayar Anahtarlarını ve Sorunlarını Değiştirme

    Ana bilgisayar anahtarlarının değişmesinin birkaç nedeni var veya bilinen_hosts dosyanızda kayıtlı olanla eşleşmiyorlar..

    • Sistem yeniden kuruldu / yeniden yapılandırıldı.
    • Ana bilgisayar anahtarları güvenlik protokolleri nedeniyle el ile değiştirildi.
    • OpenSSH sunucusu güncellendi ve güvenlik nedeniyle farklı standartlar kullanıyor.
    • IP veya DNS kirası değişti. Bu, genellikle farklı bir bilgisayara erişmeye çalıştığınız anlamına gelir..
    • Sistem, bir şekilde ana bilgisayar anahtarının değişeceği şekilde tehlikeye girdi..

    Büyük olasılıkla, sorun ilk üçten biri ve bu değişikliği görmezden gelebilirsiniz. IP / DNS kirası değiştiyse, sunucuyla ilgili bir sorun olabilir ve farklı bir makineye yönlendirilmiş olabilirsiniz. Değişikliğin nedeninin ne olduğundan emin değilseniz, muhtemelen listedeki son listenin olduğunu varsaymalısınız..

    OpenSSH, Bilinmeyen Sunucuları Nasıl Yönetir?

    OpenSSH, “StrictHostKeyChecking” değişkenine yansıyan bilinmeyen ana bilgisayarları nasıl kullanacağına ilişkin bir ayara sahiptir (tırnak işaretleri olmadan).

    Yapılandırmanıza bağlı olarak, bilinmeyen ana bilgisayarlarla (anahtarları zaten bilinen_hosts dosyanızda olmayan) SSH bağlantıları üç yoldan gidebilir.

    • StrictHostKeyChecking, hayır olarak ayarlanır; OpenSSH, ana bilgisayar anahtarının durumuna bakılmaksızın herhangi bir SSH sunucusuna otomatik olarak bağlanacaktır. İşletim sisteminizi yeniden kurduktan sonra bir kaç ana bilgisayar ekliyorsanız, ardından değiştirmezseniz, bu güvensizdir ve önerilmez..
    • StrictHostKeyChecking sormak için ayarlanmış; OpenSSH size yeni ana bilgisayar anahtarlarını gösterecek ve eklemeden önce onayınızı isteyecektir. Bağlantıların değiştirilen ana bilgisayar anahtarlarına gitmesini önleyecektir. Bu varsayılan.
    • StrictHostKeyChecking evet olarak ayarlanmış; “Hayır” ın tersi, bilinen_hosts dosyanızda bulunmayan herhangi bir ana bilgisayara bağlanmanızı önler.

    Aşağıdaki paradigmayı kullanarak bu değişkeni komut satırından kolayca değiştirebilirsiniz:

    ssh -o 'StrictHostKeyChecking [seçenek]' kullanıcı @ ana bilgisayarı

    [Seçenek] yerine “hayır”, “sor” veya “evet” ile değiştirin. Bu değişkeni ve ayarını çevreleyen tek düz tırnak olduğunu unutmayın. Ayrıca user @ host komutunu, bağlandığınız sunucunun kullanıcı adı ve ana bilgisayar adı ile değiştirin. Örneğin:

    ssh -o 'StrictHostKeyChecking ask' [email protected]

    Değiştirilen Anahtarlar nedeniyle Engellenen Ana Bilgisayarlar

    Erişmeye çalıştığınız, anahtarı önceden değiştirilmiş bir sunucunuz varsa, varsayılan OpenSSH yapılandırması erişmenize engel olur. Bu konağın StrictHostKeyChecking değerini değiştirebilirsiniz, ancak bu tamamen, tamamen, paranoyakça güvenli olmaz mıydı? Bunun yerine, rahatsız edici değeri known_hosts dosyasından kaldırabiliriz..

    Bu kesinlikle ekranınızda çirkin bir şey. Neyse ki, bunun sebebi yeniden kurulmuş bir işletim sistemi idi. Öyleyse, ihtiyacımız olan çizgiyi büyütelim..

    Oraya gidiyoruz. Düzenlememiz gereken dosyayı nasıl aktardığını gördün mü? Hatta bize satır numarasını verir! Öyleyse, Nano'da şu dosyayı açalım:

    İşte 1 numaralı satırdaki suçlu anahtarımız. Yapmamız gereken tek şey, tüm çizgiyi kesmek için Ctrl + K tuşlarına basmak..

    Bu çok daha iyi! Şimdi dosyayı yazmak (kaydetmek) için Ctrl + O tuşlarına basın, sonra çıkmak için Ctrl + X tuşlarına basın..

    Şimdi bunun yerine “evet” ile yanıt verebileceğimiz iyi bir bilgi istemi alıyoruz.

    Yeni Ana Bilgisayar Anahtarları Oluşturma

    Kayıt için, ana bilgisayar anahtarınızı hiç değiştirmemeniz için çok fazla bir neden yok, ancak ihtiyacı anında bulursanız kolayca yapabilirsiniz..

    İlk önce uygun sistem dizinine geçin:

    cd / etc / ssh /

    Bu, genellikle genel ana bilgisayar anahtarlarının bulunduğu yer olsa da, bazı dağıtımlar onları başka yerlere yerleştirmiştir. Şüphe durumunda, belgelerinizi kontrol edin!

    Sonra, tüm eski anahtarları sileceğiz.

    sudo rm / etc / ssh / ssh_host_ *

    Alternatif olarak, onları güvenli bir yedekleme dizinine taşımak isteyebilirsiniz. Sadece bir düşünce!

    Ardından, OpenSSH sunucusuna kendisini yeniden yapılandırmasını söyleyebiliriz:

    sudo dpkg-yeniden yapılandırma openssh-server

    Bilgisayarınız yeni anahtarları oluştururken bir bilgi istemi göreceksiniz. Ta-da!


    Artık SSH'nin nasıl daha iyi çalıştığını bildiğinize göre, kendinizi zorlu yerlerden çıkarabilmelisiniz. “Uzak Ana Bilgisayar Kimliği Değişti” uyarısı / hatası, komut satırını bilenler bile, birçok kullanıcıyı rahatsız eden bir şeydir.

    .