Ana Sayfa » *nix » Pure-FTPd Server ClamAV Entegrasyonu- FreeBSD

Pure-FTPd Server ClamAV Entegrasyonu- FreeBSD


BerbatKötüİdare EderGüzelHarika (Toplam 3 oy. 5 puan üzerinden ortalama 5,00 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading...
FTP server olarak pure-ftpd'yi tercih ediyorsanız, sununucuyu ile birlikte çalışacak şekilde set edebilir ve upload edilen dosyaların taranmasını ve virüs içerenlerin otomatik olarak silinmesini sağlayabilirsiniz.

Özellikle bir çok kişinin bağlanıp dosya uploadı yaptığı ftp sunucuları için gönderilen dosyaların bilinen virüslere karşı taranıp temizlenmesi mantıklı bir yaklaşımdır. Bu nedenle, yazının devamında, bir pure-ftpd sunucusuna entegrasyonunun nasıl yapılabileceğinden bahsedeceğim.

Başlarken


Yazıda ayrıca pure-ftpd kurulumu anlatmayacağım. Dolayısı ile devam edebilmek için sisteminizde pure-ftpd'nin halihazırda kurulu ve düzgün olarak çalışıyor olması gerekmektedir. FreeBSD sistemler için http://www.syslogs.org/mysql-destekli-pure-ftpd-kurulumu/ adresinde bir kurulum dökümanı bulabilirsiniz.

İşlemler sisteme kurup, pure-ftpd'ye dosya upload'larında clamdscan'i çalıştırarak dosyayı tarayacak bir scripti çağırmasını söylemekten ibaret. Sisteminiz FreeBSD olmasa da yapılandırma işlemleri hemen hemen aynıdır, dolayısı herhangi bir linux dağıtımı kullanıyor olsanız bile en azından ile fikir vermesi açısından yazıdan yararlı olabilir.

Clamav Kurulumu


Öncelikli olarak sisteme clamav kurmak gerekiyor. Freebsd sistemlerde bu işlemi klasik olarak ağacından yapıyoruz. (Kurulumu yapmadan önce ağacınızın güncel olduğundan emin olun. Güncellemek isterseniz portsnap kullanarak bu işlemi kolayca yapabilirsiniz.)
# cd /usr/ports/security/clamav
# make install clean

Kurulumun ardından, clamd servisini startup'a ekliyoruz ve başlatıyoruz.

# echo 'clamav_clamd_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/clamav-clamd start

Şimdi de, clamav db'sini güncelliyoruz.

# freshclam

Clamav'ın güncellenmesinden sonra, pure-ftpd yapılandırmasına geçebiliriz.

Pure-FTPd Yapılandırması


Bu aşamada öncelikle, sunucuya dosya upload'ı yapıldığı zaman, pure-ftpd'nin clamdscan'i çağırması ve tarama işlemini yapmasını sağlamak için bir oluşturmak gerekiyor. Ben, pure-ftpd dosyaları /usr/local/etc dizini altında durduğu için bu dosyasını aynı dizinde clamd-scan.sh ismi ile oluşturuyorum:

Önce dosyayı açalım:

# vi /usr/local/etc/clamd-scan.sh

Sonra da aşağıdaki ibareleri dosya içerisine yapıştırıp kaydedelim:

#!/bin/sh
/usr/local/bin/clamdscan --remove --quiet --no-summary "$1"

Gördüğünüz gibi dosyamız clamdscan'i çağırıp dosyanın taranmasını ve virüs içeren dosyaların sessizce silinmesini sağlıyor. Şimdi bu dosyanın çalıştırılabilmesi için gerekli izinleri veriyoruz.

# chmod 755 /usr/local/etc/clamd-scan.sh

Script dosyası hazırlandıktan sonra pure-ftpd'nin her dosya uploadında bu betiği çağırmasını sağlamak için gerekli tanımlamaları yapalım. Bu işlem için /usr/local/etc/pure-ftpd.conf dosyasını editliyoruz.

# vi /usr/local/etc/pure-ftpd.conf

İlk olarak aşağıda görülen Umask satırını bulun. Buradaki umask değeri upload edilen dosya ve dizinler için uygulanacak izin değerlerini atamaktadır ve default değer gördüğünüz gibi 133:022 yani dosyalar için 644 dizinler için 755'dir. Eğer yeni upload edilen dosyalar clamdscan tarafından okunamazsa tarama işlemi gerçekşeltirilemez bu nedenle  dosyaların clamdscan tarafından okunabilmesi için aşağıdaki şekilde 644'e tekabül edecek şekilde herkes tarafından okunabilir olduğundan emin olun.

Umask                       133:022

Not: Pure-ftpd sunucusunu kullanici dizinlerini chroot ortamına aldığı için dosyaların herkes tarafından okunabilmesi, ftp kullanıcılarının birbirlerinin dosyalarını görebilecekleri anlamına gelmemektedir.

Dosya izinleri konusunu düzenledikten sonra aynı dosya için aşağıda görülen #CallUploadScript yes satırının başındaki # işaretini kaldırarak upload scriptinin çağırılacağını söylüyoruz.

CallUploadScript yes

Şimdi dosyayı kaydedip çıkabiliriz. Son olarak rc.conf dosyasında upload scriptimizin yerini belirtip startup'a ekleyeceğiz. Böylece pure-ftpd başladığı zaman upload scripti de başlatılacak ve virüs tarama işlemleri için hazır olacak:

rc.conf dosyasını editleyelim:

# vi /etc/rc.conf

Dosya içerisinde pureftpd_enable=”YES” satırının en altına aşağıdaki satırları ekleyelim.

pureftpd_upload_enable="YES"
pureftpd_uploadscript="/usr/local/etc/clamav_check.sh"

Son olarak pure-ftpd'yi yeniden başlatıyoruz.

# /usr/local/etc/rc.d/pure-ftpd restart

Böylece upload scripti de devreye girecektir:

Stopping pureftpd.
Stopping /usr/local/sbin/pure-uploadscript.
Starting pureftpd.
Running: /usr/local/sbin/pure-ftpd -g/var/run/pure-ftpd.pid -A -c50 -B -C8 -D -E -fftp -H -I15 -lmysql:/usr/local/etc/pureftpd-mysql.conf -L2000:8 -m4 -s -U033:033 -u100 -i -R -j -k99 -Z -o
Starting /usr/local/sbin/pure-uploadscript.

Herşey yolunda gittiyse bir test yaparak durumu kontrol edebilirsiniz.

Misal olarak http://www.eicar.org/anti_virus_test_file.htm adresinden edindiğimiz bir test virus dosyasını sunucuya upload edelim:

ftp> mput eicar.com.txt
mput eicar.com.txt? y
200   successful
150 Connecting to port 43015
226-File successfully transferred
226 0.003 seconds (measured here), 21.31 Kbytes per second
68 bytes sent in 0.00 secs (142.2 kB/s)

Dosya upload edilmiş görünüyor ancak, clamd loglarına bakarsanız; tespit edildiğini (ve silindiğini) göreceksiniz.

# tail -n 10 /var/log/clamav/clamd.log
/usr/home/ftperisimi/eicar.com.txt: Eicar-Test-Signature FOUND

Hepsi bu kadar.

Visited 353 times, 1 visit(s) today
Kategoriler: *nix |

Bu yazılar da ilginizi çekebilir:


- FreeBSD – Pure-ftpd: [ERROR] Unable to find the ‘ftp’ account”
- Mysql Destekli Pure-FTPD Kurulumu
- Pure-Ftpd – md5 Encrypted Kullanıcı Şifrelerinin Değiştirilmesi
- ClamAV – Security Warning: No Support For Digital Signatures
- FreeBSD üzerine Rsyslog Kurulumu ve Yapılandırması

Yorumlar


Trackbacks

Yorumda bulunun.