Port Knocking arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me cypm! Sun, 23 Jul 2017 18:41:52 +0000 tr hourly 1 https://wordpress.org/?v=6.0 https://canyoupwn.me/wp-content/uploads/2016/02/cropped-Başlıksız-1-32x32.png Port Knocking arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me 32 32 TR | Linux SSH Sıkılaştırma https://canyoupwn.me/tr-ssh-sikilastirma/ https://canyoupwn.me/tr-ssh-sikilastirma/#respond Sat, 13 Aug 2016 21:10:23 +0000 https://canyoupwn.me/?p=3814 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

SSH Nedir SSH (Secure Shell) güvenli veri iletimi için kriptografik ağ protokolüdür. SSH bağlantısı bilgisayar-bilgisayar, bilgisayar-sunucu, sunucu-sunucu arasında yapılabilir. SSH uzak kabuk üzerinde yetkili bir metin tabanlı arayüz sağlar. SSH bağlantısı kurulduktan sonra, yerel terminal yazdığınız tüm komutlar şifreli SSH tüneli aracılığıyla uzak sunucuya gönderir ve terminal komutlarınız orada yürütülür. SSH istemci-sunucu modelini kullanır. Standart […]

TR | Linux SSH Sıkılaştırma Çağatay ÇALI

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

SSH Nedir

SSH (Secure Shell) güvenli veri iletimi için kriptografik ağ protokolüdür. SSH bağlantısı bilgisayar-bilgisayar, bilgisayar-sunucu, sunucu-sunucu arasında yapılabilir. SSH uzak kabuk üzerinde yetkili bir metin tabanlı arayüz sağlar. SSH bağlantısı kurulduktan sonra, yerel terminal yazdığınız tüm komutlar şifreli SSH tüneli aracılığıyla uzak sunucuya gönderir ve terminal komutlarınız orada yürütülür. SSH istemci-sunucu modelini kullanır. Standart TCP portu olan 22 SSH bağlantısı için atanmıştır.

Bu kılavuzda, SSH sıkılaştırması için en iyi olan bazı temel güvenlik uygulamaları hakkında örnekler yer alacaktır.

 

SSH Bağlantısı Nasıl Kurulur?

Temelde iki bağlanma yöntemi mevcuttur. Bunlardan birincisi kullanıcı adı ve şifre ile oturum sağlandığı yöntemdir, ikincisi ise SSH key ( SSH açık / gizli anahtar ) yardımı ile oturumun sağlandığı yöntemdir. Şifre oturumları yeni kullanıcılar için anlaşılması kolaydır. Ancak, otomatik botlar ve kötü niyetli kullanıcılar genellikle art arda şifre denemeleri ile güvenlik tavizlerine yol açabilir. Bu yöntem yerine SSH anahtarı yardımı ile oturum sağlanmasını öneriyoruz. Bu yöntemde özel ve genel anahtar çifti kimlik doğrulama öncesinde oluşturulur. Ortak anahtar herkes ile paylaşılabilirken, özel anahtar kullanıcı tarafından güvende tutulmalıdır.

Bu bağlantı yöntemleri dışında SSH versiyonuna göre oturum sağlamak için kullanılabilecek birkaç yöntem daha bulunmaktadır.
Screen Shot 2016-08-13 at 10.44.43

( Solda SSH v2, sağda ise SSH v1’i görmektesiniz. )

 

