« Penetration Test Kriterleri… | Home | Yerel Aglarda Snifferlarin Tespiti »

OpenBSD PF ile brute force SSH saldirilarini engellemek

By Huzeyfe ONAL | April 20, 2007

Disariya acik bir SSH sunucu calistiriyorsaniz buyuk risk altindasiniz demektir. Son birkac yildir SSH sunuculara yapilan saldirilarda oldukca fazla artis gozlemleniyor(Oyle ya SSH sunucusu bir sisteme dalmanin en saglam yolu?). Bunun icin genelde bruteforce tarzi yontemler kullaniliyor.

Genelde sinir bozucu loglardan baska bir ise yaramasa da bazen sansli birileri parolayi bulmayi basarabiliyor. Ornek: Dunyanin en guvenli sistemlerinden biri sayilacabilecek OS’lardan birinde(FreeBSD) bir arkadasin baglantisini test etmek icin parolasini cok basit birsey vermistim. Ben problem ile ugrasirken o arada sistemde benden baskalarinin da oldugunu hissettim:) -eve cok kotu bir his bu!- hemen loglara ve calisan/gizli prosesleri detaylica kontrol ettikten sonra biraz once degistirdigim parolayi sansli birinin buldugunu gordum.(Tum bu olanlar 30 dakika surmedi)velhasil davetsiz misafiri kovduk, bir daha gelmesini engelledik ama bu bir daha ayni duruma dusmeyecegimizi garanti etmez. Bunun icin sistemlere yapilan bruteforce saldirilarina bir cozum bulmam gerekti. Kullanabilecegim tek arguman bir OpenBSD Firewall oldugu icin ben de onun uzerinde cozumler dusunmeye basladim…

Aslinda SSH servislerine yapilan brute force saldirilarini engellemenin en mantikli ve guvenli cozumu SSH default portunu degistirmek, mumkunse public-private key kullanmak ve sisteme erisim yapabilecek kullanicilari (AllowUsers ile)belirlemek. Ama bazen bu cozumleri uygulamayacak duruda olabiliriz ya da SSH sunucu bizim kontrolumuzde olmayabilir.

Bu gibi durumlarda ise network seviyesinde cozum uretmemiz gerekecek. Kullandiginiz guvenlik duvari/IPS sistemine gore cozum degisecektir ama mantik ayni:

belirli zaman icerisinde belirli sayidan fazla istek yapan hostlari blokla! ve bunu ek programlar gerektirmeden aktif olarak (loglari analiz edip is isten gectikten sonra bloklama gibi degil)yap:)

Gelelim bunu Open/FreeBSD PF’de nasil yapacagimiza.

vi /etc/pf.conf

table persist

pass in on $ext_if proto tcp from any to ($ext_if) port ssh \ flags S/SA keep state (max-src-conn-rate 2/30, overload flush global)

block drop in log (all) quick on $ext_if from

max-src-conn-rate 2/30 = Eger 30 saniye icerisinde herhangi bir IP adresinden 2 den fazla SSH

istegi gelirse o IP adresini ssh_yasaklilar tablosuna aktar, ve sonraki block kurali ile

ssh_yasaklilar tablosundaki tum IP adreslerini blokla.

*OpenBSD 4.1 ve sonrasi icin keep state ontanimli geldigi icin yazilmasina gerek yoktur.

Yasaklanan IP adreslerinin belirli bir zaman icerisinde silinmesini istersek bunu cron’a yazacagimiz bir satirla halledebiliriz. (4.1 oncesi surumler icin

http://expiretable.fnord.se/ adresinden detayli bilgi edinebileceginiz expiretable, OpenBSD 4.1 ile birlikte pfctl -T expire komutunu kullanabilirsiniz.)

Ben 4.1 surumu kullandigim icin crontab’a asagidaki komutu calistirmasini soyluyorum.

pfctl -t ssh_yasaklilar -T expire saniye_cinsinden_deger.

Topics: OpenBSD |

One Response to “OpenBSD PF ile brute force SSH saldirilarini engellemek”

  1. alper Says:
    October 10th, 2007 at 9:18 pm

    paylaştiginiz için teşşekürler

Comments

Anket Köşesi


Teknik bloglarda icerik nasil olmali?
View Results

Archives

Friends

Life(over)IP Network



View my profile on Turk Blog Yazarlari