SSH Linux güvenliği nasıl yapılandırılır

UNIX ortamlarında bağlantı kurmak için güvenlik düzeyinde en çok kullanılan protokollerden biri, yapılan veri ve bağlantıları korumak için bize bir dizi işlevsellik ve özel nitelikler sunan SSH (Secure Shell) protokolüdür.

SSH, istemci/sunucu modeli üzerinden iki sistem arasındaki iletişimin güvenliğine odaklanan ve bu sayede kullanıcıların bir ana bilgisayara uzaktan bağlanmasına izin verilen bir protokoldür.
SSH'nin temel özelliklerinden biri, herhangi bir kullanıcının şifrelenmemiş parolalar almasını engelleyen bağlantı oturumunu şifrelemesidir.

Koruma türleriSSH protokolünü kullanırken aşağıdaki koruma türlerine sahip olacağız:

  • İlk bağlantı kurulduğunda, istemci daha önce bağlandığı sunucuya bağlandığını doğrulayabilir.
  • İstemci, kimlik doğrulama bilgilerini 128 bit şifreleme yoluyla sunucuya gönderir
  • Oturum sırasında gönderilen ve alınan tüm veriler 128 bit şifreleme kullanılarak aktarılır, bu da şifrenin çözülmesini ve okunmasını zorlaştırır
  • İstemci, X11 uygulamalarını sunucudan iletme olanağına sahiptir, bu, yerel veya harici bir ağ üzerinden grafik uygulamaları kullanmanın güvenli bir yolunu sağlayan X11 iletme adı verilen bir tekniktir.

Artık Linux işletim sistemlerinde / etc / ssh / ssh_config yolunda SSH yapılandırma dosyasını buluyoruz ve bu dosya sayesinde SSH bağlantıları için tüm güvenlik önlemlerini uygulamak mümkün olacak.

BÜYÜT

macOS sistemleri için bu dosya / private / etc / ssh / ssh_config yolunda bulunur ve uyumluluk amacıyla / etc / ssh / ssh_config ile sembolik bir bağlantısı vardır.