SSH Sıkılaştırması Yöntemlerinden Bazıları

  • Standart portu değiştirmek
    • SSH kurulumu ile birlikte gelen ayarlarında servis 22. porttan istekleri yanıtlamaktadır. SSH portunu değiştirmek sıkılaştırmanın ilk adımı olarak düşünülebilir.
  • Port yönlendirmelerini kapatmak
    • Port yönlendirmeleri SSH üzerinden diğer servisler ( X11 gibi ) aracılığı ile uzak masaüstü bağlantıkları yapılabilir, bunları kapatabilirsiniz.
  • Şifre ile SSH bağlantılarını engellemek
    • Otomatik port tarayan ve ard arda şifre deneyen (brute-force) kötü niyetli yazılımların hedefinden çıkmamıza yardım edecek adımdır. Portu değiştirmekde bu yöntemi destekleyecektir. Şifre ile oturum sağlanması yerine SSH anahtarları ile oturum sağlayacağız.
  • Root erişiminin kapatılması
    • Sistemdeki en yetkili kullanıcı olan root’a SSH oturumu açılmasını engellemek, sisteme bir şekilde erişim kazanan kötü niyetli kod veya kullanıcıyı yetkisiz kılacaktır. Bu şekilde verilebilecek zarar kısıtlanmış olur.
  • Ana bilgisayar tabanlı kimlik doğrulaması kapatılmalıdır
    • Bulunduğunuz ağda ana bir bilgisayar tarafından sisteme erişimi kapatmanız, ana sisteme yapılan bir saldırıda sunucunuza erişimi engelleyecektir. Bu yuzden ana bilgisayar tabanlı bir kimlik doğrulaması kullanmayacağız.
  • Chroot SSHD (Kullanıcıları kendi ana dizinlerine kilitlemek)
    • Her kullanıcıyı kendi ana dizinlerine hapsederek ( /home/cagatay gibi ) yetkilerini kısıtlayabilirsiniz. Fakat ufak bir google araması ile bypass edilebilir. Amacımız saldırganı yıldırmak 🙂
  • İki aşamalı oturum doğrulama yöntemini kullanın
  • Port knocking kullanın
  • Port spoofing kullanın
    • Bu yöntemler aracılığı ile ssh servisinizi diğer servisler arasında kamufle edip ssh servisinizi daha güvenli hale getirebilirsiniz.

SSH Sıkılaştırması Uygulaması

Öncelikle elimizdeki sunucuya veya ev bilgisayarına SSH bağlantımızı açalım.

Screen Shot 2016-08-13 at 12.42.22

Örnek komut:

ssh [email protected]

SSH oturumundayız, klavuzda Ubuntu 14.04.5 LTS kullanacağım, komular işletim sistemine göre farklılık gösterebilir. Sistemde cagatay adlı bir kullanıcı olduğunu varsayıyoruz. Kullandığınız sistemde kendi isteğiniz doğrultusunda ismini yazabilirsiniz.

  • Open SSH servisi kurulu değilse kuralım

Screen Shot 2016-08-13 at 12.48.24

sudo apt-get install openssh-server
  • Kurulum ile beraber gelen standart ayarları yedekleyelim:

Terminalden:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
sudo chmod a-w /etc/ssh/sshd_config.factory-defaults
  • Düzenleme yapmak üzere ayar dosyamızı açalım:

Terminalden:

sudo vi /etc/ssh/sshd_config

Ayarlarımıza sırasıyla standart portu değiştirerek başlıyoruz:

  • Port 22 yazan satırdaki 22 standart SSH portunu bağlanmak istediğiniz porta yerleştirebilirsiniz.

Screen Shot 2016-08-13 at 12.53.10

  • Protocol yazan satır SSH versiyonunuzu söylemektedir. 2 olduğundan emin olun:

Screen Shot 2016-08-13 at 12.59.11

  • Şifre ile oturum açmayı engelleyelim:

Screen Shot 2016-08-13 at 13.00.45

