<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <meta name="keywords" content="ClamAV, Samba, samba-vscan, AntyVir, Linux, UNIX"> <meta name="description" content="::: ClamAV / Samba / samba-vscan :::"> <meta name="author" content="doozer"> <title>::: ClamAV / Samba / samba-vscan :::</title> <style type="text/css"> P { font-size : 12px; font-style : normal; color : #000000; font-family : verdana, arial, helvetica, sans-serif; text-decoration : none; text-align : justify; } A { font-size : 12px; font-style : normal; font-weight : bold; color : #4457c9; font-family : verdana, arial, helvetica, sans-serif; text-decoration : none; } A:Visited { font-size : 12px; font-style : normal; font-weight : bold; color : #4457c9; font-family : verdana, arial, helvetica, sans-serif; text-decoration : none; } A:Active { font-size : 12px; font-style : normal; font-weight : bold; color : #4457c9; font-family : verdana, arial, helvetica, sans-serif; text-decoration : none; } A:Hover { color : #000000; font-size : 12px; font-style : normal; font-weight : bold; font-family : verdana, arial, helvetica, sans-serif; text-decoration : none; } BODY { font-size : 12px; font-style : normal; color : #000000; font-family : verdana, arial, helvetica, sans-serif; background-color : #ffffff; text-decoration : none; text-align : left; margin: 0; } PRE { color: #000080; font-size: 12px; border: 1px solid #000000; padding: 3pt; background-color: #dddddd; font-family : verdana, arial, helvetica, sans-serif; } TABLE { border-collapse: collapse; border-color: #000000; border: 0; background-color: #ffffff; } TD { font-size : 12px; font-style : normal; font-weight : normal; color : #000000; font-family : verdana, arial, helvetica, sans-serif; text-decoration : none; border-color: #000000; } TD.rtw { font-size : 12px; font-style : normal; font-weight : normal; color : #ffffff; font-family : verdana, arial, helvetica, sans-serif; text-decoration : none; border-color: #000000; } TD.rall { border-left-width: 1pt; border-left-style: solid; border-top-width: 1pt; border-top-style: solid; border-right-width: 1pt; border-right-style: solid; border-bottom-width: 1pt; border-bottom-style: solid; border-color: #000000; } TD.rl { border-left-width: 1pt; border-left-style: solid; border-top-width: 0pt; border-top-style: none; border-right-width: 0pt; border-right-style: none; border-bottom-width: 0pt; border-bottom-style: none; border-color: #000000; } TD.rt { border-left-width: 0pt; border-left-style: none; border-top-width: 1pt; border-top-style: solid; border-right-width: 0pt; border-right-style: none; border-bottom-width: 0pt; border-bottom-style: none; border-color: #000000; } TD.rt_dddddd { border-left-width: 0pt; border-left-style: none; border-top-width: 1pt; border-top-style: solid; border-right-width: 0pt; border-right-style: none; border-bottom-width: 0pt; border-bottom-style: none; border-color: #dddddd;; } TD.rlr { border-left-width: 1pt; border-left-style: solid; border-right-width: 1pt; border-right-style: solid; border-color: #000000; } TD.rlr_b { border-left-width: 4pt; border-left-style: solid; border-right-width: 4pt; border-right-style: solid; border-color: #000000; } TD.rlb { border-left-width: 1pt; border-left-style: solid; border-top-width: 0pt; border-top-style: none; border-right-width: 0pt; border-right-style: none; border-bottom-width: 1pt; border-bottom-style: solid; } TD.rltr { border-left-width: 1pt; border-left-style: solid; border-top-width: 1pt; border-top-style: solid; border-right-width: 1pt; border-right-style: solid; border-bottom-width: 0pt; border-bottom-style: none; } TD.rltr_b { border-left-width: 4pt; border-left-style: solid; border-top-width: 1pt; border-top-style: solid; border-right-width: 4pt; border-right-style: solid; border-bottom-width: 0pt; border-bottom-style: none; } TD.rrb { border-left-width: 0pt; border-left-style: none; border-top-width: 0pt; border-top-style: none; border-right-width: 1pt; border-right-style: solid; border-bottom-width: 1pt; border-bottom-style: solid; } TD.rr { border-left-width: 0pt; border-left-style: none; border-top-width: 0pt; border-top-style: none; border-right-width: 1pt; border-right-style: solid; border-bottom-width: 0pt; border-bottom-style: none; } TD.rltb { border-left-width: 1pt; border-left-style: solid; border-top-width: 1pt; border-top-style: solid; border-right-width: 0pt; border-right-style: none; border-bottom-width: 1pt; border-bottom-style: solid; } TD.rlt { border-left-width: 1pt; border-left-style: solid; border-top-width: 1pt; border-top-style: solid; border-right-width: 0pt; border-right-style: none; border-bottom-width: 0pt; border-bottom-style: none; } TD.rtr { border-left-width: 0pt; border-left-style: none; border-top-width: 1pt; border-top-style: solid; border-right-width: 1pt; border-right-style: solid; border-bottom-width: 0pt; border-bottom-style: none; } TD.rlrb { border-left-width: 1pt; border-left-style: solid; border-top-width: 0pt; border-top-style: none; border-right-width: 1pt; border-right-style: solid; border-bottom-width: 1pt; border-bottom-style: solid; } TD.rlrb_b { border-left-width: 4pt; border-left-style: solid; border-top-width: 0pt; border-top-style: none; border-right-width: 4pt; border-right-style: solid; border-bottom-width: 1pt; border-bottom-style: solid; } TD.rallwl { border-top-width: 1pt; border-top-style: solid; border-bottom-width: 1pt; border-bottom-style: solid; border-right-width: 1pt; border-right-style: solid; border-left-width: 0pt; border-left-style: none; } TD.rbottom { border-bottom-width: 1pt; border-bottom-style: solid; border-left-width: 1pt; border-left-style: solid; border-right-width: 1pt; border-right-style: solid; } TD.rlrbdotted { border-left-width: 1pt; border-left-style: dotted; border-top-width: 0pt; border-top-style: none; border-right-width: 1pt; border-right-style: dotted; border-bottom-width: 1pt; border-bottom-style: dotted; } TD.rbdotted { border-left-width: 0pt; border-left-style: none; border-top-width: 0pt; border-top-style: none; border-right-width: 0pt; border-right-style: none; border-bottom-width: 1pt; border-bottom-style: dotted; } TD.rn { border-left-width: 0pt; border-left-style: none; border-top-width: 0pt; border-top-style: none; border-right-width: 0pt; border-right-style: none; border-bottom-width: 0pt; border-bottom-style: none; border-color: #dddddd; } IMG { padding: 0; border: 0; border-color: #000000; } .rfoot { border-left-width: 1pt; border-left-style: solid; border-top-width: 1pt; border-top-style: solid; border-right-width: 1pt; border-right-style: solid; border-bottom-width: 1pt; border-bottom-style: solid; border-color: #000000; } .rfoot:link { color: #000000; text-decoration: none; border-left-width: 1pt; border-left-style: solid; border-top-width: 1pt; border-top-style: solid; border-right-width: 1pt; border-right-style: solid; border-bottom-width: 1pt; border-bottom-style: solid; border-color: #000000; } .rfoot:hover { border: 1px solid #0A246A; background-color: #B6BDD2; color: #000000; border-left-width: 1pt; border-left-style: solid; border-top-width: 1pt; border-top-style: solid; border-right-width: 1pt; border-right-style: solid; border-bottom-width: 1pt; border-bottom-style: solid; border-color: #000000; } .rfoot:visited { color: #000000; text-decoration: none; border-left-width: 1pt; border-left-style: solid; border-top-width: 1pt; border-top-style: solid; border-right-width: 1pt; border-right-style: solid; border-bottom-width: 1pt; border-bottom-style: solid; border-color: #000000; } </style> </head> <body bgcolor="#ffffff"> <center> <a name="#begin"> </a> <table width="100%" align="center" cellpadding="0" cellspacing="0" border="0"> <tr> <td bgcolor="#dddddd" width="100%" align="left" height="20" class="rn"></td> </tr> </table> <!-- LOGOTABLE --> <table width="100%" align="center" cellpadding="10" cellspacing="0" border="0"> <tr> <td bgcolor="#dddddd" width="8%" align="left" height="100" class="rt_dddddd"></td> <td bgcolor="#ffffff" width="24%" align="left" height="100" class="rlt"><img src="clam.png" alt="ClamAV Logo"></td> <td bgcolor="#ffffff" width="60%" align="left" height="100" class="rtr"> <b><font size="-1">ARTYKU£ Z SERII</font></b><br> <b><font size="+1">Ochrona antywirusowa z wykorzystaniem ClamAV</font></b><br><br> <font size="+1">Jak zmusiæ Sambê do pracy z ClamAV</font> </td> <td bgcolor="#dddddd" width="8%" align="left" height="100" class="rt_dddddd"></td> </tr> </table> <!-- end LOGOTABLE --> <!-- TOPTABLE --> <table width="100%" align="center" cellpadding="10" cellspacing="0" border="0"> <tr> <td bgcolor="#dddddd" colspan="1" valign="top" align="left" width="8%" height="200"> </td> <td colspan="1" valign="top" align="left" width="84%" height="200" class="rlrb"> <br><br><b>Spis tre¶ci</b> <br><b>1.</b> <a href="sendmail_clamav.html#a1">Wprowadzenie</a> <br><b>2.</b> <a href="sendmail_clamav.html#a2">Jak to dzia³a?</a> <br><b>3.</b> <a href="sendmail_clamav.html#a3">Zapotrzebowanie na oprogramowanie</a> <br><b>4.</b> <a href="sendmail_clamav.html#a4">Konfiguracja serwera Samba</a> <br><b>5.</b> <a href="sendmail_clamav.html#a5">Kompilacja ClamAV</a> <br><b>6.</b> <a href="sendmail_clamav.html#a6">Uruchamianie</a> <br><b>7.</b> <a href="sendmail_clamav.html#a7">Obserwacje i analiza logów</a> <br><br><br> Najnowsza wersja tego dokumentu jest zawsze dostêpna pod <a href="http://clamav.skc.com.pl/howtos/samba_clamav.html">tym adresem</a>.<br><br> Artyku³ ten jest drugim z serii po¶wiêconej ochronie antywirusowej w systemach *nixowych z wykorzystaniem programu antywirusowego ClamAV. Poniewa¿ ka¿dy z nich traktuje o innych aspektach tej ochrony i artyku³y nie stanowi± jednej spójnej ca³o¶ci, czê¶æ opisów w ka¿dym z nich bêdzie siê powtarzaæ. Nie chcê bowiem ¿eby czytelnicy musieli siê przekopywaæ przez wszystkie z artyku³ów aby znale¼æ dodatkowe informacje. Najistotniejsze zagadnienia tj. krótkie opisy ClamAV i jego ¶rodowiska, aktualizacjê baz danych wirusów, itp. omawiam w ka¿dym z moich tekstów. Strukturê dokumentów równie¿ postaram siê zachowaæ w miarê ujednolicon±.<br> Chroñmy wiêc biedne windowsy naszych u¿ytkowników przed z³owrogimi, imperialistycznymi wirusami. Niech moc bêdzie z Wami :-) <a name="a1"> </a> <br><br><br><b>1. Wprowadzenie</b> <br><br>Jak ju¿ w tytule mogli¶cie przeczytaæ, opiszê sposób w jaki mo¿na po³±czyæ <a href="http://www.samba.org/">Sambê</a> z tworzonym na licencji GPL, programem antywirusowym <a href="http://www.clamav.net/">ClamAV</a>. Projekt zapocz±tkowany zosta³ przez Tomasza Kojma a obecnie rozwijany jest przez <a href="http://www.clamav.net/team.html">miêdzynarodowy zespó³ programistów</a>.<br> W chwili powstawania tego HOWTO, ostatni± stabiln± wersj± ClamAV by³ 0.67.1 tak wiêc wszelkie pliki konfiguracyjne i rozwi±zania bêd± omawiane w oparciu o tê wersjê. Zachêcam Was równie¿ do prób ze <a href="http://www.clamav.net/snapshot/">snapshotami</a>. Mo¿na tam znale¼æ naprawdê wiele nowych i przydatnych funkcji.<br> Po³±czenie Samby z ClamAV w porównaniu z <a href="http://clamav.skc.com.pl/howtos/sendmail_clamav.html">po³±czeniem Sendmaila z ClamAV</a> jest dziecinnie proste. Konfiguracja ogranicza siê w zasadzie do kilku podstawowych kroków. Znajomo¶æ serwera Samba przyda siê jednak bardzo i osoby dobrze poruszaj±ce siê w pliku konfiguracyjnym tego pakietu bêd± mia³y u³atwione zadanie. <a name="a2"> </a> <br><br><br><b>2. Jak to dzia³a?</b> <br><br>Pomostem pomiêdzy Samb± a ClamAV bêdzie <a href="http://www.openantivirus.org/projects.php">samba-vscan</a>. Autorem programu jest <b>Rainer Link</b> a prace nad projektem zapocz±tkowane zosta³y w po³owie maja 2001.<br><br> <i>samba-vscan</i> jest rodzajem filtra, który operuje na wirtualnym systemie plików Samby - <i>VFS</i> (ang. <i>Virtual File System</i>). VFS to nic innego jak zbiór udogodnieñ dodanych do ju¿ istniej±cego systemu plików. Wprowadza miêdzy innymi dodatkowe wywo³ania; operacje na katalogach (<i>opendir, readdir, mkdir, itd</i>) i plikach (<i>open, read, close, write, itd</i>).<br> Wywo³ania te pozwalaj± programowi <i>samba-vscan</i> na podczepienie siê pod nie i wykonanie pewnego kodu a dok³adniej sprawdzenia pliku pod k±tem wystêpowania w nim wirusów. Wiêcej na temat VFS dowiecie siê <a href="http://www.geocities.com/orville_torpid/papers/vfs_tutorial.html">tutaj</a> lub w dokumentacji Samby. <br><br>Co to oznacza w praktyce? Otórz ka¿de ¿±danie otwarcia katalogu/pliku stworzenie nowego lub jakakolwiek operacja na katalogach lub plikach, mo¿e byæ filtrowana a nastêpnie mo¿e zostaæ podjêta decyzja co zrobiæ z danym obiektem. <br><br><i>samba-vscan</i> ³±czy siê z demonem ClamAV - <b>clamd</b> poprzez <i>local socket</i>. W tym celu w pliku konfiguracyjnym <i>clamav.conf</i> musimy okre¶liæ ¶cie¿kê do socketu, np: <pre> LocalSocket /var/run/clamav/clamd.sock # Okre¶lenie pliku dla lokalnego socketu </pre> Po po³±czeniu z <i>clamd</i>, <i>samba-vscan</i> sprawdza plik pod k±tem wystêpowania w nim wirusów. <a name="a3"> </a> <br><br><br><b>3. Zapotrzebowanie na oprogramowanie</b> <br><br> - ClamAV v0.67.1 - <a href="http://prdownloads.sourceforge.net/clamav/">http://prdownloads.sourceforge.net/clamav/</a> <br> - Samba 3.0.1 - <a href="ftp://giswitch.sggw.waw.pl/pub/unix/samba/">ftp://giswitch.sggw.waw.pl/pub/unix/samba/</a> <br> - samba-vscan 0.3.5-alpha2 - <a href="http://www.openantivirus.org/snapshots/">http://www.openantivirus.org/snapshots/</a> <br><b>ClamAV posiada wbudowan± obs³ugê formatów RAR (2.0), Zip, Gzip, Bzip2.</b> <br><br> <b>Skrypty startowe</b> <br> - Skrypty startowe, które uruchamiaj± Sambê i clamd: <br> <a href="http://clamav.skc.com.pl/howtos/files/rc.samba">rc.samba</a> <br> <a href="http://clamav.skc.com.pl/howtos/files/rc.clamd">rc.clamd</a> <br><br>Skrypty te zosta³y zrobione z my¶l± o dystrybucjach, które jako systemu startowego u¿ywaj± tego, który wywodzi siê z systemów BSD. Ja u¿ywam dwóch dystrybucji, Slackware i shtOS i w tych dystrybucjach skrypty bêd± dzia³aæ prawid³owo. Je¶li u¿ywacie systemu startowego System V, to musicie sami stworzyæ sobie odpowiednie skrypty startowe. <br>G³ównym skryptem startowym jest <i>rc.samba</i>. Po uruchomieniu go z opcj± <i>start</i> zostanie równie¿ uruchomiony skrypt <i>rc.clamd</i>. <a name="a4"> </a> <br><br><br><b>4. Konfiguracja serwera Samba</b> <br><br>Ja u¿ywam obecnie wersji 3.0.1 ale samba-vscan dzia³a równie¿ z wcze¶niejszymi wersjami Samby. <br>W dokumentacji samba-vscan, znajdziecie opisy dla wersji Samby wczesniejszych niz 2.2.4. Od wersji >= 2.2.4 az do aktualnej serii 3.0.x sposób instalacji jest taki sam. <br><br>Do dzie³a: <br>Proponujê na pocz±tek dok³adne zapoznanie siê z zawarto¶ci± pliku <i>INSTALL</i> pakietu samba-vscan. Mo¿e wyja¶ni Wam ewentualne w±tpliwo¶æi i pytania a na pewno u³atwi zrozumienie dzia³ania ca³ego rozwi±zania.<br> Musicie pamiêtaæ jeszcze o tym, ¿e potrzebne nam s± ¼ród³a Samby, nie wystarczy zwyk³a instalacja pakietów binarnych dla Waszej dystrybucji. ¬róde³ Samby wymaga samba-vscan.<br><br> Zaczynamy od kompilacji Samby. Ja stosujê kilka standardowych opcji dla configure, oto one: <pre> root@linux: cd samba_source/source Nastêpnie wydajemy polecenie configure wraz z jego parametrami; CFLAGS="-march=i686 -mcpu=i686" \ ./configure \ --enable-cups \ --with-fhs \ --prefix=/usr \ --localstatedir=/var \ --bindir=/usr/bin \ --sbindir=/usr/sbin \ --with-lockdir=/var/cache/samba \ --sysconfdir=/etc \ --with-configdir=/etc/samba \ --with-privatedir=/etc/samba/private \ --with-codepagedir=/etc/codepages \ --with-smbmount \ --with-syslog \ --with-utmp \ --with-sambabook=/usr/share/swat/using_samba \ --with-ssl \ --with-sslinc=/usr/include/openssl \ --with-ssllib=/usr \ --with-msdfs \ --with-vfs \ --with-libsmbclient \ i386-slackware-linux Najwa¿niejsz± z opcji jest --with-vfs czyli kompilacja wirtualnego systemu plików, bez tego nici z naszej ochrony antywirusowej :) root@linux: make proto root@linux: make root@linux: make install </pre> Po tych czynno¶ciach Samba jest ju¿ zainstalowana i gotowa do dzia³ania. Musicie jeszcze wykonaæ standarowe czynno¶ci tj, stworzenie pliku /etc/samba/smb.conf dodanie u¿ytkowników i przydzielenie zasobów. Ale tego jak to zrobiæ dowiecie siê z dokumentacji Samby :>. <br><br> Teraz zainstalujemy samba-vscan. Przed kompilacj± musimy jescze okre¶liæ nazwê dla socketu demona clamd z jakim bêdzie siê ³±czy³ samba-vscan. W tym celu musimy wyedytowaæ plik <i>samba-vscan_source/clamav/vscan-clamav.h</i> a w nim nastêpuj±c± linijkê: <pre> #define VSCAN_CLAMD_SOCKET_NAME "/var/run/clamd" i zmieniæ j± na #define VSCAN_CLAMD_SOCKET_NAME "/var/run/clamav/clamd.sock" </pre> a nastêpnie: <pre> root@linux: cd samba-vscan_source/ root@linux: ./configure --prefix=/usr --with-samba-source=samba_source/source </pre> configure wypisze nam jakie modu³y s± dostêpne w pakiecie. Wybieramy clamav i tylko dla niego skompilujemy odpowiedni modu³.<br> <pre> root@linux: make clamav </pre> <i>UWAGA: Nie nale¿y uruchamiaæ polecenia make install</i> <br><br>Po zakoñczeniu poprawnej kompilacji, musimy skopiowaæ bibliotekê <i>vscan-clamav.so</i> do katalogu <i>vfs</i> bibliotek Samby. <pre> cp samba-vscan_source/vscan-clamav.so /usr/lib/samba/vfs/vscan-clamav.so </pre> Teraz nale¿y przekopiowaæ plik <i>samba-vscan_source/openantivirus/vscan-oav.conf</i> do katalogu z plikiem konfiguracyjnym Samby, czyli do <i>/etc/samba</i> ale nale¿y mu zmieniæ nazwê. S³owo <i>oav</i> w nazwie zamieniamy na nazwê naszego backendu, czyli na <i>clamav</i>. <pre> root@linux: cp samba-vscan_source/openantivirus/vscan-oav.conf /etc/samba/vscan-clamav.conf </pre> <br> W pliku INSTALL pakietu samba-vscan opisane s± wszystkie opcje pliku konfiguracyjnego, ale ja postaram siê równie¿ opisaæ kilka z nich. <pre> * max file size = [warto¶æ w bajtach] To ustawienie pozwala na zdefiniowanie maksymalnego rozmiaru skanowanego pliku. Ustawienie rozmiaru na 0 oznacza, ¿e wszystkie pliki bêd± skanowane. Domy¶lnie - 0; * verbose file logging = [True/False | yes/no | 1/0] Ustawienie tego parametru pozwoli na okre¶lenie jakie dane maj± byæ zapisywane do logu systemowego. Je¶li wybierzemy opcjê True (yes, 1) wówczas wszystkie informacje o dostêpie do plików, nawet do nie zainfekowanych, bêd± logowane. Wybranie opcji False, pozwoli na zapisywanie tylko operacji dostêpu do zainfekowanych plików. Domy¶lnie - False; * scan on open = [True/False | yes/no | 1/0] Ustala czy pliki maj± byæ skanowane podczas ich otwierania. Domy¶lnie - yes; * scan on close = [True/False | yes/no | 1/0] Ustala czy pliki maj± byæ skanowane podczas ich zamykania. Domy¶lnie - yes; * deny access on error = [True/False | yes/no | 1/0] Okre¶la czy dostêp do pliku ma byæ zabroniony je¶li komunikacja z demonem antywirusowym zostanie utracona (nie bêdzie mo¿liwe sprawdzenie pliku). Domy¶lnie - yes; * deny access on minor error = [True/False | yes/no | 1/0] Tak samo jak przy "deny access on error" ale dla mniejszych b³êdów. Domy¶lnie - yes. * send warning message = [True/False | yes/no | 1/0] Okre¶la czy wys³aæ do u¿ytkownika komunikat o znalezionym wirusie poprzez Windows Messenger Service (winpopup). Domy¶lnie - yes. UWAGA: W Windows 95/98 musi byæ uruchomiony klient "winpopup"; * infected file action = [quarantine | delete | nothing] Co samba-vscan ma zrobiæ z zainfekowanym plikiem: "quarantine" - plik zostanie przeniesiony do katalogu kwarantanny i zostanie mu zmieniona nazwa. Je¶li ta operacja siê nie powiedzie, plik zostanie usuniêty; "delete" - zainfekowany plik zostanie usuniêty; "nothing" - zainfekowane pliki pozostan± nietkniête. Domy¶lnie - quarantine;. * quarantine directory = [scie¿ka do katalogu] Okre¶la ¶cie¿kê do katalogu kwarantanny. Domy¶lnie /tmp; * quarantine prefix = [przedrostek] Okre¶la przedrostek dla plików kwarantanny. Domy¶lnie - vir-; * max lru files entries = [warto¶æ] Gdy Windows próbuje otwieraæ jednocze¶nie plik w krótkich odstêpach czasu, samba-vscan u¿ywa ostatnio u¿ytego mechanizmu dostêpu do pliku aby unikn±æ wielokrotnego skanowania danego pliku. Ustawienie to pozwala okre¶liæ maksymaln± ilo¶æ wpisów w li¶cie ostatnio u¿ytych dostêpów do plików. 0 - wy³±cza zupe³nie ten mechanizm. Domy¶lne - 100; * lru file entry lifetime = [warto¶æ] Ustawia czas ¿ycia wpisów w li¶cie lru (lista ostatnio u¿ytych dostêpów do plików). Czas podawany jest w sekundach. Domy¶lnie - 5; * exclude file types = [lista] Wy³±cza ze skanowania typy plików znajduj±ce siê na li¶cie. Opiera siê na typach MIME tak jak opcja "file -i". Zobacz dokumentacjê: man file Domy¶lnie - pusta lista. </pre> A <a href="http://clamav.skc.com.pl/howtos/files/vscan-clamav.conf">tutaj</a> mo¿ecie podejrzeæ mój plik konfiguracyjny vscan-clamav.conf. <br><br>W pliku <i>/etc/samba/smb.conf</i> musimy jeszcze dodaæ odpowiednie wpisy dla poszczególnych udzia³ów, które chcemy chroniæ. Mo¿emy chroniæ tylko wybrane udzia³y lub wszystkie zasoby Samby, to zale¿y tylko od miejsca w którym umie¶cimy odpowiednie wpisy w pliku smb.conf. Zasoby z naszymi "specjalnymi programami" mo¿emy pozostawiæ poza oddzia³ywaniem programów antywirusowych :) <pre> [vscan] comment = virus-protected /samba directory path = /samba vfs object = vscan-clamav vscan-clamav: config-file = /etc/samba/vscan-clamav.conf writeable = yes browseable = yes guest ok = yes </pre> To by by³o na tyle odno¶nie konfiguracji samba-vscan. <a name="a5"> </a> <br><br><br><b>5. Kompilacja ClamAV</b> <br><br>Przed rozpoczêciem kompilacji nale¿y dodaæ nowego u¿ytkownika - <i>clamav</i> <pre> root@linux: groupadd clamav root@linux: useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav </pre> Aby ClamAV skompilowa³ siê wraz z clamav-milter, nale¿y uruchomiæ configure z opcj± --enable-milter + jakie¶ nasze dodatkowe opcje, np: <pre> user@linux: cd clamav_source user@linux: make clean user@linux: ./configure --prefix=/usr --sysconfdir=/etc/clamav --datadir=/etc/clamav --with-dbdir=/etc/clamav user@linux: make user@linux: make check user@linux: su root@linux: make install </pre> Nale¿y jeszcze dokonaæ edycji pliku /etc/clamav/clamav.conf, czyli pliku konfiguracyjnego ClamAV. <a href="http://clamav.skc.com.pl/howtos/files/clamav.conf">Tutaj</a> dostêpny jest mój plik clamav.conf <br><br>Na koniec nale¿y skopiowaæ najnowsze bazy sygnatur wirusów do katalogu /etc/clamav <br>Mo¿esz je ¶ci±gn±æ ze strony <a href="http://database.clamav.net/">http://database.clamav.net/</a> lub z którego¶ z <a href="http://www.clamav.net/mirrors.html">mirrorów</a>. <br><br><i>Polecam stosowanie baz sygnatur w formacie CVD. Poprzednie bazy by³y w formacie tekstowym, ale w przysz³o¶ci nie bêd± ju¿ obs³ugiwane przez ClamAV.</i> <br><br>Pliki baz danych to <b>main.cvd</b> i <b>daily.cvd</b>. Do main.cvd trafiaj± ju¿ sprawdzone sygnaturki, w których sporadycznie pojawiaj± siê jakie¶ b³êdy lub niedoci±gniêcia. W pliku daily.cvd znajduj± siê ostatnio dodane sygnaturki najnowszych wirusów.<br> W dniu tworzenia tego dokumentu, ClamAV rozpoznawa³ ponad <b>20400</b> ró¿nych wirusów, robaków i koni trojañskich. <br><br> Liczba rozpoznawanych wirusów ro¶nie bardzo szybko i tylko patrzeæ jak do¶cignie komercyjn± konkurencjê :-) <br><br>Do pobrania najnowszych baz sygnatur mo¿na u¿yæ programu <b>freshclam</b>, który potrafi dzia³aæ jako demon. To rozwi±zanie jest o tyle wygodne, ¿e program sam sprawdza, okre¶lon± przez nas ilo¶æ razy dziennie, czy dostêpne s± nowe sygnaturki. Je¶li tak to je pobiera a nastêpnie dokonuje prze³adowania clamd aby ten rozpoznawa³ najnowsze wirusy. <br><br><b>Uprawnienia</b> <br>Jeszcze kilka s³ów na temat uprawnieñ. Demon <i>clamd</i> musi byæ uruchomiony jako root, ale do poprawnego dzia³ania wcale nie potrzebuje praw roota. Wystarcz± mu ograniczone uprawnienia jakiego¶ u¿ytkownika (np. <i>clamav</i>). Poprzez opcjê <i>User</i> w pliku clamav.conf, mo¿emy okre¶liæ na prawach jakiego u¿ytkownika ma pracowaæ clamd. Po uruchomieniu, clamd porzuci uprawnienia roota i przejdzie na ni¿szy poziom z uprawnieniami okre¶lonego u¿ytkownika. <br><br>Ju¿ nied³ugo dostêpne bêdzie HOWTO, w którym postaram siê opisaæ wszelkie zagadnienia zwi±zane z poprawn± konfiguracj± ClamAV oraz z u¿ywaniem innych narzêdzi dostêpnych w ramach projektu. <a name="a6"> </a> <br><br><br><b>6. Uruchamianie</b> <br><br>Przed uruchomieniem skryptów musimy zadbaæ jeszcze o stworzenie odpowiednich katalogów i nadanie im odpowiednich uprawnieñ; i tak: <pre> root@linux: chown -R clamav:clamav /etc/clamav root@linux: mkdir /var/run/clamav; chown -R clamav:clamav /var/run/clamav root@linux: mkdir /var/log/clamav; chown -R clamav:clamav /var/log/clamav </pre> Teraz wystarczy uruchomiæ skrypt <i>/etc/rc.d/rc.samba start</i> i wszystko powinno ruszyæ. Jako pierwszy uruchomi siê demon clamd a po 1 sekundzie Samba. Te sztuczne opó¼nienie wprowadzone jest po to aby program zd±¿y³ utworzyæ swój socket. <a name="a7"> </a> <br><br><br><b>7. Obserwacje i analiza logów</b> <br><br> Nie muszê chyba pisaæ jak wa¿ne jest okresowe przegl±danie logów serwera. W przypadku ClamAV równie¿ nale¿y zwróciæ uwagê na kilka szczegó³ów. Wszystkiego mo¿emy siê dowiedzieæ z plików <i>/var/log/clamav/clamd.log</i> i <i>/var/log/messages</i><br> Oto przyk³adowy fragment logu, z którego mo¿emy wyczytaæ informacje na temat znalezionych wirusów. <pre> Informacje o zainicjowaniu samba-vscan oraz o dostêpie u¿ytkownika do zasobów Samby Mar 9 22:10:36 abuse smbd_vscan-clamav[23929]: samba-vscan (vscan-clamav 0.3.5alpha2) registered (Samba 3.0), (c) by Rainer Link, OpenAntiVirus.org Mar 9 22:10:36 abuse smbd_vscan-clamav[23929]: samba-vscan (vscan-clamav 0.3.5alpha2) connected (Samba 3.0), (c) by Rainer Link, OpenAntiVirus.org Mar 9 22:10:36 abuse smbd_vscan-clamav[23929]: INFO: connect to service vscan by user administrator </pre> I kilka dodatkowych informacji, np o nie skanowaniu pliku z powodu jego wielko¶ci <pre> Mar 9 22:11:54 abuse smbd_vscan-clamav[23966]: INFO: File MozillaPL.org-MozillaPL-Windows-1.6.exe is larger than specified maximum file size! Not scanned! Mar 9 22:11:54 abuse smbd_vscan-clamav[23966]: INFO: File SavageDemoInstaller.exe is larger than specified maximum file size! Not scanned! </pre> A tutaj ju¿ informacje o znalezieniu przez clamd wirusa i o dzia³aniach podjêtych przez samba-vscan <pre> Mar 9 22:13:02 abuse clamd[23977]: /samba/cygwin/src/clamav-devel-20040201/test/test3.rar: ClamAV-Test-Signature FOUND Mar 9 22:13:02 abuse smbd_vscan-clamav[23966]: INFO: quarantining file '/samba/cygwin/src/clamav-devel-20040201/test/test3.rar' to '/tmp/vir-Atnd5n' was successful </pre> Gdy samba-vscan znajdzie wirusa w otwieranym przez nas pliku, wówczas wysy³a komunikat do klinta (oczywi¶cie je¶li taka opcja jest ustawiona w pliku konfiguracyjnym). Taki komunikat wyglada mniej wiêcej tak.<br><br> <center><img src="winmsg.png"></center> <br><br> Na koniec, ¿yczê Wam owocnej kompilacji i wychwycenia jak najwiêkszej ilo¶ci wirusów :-) <br>Wszelkie pytania i sugestie proszê wysy³aæ poczt±. <br><br> <hr size="1" style="color: #aaa4a0;"> Autor: <b>Przemys³aw Ho³owczyc</b><br> e-mail: <b>doozer (at) skc (dot) com (dot) pl</b> <br><br> Wed Mar 10 00:16:38 CET 2004 <b>Pierwsza wersja howto</b><br> <font style="font-size: 12px; color: #aaaaaa"> # samba_clamav.html v1.0; Last modified: Wed, 10 Mar, 2004 18:22:35 by doozer # </font> </td> <td bgcolor="#dddddd" colspan="1" valign="top" align="left" width="8%" height="2000"> </td> </tr> </table> <!-- end CONTENTTABLE --> <table width="100%" align="center" cellpadding="0" cellspacing="0" border="0"> <tr> <td bgcolor="#dddddd" width="100%" align="center" height="60" class="rn"> </td> </tr> </table> </center> </body> </html>