APF Nedir ?

APF kural tabanlı bir iptables guvenlik duvarıdır.Ayarlanması ve kullanılması ozellikle sunucular icin cok kolaydır.

Ozellikleri

- Kolay anlaşılan kural tabanlı ayar dosyası.
- Bağımsız giriş ve cıkış filtreleme.
- ID tabanlı cıkış kontrolu bu sayede belirtilen uygulamanın sahibine bakarak cıkış yapıp yapmamasına izin verebilirsiniz.
- Genel tcp/udp port ve icmp tipi ayarlar
- Sistemdeki her ip icin ozel yapılandırma.
icmp ataklarını onlemek icin icmp tabanlı koruma sistemi
antidos yazılımı
- dshield.org engel listesi bu listede aktif olan saldırganlar tum apf kullanan sunucularda erişim hakları engellenir.
- tcp/ip saldırılarını engelleemk icin ozel sysctl ayar dosyası
- İstenmiyen trafiği engellemekicin ozel hazırlanabilen kural dizisi
- Kernel seceneklerini kullanabilme abort_on_overflow ve tcp syncookies gibi.
- Kolay yonetilebilir bir guvenlik duvarı yazılımı.
- Guvenebileceğiniz ve direk olarak engelleyeceğiniz hostları belirtebileceğiniz kural dosyası.
- APF ile uyumlu 3. parti uygulamaları.

Cok etkili bir guvenlik duvarı olmakla beraber sunucuların genelinde bu guvenlik duvarı kullanılmaktadır.Ayar dosyaları ve kurulumu kolaydır ve etkilidir.

KURULUM

PHP Code:
- usrlocalsrc dizinine geciyoruz


PHP Code:
cd usrlocalsrc


- Dosyayı sunucuya indiriyoruz.


PHP Code:
wget http://www.rfxnetworks.com/downloads/apf-current.tar.gz



Sıkıştırılmış arşiv dosyasını acıyoruz.
PHP Code:
tar -xvzf apf-current.tar.gz



Uygulamanın bulunduğu dizine giriyoruz.

PHP Code:
cd apf-0.9.5-1/



Kurulum scriptini calıştırıyoruz

PHP Code:
.install.sh


.: APF installed
Install path: /etc/apf
Config path: /etc/apf/conf.apf
Executable path: /usr/local/sbin/apf
AntiDos install path: /etc/apf/ad/
AntiDos config path: /etc/apf/ad/conf.antidos
DShield Client Parser: /etc/apf/extras/dshield/



- Ayar dosyasını acıp gerekli duzenlemeleri yapacağız
PHP Code:
pico etcapfconf.apf




İlk once değişkenlerin ne olduğunu size acıklayacağım sonra gerekli duzenlemeri yapacağız.

DEVM="1"
Devolopment mod olarak acıklanıyor guvenlik duvarı ilk kurulduğunda standart olarak bu modda siz ayarları yapana kadar her 5 dakikada bir guvenlik duvarı kurallarını temizliyor.Boylece ssh portunu engelleseniz bile 5 dakika icerisinde girebilirsiniz.Herşeyin yolunda gittiğini anladıktan sonra bu değeri 0 olarak ayarlayın ve guvenlik duvarını yeniden başlatın.
LGATE_MAC=""
Yerek ağ mac adresidir.Buraya bir değer girildiği zaman sadece buradan gelen isteklere izin verilicektir.Biz bu değeri boş bırakacağız.
LGATE_LOG="0"
Değeri 1 olarak ayarlarsanız butun ağ trafiğinin kayıdı tutulucaktır.Biz bu değeride 0 olarak bırakacağız.
EN_VNET="0"
Bu değeri 1 olarak ayarlarsanız sistemdeki tum ipler icin farklı kurallar kurabilirsiniz./etc/apf/vnet/ dizinine bu kuralı yerleştirebilrisiniz gene standart olarak bir template bu dizinde var.
TIF=""
Guvenilen ağlar .
DROP_LOG="1"
Kernel tabanlı loglama.
LRATE="60"
Iptables in dakikada logladığı olay sayısı.
IG_TCP_CPORTS="22"
S istemde iceriye tcp portlarını belirtir.22 yazan yere virgul ile acılıcak portları yazının devamında ekleyeceğiz.
IG_UDP_CPORTS=""
İceriye acılıcak udp portlarını gosterir.
EGF="0"
Bu değeri 1 olarak acıcağız cıkan paketlerin filtrelenmesi.
EG_TCP_CPORTS="22"
Sitemden dışarıya acılacak tcp portları.
EG_UDP_CPORTS=""
Sistemden dışarıya acılıcak udp portları.
USE_DS="0"
Dshield.org un engellenenler listesine bu seceneği 1 olarak secerseniz katkıda bulunursunuz.


Cpanel de Yapılacak değişiklikler

- Ayar dosyamızı acıyoruz:
PHP Code:
pico etcapfconf.apf


- Dosya icinde aşağıdaki değişiklikleri yapıyoruz:

Alıntı:
USE_DS="0"
ve 3 satır altındaki

USE_AD="0"
kısımlarını bulup

USE_DS="1"
USE_AD="1"
olarak değiştiriyoruz.

- IG_TCP_CPORTS yazan kısmı buluyoruz

icindeki portları silip aşağıdaki portları ekliyoruz
PHP Code:
IG_TCP_CPORTS="20,21,22,25,26,53,80,110,143,443,46 5,993,995,2082, 2083,2086,2087,2095,2096"