Yorum satırı halinde olan ( ‘#’ yorum satırı anlamına gelmektedir ) PasswordAuthentication yes satırını yorum’dan çıkartıp yes olan parametreyi no yapıyoruz.

Screen Shot 2016-08-13 at 13.02.23

  • Port yönlendirmelerini kapatalım:

Screen Shot 2016-08-13 at 13.16.11

  • X11Forwarding’i no olarak değiştirin

Screen Shot 2016-08-13 at 13.16.50

  • Hangi kullanıcıların SSH kullanacağını belirleyin

Screen Shot 2016-08-13 at 13.18.54

  • Root erişimini kapatın

Screen Shot 2016-08-13 at 13.20.18

PermitRootLogin’i no olarak değiştirerek yapabilirsiniz.

Screen Shot 2016-08-13 at 13.21.13

  • SSH anahtarı ile giriş yapmak için gerekli ayarlamalarımızı yapalım:

Yeni bir terminal sayfasında: ( SSH oturumunu kapatmayınız )

ssh-keygen -t rsa -b 4096

Yukarıdaki komut kendi bilgisayarınızda açık ve gizli olmak üzere iki anahtar üretecektir. Açık anahtarı şu şekilde bulabilirsiniz:

cat ~/.ssh/id_rsa.pub

Screen Shot 2016-08-13 at 13.24.32

 

Yukarıdaki anahtarı görüntülediğimiz terminal’den sunucuda SSH oturumumuz olan terminal’e geçiyoruz, aşağıdaki ayarlamayı yapıyoruz.
Screen Shot 2016-08-13 at 13.26.16

AuthorizedKeysFile satırını yorum satırı durumundan çıkartıyoruz.

Screen Shot 2016-08-13 at 13.26.56

Kendi açık anahtarımızı SSH dizinindeki authorized_keys’e ekliyoruz.

Screen Shot 2016-08-13 at 13.30.54

Terminalden: ( Sunucuda )

sudo vi ~/.ssh/authorized_keys

Açık anahtarımızı kaydedip çıkıyoruz.

  • Kullanıcıları kendi ana dizinlerine kilitleyelim

/etc/ssh/sshd_config dosyasını tekrardan açıyoruz

Terminalden: ( Sunucuda )

sudo vi /etc/ssh/sshd_config

Aşağıdaki kodları dosyanın en altına ekliyoruz.

Screen Shot 2016-08-13 at 13.34.43

Subsystem sftp internal-sftp

Match group sftponly
        ChrootDirectory /home/%u
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

 

Yukarıda verilen yöntemler sayesinde SSH oturumu açmış kullanıcıların kendi dizinlere etkiyebilmesini sağladık. Standart olarak SSH 22. porttan çalışmaktaydı, onu değiştirdik. Şifre ile oturum açmayı engelledik bu giriş yöntemi yerine daha güvenli olarak önerilen SSH anahtarını kullandık. Sistemimize tünelleme aracılığı ile sağlanabilecek uzak masaüstü bağlantılarını engelledik. Hiyerarşik bir ağ yapısında olduğu varsayılan sunucumuza daha yetkili üst makinalardan erişimi kısıtladık. Sisteme kullanıcı olarak oturum elde etmiş kullanıcıların root yetkilerine erişimini engelledik. SSH bağlantınızı daha güvenli hale getirmek için port spoofing, port knocking ve two factor authentication ( iki aşamalı oturum onayı ) kullanabilirsiniz.

 

Port Spoofing

Port Knocking

SSH Two-Factor Authentication


TR | Linux SSH Sıkılaştırma Çağatay ÇALI

]]>
https://canyoupwn.me/tr-ssh-sikilastirma/feed/ 0
TR | Port Knocking https://canyoupwn.me/tr-port-knocking/ https://canyoupwn.me/tr-port-knocking/#respond Tue, 17 May 2016 21:15:52 +0000 https://canyoupwn.me/?p=2263 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Sunucular, tanımı gereği, hizmet veren ve kullanıcılara uygulamaları ve kaynaklar erişilebilir kılma aracı olarak kullanılmaktadır. Ancak, internete bağlı herhangi bir bilgisayar kaçınılmaz bir şekilde kötü niyetli kullanıcılar ve güvenlik açıklarından yararlanmak için bekleyen komut dosyaları tarafından hedeflenmektedir. Sunucular kullandığı çeşitli geliştirme ortamları gereğince birden fazla servis hizmeti sunmaktadır. E-posta gönderme servisi, SSH ( İki bilgisayar […]

