Bir Linux sunucusunda SSH bağlantısı nasıl güvenli hale getirilir. SSH sunucusunu koruma IP ile erişimi kısıtlama

  • 23.06.2020

Bu yazıda SSH'yi korumanın temel yöntemine bakacağız. kitle kaba kuvvet saldırıları. Bu durumda, toplu bir kaba kuvvet saldırısı, özellikle SSH'niz için hedeflenen bir parola tahmini anlamına gelmez, ancak bir parola seçiminde kararsız olan oturum açma parola çiftlerinin daha sonra tanımlanması için bir dizi sunucunun kapsamlı bir şekilde ele geçirilmesi anlamına gelir.

SSH toplu kaba kuvvet saldırısının ana özellikleri, 22 numaralı açık bağlantı noktasındaki IP aralıklarının kapsamlı bir şekilde taranması ve yaygın olarak kullanılan kullanıcı adlarının ve parolaların kullanılmasıdır (örneğin, root:passwd123, admin:server123, vb.).

Sunucunuzdaki başarısız SSH yetkilendirme girişimlerinin günlük dosyalarından istatistikleri görüntülemek için şu komutu girin:

Cat /var/log/secure* | grep "Başarısız parola" | grep sshd | awk "($1,$2 yazdırın)" | sıralama -k 1,1M -k 2n | tek -c

Bu ekran görüntüsü, günlere göre başarısız olan yetkilendirmelerin sayısına ilişkin istatistikler sağlar. Benzer verileri çalarsanız, SSH'nizi toplu kaba kuvvetten korumak için adımlar atmalısınız.

1. Eğer kullanma kök, yönetici, yönetici, kullanıcı vb. gibi yetkilendirme için yaygın olarak kullanılan kullanıcı adları. ve yetkilendirme için karmaşık bir şifre kullanın, ardından hemen ikinci adıma geçebilirsiniz. Şifreyi daha karmaşık bir şifreyle değiştirmek için şu komutu girin:

Şifre #your_login#

nerede #Kullanıcı girişin#- Kullanıcı adınızı.
Yeni bir şifre girilirken şifre görüntülenmez, imleç tek bir yerde olacaktır.

SSH üzerinden sunucuya gidelim, yeni bir kullanıcı oluşturalım ve onun için bir şifre belirleyelim, bunun için komutları gireceğiz:

adduser #newuser# passwd #newuser#

nerede #yeni kullanıcı#- Yeni kullanıcı adınız, sık kullanılan kullanıcı adlarını kullanmayın, kötü bir seçenek değil senin_nickadmin(ör. foxadmin, useralex, rootidler).

2. Ardından yeni bir kullanıcı adı ve şifre ile SSH'den geçiyoruz. Ve şu komutla SSH arka plan programı yapılandırmasını (sshd_config) açın:

Vi /etc/ssh/sshd_config

O zaman şöyle bir şey görmelisiniz:

ile başlayan satırlar # yorumlanır.

İle SSH'yi toplu kaba kuvvetten koruyun, yorumunu kaldır ve aşağıdaki seçenekleri değiştir veya ekle dosya:
a) Liman- hangi limanda SSHD bağlantıları kabul eder ve servis eder. Uncomment (satırın başlangıcından önce kaldır # ) ve varsayılan değeri değiştirin 22 , ayrılmış olanlar hariç 1024'ten 65536'ya kadar herhangi birine - ayrılmış bağlantı noktalarının bir listesi, örneğin:

liman 2022

Silmek # ve değeri değiştir 22 numaralı bağlantı noktası, önce klavyede basın i, gerekli satırı düzenledikten sonra tuşuna basın ESC

b) GirişGraceTime— sistemde kullanıcı kaydı için bekleme süresi. Kullanıcının bu yönergede belirtilen süre içerisinde sisteme giriş yapacak zamanı yoksa oturum sonlandırılır. Bu değeri azaltalım:

GirişGraceTime 1m

c) İzin KökGiriş- kullanıcıya izin ver kök SSH protokolü ile oturum açın. Değişmek hayır.

PermitRootGiriş no

