FAMP: FreeBSD – Apache – MYSQL – PHP


Servidor de sites completo - FAMP


        Neste HOW TO apresentaremos de forma simples e clara como disponibilizar um servidor FAMP: FreeBSD – Apache – MYSQL – PHP.
        Para esse HOW To foi instalado o sistema operacional FreeBSD 8.1 e configurados o AMP, que consiste na base de dados MySQL, o servidor web Apache e o interpretadores para linguagens de script PHP.

        MYSQL: O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como interface. O MySQL foi criado na Suécia por dois suecos e um finlandês: David Axmark, Allan Larsson e Michael "Monty" Widenius.
www.mysql.com/

        APACHE: O servidor Apache é o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications).
www.apache.org/

        PHP: PHP (um acrónimo recursivo para "PHP: Hypertext Preprocessor") é uma linguagem de programação de computadores interpretada, livre e muito utilizada para gerar conteúdo dinâmico na World Wide Web, tendo como principais caracteriticas a velocidade e robustez, ser estruturado e orientado a objetos e sua portabilidade. A linguagem surgiu por volta de 1994, como um pacote de programas CGI criados por Rasmus Lerdorf.
www.php.net/

        PHPMYADMIN: O phpMyAdmin é um programa de computador desenvolvido em PHP para administração do MySQL pela Internet. A partir deste sistema é possível criar e remover bases de dados, criar, remover e alterar tabelas, inserir, remover e editar campos, executar códigos SQL e manipular campos chaves. O phpMyAdmin é muito utilizado por programadores web que muitas vezes necessitam manipular bases de dados.
www.phpmyadmin.net/






1- Instalando o Mysql

Para instalar o MYSQL acesse o diretório:

# cd /usr/ports/databases/mysql55-server/

Execute o comando de compilação e instalação do MySQL 5.5.5:

# make BUILD_STATIC=yes BUILD_OPTIMIZED=yes WITH_OPENSSL=yes install clean

Depois de instado o MySQL, vamos habilitar para o que ele inicialize quando o FreeBSD for reiniciado. Editar o arquivo “rc.conf”:

# ee /etc/rc.conf

Adicionando ao final do arquivo as linhas abaixo, depois salve o arquivo e saia:

#MySQL
         mysql_enable=”YES”

Agora vamos iniciar o MySQL com o seguinte comando:

# /usr/local/etc/rc.d/mysql-server start
# rehash

Agora vamos realizar as alterações necessárias no MySQL. Primeiro alterar senha de root:

# mysqladmin -uroot password “senha” (sem aspas)

Agora reiniciar o Mysql:
# /usr/local/etc/rc.d/mysql-server restart


2- Instalando o APACHE

Para instalar o Apache acesse o diretório:

# cd /usr/ports/www/apache22

Configure as opções de compilação do Apache 2.2 com o comando:

# make config