TR | Port Knocking Çağatay ÇALI

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Sunucular, tanımı gereği, hizmet veren ve kullanıcılara uygulamaları ve kaynaklar erişilebilir kılma aracı olarak kullanılmaktadır. Ancak, internete bağlı herhangi bir bilgisayar kaçınılmaz bir şekilde kötü niyetli kullanıcılar ve güvenlik açıklarından yararlanmak için bekleyen komut dosyaları tarafından hedeflenmektedir. Sunucular kullandığı çeşitli geliştirme ortamları gereğince birden fazla servis hizmeti sunmaktadır. E-posta gönderme servisi, SSH ( İki bilgisayar arasındaki güvenli iletişim protokolü – Secure Shell ), web sunucusu ( Apache – Nginx – LiteSpeed vb ), SSL ( Güvenli erişim protokü – https – Secure Socket Layer ). Bu servisler sunucumuzun temel işlevlerini yerine getirmesine yarar.
Güvenlik duvarları erişimi kontrol altında tutmaya yarar, sunucumuzda güvenlik duvarının yaptığı temel işlev budur. Evimizin çelik kapısı gibi düşünebiliriz. Kötü niyetli insanlar kapınızın çelik olduğunu gördüğünde diğer giriş yerlerini test edeceklerdir. Bu ev örneğinde diğer giriş yerleri, pencerelerimiz, balkonlarımız ve çatı girişimizdir.
Sunucularda ise diğer giriş kapılarımız, sunucudaki yazılımı güncellerken, kodumuzu yüklerken ve yine aynı kodumuzu güncellerken kullandığımız diğer servislerdir. Bunlara örnek FTP ( File Transfer Protocol ), SFTP ( Secure File Transfer Protocol ), SSH ( Secure Shell ), telnet ( * ) örnek olarak verilebilir. Sunucumuza eğer fiziksel erişim imkanımız var ise bu servisleri kullanmadığımızda kapatmamız, sadece kullanacağımız zaman açık konuma getirmemiz olası bir saldırı girişiminde kötü niyetli insanlara daha az saldıracak ortam/yol yaratmış olacaktır.
Sunucumuza fiziksel erişimimiz yoksa port knocking ( Port yoklama ) yöntemi ile belirli bir dizi istek sonrasında sunucumuz log kayıtlarını anlamlandırıp kullanmak istediğimiz servisi aktif hale getirecektir.
Yazımın devamında Ubuntu 14.04 dağıtımına sahip bir sunucu üzerine knockd paketini kullanarak ssh hizmetini durdurmadan nasıl gizleyebileceğimizi göstereceğim.

Not: Aşağıda kullanacağım araç ve gereç IPv4 için tasarlanmış olup, IPv6’da geçerliliğini yitirecektir, örneğin,” iptables ” sadece IPv4 adresleri için güvenlik duvarı kuralları korur ancak IPv6 ağ adresleri için güvenlik duvarı kurallarını korumak için kullanılabilecek ” ip6tables ” olarak adlandırılan bir IPv6 muadili vardır. Makale içerisinde port yoklaması terimi yerine ingilizce karşılığı olan port knocking’i kullanacağım.

Port Knocking Nasıl Çalışır?

Saldırganların direkt olarak hedefine koyduğu servislerin aktif halde olmaması esasını benimser. Servisler bir dizi alakasız servise gönderilen paketlerin log dosyalarının takibinden sonra aktif hale gelir. Aktiflik süresini ve/veya istekler arasındaki saniye farklarına göre servisi açmak sizin seçiminize sunulmuştur.

Port knocking’i HTTP servisleri için kullanmak yerinde olmayacaktır. Bu kurguyu SSH, FTP, SFTP gibi daha yetkili servislerde kullanmak daha yerinde bir harekettir.