d) Kullanıcılara İzin Ver— SSH protokolü aracılığıyla oturum açmaya izin verilen kullanıcı adları, boşlukla ayrılmış şekilde. Burada #your_login# yerine yeni oluşturulan kullanıcı adını belirtiyoruz.

AllowUsers #your_login#

e) MaxAuthDeneme- Oturum başına giriş denemesi sayısı. İzin verilen maksimum deneme sayısına ulaşıldığında oturum sonlandırılır.

MaxAuth Denemeleri 2

Sonuç olarak şunları elde edeceğiz:

Port 2022 LoginGraceTime 1m PermitRootLogin no AllowUsers #your_login# MaxAuthTries 2

Bu yazımızda kurulumu tamamlayacağız. SSH kitleye karşı korumak acımasız güç. düzenlemeden sonra , klavyeye basın : , aşağıda bir satır belirir ve ardından içine girin wq ve tuşuna basın Girmek. Bu durumda, yapılan tüm değişiklikler kaydedilecektir.

Yanlış bir şey yaptıysanız (örneğin, yanlışlıkla bir şeyi sildiyseniz), kaydetmeden çıkmak klavye kısayolu yerine kullan wq, anahtarlar q!

SSH yapılandırmasını tamamladıktan sonra, arka plan programını şu komutla yeniden başlatın:

hizmet sshd yeniden başlatma

Şimdi SSH protokolü ile bağlanırken yeni bağlantı noktasını kullanın 2022 (veya ayarlarda belirttiğiniz) yerine standart bağlantı noktası 22.

SSH kurulumu ile ilgili bir sonraki yazımda sizlere şunu söylemek isterim ki biz şifre yetkilendirmeyi yasaklayıp sadece özel bir SSH anahtarı kullanarak yetkilendirmeye izin vereceğiz, böylece kendimizi şifre tahmininden mümkün olduğunca koruyacağız.

Temas halinde

SSH, bilgisayarlar arasında veri (komutlar, dosyalar, video vb.) aktarımı için güvenli bir protokoldür.

Varsayılan olarak, uzak bir makineyi kolayca ve güvenli bir şekilde yönetmenize izin verdiği için çoğu barındırma sağlayıcısının VPS ve özel sunucularında etkindir. Bu arada, Well-Web hizmetinde ucuza bir VPS sunucusu kiralayabilirsiniz. Tüm VPS'lerde SSH etkinleştirildiğinden, Secure Shell kullanırken sorun yaşamamak için uygun SSH koruması gereklidir.

Kök erişimini devre dışı bırak

Her şeyden önce, süper kullanıcı (kök) hesabı altında makineye uzaktan bağlanma yeteneğinin devre dışı bırakılması önerilir. Bunu yapmak için, genellikle (ancak her zaman değil) /etc/ssh/ dizininde bulunan sshd_config dosyasını bulmanız ve açmanız gerekir.

İçinde PermitRootLogin öğesini bulmanız ve değerini "no" ile değiştirmeniz gerekecek, yani aşağıdaki girişi almalısınız:

PermitRootGiriş no

Doğal olarak bu, bilgisayar korsanlığını engellemez, ancak yine de onu biraz daha zorlaştırır.

Bilgisayar korsanlığı olasılığını en aza indirmek için, oturum açma ve şifre ile yetkilendirme yerine anahtarları kullanarak yetkilendirme kullanılması önerilir. Bu birkaç yolla yapılabilir. Bu arada, bu aynı zamanda kaba kuvvete karşı iyi bir SSH korumasıdır.

Varsayılan bağlantı noktasını değiştir

Bir sunucuyu SSH yoluyla hacklemek genellikle parola kaba kuvvet (kaba kuvvet) yoluyla gerçekleştiğinden, standart 22. bağlantı noktasını başka bir bağlantı noktasıyla değiştirmek mantıklı olacaktır. Bunu yapmak çok kolaydır. Her şeyden önce, daha önce bahsedilen sshd_config dosyasını açmanız ve oraya bir satır eklemeniz gerekir:

bağlantı noktası_numarası

Giriş, örneğin aşağıdaki gibi görünecektir:

3048 numaralı bağlantı noktası

