Mudanças entre as edições de "Configuração de servidor web"
| Linha 43: | Linha 43: | ||
== Acesso via HTTPS (SSL) == | == Acesso via HTTPS (SSL) == | ||
| + | |||
| + | Criar a pasta para armazenar os certificados: | ||
| + | # mkdir /etc/apache2/ssl/ | ||
| + | |||
| + | Proteger a pasta ssl, copiar os certificados e protege-los: | ||
| + | # chmod 700 /etc/apache2/ssl/ | ||
| + | # chmod 600 /etc/apache2/ssl/todoscertificados | ||
| + | # chwon root:root -R /etc/apache2/ssl/ | ||
Editar o arquivo padrão /etc/apache2/sites-available/default-ssl | Editar o arquivo padrão /etc/apache2/sites-available/default-ssl | ||
| Linha 61: | Linha 69: | ||
CustomLog ${APACHE_LOG_DIR}/access.log combined | CustomLog ${APACHE_LOG_DIR}/access.log combined | ||
SSLEngine on | SSLEngine on | ||
| − | SSLCertificateFile /etc/apache2/ssl/ | + | SSLCertificateFile /etc/apache2/ssl/certificado.crt # Gerar certificados via Cacert.org ou auto-assinado, |
| − | SSLCertificateKeyFile /etc/apache2/ssl/ | + | SSLCertificateKeyFile /etc/apache2/ssl/certificados.key.insecure # referência: http://www.vivaolinux.com.br/artigo/Configuracao-do-SSL-no-Apache |
BrowserMatch "MSIE [2-6]" \ | BrowserMatch "MSIE [2-6]" \ | ||
nokeepalive ssl-unclean-shutdown \ | nokeepalive ssl-unclean-shutdown \ | ||
Edição das 16h05min de 16 de outubro de 2015
Índice
Instalar o apache e php5
# apt-get install apache2 php5
Instalar dependências comuns, irá depender da aplicação hospedada: (Opcional)
# apt-get install php5-ldap php5-gd php5-mysql php5-pgsql
Dicas de segurança
Editar o arquivo /etc/apache2/conf.d/security e alterar as linhas para:
ServerTokens Prod ServerSignature Off
Alterar /etc/apache2/sites-enabled/000-default relacionado ao virtualHost padrão do apache.
Arquivo de exemplo:
<VirtualHost *:80>
ServerAdmin email@canoas.ifrs.edu.br
ServerName exemplo.canoas.ifrs.edu.br
DocumentRoot /var/www
<Directory />
Options -Indexes
AllowOverride None
Order allow,deny
allow from all
</Directory>
# IMPORTANTE! Apagar ou comentar as linhas abaixo caso a aplicação não use cgi.
# ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
# <Directory "/usr/lib/cgi-bin">
# AllowOverride None
# Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
# Order allow,deny
# Allow from all
# </Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Acesso via HTTPS (SSL)
Criar a pasta para armazenar os certificados:
# mkdir /etc/apache2/ssl/
Proteger a pasta ssl, copiar os certificados e protege-los:
# chmod 700 /etc/apache2/ssl/ # chmod 600 /etc/apache2/ssl/todoscertificados # chwon root:root -R /etc/apache2/ssl/
Editar o arquivo padrão /etc/apache2/sites-available/default-ssl
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin email@canoas.ifrs.edu.br
ServerName exemplo.canoas.ifrs.edu.br
DocumentRoot /var/www
<Directory />
Options -Indexes
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/certificado.crt # Gerar certificados via Cacert.org ou auto-assinado,
SSLCertificateKeyFile /etc/apache2/ssl/certificados.key.insecure # referência: http://www.vivaolinux.com.br/artigo/Configuracao-do-SSL-no-Apache
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
Habilitar módulo SSL e o virtualHost padrão com SSL:
# a2enmod ssl # a2ensite default-ssl
Prevenindo contra Poodle Ataque
A falha está relacionada ao protocolo SSL 3.0. A vulnerabilidade permite que um usuário malicioso consiga interceptar conexões seguras entre clientes e servidores e forçá-los a utilizar SSL 3.0 que pode, então, ser decifrada.
Altere o arquivo /etc/apache2/mods-available/ssl.conf com SSLProtocol para:
# SSLProtocol all -SSLv2 -SSLv3
Recarregar as configurações:
# invoke-rc.d apache2 reload
Testar:
# openssl s_client -connect nomeservidor.canoas.ifrs.edu.br:443 -ssl3
Deve retornar algo como:
CONNECTED(00000003) 12721:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1099:SSL alert number 40 12721:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:536:
Se retorno for um certificado, o protocolo SSLv3 ainda esta ativo.
Ou uma ferramenta online:
https://www.poodlescan.com/
Permissões em pastas e arquivos
# chown -R www-data:www-data /var/www/
# find /var/www/ -type d -exec chmod -R 755 {} \;
# find /var/www/ -type f -exec chmod -R 644 {} \;
Se a aplicação possui um arquivo de configuração restringir o acesso:
# chmod 640 config.php
Logs
tail -f /var/log/apache2/access.log tail -f /var/log/apache2/error.log