Bu dosyayı düzenlerken aşağıdakileri aklımızda tutmalıyız.

  • Boş satırlar ve '#' ile başlayan satırlar yorumlardır
  • Her satır bir anahtar kelime ile başlar, ardından argüman(lar) gelir.
  • Yapılandırma seçenekleri boşluklarla veya isteğe bağlı boşluklarla ve bir = işaretiyle ayrılabilir
  • Argümanlar, boşluk içeren argümanları belirtmek için çift tırnak (") içine alınabilir

1. Linux ssh_config dosyası nasıl düzenlenir


Bu dosyayı uygun değerler oluşturacak şekilde düzenlemek için bir editör ile aşağıdakileri yapmalıyız:
 sudo nano / etc / ssh / ssh_config
Aşağıdakileri göreceğiz:

BÜYÜT

ssh_config dosyası ana bilgisayarlar tarafından düzenlenir ve orada her bir ana bilgisayar o belirli ana bilgisayar için belirli ayarlar içerir, burada birden fazla ana bilgisayar adını tek bir ifadeyle eşleştirmek için * gibi joker karakterler kullanabiliriz.
Bu dosyada kullanabileceğimiz bazı parametreler şunlardır:

Ev sahibiYalnızca anahtar kelimeden sonra verilen kalıplardan biriyle eşleşen ana bilgisayarlar için olan kısıtlama ifadeleri.
EşleşmeYalnızca belirtilen kriterlerle eşleşen ana bilgisayarlara uygulanacak kısıtlama ifadeleri
AdresAileBağlanırken hangi adres ailesinin kullanılacağını belirtir, geçerli argümanlar şunlardır: any, inet, inet6.
Toplu moduBu değerle parola sorgusu devre dışı bırakılır, böylece bir parola isteğinde yanlışlıkla bloke edilmesi önlenir
BindAdresYerel makinede belirtilen adresin bağlantı kaynağı adresi olarak kullanılacağını belirtir.
ChallengeResponseAuthenticationSorgulama-yanıt kimlik doğrulamasının kullanılıp kullanılmayacağını gösterir. Bu öncelikle eski bir yöntemdir ve yerini KbdInteractiveAuthentication almıştır.
CheckHostIPssh'ye, bilinen_hosts dosyasındaki ana bilgisayarın IP adresini ek olarak kontrol etmesini söyleyin.
şifreProtokol sürüm 1'de oturumu şifrelemek için kullanılacak şifrelemeyi ifade eder.
ŞifrelerProtokolün 2. sürümü için izin verilen şifreleri tercih sırasına göre belirtir.

Daha sonra, Linux'a SSH bağlantılarının güvenliğini artırmak ve böylece en iyi erişim performansını elde etmek için bazı pratik ipuçları göreceğiz.

2. Linux SSH dosyaları nasıl kilitlenir


Dosyayı düzenlemeden önceki ilk adım, hem ssh_config dosyasının hem de sshd_config dosyasının sahibinin ve kullanıcının root olarak yapılandırılmış olduğundan emin olmaktır, çünkü bu, Linux'un süper kullanıcısıdır ve bundan daha iyi kimse sahip değildir.

Bunun için aşağıdakileri uyguluyoruz:

 sudo chown root: root / etc / ssh / sshd_config sudo chmod og-rwx / etc / ssh / sshd_config

3. SSH protokolü sürüm 2 Linux nasıl onaylanır


SSH'nin 2. Sürümü, sürüm 1'deki güvenlik açığından etkilenmeyen, böylece bağlantıların genel güvenliğini artıran gelişmiş bir anahtar değişim algoritmasına sahiptir, bu nedenle Protokol 1 yerine yeni Protokol 2'nin kullanıldığını doğrulamak idealdir. ve bunun için ssh_config dosyasında aşağıdaki satırı onaylamamız gerekiyor:
 Protokol 2

BÜYÜT

Orada, protokolü, modern Şifreleri kullanmak için otomatik olarak Protokolü 2'ye ayarlayacak olan Şifreler aracılığıyla örtük olarak yapılandırabiliriz, bunun için Protokol satırının hemen altındaki aşağıdaki satırı doğrularız:

 Şifreler aes128-ctr, aes192-ctr, aes256-ctr

4. Boş parolalar nasıl devre dışı bırakılır SSH Linux


Her SSH hesabının giriş yaparken bir şifre kullanması gerektiğini doğrulamak, sistemde güvenlik risklerine neden olan basit erişime izin verecek boş şifreleri engellemek önemlidir, bunu doğrulamak için aşağıdaki satırı kullanacağız veya yoksa, biz # sembolünü yerleştirerek ekleyecektir:
 PermitBoşŞifreler hayır

BÜYÜT

5. SSH Linux kök oturum açma nasıl devre dışı bırakılır


Kök kullanıcı girişini engelleyerek, belirli hesapları kilitlemek ve sistem genelinde kullanımlarına izin vermemek mümkün olacaktır, PermitRootLogin seçenekleri arasında "evet", "parola olmadan", "yalnızca zorunlu komutlar" veya "yapma" seçenekleri bulunur. Varsayılan "evet"tir. Kök girişini tamamen durdurmak için aşağıdaki satırı kullanacağız:
 PermitRootGiriş no

BÜYÜT

6. Yeni bir Linux SSH bağlantı noktası nasıl ayarlanır


Varsayılan olarak, SSH için atanan bağlantı noktası 22'dir, böylece saldırganlar saldırılarını gerçekleştirmek için hangi bağlantı noktasından erişeceklerini kesin olarak bilirler, bu nedenle bu varsayılan bağlantı noktasını değiştirmek ve yalnızca yetkili kullanıcıları belirtmek iyi bir güvenlik yöntemidir.

Bunun için Port satırını bulmalı ve aşağıdaki sözdizimini eklemeliyiz:

 bağlantı noktası XXXX

BÜYÜT

7. SSH Linux erişimi nasıl kısıtlanır


SSH sunucusuna erişimin birkaç kullanıcıdan oluşması durumunda, bu kullanıcıların dahil olduğu gruplar oluşturarak belirli kısıtlamalar uygulamak mümkündür, bu, aşağıdaki gibi anahtar kelimeler ekleyerek mümkündür:
 AllowUsers (Kullanıcı erişimine izin ver) AllowGroups (Grup erişimine izin ver) DenyUsers (Kullanıcı erişimini kısıtla) DenyGroups (Grup erişimini kısıtla)
Örneğin, yapılandırma dosyasında aşağıdakileri çalıştırabiliriz:
 AllowUsers Solvetic testleri DenyGroups testi

8. SSH Linux yetkisiz kullanım süresi nasıl güncellenir


Varsayılan olarak, bir kullanıcının oturum açmadan hareketsiz kalabileceği süre iki dakikadır, sisteme yetkisiz bağlantıların önlenmesine yardımcı olmak için bu süre, bu hava durumunu artırarak veya azaltarak LoginGraceTime satırında düzenlenebilir:
 GirişGraceTime 1m

BÜYÜT

9. SSH Linux takma adı nasıl oluşturulur


SSH yapılandırmalarında bir takma ad belirtmek mümkündür, bunlar belirli bir sunucuya bir bağlantı noktası ve tanımlanmış kullanıcılar aracılığıyla bağlanmaya izin verir, örneğin aşağıdakileri ekleyebiliriz:
 Host dev HostName dev.solvetic.com Bağlantı Noktası 3333 Kullanıcı Solvetic
Bu özel durumda aşağıdaki gibi erişmeliyiz:
 ssh [email protected] -p 3333

10. Güvenli anahtarlarla kimlik doğrulama SSH Linux


ssh, parola kullanmak yerine, kimlik doğrulama amacıyla genel/özel anahtar çiftleriyle birlikte kullanıldığında çok daha güvenli ve kullanışlı olacaktır. ssh_config dosyası, IdentityFile anahtarını kullanarak belirli bir ana bilgisayar için belirli bir anahtar bildirebilir, bu durumda aşağıdakileri gireriz:
 Host dev HostName dev.solvetic.com Bağlantı Noktası 3333 Kullanıcı Solvetic IdentityFile ~ / .ssh / dev.solvetic.key
Bu durumda bağlantı aşağıdaki gibi olacaktır:
 ssh -i ~ / .ssh / dev.solvetic.key [email protected] -p 3333
Bazı ek parametreler şunlardır:

SıkıştırmaOrada, bir ana bilgisayar için sıkıştırmayı devre dışı bırakmayı etkinleştirmek için evet veya hayır gibi değerleri kullanabiliriz.
GünlükSeviyesiSsh istemcisi için günlüklerdeki ayrıntı düzeyini tanımlamaya izin verir, seçenekler SESSİZ, FATAL, HATA, BİLGİ, VERBOSE, DEBUG1, DEBUG2 ve DEBUG3'tür.
StrictHostKeyKontrolBilinen_hosts dosyasına ana bilgisayar eklemek için bir tercih belirleyin.

Bu nedenle, Linux'ta güvenliği ve SSH bağlantısını geliştirmek için farklı seçeneklerimiz var.

wave wave wave wave wave