Bu, sunucuya yetkisiz erişim elde etmek isteyen kişilerin sayısını önemli ölçüde azaltacaktır. Port numarasını değiştirmeden önce diğer uygulamaların çalışmasına zarar vermediğinden emin olun. Ayrıca, programların bu nedenle çakışmaması için henüz kullanımda olmayan bağlantı noktasını da seçmeniz gerekir.

IP ile erişim kısıtlaması

Yetkisiz bağlantı olasılığını neredeyse sıfıra indirecek bir başka koruma yöntemi de yetkilendirme kısıtlamaları koymaktır. SSH, yalnızca belirli IP adreslerine sahip uzak makinelerin sunucuda oturum açabileceği şekilde yapılandırılabilir. Bunu yapmak için sshd_config dosyasında AllowUser satırında her kullanıcının adına @IP_number ekleyin. Giriş şöyle görünebilir:

Kullanıcılara İzin Ver [e-posta korumalı], [e-posta korumalı]

Bu yöntemi kullanmadan önce, yapılandırma tarafından IP adresi sağlanmayan bir makineden sunucuya erişmeniz gerekebilecek hiçbir durum olmadığından emin olmanız önerilir.

Güvenli şifre

Ve elbette kaba kuvvete dayanıklı bir şifre kullanmalısınız. Mümkün olduğunca uzun ve farklı sembollerle, tercihen krakozyabrlarla. Bu bir zorunluluktur.

Sunucumuzu parola kaba kuvvetinden korumak için sshguard veya sshit yardımcı programlarını kullanabilirsiniz.

Çalışma ilkeleri.

sshguard ve sshit aynı prensipte çalışır. Yanlış kimlik doğrulama ile ilgili sistem mesajlarını analiz ederler ve belirli bir değere ulaşılırsa saldıran ip'yi engelleme güvenlik duvarı kuralına eklerler. Belli bir süre sonra ip kuraldan kaldırılır.
Buna göre, işlem için yapılandırılmış bir güvenlik duvarı gereklidir.

SSHGuard

sshguard ile çalışabilir

  • AIX yerel güvenlik duvarı- IBM AIX işletim sistemleri için
  • netfilter/iptables- Linux tabanlı işletim sistemleri için
  • Paket Filtre (PF)- BSD işletim sistemleri için (Open, Free, Net, DragonFly-BSD)
  • IP Güvenlik Duvarı (IPFW)- FreeBSD ve Mac OS X için
  • IP Filtresi (IPFILTER)- FreeBSD, NetBSD ve Solaris için
  • tcpd"nin hosts_access (/etc/hosts.allow)- UNIX genelinde taşınabilir
  • hükümsüz- algılamayı uygulamak için ancak önleme uygulamak için taşınabilir hiçbir şey yapmama arka ucu

PF kullanıyorum, bu yüzden notta PF ile ilgili örnekler var.

sshguard'ı yükleme.

ÜcretsizBSD:

Bağlantı noktalarından yükleyin

Cd /usr/ports/security/sshguard-pf/&& kurulumu temizleyin

Herhangi bir nedenle bağlantı noktalarını kullanmıyorsanız, sshguard web sitesinden en son sürümü indirin ve manuel olarak oluşturun

./configure --with-firewall=pf && make && make install

Debian:

apt-get install sshguard

İşletim sistemini sshguard'ın çalışması için ayarlama.

Günlükleri depolamak için bir dosya oluşturun

# /var/log/sshguard'a dokunun

Debian (hırıltılı):

//etc/default/sshguard içinde aşağıdaki satırı düzenleyin

#mcedit /etc/default/sshguard #ARGS="-a 40 -p 420 -s 1200" ARGS="-a 5 -p 420 -s 2400 -b 5:/etc/sshguard/kara liste"

ve sshguard'ı yeniden başlatın
hizmet sshguard yeniden başlatma

ÜcretsizBSD:

PF yapılandırmasına iki satır eklememiz gerekiyor

masa ısrar etmek

sshguard'ın robotların ipine girdiği bir tablo ilan ediyoruz.

$if0 proto tcp'de hızlı bir şekilde engelle