Marque as opções apropriadas para sua necessidade no Apache 2.2.16:
[X] THREADS               Enable threads support in APR    
[X] MYSQL                 Enable MySQL support for apr-dbd 
[ ] PGSQL                 Enable PostgreSQL support for apr-dbd
[ ] SQLITE                Enable SQLite support for apr-dbd
[ ] IPV6                  Enable IPv6 support              
[X] BDB                   Enable BerkeleyDB dbm            
[X] AUTH_BASIC            Enable mod_auth_basic            
[X] AUTH_DIGEST           Enable mod_auth_digest           
[X] AUTHN_FILE            Enable mod_authn_file            
[ ] AUTHN_DBD             Enable mod_authn_dbd             
[X] AUTHN_DBM             Enable mod_authn_dbm             
[X] AUTHN_ANON            Enable mod_authn_anon            
[X] AUTHN_DEFAULT         Enable mod_authn_default         
[X] AUTHN_ALIAS           Enable mod_authn_alias           
[X] AUTHZ_HOST            Enable mod_authz_host            
[X] AUTHZ_GROUPFILE       Enable mod_authz_groupfile       
[X] AUTHZ_USER            Enable mod_authz_user            
[X] AUTHZ_DBM             Enable mod_authz_dbm             
[X] AUTHZ_OWNER           Enable mod_authz_owner           
[X] AUTHZ_DEFAULT         Enable mod_authz_default         
[X] CACHE                 Enable mod_cache                 
[X] DISK_CACHE            Enable mod_disk_cache            
[X] FILE_CACHE            Enable mod_file_cache            
[ ] MEM_CACHE             Enable mod_mem_cache             
[X] DAV                   Enable mod_dav                   
[X] DAV_FS                Enable mod_dav_fs                
[ ] BUCKETEER             Enable mod_bucketeer             
[ ] CASE_FILTER           Enable mod_case_filter           
[ ] CASE_FILTER_IN        Enable mod_case_filter_in  
[ ] EXT_FILTER            Enable mod_ext_filter            
[ ] LOG_FORENSIC          Enable mod_log_forensic          
[ ] OPTIONAL_HOOK_EXPORT  Enable mod_optional_hook_export  
[ ] OPTIONAL_HOOK_IMPORT  Enable mod_optional_hook_import  
[ ] OPTIONAL_FN_IMPORT    Enable mod_optional_fn_import    
[ ] OPTIONAL_FN_EXPORT    Enable mod_optional_fn_export    
[ ] LDAP                  Enable mod_ldap                  
[ ] AUTHNZ_LDAP           Enable mod_authnz_ldap           
[X] ACTIONS               Enable mod_actions               
[X] ALIAS                 Enable mod_alias                 
[X] ASIS                  Enable mod_asis                  
[X] AUTOINDEX             Enable mod_autoindex             
[X] CERN_META             Enable mod_cern_meta             
[X] CGI                   Enable mod_cgi                   
[X] CHARSET_LITE          Enable mod_charset_lite               
[ ] DBD                   Enable mod_dbd    
[X] DEFLATE               Enable mod_deflate               
[X] DIR                   Enable mod_dir                   
[X] DUMPIO                Enable mod_dumpio                
[X] ENV                   Enable mod_env                   
[X] EXPIRES               Enable mod_expires               
[X] HEADERS               Enable mod_headers               
[X] IMAGEMAP              Enable mod_imagemap              
[X] INCLUDE               Enable mod_include               
[X] INFO                  Enable mod_info                  
[X] LOG_CONFIG            Enable mod_log_config            
[X] LOGIO                 Enable mod_logio                 
[X] MIME                  Enable mod_mime                  
[X] MIME_MAGIC            Enable mod_mime_magic            
[X] NEGOTIATION           Enable mod_negotiation           
[X] REWRITE               Enable mod_rewrite    
[X] SETENVIF              Enable mod_setenvif              
[X] SPELING               Enable mod_speling               
[X] STATUS                Enable mod_status                
[X] UNIQUE_ID             Enable mod_unique_id             
[X] USERDIR               Enable mod_userdir               
[X] USERTRACK             Enable mod_usertrack             
[X] VHOST_ALIAS           Enable mod_vhost_alias           
[X] FILTER                Enable mod_filter                
[X] VERSION               Enable mod_version               
[ ] PROXY                 Enable mod_proxy                 
[ ] PROXY_CONNECT         Enable mod_proxy_connect              
[X] PATCH_PROXY_CONNECT   Patch proxy_connect SSL support       
[ ] PROXY_FTP             Enable mod_proxy_ftp                  
[ ] PROXY_HTTP            Enable mod_proxy_http                 
[ ] PROXY_AJP             Enable mod_proxy_ajp                  
[ ] PROXY_BALANCER        Enable mod_proxy_balancer             
[ ] PROXY_SCGI            Enable mod_proxy_scgi                 
[X] SSL                   Enable mod_ssl                        
[ ] SUEXEC                Enable mod_suexec                     
[ ] SUEXEC_RSRCLIMIT      SuEXEC rlimits based on login class   
[X] REQTIMEOUT            Enable mod_reqtimeout                 
[ ] CGID                  Enable mod_cgid

Execute o comando de compilação e instalação do Apache

# make install clean

Marque as opções apropriadas para sua necessidade no perl 5.10.1_2:
[ ] DEBUGGING            Build with debugging support    
[ ] GDBM                 Build GDBM_File extension              
[X] PERL_MALLOC          Use Perl malloc                       
[X] PERL_64BITINT        Use 64 bit integers (on i386)         
[ ] THREADS              Build threaded perl
[ ] MULTIPLICITY         Use multiplicity                  
[ ] SUIDPERL             Build set-user-id suidperl binary     
[ ] SITECUSTOMIZE        Run-time customization of @INC       
[X] USE_PERL             Rewrite links in /usr/bin

