Настройка антивирусной защиты Samba используя Samba-vscan и Clamav
В данной заметке рассказано как собрать RPM пакет samba-vscan. Данный метод будет работать в ASP Linux, RHEL – и его клонах.
Samba-vscan – модуль для samba реализующий антивирусную проверку загружаемых на файл сервер файлов “на лету“.
В данный момент Samba-vscan может использовать для своей работы такие антивирусы как ClamAV, FRISK F-Prot Daemon, Kaspersky AntiVirus, OpenAntiVirus.org ScannerDaemon, mks AntiVirus, Sophos Sweep (via Sophie), Symantec AntiVirus Engine (via ICAP), Trend Micro.
Нас будет интересовать совместная работа Samba-vscan и Clamav как наиболее популярного антивирусного продукта выпускаемого по GPL.
В данном примере я использовал операционную систему Centos 4.3.
Предполагается, что в системе установлен пакет rpm-build без которого сборка будет невозможна.
1. Скачайте SRPM пакет samba, установите его:
#rpm -i samba-3.0.10-1.4E.9.src.rpm
2. Перейдите в каталог /usr/src/redhat/SPECS и выполните команду:
#rpmbuild -bc samba.spec
3. Скачайте пакет Samba-scan с сайта архив и скопируйте его в каталог /usr/src/redhat/SOURCES/
4. В каталоге /usr/src/redhat/SPECS создайте файл samba-vscan-clamav.spec следующего содержания (Не забудьте поменять значение –with-samba-source=/usr/src/redhat/BUILD/samba-3.0.10/source ).
Summary: Clam AntiVirus module for samba Name: samba-vscan-clamav Version: 0.3.6b Release: 1 License: GPL Group: Applications/System URL: http://www.openantivirus.org/ Source0: samba-vscan-%{version}.tar.bz2 Requires: clamav Requires: samba >= %{sambaversion} BuildRoot: %{_tmppath}/%{name}-%{version}-root %description Clam AntiVirus module for samba %prep %setup -q -n samba-vscan-%{version} %build %configure \ --with-fhs \ --with-samba-source=/usr/src/redhat/BUILD/samba-3.0.10/source %{__make} clamav strip vscan-clamav.so %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT%{_sysconfdir}/samba/ install -d $RPM_BUILD_ROOT%{_libdir}/samba/vfs/ # Fix socket config sed -e 's!^clamd socket .*!clamd socket name = /var/run/clamav/clamd.sock!;' \ clamav/vscan-clamav.conf > $RPM_BUILD_ROOT%{_sysconfdir}/samba/vscan-clamav.conf install vscan-clamav.so $RPM_BUILD_ROOT%{_libdir}/samba/vfs/. %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %pre %post %preun %postun %files %defattr(0644,root,root,0755) %doc AUTHORS COPYING ChangeLog FAQ INSTALL NEWS README TODO VERSION %attr(0644,root,root) %config(noreplace) %{_sysconfdir}/samba/vscan-clamav.conf %attr(0755,root,root) %{_libdir}/samba/vfs/vscan-clamav.so
5. В каталоге /usr/src/redhat/SPECS выполните команду:
#rpmbuild -ba samba-vscan-clamav.spec
6. Установите собранный пакет
# rpm -ihv /usr/src/redhat/RPMS/i386/samba-vscan-clamav-0.3.6b-1.i386.rpm
7. Поправьте конфигурационный файл /etc/samba/vscan-clamav.conf
8. В конфигурационном файле /etc/samba/samba.conf внесите изменения в разделы ресурсов которые вы хотите защищать с помощью Samba-vscan.
vfs object = vscan-clamav vscan-clamav:config-file = /etc/samba/vscan-clamav.conf
Для примера:
[public] path = /usr/somewhere/else/public public = yes only guest = yes writable = yes printable = no vfs object = vscan-clamav vscan-clamav:config-file = /etc/samba/vscan-clamav.conf