Aslında, engelleme kuralının kendisi, PF yapılandırma dosyasının kurallar bloğunun en üstünde işaretlenmelidir. Bağlantıların engelleneceği $if0 arabirimi, tüm arabirimlerde engellemek için herhangi biriyle değiştirin.
Yapılandırma dosyasını yeniden okuyun

auth.info;authpriv.info |exec/usr/local/sbin/sshguard

ve syslog'u yeniden başlatın

#/etc/rc.d/syslogd yeniden başlat

Aslında, bu manipülasyonlardan sonra, sshguard varsayılan parametrelerle saldırıları engelleyecektir.
Saldırıya uğradığında /var/log/auth.log aşağıdakileri göreceğiz

Haz1611:01:40 www sshd:61.172.251.183'ten geçersiz kullanıcı testiHaz1612:29:48 www sshd:85.114.130.168'den geçersiz kullanıcı testiHaz1612:29:49 www sshd:85.114.130.168Haz1612:29:50'den geçersiz kullanıcı testi www sshd:85.114.130.168Haz.1612:29:50'den geçersiz kullanıcı testi

sshguard seçeneklerini ayarlama

sshguard, geçersiz kılabileceğimiz bir dizi seçeneğe sahiptir
-a IP'nin bloke edileceği başarısız kimlik doğrulama girişimlerinin sayısı. Varsayılan 4'tür.
-p kaç saniye sonra ip blokajı kaldırılır. Varsayılan 420'dir.
-s sshguard ip'yi kaç saniye hatırlıyor? Varsayılan 1200'dür. Daha açık hale getirmek için, ip ile 30 dakikada bir saldırı varsa, varsayılan ayar ile asla yasaklanmayacaktır.
-w beyaz ip, ağlar veya beyaz adres dosyası yolu. Dosya biçimi bir satırdır - bir giriş, # yorumları tanımlar.
-b kara listeye ne kadar sonra ip bloğu ekleneceğini ve ona giden yolu belirler. Kara liste, sshguard başladığında yüklenir ve otomatik olarak temizlenmez.

sshguard bir yapılandırma dosyasına sahip değildir, parametreler sshguard başladığında ayarlanır. Bizim durumumuzda, sshguard syslog'u başlatır, bu nedenle syslog.conf'u düzenleyeceğiz, böylece sshguard 30 dakika boyunca 3 başarısız kimlik doğrulama girişiminden sonra ve 5 bloktan sonra onu kara listeye alacak.

Auth.info;authpriv.info |exec/usr/local/sbin/sshguard -a 3-p 1500-b 5:/usr/local/etc/sshguard.blacklist

ilk kez 420 saniye süreyle bloke edilir ve 7 dakika sonra silinir
2*420 y'deki ikinci kez 14 dakika sonra silinir
üçüncü kez 2*2*420'de ve 28 dakika sonra silinir ve böyle devam eder...
2^(N-1)*420 N. kez.

bok

Sshit bir Perl betiğidir, bu nedenle sistemde 2 modüle ek olarak Perl olması gerekir.

  • IPC::Paylaşılabilir
  • İşlem::PID::Dosya

Sshit sadece pf ve ipfw ile çalışabilir.

bok yükleme

cd /usr/ports/security/sshit/&& kurulumu temiz yap

boktan yapılandırma

Sshit, varsayılan değerleri geçersiz kılabileceğiniz /usr/local/etc/sshit.conf yapılandırma dosyasına sahiptir.

FIREWALL_TYPE="pf"; # Hangi güvenlik duvarını kullanıyoruz MAX_COUNT =3; # İp'in bloke edilmesinden sonra başarısız olan kimlik doğrulama denemelerinin sayısı WITHIN_TIME =60; # Belirtilen sayıda başarısız kimlik doğrulamanın kaç saniye içinde gerçekleşmesi gerekir RESET_IP =300; # Kaç saniye sonra ip blokajı kalkacak. PFCTL_CMD="/sbin/pfctl"; PF_TABLE ="badhosts"#hatalı ips'lerin girildiği tablo adı

İşletim sistemini pisliğin çalışması için ayarlama.