Marque as opções apropriadas para sua necessidade no m4 1.4.14,1:
[ ] LIBSIGSEGV           Use libsigsegv for better diagnostics

Marque as opções apropriadas para sua necessidade no libiconv 1.13.1_1:
[X] EXTRA_ENCODINGS      Include extra character sets             
[ ] EXTRA_PATCHES        Apply patches to fix CP932, add EUCJP-MS

Marque as opções apropriadas para sua necessidade no apr-ipv6-devrandom-gdbm-db42 1.4.2.1.3.9_1:
[X] THREADS              Enable Threads in apr        
[ ] IPV6                 Enable IPV6 Support in apr   
[X] BDB                  Enable Berkley BDB support in apr-util     
[X] GDBM                 Enable GNU dbm support in apr-util       
[ ] LDAP                 Enable LDAP support in apr-
[X] MYSQL                Enable MySQL suport in apr-
[ ] NDBM                 Enable NDBM support in apr-
[ ] PGSQL                Enable Postgresql suport in apr-util        
[ ] SQLITE               Enable SQLite3 support in apr-util         
[X] DEVRANDOM            Use /dev/random or compatible in apr

Marque as opções apropriadas para sua necessidade no python26 2.6.5_1:
[X] THREADS              Enable thread support      
[ ] HUGE_STACK_SIZE      Use a larger thread stack  
[ ] SEM                  Use POSIX semaphores (experimental)    
[ ] PTH                  Use GNU Pth for threading/multiprocessing 
[X] UCS4                 Use UCS4 for unicode support             
[X] PYMALLOC             Use python's internal malloc 
[ ] IPV6                 Enable IPv6 support        
[ ] FPECTL               Enable floating point exception handling

Depois de realizado a instalação, vamos habilitar para o Apache inicializar quando o FreeBSD for reiniciado. Editar o arquivo “rc.conf”.

# ee /etc/rc.conf

Adicionando ao final do arquivo as linhas abaixo, depois salve o arquivo e saia.

#Apache
         apache22_enable="YES"
         accf_data_load="YES"
         accf_http_load="YES"

Agora adicione a linha abaixo no “/etc/hosts”:

# ee /etc/hosts 
127.0.0.1 "hostname" 

Depois edite o arquivo “httpd.conf”:

# ee /usr/local/etc/apache22/httpd.conf
Servername "hostname":80

Agora vamos iniciar o Apache com o seguinte comando.


# /usr/local/etc/rc.d/apache22 start

# rehash

Vamos agora testar o Apache. Use um browser para conectar a:


# http://"ip_do_servidor"

Se tudo estiver certo será exibido “It works!”.


3- Instalando o PHP

Para instalar o PHP acesse o diretório:

# cd /usr/ports/lang/php52

Configure as opções de compilação do PHP 5 com o comando:

# make config

Marque as opções apropriadas para sua necessidade no php52 5.2.14:
[X] CLI                  Build CLI version                  
[X] CGI                  Build CGI version                  
[X] APACHE               Build Apache module                
[ ] DEBUG                Enable debug                       
[X] SUHOSIN              Enable Suhosin protection system (not for jails) 
[ ] MULTIBYTE            Enable zend multibyte support      
[ ] IPV6                 Enable ipv6 support                
[ ] MAILHEAD             Enable mail header patch           
[ ] REDIRECT             Enable force-cgi-redirect support (CGI only)    
[ ] DISCARD              Enable discard-path support (CGI only)          
[X] FASTCGI              Enable fastcgi support (CGI only)  
[ ] FPM                  Enable fastcgi process manager (CGI only)
[X] PATHINFO             Enable path-info-check support (CGI only)

Acesse o diretório das extensões do PHP:

# cd ../php52-extensions/

Configure as opções de compilação do php52-extensions com o comando:

# make config