- IG_UDP_CPORTS kısmını buluyoruz, icindeki portları silip aşağıdaki portları eklliyoruz:
PHP Code:
IG_UDP_CPORTS="21,53,873"


- EFG kısmını buluyoruz EGF="0" olan değeri EGF="1" olarak değiştiriyoruz

EG_TCP_CPORTS kısmını buluyoruz icindeki port listesini temizleyip aşağıdaki portları ekliyoruz.
PHP Code:
EG_TCP_CPORTS="21,22,25,26,27,37,43,53,80,110,113, 443,465,873,208 9"


EG_UDP_CPORTS kısmını buluyoruz icindeki port listesini temizleyip aşağıdaki portları ekliyoruz

PHP Code:
EG_UDP_CPORTS="20,21,37,53,873"


Calıştırma

Kod:
/usr/local/sbin/apf -s



komutunu uygulayarak guvenlik duvarımızı başlatıyoruz. SSH oturumumuzu kapatıp yeni bir oturum acıp sunucuya girmeye calışıyoruz. Eğer herhangi bir sorunla karşılaşırda giremezseniz guvenlik duvarı kurallarının 5 dakika icinde silineceğini unutmayın.


Başarılı bir şekilde giriş yaptıysanız editorumuz ile apf nin ayar dosyasını tekrar acıp devolopment moddan cıkartıcaz boylece artık guvenlik duvarı kuralları 5 dakikada bir temizlenmeyecektir:

Kod:
pico /etc/apf/conf.apf
DEVM="1" olan kısımı bulup DEVM="0" değiştiriyorsunuz.



Kod:
/usr/local/sbin/apf -r
komutu ile tekrar başlatıyoruz...
Guvenlik Duvarı ile kullanabileceğiniz parametreler

/usr/local/sbin/apf -s
Guvenlik Duvarını acar.

/usr/local/sbin/apf -r
Guvenlik Duvarını yeniden başlatır.

/usr/local/sbin/apf -st
Guvenlik Duvarının durumunu gosterir.

/usr/local/sbin/apf -f
Guvenlik Duvarını durdurur.

/usr/local/sbin/apf -l
Kuralları listeler.
Bir kullanıcının apf yardımı ile sistemden uzaklaştırılması

Kod:
/usr/local/sbin/apf -d ipnumarası


şeklindedir.

Sistemden uzaklaştırmak istediğiniz ip numarası 81.214.247.127 ise

Kod:
/usr/local/sbin/apf -d 81.214.247.127



yazmanız yeterlidir.
Otomatik calıştırma

Son olarak apf nin sunucu yeniden başlatıldığında otomatik olarak başlatılmasını sağlamak icin aşağıdkai komutu giriyoruz.

Kod:
chkconfig --level 2345 apf on
APF antidos modulunun kurulumu

Antidos modulu bir log analiz moduludur arka arkaya gelen istekleri değerlendirerek bunu sizin belirlediğiniz değeri aştığında saldırganların sistemden uzaklaştırılmasını sağlamaktadır.


/etc/apf/ad/conf.antidos
yazıp konfigurasyon dosyasını acıyoruz,
LP_KLOG="0" kısmını bulup
LP_KLOG="1" şeklinde değiştiriyoruz
DET_SF="0" kısmını bulup
DET_SF="1" şeklinde değiştiriyoruz
TRIG="12" kısmını bulup
TRIG="10" şeklinde değiştiriyoruz
SF_TRIG="25" kısmını bulup
SF_TRIG="12" şeklinde değiştiriyoruz
DROP_IF="0" kısmını bulup
DROP_IF="1" şeklinde değiştiriyoruz
IPT_BL="0" kısmını bulup
IPT_BL="1" şeklinde değiştiriyoruz
USR_ALERT="0" kısmını bulup,USR_ALERT="1" olarak değiştiriyoruz. DET_SF="0" kısmını bulup, DET_SF="1" olarak değiştiriyoruz. Option: USR="[email protected]"kısmını bulup mail adresinizi yazıyorsunuz.

- Dosyayı kaydedip cıktıktan sonra :

Kod:
crontab -e


yazarak crpntab ı acıyoruz buraya aşağıdaki girdiyi yazıyoruz.

Kod:
*/2 * * * * root /etc/apf/ad/antidos -a >> /dev/null 2>&1



ve contabdan cıkıp

Kod:
/usr/local/sbin/apf -r



komutu ile guvenlik duvarını tekrar başlatıyoruz.
APF Guvenlik Duvarının durumunu size mail ile bildirilsin

APF guvenlik duvarının durumunun yani calışıp calışmadığının ve loglarının size bildirilmesini istiyorsanız aşağıdaki değişikliği yapın.

- /etc/cron.daily/ klasorune giriyoruz.

cd /etc/cron.daily


Bilgilendirme dosyasını acıyoruz.

pico apfdurumbilgisi.sh


İcinde aşağıdaki kodu yapıştırıyoruz mail adresinizi değiştirmeyi unutmayın.

Kod:
#!/bin/bash
tail -100 /var/log/apf_log | mail -s "APF Durum Bilgisi" [email protected]



Kaydedip cıkıyoruz ve dosyaya gerekli izini vereceğiz şimdi.


Kod:
chmod 755 apfdurumbilgisi.sh



Artık hergun elinize calışıp calışmadığına dair bir rapor gelicektir.



NOT : Bu dokuman linux-sevenler.org sitesinden alınmıştır.
__________________