Örnek olarak; SSH servisinizin kullanıcı adı şifre ikilisi ile giriş yapmasının bir güvenlik tavizi olarak görüldüğünü düşünüyoruz, bu yöntem yerine .pem uzantılı anahtarlar kullanarak sisteme girişi sağlıyoruz. Bu hizmeti direkt olarak kullanıcıların istek gönderebileceği bir katmandan sağlıyoruz. Fakat port knocking kullanırsak direkt olarak istek gönderemeyecekleri için sistemimizin bel kemiği olan servisleri daha karmaşık bir algoritma dahilinde gizlemiş bulunabiliriz.

Sisteminizde port taraması yapan, kötü niyetli birini yıldıracak veya yakalatacak bir yöntem olarak görünebilir. Tarama sonuçlarında açık servis göremeyen kötü niyetli kişi eli kolu bağlı bir şekilde başka bir giriş aramaya veya daha farklı bir şekilde bilgilerinizi ele geçirmeye çalışacaktır.

Trafiğimizi IPTables Kuralları ile Sınırlandıralım

Port knocking hizmetini yapılandırmadan önce IPTables kurallarını oluşturalım. Ubuntu 14.04’de IPTables kurulu olarak gelecektir. Sunucumuzun tüm isteklere yanıt verebileceği şekilde ayarlamalar yapmamız, port knocking hizmeti için log toplama ortamı yaracaktır.

Terminal :

sudo iptables -A INPUT -i lo -j ACCEPT

1

Yukarıda yer alan kural tüm giriş isteklerine yanıt vermek üzere sunucumuzu ayarlayacaktır.

Terminal :

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

2

Yukarıda yer alan kural kurulmuş bağlantıların sonlandırılmaması için gereklidir, örnek verecek olursak ssh servisine port knocking sonrasında bağlı olduğumuz süre boyunca kullanmadığımız zaman otomatik olarak sistemden düşerken bu port knocking ile giriş yapıldığında düşmemelidir çünkü tekrardan port’ların tetiklenmesi gereklidir.

Herkes için görünür kabul edilen servislerimize izin vermeliyiz, web sunucusu olarak yayın yapan servisler 80 portundan yayın yaparlar. İlgili porta izin verelim.

Terminal :

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

3

Bu kuralımızdan sonra diğer tüm bağlantılara izin vermediğimizi IPTables kurallarına eklemeliyiz.

Terminal :

sudo iptables -A INPUT -j DROP

4

Gelecek tüm diğer bağlantı isteklerini düşürecektir.

Halihazırda kurmuş olduğumuz ayarları görüntüleyelim:

Terminal :

[code lang=”js”]sudo iptables -S[/code]

5

Şuanda sunucumuzda görüldüğü üzere SSH servisine erişimimiz mevcut değil, eğer sunucu ile aramızda fiziksel bir erişim yok ise erişimi servis sağlayıcılar üzerindeki yönetim panelinden sağlayabiliriz.

Hazırladığımız IPTables kurallarını kalıcı hale getirmek için ilgili paketi işletim sistemimize kuralım.

Terminal:

sudo apt-get install iptables-persistent

6

Yukarıdaki komutu çalıştırdığımızda ekranımıza aşağıdaki görseldeki gibi bir seçim ekranı gelecektir.

7

Boşluk ( Space ) tuşu aracılığı ile onaylayabilirsiniz, kuralların kaydedilmesini isteyip her sunucu tekrar açıldığında yürürlüğe girmesini isteyip istemediğinizi soruyor. Boşluk tuşuna bir kez daha basmanızı isteyecektir. Sonuç aşağıdaki ile benzer olacaktır.

8

 

Sonrasında yüklediğimiz hizmeti başlatalım.

Terminal :

sudo service iptables-persistent start

9

Knockd Hizmetinin Kurulması

Terminal :

sudo apt-get install knockd

10

Knockd servisini sistemimize kurdu fakat henüz servisi açmadık, kurulum sonunda servisi açık hale getireceğiz. ( vi /etc/default/knockd )

