Halihazırda çalışan bir ProFTPD sunucuda mod_clamav modülünü devreye almak istediğimizde ProFTPD’yi patch’leyip, tekrar derlememiz gerekiyor: link
Ancak production’daki bir sistemde uygulamayı tekrar derlemek istemeyebiliriz. Neyse ki alternatif bir yöntem daha var.
Bunun için ProFTPD’nin DSO (Dynamic Shared Objects) modülü ile derlenmiş olması gerekiyor. DSO modülü, uygulamaya çalışma zamanında yeni modüller eklememizi sağlıyor. mod_clamav’ı da bu modül yardımıyla kuracağız. Centos için ProFTPD paketi rpmforge depolarında bulunuyor, rpmforge’daki paket de bu modül ile birlikte derlenmiş halde geliyor:
# proftpd -l
Compiled-in modules:
mod_core.c
mod_xfer.c
mod_auth_unix.c
mod_auth_file.c
mod_auth.c
mod_ls.c
mod_log.c
mod_site.c
mod_delay.c
mod_facts.c
mod_dso.c
mod_ident.c
mod_readme.c
mod_auth_pam.c
mod_tls.c
mod_cap.c
mod_ctrls.c
Bu komutun çıktısında mod_dso.c satırını görüyorsak, DSO modülümüz aktif demektir.
mod_clamav’ı aktive etmek için önce gerekli paketleri kuruyoruz:
yum install -y proftpd-devel clamav-devel libacl-devel
Sonra da Github’dan modülün kodlarını alarak, DSO modül olarak derliyoruz:
git clone https://github.com/jbenden/mod_clamav
prxs -c -i -d mod_clamav.c
Derlediğimiz modülü aktif hale getirmek için /etc/proftpd.conf içerisine şu satırları ekliyoruz:
<IfModule mod_dso.c>
LoadModule mod_clamav.c
</IfModule>
<IfModule mod_clamav.c>
ClamAV on
ClamServer 127.0.0.1
ClamPort 3310
</IfModule>
# proftpd -vv
ProFTPD Version: 1.3.4a (maint)
Scoreboard Version: 01040003
Built: Fri Jan 20 2012 17:30:05 EST
Loaded modules:
mod_clamav/0.13
mod_ctrls/0.9.4
mod_cap/1.1
mod_tls/2.4.3
mod_auth_pam/1.1
mod_readme/1.0
mod_ident/1.0
mod_dso/0.5
mod_facts/0.3
mod_delay/0.7
mod_site.c
mod_log.c
mod_ls.c
mod_auth.c
mod_auth_file/0.9
mod_auth_unix.c
mod_xfer.c
mod_core.c
Loaded modules kısmında mod_clamav/0.13 gibi bir satır görüyorsak, kurulum başarılı olmuş demektir.
Bu işlemlerin ardından FTP servisini restart ederek işlemi tamamlıyoruz.
Modülün düzgün çalıştığını görmek için test amaçlı kullanılan bir virüs olan Eicar‘ı kullanabilirz. Eicar’ı upload etmeye çalıştığımızda ProFTPD loglarında şuna benzer satırlar görünecektir:
|
|
Bu satırları görebiliyorsak, modülümüz düzgün bir şekilde kurulmuş ve çalışıyor demektir.