sshguard altında ayarlamaya benzeterek, PF yapılandırma dosyasını düzenleriz

masa $if0 proto tcp'de hızlı bir şekilde blokta ısrar et $if0 bağlantı noktasına ssh etiketi "ssh brute"

yapılandırma dosyasını yeniden okumak

#pfctl -f /etc/pf.conf

syslog.conf'u düzenleme

auth.info;authpriv.info |exec/usr/local/sbin/sshit

ve syslog'u yeniden başlatın

Kamuya açık bir ağda bir hizmet "yandığında", hemen bir saldırı nesnesi haline gelir. Sorunlardan biri, parola kaba kuvvet (kaba kuvvet) kullanarak erişim elde etme girişimidir. Ve SSH bu durumda bir istisna değildir.

Kimlik doğrulama günlük dosyasının /var/log/auth.log veya analoglarının bir analizi, bir parolayı tahmin etme girişiminin genellikle aynı anda birkaç IP'den yapıldığını ve zamana yayıldığını gösterir.

SSH Kaba Kuvvet Koruması

Kendinizi bundan farklı şekillerde koruyabilirsiniz:

  • SSH Daemon Yapılandırma Seçeneklerini Kullanma
  • paket filtresi
  • Özel uygulamalar
  • liman çalma

En kolay ve en etkili yol, varsayılan 22 numaralı bağlantı noktasını, örneğin, diğer görevleri engellemiyorsa 2002 olarak değiştirmektir. /etc/ssh/sshd_config içine bir giriş yapıyoruz:

Bundan sonra, şifreleri tahmin etme girişimleri pratik olarak durur. Bağlantı noktasının değiştirilemeyeceği zamanlar vardır. Alternatif olarak, belirli kullanıcılara (özellikle kök) veya bir gruba SSH erişimini kısıtlayabilirsiniz. Bundan sshd_config'de bir dizi parametre sorumludur: AllowUsers, AllowGroups, DenyUsers ve DenyGroups. Bir oturum açma ile bir IP veya alt ağ belirtebilmeniz uygundur. Örneğin, kullanıcı yöneticisine ve kullanıcıya erişime izin verelim, ikincisi yalnızca bir IP'den:

Bir başka etkili kaba kuvvet koruması seçeneği, kimlik doğrulama için sertifikaların kullanılmasıdır. Ayrıca, özel eşleşme parametresini kullanarak, global bölümün parametrelerini yeniden tanımlayacağınız koşullu bir blok oluşturabilirsiniz. Örneğin, kök kullanıcı için bir parola ile SSH girişini devre dışı bırakalım ve diğer herkese izin verelim:

# herkesin şifreyle erişmesine izin ver
Şifre Doğrulama evet
# kök yalnızca sertifikayı kullanacak
kullanıcı kökünü eşleştir
Şifre Doğrulama numarası
KbdInteractiveAuthentication no

TCP Wrapper kullanarak, herhangi bir hizmete yalnızca belirli IP'lerden erişimi de kısıtlayabiliriz, bunun için gerekli kuralı /etc/hosts.allow veya /etc/hosts.deny dosyasına yazmanız yeterlidir. /etc/hosts.allow dosyasına yalnızca gerekli alt ağdan erişime izin verelim:

sshd: 192.168.1.0/24: izin ver

Veya /etc/hosts.deny'de:

sshd:ALL:reddet
sshd: 192.168.1.0/24 HARİÇ TÜMÜ: izin ver

Paket filtresi, gereksiz paketleri atarak bağlantı parametrelerini çok doğru bir şekilde ayarlamanıza olanak tanır. Yardımı ile 22. bağlantı noktasına erişimi yalnızca belirli adreslerle sınırlamak kolaydır. Basit örnek:

iptables -A GİRİŞ -s !192.168.0.1 -p tcp -m tcp --dport 22 ↵
-j REJECT -reddet-icmp-port-ulaşılamaz