Knockd Hizmetinin Ayarlanması

Terminal :

sudo nano /etc/knockd.conf

11

Terminal komutunu girdiğimizde yukarıdakine benzer bir kod bloğu bizi karşılıyor. Options ( Seçenekler ) bölümünde UseSyslog parametresini görmektesiniz, bu koşul knockd hizmetinin logları sistemdeki loglardan okuyacağını söyler. Eğer okunacak logların yolunu değiştirmek isterseniz “UseSyslog” yerine aşağıdaki komutu girmelisiniz.

LogFile = /path/to/log/file

Seçenekler’in altındaki SSH servisini açma ve kapama istek desenlerini görmekteyiz.Orada yazan parametrelerin türkçe karşılıklarını ve açıklamalarını açıklamak istiyorum:

sequence : sıra, dizi – İsteklerimizin hangi portlara sıra sıra geleceğini belirtir

seq_timeout: Her bir istek arasında kaç saniye süre içersinde bitmesi gerektiğini belirtir.

command: Arkada saklamaya çalıştığımız servisi tekrar açacak komut dizisidir.

tcpflags : tcp isteklerimizin hangi bayrağa sahip olması gerektiğini bildirir.

Eğer yukarıdaki kurallara uygun bir şekilde istekleri yapabilirseniz sunucunuzda kapalı olan ssh servisi açılmış durumda olacaktır. Makalemizin başında belirttiğimiz -A IPtables kuralına dikkati çekmek isterim, bu parametre isteklerimizin hepsini düşürüyor durumdadır, bu problemi çözmek için openSSH parametremizin başına 1 koyarak tekrardan düzenliyoruz ve bu sayede sadece o isteği yapan istek sahibinde izin vermiş olacağız.

command = /sbin/iptables -I INPUT 1 -s %IP% -p tcp --dport 22 -j ACCEPT

12

Yukarıda belirttiğimiz özelliklerin benzerleri aşağıdaki özellikler için geçerlidir ve ssh servisini kapalı duruma getirecektir.

Şuanda kurulumumuz tamamlandı, desenleri kendinize göre özelleştirebilir ve kullanabilirsiniz.Kurulum tamamlanmakla beraber henüz knockd servisimiz aktif durumda değildir. Kurulum başında not olarak bıraktığım dizine editor ile giriş yapıp hizmeti aktif hale getireceğiz.

Terminal :

sudo vi /etc/default/knockd

13

Yukarıda görüldüğü üzere START_KNOCKD=0 olan parametreyi START_KNOCKD=1 ile değiştirdik. Kaydedip çıktıktan sonra hizmetimizi yeniden başlatalım.

Terminal :

sudo service knockd start

Eğer servis başlatılırken benzer bir ekran ile karşılaşıyorsanız:

14

Çözümü :

Terminal :

ip a l</pre>
<img class="alignnone size-full wp-image-2284" src="https://canyoupwn.me/wp-content/uploads/2016/05/15.png" alt="15" width="1210" height="514" data-mce-src="https://canyoupwn.me/wp-content/uploads/2016/05/15.png">



Yukarıdaki resimden anlaşılan üzere sunucumuz eth1 üzerinden yayın yapıyor.

Terminal :
<pre>[code lang="js"][/code]vi /etc/default/knockd

Yukarıdaki terminal komutunu çalıştırdıktan sonra ilgili kısmın önündeki yorum satırını kaldırıp hizmeti tekrar başlatmayı deneyelim.

16

Terminal :

sudo service knockd reload

17

Knockd hizmeti IPTables kurallarını güncellemek üzere çalışmaya başladı.

Port Knocking’i Test Edelim

Port knocking’i kullanmak için çeşitli araçlar kullanabilirsiniz bunlara örnek olarak; netcat, nmap verilebilir fakat sadece knock için tasarlanmış olan bir arabirim kullanabilirsiniz, adı knock. Fakat ben örneğimde linux ve MAC OS X üzerinde direkt terminal aracılığı ile kullanılabilecek nmap aracını kullanacağım.