Marque as opções apropriadas para sua necessidade no php52-extensions 1.3:
[ ] BCMATH               bc style precision math functions            
[X] BZ2                  bzip2 library support
[ ] CALENDAR             calendar conversion support     
[X] CTYPE                ctype functions      
[ ] CURL                 CURL support         
[ ] DBA                  dba support          
[ ] DBASE                dBase library support
[X] DOM                  DOM support          
[ ] EXIF                 EXIF support         
[ ] FILEINFO             fileinfo support     
[X] FILTER               input filter support 
[ ] FRIBIDI              FriBidi support      
[ ] FTP                  FTP support          
[X] GD                   GD library support   
[X] GETTEXT              gettext library support         
[ ] GMP                  GNU MP support       
[X] HASH                 HASH Message Digest Framework   
[X] ICONV                iconv support        
[ ] IMAP                 IMAP support         
[ ] INTERBASE            Interbase 6 database support (Firebird)      
[X] JSON                 JavaScript Object Serialization support      
[ ] LDAP                 OpenLDAP support     
[X] MBSTRING             multibyte string support        
[X] MCRYPT               Encryption support   
[X] MHASH                Crypto-hashing support          
[ ] MING                 ming shockwave flash support    
[ ] MSSQL                MS-SQL database support         
[X] MYSQL                MySQL database support          
[ ] MYSQLI               MySQLi database support         
[ ] NCURSES              ncurses support (CLI only)      
[ ] ODBC                 unixODBC support     
[X] OPENSSL              OpenSSL support      
[ ] PCNTL                pcntl support (CLI only)        
[X] PCRE                 Perl Compatible Regular Expression support   
[X] PDF                  PDFlib support (implies GD)     
[X] PDO                  PHP Data Objects Interface (PDO)
[ ] PDO_SQLITE           PDO sqlite driver    
[ ] PGSQL                PostgreSQL database support     
[X] POSIX                POSIX-like fnctions 
[ ] PSPELL               pspell support       
[ ] READLINE             readline support (CLI only)     
[ ] RECODE               recode support       
[X] SESSION              session support      
[ ] SHMOP                shmop support        
[X] SIMPLEXML            simplexml support          
[ ] SNMP                 SNMP support         
[ ] SOAP                 SOAP support         
[ ] SOCKETS              sockets support      
[X] SPL                  Standard PHP Library 
[ ] SQLITE               sqlite support       
[ ] SYBASE_CT            Sybase database support         
[ ] SYSVMSG              System V message support        
[ ] SYSVSEM              System V semaphore support      
[ ] SYSVSHM              System V shared memory support  
[ ] TIDY                 TIDY support         
[X] TOKENIZER            tokenizer support    
[ ] WDDX                 WDDX support (implies XML)      
[X] XML                  XML support          
[X] XMLREADER            XMLReader support    
[ ] XMLRPC               XMLRPC-EPI support        
[X] XMLWRITER            XMLWriter support    
[ ] XSL                  XSL support (Implies DOM)       
[ ] YAZ                  YAZ support (ANSI/NISO Z39.50)  
[X] ZIP                  ZIP support          
[X] ZLIB                 ZLIB support

Execute o comando de compilação e instalação do PHP e PHP Extensions:

# make install clean

Marque as opções apropriadas para sua necessidade no php52-pcre 5.2.14:
[ ] BUNDLED_PCRE         Select if you use apache 2.0.x

Marque as opções apropriadas para sua necessidade no php52-gd 5.2.14:
[X] T1LIB                Include T1lib support                  
[X] TRUETYPE             Enable   TrueType string function      
[ ] JIS                  Enable JIS-mapped Japanese font support

Marque as opções apropriadas para sua necessidade no libxslt 1.1.26_2:
[ ] MEM_DEBUG            Enable memory debugging    
[X] CRYPTO               Enable crypto support for exslt 

Marque as opções apropriadas para sua necessidade no png 1.4.3:
[ ] APNG                 Animated PNG support

Marque as opções apropriadas para sua necessidade no php52-mbstring 5.2.14:
[X] REGEX                Enable multibyte regex support

As configurações do PHP ficam guardados em “/usr/local/etc/php.ini”. É necessário criar o arquivo utilizando um dos samples existentes executando o comando:

# cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

Agora vamos configurar o PHP no Apache. Edite o arquivo “/usr/local/etc/apache22/httpd.conf” e adicione as linhas abaixo:

# ee /usr/local/etc/apache22/httpd.conf

# Dentro da sessão "ifmodule mime_module"
AddType application/x-httpd-php .php .php3 .phtml
AddType application/x-httpd-php-source .phps

# Dentro da sessão "ifmodule dir_module"
DirectoryIndex index.html index.htm index.php

Agora vamos alterar o arquivo “/usr/local/etc/php.ini”. Altere as opções conforme abaixo:

# ee /usr/local/etc/php.ini
short_open_tag = On

Vamos agora testar o PHP. Crie o arquivo “index.php” e adicione o seguinte conteúdo nele:

