Melhorando a Segurança em Domínios Virtuais (Apache + PHP)

Este post mostra algumas dicas de como melhorar um pouco a segurança de servidores de hospedagens para domínios virtuais. A seguir, as configurações que podem ser realizadas no apache e também permissões que podem ser aplicadas em determinados comandos do sistema operacional.

  • configuração de arquivo do domínio virtual no apache:
    <VirtualHost *:80>
     ServerAdmin root@dominio.com.br
     DocumentRoot /var/www/dominios/dominio.com.br
     ServerName www.dominio.com.br
     ServerAlias dominio.com.br
     CustomLog /var/log/apache/dominio.com.br/access_log common
     ErrorLog /var/log/apache/dominio.com.br/error_log
     <Directory "/var/www/dominios/dominio.com.br">
       Options Indexes Includes FollowSymLinks?
       Order allow,deny
       Allow from all
     </Directory>
     <Location />
       php_admin_value open_basedir /var/www/dominios/dominio.com.br/:/usr/lib/php/
       php_value include_path /var/www/dominios/dominio.com.br:/usr/lib/php
       php_admin_flag safe_mode on
       php_admin_value safe_mode_include_dir /var/www/dominios/dominio.com.br:/usr/lib/php
     </Location>
     RewriteEngine on
     RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
     RewriteRule .* - F
    </VirtualHost>
  • configuração do php.ini:
    safe_mode = On ou Off (caso configurado por domínio)
    safe_mode_include_dir = /usr/lib/php:/var/www/htdocs
    include_path = ".:/usr/lib/php:/var/www/htdocs"
    expose_php = Off
    memory_limit = 32M (ajuste de acordo com suas preferências)
    error_reporting = E_ALL & ~E_NOTICE
    display_errors = Off
    log_errors = On
    register_globals = Off
    register_argc_argv = Off
    post_max_size = 32M (ajuste de acordo com suas preferências)
    upload_max_filesize = 32M (ajuste de acordo com suas preferências)
    mysql.allow_persistent = Off
    msql.allow_persistent = Off
    pgsql.allow_persistent = Off
    sybase.allow_persistent = Off
    sybct.allow_persistent = Off
    ifx.allow_persistent = Off
    mssql.allow_persistent = Off
    ingres.allow_persistent = Off
    odbc.allow_persistent = Off
  • permissões alteradas (caminhos dos comandos são do linux Slackware):
    Diretório /bin
     chmod 750 /bin/ftp
     chmod 750 /bin/netstat
     chmod 750 /bin/ps
     chmod 750 /bin/uname
    Diretório /sbin
     chmod 750 /sbin/fdisk
    Diretório /usr/bin
     chmod 750 /usr/bin/curl
     chmod 750 /usr/bin/find
     chmod 750 /usr/bin/ncftp
     chmod 750 /usr/bin/nmap
     chmod 750 /usr/bin/wget
    Diretório /usr/sbin
     chmod 750 /usr/sbin/sendmail
     chmod 750 /usr/sbin/cfdisk

Este procedimento deve aumentar a segurança do seu servidor de web. Procure não permitir a hospedagem de cgis pois eles são uma grande ameaça ao sistema operacional devido as permissões que eles precisam.