SSH Hizmetini (Debian / Ubuntu) Güvenli Hale Getirmek İçin Port Knocking Kullanımı

Merhabalar,

Bu yazımda, Debian ve Ubuntu sunucularında SSH hizmetinin güvenliğini sağlamak için port knocking özelliğini nasıl kullanacağınızı göstereceğim.

 

SSH’de Port Knocking Nedir?

 

Port knocking yalnızca yasal kullanıcıların bir sunucudaki hizmetlere erişmesine izin vermenin bir yoludur ve bu eğitimde servis olarak SSH servisini kullanacağım. SSH hizmeti sunucuda çalışıyor ancak SSH bağlantı noktası dış dünyadan güvenlik duvarı kuralları tarafından kapatıldığından, hiç kimse doğrudan SSH bağlantı noktası 22’ye bağlanamaz.

 

Sunucu ayrıca, güvenlik duvarı kuralını değiştirme ve bu kullanıcı bir sıradaki bazı belirli bağlantı noktalarını tetiklerse bir kullanıcıya 22 numaralı SSH bağlantı noktasını geçici olarak açma yeteneğine sahip bir knockd arka plan programı çalıştırır. Dolayısıyla,  tetikleme sırası SSH bağlantı noktası için bir şifre gibidir. Yalnızca doğru Knock sırasına sahip yasal kullanıcılar, SSH bağlantı noktasını açmak için kapıyı tetikleyebilir. Meşru kullanıcı oturumu kapatmak istediğinde, SSH bağlantı noktasını kapatmak için başka bir knock dizisi kullanılır.

 

Şimdi knockd’un nasıl kurulup yapılandırılacağını ve güvenlik duvarı kuralının nasıl kurulacağını tartışacağız. Bu eğitim, makinenizde Linux kullandığınızı varsayar.

 

$ sudo apt-get install knockd

 

 

Nano gibi bir komut satırı metin düzenleyicisiyle ana yapılandırma dosyasını düzenleyin.

$ sudo nano /etc/knockd.conf

Bu dosyadaki üç öğeyi değiştirmeniz gerekiyor. [OpenSSH] bölümünde, varsayılan açılış knock sırası 7000,8000,9000’dir. Bunu 10001,10002,10003 gibi kendi zevkinize göre değiştirebilirsiniz. Ayrıca sıra için 4 veya daha fazla bağlantı noktası tanımlayabilirsiniz. Bu bağlantı noktalarını güvenlik duvarında açmanıza gerek yoktur.

 

Daha sonra iptables komutunda -A’yı -I olarak değiştirin, böylece bu iptables kuralı kural zincirinde ilk olacaktır. İptables kural zincirinde sıralama önemlidir. Doğru knock sırasını gönderdiğinizde, knockd, yalnızca IP adresiniz için SSH bağlantı noktasını açmak için bu iptables komutunu çalıştıracaktır. Diğer tüm IP adreslerinin SSH bağlantı noktasına bağlanmasına hala izin verilmiyor.

Ardından, [closeSSH] bölümünde, 10003,10002,10001 gibi varsayılan kapanış knock sırasını isteğinize göre değiştirebilirsiniz.

 

Dosyayı kaydedin ve kapatın.

 

Ardından, sunucudaki ağ bağdaştırıcısının (network adaptör) adını bulmak için aşağıdaki komutu çalıştırın.

$ ip addr

 

Gördüğünüz gibi benimki ens33. Şimdi /etc/default/knockd yapılandırma dosyasını düzenleyin.

$ sudo nano /etc/default/knockd

 

Bu satırı bulalım

START_KNOCKD=0

Sistem önyüklemesinde otomatik başlatmayı etkinleştirmek için 0’ı 1’e değiştirin.

START_KNOCKD=1

knockd varsayılan olarak eth0 arayüzünü dinler. Sunucunuzun ağ arayüzü eth0 olmayabilir, bu nedenle bu durumda değiştirmeniz gerekir. Aşağıdaki satırı bulun.

#KNOCKD_OPTS="-i eth1"

 

 

# Öğesini kaldırın ve eth1’i sunucunuzdaki ana ağ arayüzünün adına değiştirin.Benim ağ bağdaştırıcı adım ens33

KNOCKD_OPTS="-i ens33"

Dosyayı kaydedin ve kapatın. Sonra knockd arka plan programına başlayın

 

$ sudo systemctl start knockd
$ sudo systemctl enable knockd

 

$ systemctl status knockd

 

 

SSH Bağlantı Noktası 22’yi kapatalım:

UFW güvenlik duvarında SSH bağlantı noktası 22’yi kapatmak için önce mevcut güvenlik duvarı kurallarını listelemeniz gerekiyor.UFW firewall kurulumunu daha önce başka bir bir yazıda uzun bir eğitimle anlatmaya çalıştım.UFW firewall bağlantısından o eğitim yazısına ulaşabilirsiniz.

sudo ufw status numbered

Ben zaten burada sadece 192.168.88.110 dana gelen ssh isteklerine izin vermişim o kuralıda sileceğim.

sudo ufw delete 1

 

Önemli Hatırlatma: Önce daha büyük bir dizin numarasına sahip kuralı silmelisiniz.

Şimdi sunucunuza SSH girmeye çalışırsanız, SSH hizmeti isteğinize yanıt vermeyecektir.Şuan SSH ile bağlanamıyorum.Bu nedenle LOCAL konsoldan erişeceğim.

 

 

3. Adım: Knock Sequence Göndermek için Knock Client’ı kullanımı:

Knockd arka plan programı, knock adı verilen bir knock istemcisi ile birlikte gelir, bu nedenle Debian veya Ubuntu istemci bilgisayarınızda aşağıdakileri çalıştırarak yükleyebilirsiniz.

sudo apt-get install knockd

 

Sunucu güvenlik duvarını 22 numaralı TCP bağlantı noktasına tetiklemek için, istemci bilgisayardan doğru vuruş sırasını göndermeniz gerekir.

knock -v 192.168.88.127 10001 10002 10003

Komut çıkışı:

hitting tcp 192.168.88.127:10001
hitting tcp 192.168.88.127:10002
hitting tcp 192.168.88.127:10003

İstemciniz ve sunucunuz arasında yüksek bir gecikme varsa, vurma girişimi başarısız olabilir. SSH bağlantı noktası hala kapalıysa, vuruntu dizisini birden çok kez göndermeniz gerekebilir.Ben genelde 3-4 kere gönderdikten sonra SSH erişimi açılıyor.

tetikleme  başarılı olduğunda, sunucunuza SSH yapabilirsiniz. Tüm işinizi yaptıktan sonra, IP’niz için SSH bağlantı noktasını kapatmak için bağlantı noktası çalmayı kullanabilirsiniz.

knock -v 192.168.88.127 10003 10002 10001

Knockd öğesinin yalnızca ana ağ arabirimine (diğer adıyla ana IP adresi) gönderilen knock dizisine yanıt vereceğini unutmayın. Sunucunun birden fazla IP adresi varsa ve knock dizisini başka bir IP adresine göndermeye çalışırsanız, vuruntu SSH portunu açamaz.

Komut çıkışı:

hitting tcp 192.168.88.127:10003
hitting tcp 192.168.88.127:10002
hitting tcp 192.168.88.127:10001

 

Şimdi ikisini birden gösterelim.ilk önce tetikleyip bağlantının geldiğini görelim  sonra tekrar tetikleyip  bağlantı yapılmasını engelleyelim.

 

Bakın bağlantı geldi

bağlantının geldiğini nereden anlıyorum çünkü sistem şifre soruyor

Şimdi de kapatacağım.Bunuda bir den fazla kere yapmanız gerekebilir.

 

Knockd Otomatik Yeniden Başlatma:

Çalınan arka plan programı sunucuda çalışmayı durdurursa, sunucunuza SSH yapamazsınız. Bunun olmasını önlemek için, knockd’ı saatte bir otomatik olarak yeniden başlatmak için bir cron işi oluşturabilirsiniz.

Kök kullanıcının crontab dosyasını düzenleyin.

sudo crontab -e

 

Dosyaya aşağıdaki satırı ekleyin.

@hourly systemctl restart knockd

Dosyayı kaydedin ve kapatın.

Not: Knockd’un çalışması dursa bile, barındırma sağlayıcınızın web tabanlı konsolunu kullanarak sunucunuza erişmeye devam edebilirsiniz, ardından knockd’yi manuel olarak başlatabilirsiniz, böylece tekrar SSH erişiminiz olur.

 

SSH Parolasız Giriş:

Ortak anahtar kimlik doğrulamasını (parolasız oturum açma) etkinleştirerek SSH hizmetinizin güvenliğini daha da güçlendirebilirsiniz.Bununla ilgili sizlerle bir yazı paylaşacağım ve linkini bu sayfaya da ekleyeceğim..

 

 

 

 

 

Bu eğiticiye oy ver
[Total: 7 Average: 5]
Firat CANOĞLU TAĞ