# touch /usr/local/www/apache22/data/index.php
# echo "<?php phpinfo(); ?>" > /usr/local/www/apache22/data/index.php

Feito isso vamos reiniciar o Apache com o seguinte comando:

# /usr/local/etc/rc.d/apache22 restart
# rehash

Para acessar a pagina de teste use um browser para conectar a:

# http://"ip_do_servidor"/index.php

Se tudo estiver certo será exibida as configurações do Apache e PHP:

4- Instalando o PHPMyAdmin

Para instalar o PHPMyAdmin acesse o diretório:

# cd /usr/ports/databases/phpmyadmin211/

Configure as opções de compilação do PHPMyAdmin com o comando:

# make config

Marque as opções apropriadas para sua necessidade no phpMyAdmin211 2.11.10.1:
[ ] SUPHP                suPHP support                                
[X] BZ2                  bzip2 library support                   
[X] GD                   GD library support                          
[X] OPENSSL              OpenSSL support                       
[X] PDF                  PDFlib support (implies GD)             
[X] ZLIB                 ZLIB support                     
[X] MCRYPT               MCrypt library support                
[X] MBSTRING             Multi-byte character-set string support

Execute o comando de compilação e instalação do PHPMyAdmin:

# make install clean

Depois de instalado vamos criar o arquivo de configuração utilizando um dos samples existentes executando o comando:

# cp /usr/local/www/phpMyAdmin211/libraries/config.default.php /usr/local/www/phpMyAdmin211/config.inc.php

Agora vamos realizar as alterações necessárias no arquivo “/usr/local/www/phpMyAdmin211/config.inc.php” :

# ee /usr/local/www/phpMyAdmin211/config.inc.php
$cfg['Servers'][$i]['auth_type'] = ‘http‘;

Depois adicione no arquivo “http.conf” do Apache:

# ee /usr/local/etc/apache22/httpd.conf

Alias /phpmyadmin "/usr/local/www/phpMyAdmin211/"

<Directory "/usr/local/www/phpMyAdmin211/">
        Options none
        AllowOverride Limit
        Order Deny,Allow
</Directory>

Feito isso vamos reiniciar o Apache com o seguinte comando:

# /usr/local/etc/rc.d/apache22 restart
# rehash

Vamos agora testar o PHPMyAdmin. Use um browser para conectar a:

# http://"ip_do_servidor"/phpmyadmin/

Se tudo estiver certo será solicitado autenticação para acessar. Use o login root e a mesma senha que você configurou para o MySQL.


5- Referências

FREEBSD: www.freebsd.org/
MYSQL:    www.mysql.com/
APACHE:  www.apache.org/
PHP:          www.php.net/
PHPMyADMIN: www.phpmyadmin.net/

www.fug.com.br
www.bsdux.com.br
http://www.remontti.com.br/blog/archives/648
http://dev.mysql.com/doc/refman/5.5/en/freebsd.html
http://www.fug.com.br/content/view/360/77/
http://tuxtraining.com/2009/04/22/how-to-setup-a-famp-freebsd-apache-mysql-php-server
http://www.georgemendonca.com.br/middlecore-introducao-ao-desenvolvimento-de-a

FreeBSD + Samba + ClamAV + Vscan


Servidor de Compartilhamento de Arquivos com Antivírus Realtime


        Neste HOW TO apresentaremos de forma simples e clara como disponibilizar um servidor de compartilhamento de arquivos com antivírus realtime.
        Para esse HOW TO foi instalado o sistema operacional FreeBSD 8.1 e configurados o SAMBA para o serviço de compartilhamento de arquivos. Para o serviço de Antivirus foi utilizado o ClamAV juntamente com o Vscan.
        

        SAMBA: O SAMBA é um servidor e conjunto de ferramentas que permite que máquinas Linux e Windows se comuniquem entre si, compartilhando serviços (arquivos, diretório, impressão) através do protocolo SMB (Server Message Block)/CIFS (Common Internet File System), equivalentes a implementação NetBEUI no Windows. O SAMBA é uma das soluções em ambiente UNIX capaz de interligar redes heterogêneas.
        Com o SAMBA, é possível construir domínios completos, fazer controle de acesso a nível de usuário, compartilhamento, montar um servidor WINS, servidor de domínio, impressão, etc. Na maioria dos casos o controle de acesso e exibição de diretórios no samba é mais minucioso e personalizável que no próprio Windows.