Terminal :

ssh root@server_ip_adresi

İlgili servise bağlanma talebinde bulunduğumuzda bizi epey bir bekletecek ve sonrasında Timeout hatası verecektir.

sh: connect to host server_ip_address port 22: Operation timed out

18

SSH servisimiz kapalı durumda. Sunucu üzerindeki açık portları görüntülemeye çalışalım;

19

Nmap taramamıza göre sadece http servisimiz açık konumda.

Port knocking işlemine geçelim:

Terminal :

for x in 7000 8000 9000; do nmap -Pn --host_timeout 201 --max-retries 0 -p $x server_ip_address; done

Yukarıdaki bash scripti terminalimize işliyoruz.

20

 

Ardından ssh bağlantımızı gerçekleştirmeye çalışıyoruz.

Terminal :

ssh root@server_ip_adresi

 

SSH servisinizin açık olduğunu göreceksiniz.

SSH erişimini tekrardan gizli hale getirmek için:

Terminal :

for x in 9000 8000 7000; do nmap -Pn --host_timeout 201 --max-retries 0 -p $x server_ip_address; done

Knock Arabirimi ile Port Knocking

Knock arabirimini kullanarak basit bir şekilde portları yoklayabilirsiniz. Knock arabirimini kurmak üzere linux dağıtımlarından olan Kali Linux dağıtımı üzerinden anlatıma devam ediyorum.

Terminal :

sudo apt-get install knockd

Kullanımı:

knock server_ip_address sequence

Örnek kullanım, servisi açmak için :

knock 104.131.28.251 7000 8000 9000

Örnek kullanım, servisi kapatmak için :

knock 104.131.28.251 9000 8000 7000

 

Knockd Hizmetini Kullanım Sonrasında Otomatik Kapatmaya Ayarlamak

Kullanımlarımızdan sonra hizmeti kapatmayı unutma ihtimaline karşı otomatik kapatmaya ayarlayabilirsiniz.

Terminal :

sudo vi /etc/knockd.conf

21

Yukarıda görüldüğü üzere cmd_timeouti start/stop_command’lar eklenmiş durumda. Bu komutları sırasıyla açıklamak istiyorum:

cmd_timeout : Terminal erişimi kapatıldıktan 10 sn sonra stop command’ı yani durdurma komutunu yürürlüğe sokacaktır. Start_command ise gelen isteklerin ardından çalışacak komuttur. Dikkatinizi knock edilecek yani istek yapılacak portların sayısının arttığına ve seq_timeout’un 10 saniye arttığına çekmek istiyorum. Bu tamamiyle isteklerin kararlılığındaki bütünlüğü sağlamak amaçlıdır.

Servisimizi yeniden başlatalım.

Terminal :

sudo service knockd restart

Sunucumuzun ilgili portlarını yoklayalım.

Terminal :

knock server_ip_address 7000 8000 9000 1000 && ssh root@server_ip_adresi

Sunucumuzda çalışan firewall servisi kullanım sonrasında 10 saniye bekleyip SSH servisini durdurmak üzere beklemektedir.

Sonuç Olarak

Servis gizleme hizmeti kullanmak, yurt içinden ve/veya yurt dışından gelecek rasgele port tarama ve kötü amaçlı kod parçalarını çalıştırma girişiminde bulunan kişilerin/kodların çalışacak ortam bulamamasına, evimizin camlarını görememesinde etkili olacaktır.

Bu tip bir hizmeti yapılandırmak sunucumuzun güvenlik seviyesine yeni bir katman ekleyecektir, hiç bir zaman güvenli bir sistem yoktur fakat denemekten sıkılan bir hacker olabilir.

TR | Port Knocking Çağatay ÇALI

]]>
https://canyoupwn.me/tr-port-knocking/feed/ 0