Yönetici işyerine bağlı değilse, bağlantı noktalarına ve IP adreslerine göre paket filtreleme çok etkili değildir. Bu durumda özel yardımcı programlar yardımcı olacaktır: Fail2ban, Sshguard. Fail2ban, başlangıçta SSH'yi güvence altına almak için tasarlandı. Bugün zaten herhangi bir uygulama için kolayca özelleştirilebilen bir çerçeve olmasına rağmen. Çalışma prensibi çok basittir. Arka plan programı, günlükleri herhangi bir şüpheli etkinlik için düzenli olarak kontrol eder. Şüpheli IP adresi daha sonra iptables veya TCP Wrapper tarafından engellenir. Ayarlarda belirtilen süreden sonra, yasal bir düğümü yanlışlıkla engellememek için blok genellikle kaldırılır. Kural tetiklendiğinde, /var/log/fail2ban.log günlüğüne bir olay yazılır ve bir e-posta gönderilebilir.

Tek bir işlem, aynı anda birden fazla hizmeti kontrol edebilir ve paket, popüler Linux uygulamaları için kullanıma hazır ayarlarla birlikte gelir. Varsayılan olarak yalnızca SSH korunur.

Ubuntu ve Debian'da şu komutla yükleyin:

$ sudo apt-get install fail2ban

Tüm ayarlar /etc/fail2ban dizininde bulunan birkaç dosyada yapılır. Fail2ban.conf, arka plan programının kendisinin başlatma parametrelerini saklar, jail.conf, kontrollü hizmetleri açıklar (SSH bölümünün içinde).

etkin=doğru
bağlantı noktası=22
filtre=sshd
logpath=/var/log/auth.log
maxretry = 3

Filtreler ve eylemler, filter.d ve action.d alt dizinlerinde bulunan dosyalara yazılır. Varsayılan olarak, tüm dosyalar .conf uzantısına sahiptir, onlara dokunmamak daha iyidir (jail.conf dahil). Tüm değişiklikler .local uzantılı bir dosyada yapılmalıdır (örneğin, jail.local), parametreleri ilkinden itibaren ayarları değiştirecek ve yükseltme sırasında kaybolmayacaktır. Filtrenin çalışıp çalışmadığını kontrol etmek için fail2ban-regex yardımcı programını kullanabilirsiniz.

Bu kısa gönderide, bir ssh sunucusunun güvenliğini artırmanın yollarını bir araya getirdim. En temel ve basit teknikler açıklanır ve daha karmaşık olanlar sadece ilgili okuyucular için belirtilir.

Temel hileler

Tüm eylemler sshd arka plan programının yapılandırma dosyasında gerçekleştirilir -- /etc/ssh/sshd_config . Aşağıda, yapılandırma dosyamın yorumlar içeren bir bölümü bulunmaktadır.