www.samba.org/


        CLAMAV: O Clam Antivirus é um antivírus open source que possui versões para Windows (o ClamWin) e Linux/Freebsd, com atualizações diárias. É disponibilizado pela licença GPL.
www.clamav.net

        VSCAN: Vscan é um o módulo que permite que o servidor Samba, em conjunto com o antivírus Clamav, escaneie por vírus em seus compartilhamentos em tempo real e sem nenhuma queda no rendimento do servidor.
www.openantivirus.org/projects.php


1- Instalando o ClamAV

Para Instalar o ClamAV acesse o diretório:

# cd /usr/ports/security/clamav

Configure as opções de compilação do ClamAV com o comando:

# make config

Marque as opções apropriadas para sua necessidade no ClamAV 0.96.2_1:
[X] ARC                Enable arch archives support           
[X] ARJ                Enable arj archives support             
[X] LHA                Enable lha archives support              
[X] UNZOO              Enable zoo archives support             
[X] UNRAR              Enable rar archives support            
[X] LLVM               Enable JIT Bytecode compiler            
[ ] MILTER             Compile the milter interface           
[ ] LDAP               libmilter was built with LDAP       
[X] ICONV              Enable ICONV support   
[ ] STDERR             Print logs to stderr instead of stdout
[ ] EXPERIMENTAL       Build experimental code

Execute o comando de compilação e instalação do ClamAV:

# make install clean

Marque as opções apropriadas para sua necessidade no python26 2.6.5_1:
[X] THREADS            Enable thread support             
[ ] HUGE_STACK_SIZE    Use a larger thread stack           
[ ] SEM                Use POSIX semaphores (experimental)      
[ ] PTH                Use GNU Pth for threading/multiprocessing
[X] UCS4               Use UCS4 for unicode support        
[X] PYMALLOC           Use python's internal malloc           
[ ] IPV6               Enable IPv6 support           
[ ] FPECTL             Enable floating point exception handling

Marque as opções apropriadas para sua necessidade no libiconv 1.13.1_1:
[X] EXTRA_ENCODINGS    Include extra character sets            
[ ] EXTRA_PATCHES      Apply patches to fix CP932, add EUCJP-MS

Marque as opções apropriadas para sua necessidade no perl 5.10.1_2:
[ ] DEBUGGING          Build with debugging support        
[ ] GDBM               Build GDBM_File extension             
[X] PERL_MALLOC        Use Perl malloc                      
[X] PERL_64BITINT      Use 64 bit integers (on i386)         
[ ] THREADS            Build threaded perl                   
[ ] MULTIPLICITY       Use multiplicity                      
[ ] SUIDPERL           Build set-user-id suidperl binary     
[ ] SITECUSTOMIZE      Run-time customization of @INC        
[X] USE_PERL           Rewrite links in /usr/Bin

Marque as opções apropriadas para sua necessidade no m4 1.4.14_1,1:
[ ] LIBSIGSEGV         Use libsigsegv for better diagnostics

Agora edite o arquivo "/usr/local/etc/freshclam.conf" e adapte-o de acordo com as suas necessidades. Antés faça um backup do mesmo:

# cp /usr/local/etc/freshclam.conf /usr/local/etc/freshclam.conf.bkp
# ee /usr/local/etc/freshclam.conf
DatabaseDirectory /var/db/clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogTime yes
LogSyslog yes
PidFile /var/run/clamav/freshclam.pid
DatabaseOwner clamav
DNSDatabaseInfo current.cvd.clamav.net
DatabaseMirror db.br.clamav.net
DatabaseMirror database.clamav.net
NotifyClamd /usr/local/etc/clamd.conf
#SubmitDetectionStats /usr/local/etc/clamd.conf
DetectionStatsCountry BR3

O mesmo aplica-se ao arquivo "/usr/local/etc/clamd.conf":

# cp /usr/local/etc/clamd.conf /usr/local/etc/clamd.conf.bkp 
# ee /usr/local/etc/clamd.conf
LogFileMaxSize 2M
LogTime yes
LogSyslog yes
LogFile /var/log/clamav/clamd.log
PidFile /var/run/clamav/clamd.pid
LocalSocket /var/run/clamav/clamd.sock
TCPSocket 3310
TCPAddr 127.0.0.1
User clamav
ScanPE yes
ScanELF yes
DetectBrokenExecutables yes
ScanOLE2 yes
ScanPDF yes
ScanMail yes
ScanPartialMessages yes
PhishingSignatures yes
PhishingScanURLs yes
PhishingAlwaysBlockSSLMismatch no
PhishingAlwaysBlockCloak no
HeuristicScanPrecedence yes
ScanHTML yes
ScanArchive yes

Depois de realizado as configurações no arquivo "clamd.conf", vamos habilitar para o ClamAV inicializar quando o FreeBSD for reiniciado. Editar o arquivo "rc.conf".

# ee /etc/rc.conf

Adicionando ao final do arquivo essas linhas, depois salve o arquivo e saia.

#ClamAV
         clamav_clamd_enable="YES"
         clamav_freshclam_enable="YES" 

Após a configuração, iniciar o clamd e fazer a atualização da base de vírus.

# /usr/local/etc/rc.d/clamav-clamd onestart
# rehash 
# freshclam

2- Instalando o Samba

Para instalar o Samba acesse o diretório

# cd /usr/ports/net/samba3

Configure as opções de compilação do Samba com o comando:

# make config

Marque as opções apropriadas para sua necessidade no Samba 3.0.37_1.1:
[X] LDAP               With LDAP support                        
[ ] ADS                With Active Directory support               
[X] CUPS               With CUPS printing support                  
[X] WINBIND            With WinBIND support                        
[ ] ACL_SUPPORT        With ACL support                            
[ ] AIO_SUPPORT        With Asyncronous IO support                 
[ ] FAM_SUPPORT        With File Alteration Monitor                
[X] SYSLOG             With Syslog support                         
[X] QUOTAS             With Disk quota support                     
[X] UTMP               With UTMP accounting support                
[X] PAM_SMBPASS        With PAM authentication vs passdb backends  
[ ] CLUSTER            With experimental cluster support           
[ ] DNSUPDATE          With dynamic DNS update(require ADS)        
[X] EXP_MODULES        With experimental modules                   
[X] POPT               With system-wide POPT library               
[X] PCH                With precompiled headers optimization       
[ ] MAX_DEBUG          With maximum debugging                      
[ ] SMBTORTURE         With smbtorture

Execute o comando de compilação e instalação do Samba

# make install clean

Marque as opções apropriadas para sua necessidade no cups-client 1.4.4:
[X] GNUTLS              Build with GNUTLS library

Marque as opções apropriadas para sua necessidade no openldap-client 2.4.23:
[ ] SASL                With (Cyrus) SASL2 support
[X] FETCH               Enable fetch(3) support

Após a conclusão dos processos de instalação vamos configurar o Samba. Primeiramente vamos realizar um backup do arquivo padrão.

# cp /usr/local/etc/smb.conf /usr/local/etc/smb.conf.bkp
# ee /usr/local/etc/smb.conf
[global]
     netbios name = FreeBSD
     workgroup = Teste
     server string = Servidor Samba
     security = user
     log file = /var/log/samba/log.%m

 [homes]
     comment = Pasta Pessoal
     browseable = no
     writable = yes
     read only = no

 [teste]
     comment = Arquivos Teste
     path = /usr/home/teste
     valid users = alvaro
     admin users = alvaro
     read only = no
     browseable = no
     writable = yes

Após realizado as configurações no arquivo smb.conf, vamos habilitar para o SAMBA inicializar quando o FreeBSD for reiniciado. Editar o arquivo "rc.conf".

# ee /etc/rc.conf

Adicionando ao final do arquivo essas linhas, depois salve o arquivo e saia.

#Samba
         nmbd_enable="YES"
         smbd_enable="YES"
         winbindd_enable="YES"

Agora vamos iniciar o Samba com o seguinte comando.

#/usr/local/etc/rc.d/samba start
# rehash

3- SWAT

O SWAT (Samba Web Administration Tool) como o nome diz é uma ferramenta para gerenciamento do SAMBA. O mesmo é instalado automaticamente junto com o Samba
Para habilitar o SWAT acesse o arquivo /etc/inetd.conf e descomente a linha abaixo:
# ee /etc/inetd.conf
swat    stream  tcp     nowait/400      root    /usr/local/sbin/swat    swat

Depois reinicie o inetd:

# /etc/rc.d/inetd restart

Para acessar o Swat use um browser para conectar a:

# http://<ip_do_servidor>:901