### Ağ ### # Standart olmayan bağlantı noktası (>1024) bağlantı noktası kullanın 5679 # Yalnızca IPv4 bağlantılarını kullanın # inet = IPv4, inet6 = IPv6, herhangi biri = her ikisi de AddressFamily inet # Yalnızca belirli IP adreslerinden gelen bağlantıları kabul edebilir #ListenAddress 0.0 0.0 # Protokolün ikinci versiyonunu kullanıyoruz çünkü ilki # bilinen protokol 2 güvenlik açığı # Açıkça ihtiyacınız olana kadar grafik yeniden yönlendirmesini (X sunucusu) devre dışı bırakın X11Forwarding no # Disable TCPKeepAlive'ı devre dışı bırakın ve bunun yerine ClientAliveInterval'i kullanın, # TCP Spoofing gibi saldırıları önlemek için TCPKeepAlive no # Kullanıcıyı 10 dakika sonra dışarı atın ( 600 sn) hareketsizlik ClientAliveInterval 600 ClientAliveCountMax 3 ### Anahtar yapılandırma dosyaları ### # Protokol sürüm 2 için HostKeys HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # İstemciden gelenleri # işlemek için ayrıcalıksız bir işlem kullanın trafik # sandbox - openSSH >= 5.9 ("evet" - küçük sürümler için) UsePrivilegeSeparation sandbox # Bu değerleri değiştirirseniz, eski # /etc/ssh/ssh_host_rsa_key(,.pub) anahtarını silmenizi ve bir # sshd'yi yeniden başlatarak yenisi. # # Anahtarın ömrü, yani. ne zamandan sonra yeni bir anahtar oluşturulacak # bir öncekinin kullanılması durumunda. KeyRegenerationInterval 1h # Anahtar gücü ServerKeyBits 2048 # Ortak anahtar kimlik doğrulamasını etkinleştir PubkeyAuthentication evet # Güvenilir anahtarları kullanıcı dizininde saklayın AuthorizedKeysFile .ssh/yetkili_keys ### Logging ### # Syslog için önek SyslogFacility AUTH # sshd'nin kendisi için ileti ayrıntı düzeyi LogLevel INFO ## # Kimlik doğrulama ### # izin verilen kullanıcılar listesi AllowUsers ivan # ssh anahtarı için parola girme süresini sınırlandır LoginGraceTime 30s # kök hesap altında uzaktan oturum açmayı yasakla PermitRootLogin hayır # ssh tuşlarıyla dosya ve dizin izinlerinin açık kontrolünü etkinleştir StrictModes evet # Giriş yanlışsa tekrar kaç kez şifre sorulur MaxAuthTries 3 # Boş şifre ile giriş yapmayı yasakla PermitEmptyPasswords no # Prensip olarak şifre ile giriş yapmayı yasakla # (Bunun yerine genel / özel anahtar kullanın) PasswordAuthentication no # Devre Dışı Bırak "meydan okuma-cevap" yetkilendirmesinin kullanımı, # çünkü . anahtarları kullanırken işe yaramaz ChallengeResponseAuthentication no # Parola kullanmadığımız için, ihtiyacımız yok (PAM, login(1)) UsePAM no UseLogin no # İstemcinin yalnızca belirli bir ortam değişkenleri kümesini geçmesine izin ver # RH BZ#CVE-2014-2532 # ShellShock istismarı AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT KabulEnv LC_IDENT

Bunlar, sshd yapılandırma dosyasında yapılandırılan parametrelerdir. Ayarları değiştirdikten sonra sshd hizmetini yeniden başlatmanız gerekir.

Yorumlar

  • Anahtar tabanlı yetkilendirme kullanılırken bir anahtar gereklidir Önceden istemci makinede oluşturun ve ortak anahtarı sunucuya kopyalayın. Örnek:
istemci $ ssh-keygen istemci $ kedi ~/.ssh/id_rsa.pub | ssh -p 5679 [e-posta korumalı]"cat >> ~/.ssh/yetkili_anahtarlar"
  • /var/log/auth.log dosyası, aşağıdakilerden gelen mesajları içerecektir: sshd. Bu dosya eksikse, kayıt sisteminizi yapılandırmanız gerekir. syslog ve syslon-ng için örnek. Syslog-ng kullanıyorum ve /etc/syslog-ng/syslog-ng.conf dosyasına aşağıdaki satırları eklemem gerekiyor:
hedef authlog ( file("/var/log/auth.log"); ); log ( kaynak(src); hedef(authlog); );

ve sistem günlüğü hizmetini yeniden başlatın.

  • Standart olmayan bir bağlantı noktası kullanırken güvenlik duvarınızı (iptables, firewalld, vb.) yapılandırmanız gerekebilir.
    Örnek iptables için ayarlar:
root# iptables -A INPUT -p tcp -m state --state YENİ, KURULDU --dport 5679 -j KABUL root# hizmet iptables save root# iptables -L -n Zincir GİRİŞ (politika KABUL) hedef koruma opt kaynak hedef icmp KABUL -- 0.0.0.0/0 0.0.0.0/0 tcp kabul -- 0.0.0.0/0 0.0.0.0/0 durum YENİ tcp dpt:22 tcp KABUL -- 0.0.0.0/0 0.0.0.0/0 durum YENİ tcp dpt :80 KABUL tcp -- 0.0.0.0/0 0.0.0.0/0 durum YENİ, KURULDU tcp dpt:5679 ...

Bu yeterli değilse

Bunlar sadece temel ayarlardır. Ek olarak, yapılandırabilirsiniz

  • güvenlik duvarı (iptables)