4- Instalando o VSCAN

Para instalar o VSCAN acesse o diretório

# cd /usr/ports/security/samba-vscan

Configure as opções de compilação do Vscan com o comando:

# make config

Marque as opções apropriadas para sua necessidade no samba-vscan 0.3.6c_2:
[ ] VSCAN_ANTIVIR      for use with AntiVir                        
[X] VSCAN_CLAMAV       for use with Clam AntiVirus Daemon          
[ ] VSCAN_FPROTD       for use with F-Prot Daemon                  
[ ] VSCAN_FSAV         for use with F-Secure AntiVirus             
[ ] VSCAN_ICAP         for use with an ICAP anti-virus             
[ ] VSCAN_KAVP         for use with Kaspersky AntiVirus            
[ ] VSCAN_MKSD         for use with mks32                          
[ ] VSCAN_NAI          for use with NAI/McAfee uvscan              
[ ] VSCAN_OAV          for use with OpenAntiVirus.org ScannerDaemon
[ ] VSCAN_SOPHOS       for use with Sophos                         
[ ] VSCAN_TREND        for use with Trend Micro FileScanner

O conteúdo do arquivo "/usr/local/etc/vscan-clamav.conf" deverá parecer com o seguinte:

# cp /usr/local/etc/vscan-clamav.conf /usr/local/etc/vscan-clamav.conf.bkp
# ee /usr/local/etc/samba-vscan/vscan-clamav.conf
[samba-vscan]
 max file size = 0
 verbose file logging = no
 scan on open = yes
 scan on close = yes
 deny access on error = yes
 deny access on minor error = yes
 send warning message = yes
 infected file action = quarantine
 quarantine directory = /tmp
 quarantine prefix = vir-
 max lru files entries = 100
 lru file entry lifetime = 5
 exclude file types =
 exclude file regexp =
 clamd socket name = /var/run/clamav/clamd.sock
 libclamav max files in archive = 1000
 libclamav max archived file size = 10485760

5- Configurar o Samba para utilizar o vscan

É possível utilizar o Vscan a nível de compartilhamento e global, para tanto, basta colocar as seguintes linhas onde quer utilizar o Vscan, se for adicionado no global não há necessidade de colocar nos compartilhamentos.
# ee /usr/local/etc/smb.conf
 [global]
  vfs object = vscan-clamav
  vscan-clamav: config-file = /usr/local/etc/samba-vscan/vscan-clamav.conf

Agora vamos reiniciar o Samba com o seguinte comando.

#/usr/local/etc/rc.d/samba restart

Através do arquivo de log /var/log/messages é possível acompanhar o funcionamento do Vscan.

# tail -f /var/log/messages


6- Testando o vscan

Para testar o nosso servidor utilizaremo o EICAR test file (arquivo de teste, em português) que é um arquivo de 68 bytes que possui uma linha de caracteres, desenvolvido pelo European Institute of Computer Anti-Virus Research (Instituto Europeu para Pesquisa de Antivírus de Computador), é usado para testar a eficiência dos antivírus na detecção de vírus conhecidos sem qualquer risco ao computador. Usar o EICAR ao invés de um vírus real para testar um antivírus, é a garantia de que o computador não será infectado.

Baixe o arquivo "eicar_com.zip" pelo link:

http://www.eicar.org/download/eicar_com.zip

Salve o arquivo no compartilhamendo do Samba e veja pelos logs que o mesmo foi renomeado e movido para a pasta de quarentena

# tail -f /var/log/messages
Aug 15 14:28:56 frebsd smbd_vscan-clamav[1444]: INFO: quarantining file 
'/usr/home/cd/eicar.com' to '/tmp/vir-cQZNtg' was successful


7- Referências

FREEBSD: www.freebsd.org/
SAMBA: www.samba.org/
CLAMAV: www.clamav.net
VSCAN: www.openantivirus.org/projects.php

www.fug.com.br
www.bsdux.com.br
www.richardsharpe.com/samba-stuff.html
www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html
www.fogonacaixadagua.com.br/2009/03/freebsd-configurando-samba-com-antivirus-realtime-samba-vscan-e-clamav/
http://danilosbrasil.wordpress.com/2010/04/24/freebsd-49-configurando-samba-com-antivirus-realtime-samba-vscan-e-clamav/


 
HowtoBSD © 2010 | Designed by Trucks, in collaboration with MW3, templates para blogspot