27
SUMÁRIO 1. INTRODUÇÃO AOS SERVIÇOS WEB ..................................................... 2 2. INSTALANDO O APACHE....................................................................... 2 3. ENTENDENDO A ORGANIZAÇÃO DOS ARQUIVOS .............................. 3 4. NO DEBIAN E DERIVADOS .................................................................... 4 5. INSTALANDO O SUPORTE A PHP .......................................................... 5 6. INSTALANDO O MYSQL......................................................................... 7 7. INSTALANDO O PHPMYADMIN ............................................................ 8 8. ATIVANDO O SSL ................................................................................. 10 9. USANDO UM CERTIFICADO SELF-SIGNED ........................................ 11 10. USANDO UM CERTIFICADO RECONHECIDO ..................................... 12 11. VIRTUAL HOSTS .................................................................................. 14 12. INSTALANDO UM SERVIDOR FTP....................................................... 15 13. FTP + TLS .............................................................................................. 17 14. GERANDO ESTATÍSTICAS ................................................................... 19 15. GESTORES DE CONTEÚDO.................................................................. 20 16. GESTORES DE CONTEÚDO: PHPBB .................................................... 20 17. SOLUCIONANDO PROBLEMAS COM O CHARSET ............................. 23 18. MÓDULOS DO APACHE ....................................................................... 24 19. USANDO QUOTAS DE DISCO ............................................................... 25 20. CONFIGURANDO O QUOTA................................................................. 25 21. BIBLIOGRAFIA ..................................................................................... 27

Servidores Web - Apache

Embed Size (px)

Citation preview

Page 1: Servidores Web - Apache

SUMÁRIO

1. INTRODUÇÃO AOS SERVIÇOS WEB ..................................................... 2

2. INSTALANDO O APACHE ....................................................................... 2

3. ENTENDENDO A ORGANIZAÇÃO DOS ARQUIVOS .............................. 3

4. NO DEBIAN E DERIVADOS .................................................................... 4

5. INSTALANDO O SUPORTE A PHP .......................................................... 5

6. INSTALANDO O MYSQL ......................................................................... 7

7. INSTALANDO O PHPMYADMIN ............................................................ 8

8. ATIVANDO O SSL ................................................................................. 10

9. USANDO UM CERTIFICADO SELF-SIGNED ........................................ 11

10. USANDO UM CERTIFICADO RECONHECIDO ..................................... 12

11. VIRTUAL HOSTS .................................................................................. 14

12. INSTALANDO UM SERVIDOR FTP ....................................................... 15

13. FTP + TLS .............................................................................................. 17

14. GERANDO ESTATÍSTICAS ................................................................... 19

15. GESTORES DE CONTEÚDO .................................................................. 20

16. GESTORES DE CONTEÚDO: PHPBB .................................................... 20

17. SOLUCIONANDO PROBLEMAS COM O CHARSET ............................. 23

18. MÓDULOS DO APACHE ....................................................................... 24

19. USANDO QUOTAS DE DISCO ............................................................... 25

20. CONFIGURANDO O QUOTA ................................................................. 25

21. BIBLIOGRAFIA ..................................................................................... 27

Page 2: Servidores Web - Apache

2

1. Introdução aos serviços web

Os servidores web são a espinha dorsal da Internet, são eles que hospedam todas as

páginas, incluindo os mecanismos de busca e servem como base para todo tipo de

aplicativo via web, incluindo os webmails. No futuro, esta tendência deve se acentuar,

com páginas web dinâmicas e aplicativos via web substituindo cada vez mais os

aplicativos desktop.

Nos primórdios da internet, eram utilizadas apenas páginas html estáticas e scripts CGI.

O Apache em si continua oferecendo suporte apenas a esses recursos básicos, mas ele

pode ser expandido através de módulos, passando a suportar scripts em PHP, acessar

bancos de dados MySQL, entre inúmeros outros recursos. Sempre que é solicitada uma

página em PHP ou outra linguagem, entra em ação o módulo apropriado, que faz o

processamento necessário e devolve ao Apache a página html que será exibida. Entram

em ação, então, os gestores de conteúdo e fóruns, que combinam os recursos do PHP

com um banco de dados como o MySQL, acessado através dele. A combinação de tudo

isso forma a solução que é popularmente chamada de "LAMP" (Linux + Apache +

MySQL + PHP).

O Apache e o MySQL, juntamente com o suporte a PHP podem ser também instalados

sobre o Windows (formando o "WAMP"), uma solução relativamente popular entre

administradores Microsoft que não se sentem à vontade em usar o IIS.

2. Instalando o Apache

O Apache pode ser dividido em duas grandes famílias: o Apache 2.x e o Apache 1.3

que, apesar de muito antigo, ainda é usado em muitos servidores. O Apache 2 trouxe

muitas vantagens, sobretudo do ponto de vista do desempenho, além de oferecer novos

módulos e mais opções de segurança, mas sua adoção foi retardada nos primeiros anos

por um detalhe muito simples: o fato de ele ser incompatível com os módulos

compilados para o Apache 1.3. Como os módulos são a alma do servidor web, muitos

administradores ficavam amarrados ao Apache 1.3 devido à falta de disponibilidade de

alguns módulos específicos para o Apache 2.

Ao instalar o Apache 2, o suporte a SSL é instalado automaticamente junto com o

pacote principal (mas ainda é preciso ativá-lo na configuração, como veremos a seguir).

Page 3: Servidores Web - Apache

3

Instale também o pacote apache2-utils, que contém diversos utilitários de

gerenciamento que usaremos a seguir:

# apt-get install apache2 apache2-utils

Se desejar ativar o suporte a páginas seguras, você vai precisar também do pacote "ssl-

cert", necessário para ativar o suporte a SSL e gerar os certificados. Ele não é instalado

por padrão ao fazer uma instalação enxuta do Debian ou do Ubuntu:

# apt-get install ssl-cert

Se você estiver utilizando o CentOS ou o Fedora, instale o pacote "httpd", que contém o

Apache 2 e os utilitários:

# yum install httpd

Diferente do Debian, o serviço não será configurado para ser ativado no boot por padrão

e nem mesmo inicializado automaticamente após a instalação. Para ativá-lo, é

necessário ativar o serviço e, em seguida, criar os links para início automático usando o

chkconfig

# service httpd start

# chkconfig httpd on

Seguindo os nomes dos pacotes, no Debian o serviço se chama "apache2", enquanto no

Fedora e no CentOS ele se chama "httpd". Para reiniciar o servidor você usa,

respectivamente, os comandos "/etc/init.d/apache2 restart" e "service httpd restart".

Acessando o endereço "http://127.0.0.1", você verá uma página de boas-vindas, que

indica que o servidor está funcionando. Se não houver nenhum firewall no caminho, ele

já estará acessível a partir de outros micros da rede local ou da internet.

3. Entendendo a organização dos arquivos

A principal característica do Apache é a modularidade. Ao invés de ser um aplicativo

grande e complexo, que tenta desempenhar sozinho todas as funções, o Apache se limita

a executar uma única tarefa: entregar páginas html e outros tipos de arquivos aos

clientes. Qualquer outra coisa é invariavelmente feita por um módulo externo.

Page 4: Servidores Web - Apache

4

Por exemplo, quando você acessa uma página em PHP em um site que roda sobre um

servidor Apache, ele (Apache) lê o arquivo no disco e repassa a requisição para o

mod_php, o módulo encarregado de processar arquivos PHP. Ele, por sua vez, aciona o

interpretador PHP, que processa a página e a entrega, já processada, ao Apache, que,

finalmente, a entrega ao cliente. Caso seja necessário acessar um banco de dados (como

no caso de um fórum ou de um gestor de conteúdo), entra em ação outro módulo, como

o php5-mysql, que permite ao interpretador PHP acessar o banco de dados:

Pode parecer estranho que depois de toda essa volta o Apache ainda consiga entregar a

página processada em tempo hábil, mas é justamente essa divisão de tarefas que permite

ao Apache ser tão rápido e seguro. O trabalho é dividido em várias partes e cada módulo

é mantido separadamente por uma equipe que entende do assunto e zela pelo

desempenho e confiabilidade do código. Graças a isso, é bastante raro que sejam

descobertos problemas graves de segurança no Apache ou no interpretador PHP, por

exemplo. Quase sempre, os problemas de segurança não estão no servidor Web em si,

mas sim no gestor de conteúdo (phpNuke, Xoops, phpBB, etc.) usado.

4. No Debian e derivados

Nas distribuições derivadas do Debian, a arquitetura modular do Apache é extendida

também aos arquivos de configuração. Tradicionalmente, a configuração do Apache é

centralizada em um único arquivo, o "httpd.conf", que pode opcionalmente incluir

referências a arquivos externos (includes) que permitem segmentar e organizar a

configuração. Aproveitando esta possibilidade, a equipe do Debian desenvolveu uma

organização bastante prática, que é usada também no Ubuntu e em outras distribuições

derivadas dele.

À primeira vista, a organização do Apache 2 nas distribuições derivadas do Debian

parece muito mais complicada, mas, depois de entender, a coisa se revela bastante

simples e lógica:

Todos os arquivos de configuração estão organizados dentro do diretório

"/etc/apache2". Dentro dele, temos as pastas "sites-available" e "sites-enabled", que

contêm a configuração dos sites hospedados; as pastas "mods-available" e "mods-

enabled", que armazenam a configuração dos módulos; o arquivo "ports.conf", onde vai

a configuração das portas TCP que o servidor vai escutar; o arquivo "apache2.conf",

Page 5: Servidores Web - Apache

5

que armazena configurações diversas relacionadas ao funcionamento do servidor e a

pasta "conf.d", que armazena arquivos com configurações adicionais.

5. Instalando o suporte a PHP

No início, existiam apenas páginas html estáticas, com links atualizados manualmente.

Depois, surgiram os scripts CGI (geralmente escritos em Perl), que permitiram criar

vários tipos de formulários e automatizar funções. Finalmente, surgiu o PHP, adotado

rapidamente como a linguagem padrão para criação de todo tipo de página dinâmica,

fórum ou gerenciador de conteúdo.

Além da linguagem ser bastante flexível, um script em PHP chega a ser mais de 100

vezes mais rápido que um script CGI equivalente, além de mais seguro. Em resumo, um

script CGI é um executável, que precisa ser carregado na memória, executado e

descarregado cada vez que é feita uma requisição. No caso do PHP, o interpretador fica

carregado continuamente e simplesmente vai executando de forma contínua os

comandos recebidos dos scripts incluídos nas páginas.

Voltando ao assunto principal, no Debian o suporte a PHP é instalado através do pacote

"php5" (ou "php4", de acordo com a versão escolhida). Para instalá-lo, basta usar o

gerenciador de pacotes da distribuição em uso, como em:

# apt-get install php5

No caso do CentOS e do Fedora, é usado um pacote unificado, o "php", que inclui a

versão mais recente do interpretador, eliminando a confusão:

# yum install php

Com o interpretador PHP instalado, falta instalar o módulo do Apache 2, que no Debian

está disponível através do pacote "libapache2-mod-php5" (ou "libapache2-mod-php4",

de acordo com a versão desejada):

# apt-get install libapache2-mod-php5

O módulo "libapache2-mod-php5" é instalado dentro da pasta

"/usr/lib/apache2/modules/" e é ativado de uma forma diferente que no Apache 1.3. Ao

invés de adicionar as linhas que ativam o módulo e criam as associações de arquivos no

final do arquivo httpd.conf, são criados dois arquivos dentro da pasta

Page 6: Servidores Web - Apache

6

"/etc/apache2/mods-available/", com, respectivamente, a ativação do módulo e as

associações de arquivos. Os links são criados automaticamente ao instalar o pacote, mas

você pode tirar qualquer dúvida usando o comando a2enmod:

# a2enmod php5

Não esqueça de reiniciar o serviço para que o módulo seja carregado e a configuração

entre em vigor:

# /etc/init.d/apache2 force-reload

ou:

# service httpd restart

No caso do CentOS/Fedora o mod_php é instalado junto com o pacote "php" e ativado

automaticamente, através da criação do arquivo "/etc/httpd/conf.d/php.conf". Dentro

dele, você encontra as linhas que carregam o módulo e criam a associação com os

arquivos .php, como em:

LoadModule php5_module modules/libphp5.so

AddHandler php5-script .php

AddType text/html .php

DirectoryIndex index.php

Se você tiver a curiosidade de olhar o conteúdo dos arquivos "/etc/apache2/mods-

enabled/php5.conf" e "/etc/apache2/mods-enabled/php5.load" em uma distribuição

derivada do Debian, vai perceber que as linhas contidas neles são muito similares. Na

verdade, o Apache usado no Debian e o usado no CentOS é o mesmo software, apenas

configurado de forma ligeiramente diferente.

Com o suporte a PHP ativado, o Apache continua exibindo diretamente páginas com

extensão .htm ou .html, mas passa a entregar as páginas .php ou .phps ao interpretador

php, que faz o processamento necessário e devolve uma página html simples ao Apache,

que se encarrega de enviá-la ao cliente.

Quase sempre, os sistemas desenvolvidos em PHP utilizam também um banco de dados

MySQL ou Postgre SQL. Naturalmente, é perfeitamente possível que os scripts

simplesmente salvem as informações em arquivos de texto dentro do diretório do site,

mas isso resultaria em um desempenho muito ruim, sem falar em eventuais brechas de

Page 7: Servidores Web - Apache

7

segurança. Utilizar um banco de dados permite armazenar um volume muito maior de

informações, acessíveis de forma mais segura.

Para que o interpretador PHP seja capaz de acessar o banco de dados, é necessário ter

instalado (além do servidor MySQL propriamente dito) o módulo "php5-mysql" (ou

"php4-mysql"), que faz a junção entre os dois componentes:

# apt-get install php5-mysql

No caso do PostgreSQL, é utilizado o módulo "php5-pgsql", que tem a mesma função:

# apt-get install php5-pgsql

Não se esqueça de reiniciar o Apache, para que as alterações entrem em vigor:

# /etc/init.d/apache force-reload

No caso do Fedora e do CentOS, muda apenas o nome do pacote, que passa a se chamar

simplesmente "php-mysql":

# yum install php-mysql

Para verificar se o suporte a PHP está realmente ativo, crie um arquivo de texto

chamado "info.php" (ou outro nome qualquer, seguido da extensão .php) dentro da pasta

do servidor web, contendo apenas a linha abaixo:

<?php phpinfo( ); ?>

Salve o arquivo e abra a página através do navegador. A função "phpinfo", que usamos

no arquivo, faz com que o servidor exiba uma página com detalhes da configuração do

PHP e dos módulos ativos:

Depois de verificar, remova o arquivo, pois não é interessante que essas informações

fiquem disponíveis ao público.

6. Instalando o MySQL

O MySQL é um banco de dados extremamente versátil, usado para os mais diversos

fins. Você pode acessar o banco de dados a partir de um script em PHP, através de um

aplicativo desenvolvido em C ou C++, ou praticamente qualquer outra linguagem (até

mesmo através de um shell script! :).

Page 8: Servidores Web - Apache

8

Existem vários livros publicados sobre ele, por isso vou me limitar a falar sobre a

instalação e a configuração necessária para utilizá-lo em um servidor LAMP, em

conjunto com o Apache e o PHP.

O primeiro passo é instalar o servidor MySQL propriamente dito. Nas distribuições

derivadas do Debian precisamos instalar apenas o pacote "mysql-server" usando o apt-

get:

# apt-get install mysql-server

No CentOS ou Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

# yum install mysql mysql-server

O MySQL possui um usuário padrão chamado "root", que, assim como o root do

sistema, tem acesso completo a todas as bases de dados e é usado para fazer a

configuração inicial do sistema, assim como tarefas de manutenção. Esta conta

inicialmente não tem senha, por isso você deve definir uma logo depois de iniciar o

serviço, usando o comando "mysqladmin -u root password senha", incluindo a senha

desejada diretamente no comando, como em:

# mysqladmin -u root password psUT7wq01

7. Instalando o phpMyAdmin

Depois dessa configuração inicial, você pode experimentar instalar um gerenciador

gráfico para facilitar a manutenção do seu servidor MySQL. Uma boa opção neste caso

é o phpMyAdmin.

Para instalá-lo, basta instalar o pacote "phpmyadmin", como em:

# apt-get install phpmyadmin

ou:

# yum install phpmyadmin

O phpMyAdmin é um gestor de configuração escrito em PHP que trabalha em conjunto

com o Apache. Ele permite que você crie bases de dados, ajuste as permissões de acesso

dos usuários, faça backup, e diversas outras atividades administrativas de uma forma

mais simples que através do prompt de comando.

Page 9: Servidores Web - Apache

9

Uma vez instalado, ele pode ser acessado através do endereço

"http://servidor/phpmyadmin/" ou "https://servidor/phpmyadmin/". Na tela inicial, você

pode se logar usando qualquer uma das contas registradas no MySQL. Use o root para

tarefas administrativas, quando for necessário ter acesso a todas as bases ou fazer

backup de tudo, e uma das contas restritas para acessar uma base específica:

O acesso via HTTPS é preferível para acessos feitos via web, já que evita que as senhas

de acesso e outras informações fiquem circulando em texto puro por aí. O pacote do

Debian se encarrega de ativar o suporte a SSL no phpMyAdmin automaticamente, mas

para usá-lo é necessário também ativar o suporte a SSL na configuração do Apache,

como veremos no tópico seguinte.

Caso, mesmo depois de gerar o certificado e ativar o SSL no Apache, você continue

recebendo um erro ao tentar acessar a interface do phpMyAdmin via SSL, experimente

reconfigurar o pacote usando o dpkg-reconfigure, como em:

# dpkg-reconfigure phpmyadmin

Selecione a opção "apache2" quando o script perguntar sobre o servidor web usado e

responda "sim" quando ele perguntar se você deseja reiniciar o serviço:

Caso o servidor MySQL precise ficar acessível para outros servidores (você pode

configurar o phpBB e outros scripts para utilizarem um servidor MySQL externo),

configure o firewall para deixar a porta aberta apenas para os endereços IP dos

servidores que forem ter acesso. Como os servidores dedicados sempre utilizam

endereços fixos (ao contrário dos servidores domésticos), esta configuração fica mais

simples.

Para administrar seu servidor MySQL remotamente, o ideal é que se conecte ao servidor

via SSH e faça todo o trabalho através dele. Se precisar acessar diretamente alguma

ferramenta de configuração, como o Webmin ou o phpMyAdmin, você pode criar um

túnel (novamente usando o SSH) ligando a porta correspondente do servidor a uma

porta da sua máquina e fazer o acesso através dela. Veremos em detalhes como usar o

SSH e criar túneis encriptados no capítulo dedicado a ele.

Page 10: Servidores Web - Apache

10

8. Ativando o SSL

O SSL (Secure Socket Layer) é o protocolo usado para criar páginas seguras,

encriptando toda a transmissão entre o cliente e o servidor. Os dois usos mais comuns

são em páginas de comércio eletrônico, onde é necessário oferecer um ambiente seguro

para concluir a transação e transmitir dados confidenciais e também na criação de

ambientes administrativos, como os usados pela maioria dos gestores de conteúdo, que

permitem que você gerencie o conteúdo do site.

Na grande maioria das distribuições, o pacote com o mod_ssl é instalado juntamente

com o pacote principal do Apache, ou é pelo menos disponibilizado como um pacote

separado, instalável através do gerenciador de pacotes.

No caso das distribuições derivadas do Debian, você precisa apenas ativar o módulo

usando o comando "a2enmod". Reinicie o serviço para que a alteração entre em vigor:

# a2enmod ssl

# /etc/init.d/apache2 force-reload

No caso do CentOS, é necessário instalar o pacote "mod_ssl" usando o yum. O script de

pós-instalação se encarrega de adicionar o script de carregamento na pasta

"/etc/httpd/conf.d" automaticamente, concluindo a instalação. Não se esqueça de

reiniciar o serviço para que a alteração entre em vigor:

# yum install mod_ssl

# service httpd restart

Com o módulo carregado, fica faltando apenas o componente mais importante, que é o

certificado SSL propriamente dito.

Se você quer ativar o SSL para testes ou para uso interno (para acessar alguma

ferramenta administrativa instalada no servidor, ou para uso em uma página

disponibilizada apenas para um grupo de amigos, por exemplo), você pode

simplesmente gerar seu próprio certificado, o que é rápido, grátis e indolor. Se, por

outro lado, você está ativando o SSL para uso em um site de comércio eletrônico, é

necessário obter um certificado reconhecido através da Verisign ou outra entidade

certificadora.

Os certificados caseiros são chamados de certificados self-signed (auto-assinados), já

que você mesmo faz o papel de entidade certificadora, gerando e assinando o

Page 11: Servidores Web - Apache

11

certificado. O algoritmo de encriptação usado é o mesmo, de forma que um certificado

self-signed corretamente gerado oferece a mesma segurança que um certificado

reconhecido. O grande problema é que os navegadores nos clientes não serão capazes de

verificar a autenticidade do certificado, de forma que os visitantes receberão um aviso

de "certificado não reconhecido" ao acessarem a página:

O propósito de entidades certificadoras, como a Verisign, é confirmar a titularidade dos

certificados, confirmando que o certificado recebido ao acessar determinado site

pertence realmente à entidade que o está fornecendo. É isso que garante que você está

mesmo acessando o home banking do banco em que tem conta e não o site de um script

kiddie qualquer. Certificados assinados por entidades certificadoras são

automaticamente aceitos pelos navegadores (já que sua identidade já foi confirmada

pela entidade certificadora), o que evita a exibição da mensagem.

Vamos então começar com a configuração de um certificado self-signed, e em seguida

entender o que muda ao utilizar um certificado reconhecido.

9. Usando um certificado self-signed

No Debian e derivados você pode gerar um certificado caseiro utilizando o script

"make-ssl-cert", instalado através do pacote "ssl-cert":

# apt-get install ssl-cert

Ao usar o script, você deve especificar o arquivo com o template (/usr/share/ssl-

cert/ssleay.cnf) e o arquivo onde o certificado será salvo (/etc/apache2/ssl/apache.pem,

para gerar um certificado padrão para o servidor), como em:

# mkdir /etc/apache2/ssl/

# cd /etc/apache2/ssl/

# make-ssl-cert /usr/share/ssl-cert/ssleay.cnf apache.pem -days 1095

A opção "-days" especifica a validade do certificado, que no exemplo será de 3 anos. O

script solicitará as informações sobre a organização que serão incluídas no certificado,

incluindo o código de país, estado, cidade e o nome da empresa. Estes são dados

públicos, que serão exibidos aos clientes como parte das propriedades do certificado. O

mais importante vem no final, quando o script pergunta:

Page 12: Servidores Web - Apache

12

Common Name (eg, your name or your server's hostname) []:

Nesse ponto, você deve sempre fornecer a URL completa do servidor onde o certificado

será usado, como em "www.gdhpress.com.br" ou "ssl.gdhn.com.br". Se você especificar

um domínio diferente, o cliente receberá um aviso adicional ao se conectar, avisando do

problema. Isso afastará visitantes, já que muitos pensarão tratar-se de uma fraude.

10. Usando um certificado reconhecido

Finalmente, temos a configuração para um certificado reconhecido, que será assinado

por uma entidade certificadora, que você utilizaria em um site de comércio eletrônico

aberto ao público.

Uma das entidades certificadoras mais tradicionais é a Verisign

(http://www.verisign.com/), que oferece uma série de garantias sobre os certificados

emitidos. O grande problema com relação à Verisign é o preço: o certificado de

validação mais simples custa nada menos de US$ 499 anuais, com opções de até US$

1499. Com preços tão altos, não é de se estranhar que existam inúmeras outras

entidades certificadoras, que oferecem preços mais competitivos.

Alguns exemplos são a Thawte (http://www.thawte.com) a GeoTrust

(http://www.geotrust.com), a NetworkSolutions (http://www.networksolutions.com), a

Digicert (http://www.digicert.com/) e a Comodo (http://www.instantssl.com), que

possui opções a partir de US$ 79 anuais.

A Comodo é a mesma empresa que desenvolve o Comodo Firewall, distribuído

gratuitamente como uma forma de divulgação dos serviços de certificação. No site está

disponível também a opção de gerar um certificado de teste (válido por 90 dias)

gratuitamente, que você pode usar para fins de teste, ou quando quiser colocar uma loja

virtual no ar rapidamente, deixando para aderir a um dos planos pagos mais tarde:

Existem ainda casos de empresas que oferecem certificados de baixo custo, como a

Godaddy (http://www.godaddy.com, a mesma que faz registro de domínios), que

oferece certificados a partir de US$ 29.90.

Em termos de segurança, não existe muita diferença entre um certificado emitido pela

Godaddy ou pela Verisign, as principais diferenças são o nível de validação e as

garantias oferecidas por cada uma em caso de fraude ou de quebra da chave

Page 13: Servidores Web - Apache

13

criptográfica. Assim como em outras áreas, o principal fator na decisão acaba sendo a

questão da confiança.

Ao contratar os serviços de uma entidade certificadora, sua parte no trabalho é a de

gerar uma chave de encriptação e uma requisição de certificado, o que é novamente

feito usando o openssl:

# openssl req -new -nodes -keyout gdhn.key -out gdhn.csr

O "gdhn.key" e o "gdhn.csr" indicam os arquivos com a chave e com a requisição do

certificado que serão gerados. Você precisará responder as mesmas perguntas sobre o

país, estado, cidade, nome da empresa, etc., que precisam ser respondidas corretamente,

já que as informações serão examinadas não apenas pela entidade certificadora, mas

também pelos clientes:

Country Name (2 letter code) [AU]: BR

State or Province Name (full name) [Some-State]: Estado

Locality Name (eg, city) []: Cidade

Organization Name (eg, company) []: Minha Empresa LTDA

Organizational Unit Name (eg, section) []: Vendas

Common Name (eg, YOUR name) []: ssl.minhaempresa.com.br

Como comentei anteriormente, o campo "Common Name" deve ser preenchido com o

domínio onde o certificado será usado (incluindo o "www" ou o subdomínio usado),

caso contrário os clientes receberão um aviso ao acessarem o site:

Em geral, as entidades certificadoras oferecem a opção de obter um certificado curinga

(wildcard), que cobre automaticamente todos os subdomínios usados no site. Entretanto,

como eles abrem a possibilidade de usar vários subdomínios usando um único

certificado, as certificadoras cobram bem mais caro por eles. A Comodo, por exemplo,

cobra nada menos do que US$ 449.95 anuais, mais de 5 vezes o valor do certificado

regular:

Depois de gerar a requisição, o próximo passo é enviar o arquivo .csr para a entidade

certificadora, que o usará para gerar o certificado. O arquivo .csr é na verdade um

arquivo de texto plano, cujo conteúdo pode ser copiado e colado em um formulário

web. Depois de confirmada sua identidade e feito o pagamento, você receberá de volta o

certificado assinado, que pode ser então usado na configuração do Apache.

Page 14: Servidores Web - Apache

14

A configuração consiste em adicionar as linhas "SSLCertificateFile" e

"SSLCertificateKeyFile", indicando a localização dos arquivos .crt e .key recebidos. Em

muitos casos, você receberá também um terceiro arquivo, com extensão "ca-bundle" ou

similar, que é usado em conjunto com uma terceira opção, a "SSLCertificateChainFile".

Este terceiro arquivo contém uma combinação de certificados, que permitem aos

clientes chegarem até o certificado raiz da entidade certificadora, de forma a

comprovarem a autenticidade do seu certificado. Devido a isso, ele é também chamado

de certificado intermediário (Intermediate Certificate). Temos aqui um exemplo de

configuração com as três opções:

<VirtualHost *:443>

DocumentRoot /var/www/gdhn

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/ssl_gdhn_com_br.crt

SSLCertificateKeyFile /etc/apache2/ssl/gdhn_com_br.key

SSLCertificateChainFile /etc/apache2/ssl/ssl_gdhn_com_br.ca-bundle

</VirtualHost>

O processo de emissão do certificado inclui uma verificação de identidade, que é

justamente um dos principais papéis da entidade certificadora, já que se qualquer um

pudesse gerar certificados válidos no nome de qualquer outro, o sistema perderia

completamente o sentido. Nos planos mais simples, como no certificado gratuito

oferecido pela Comodo, é feita uma simples verificação de titularidade via e-mail, onde

você deve confirmar um código enviado para uma conta administrativa, como

"admin@meudominio" ou "hostmaster@meudominio". Nos planos mais caros (onde a

entidade certificadora realmente oferece garantias, inclusive financeiras sobre o

certificado emitido), o processo é mais burocrático, incluindo o envio de documentos.

11. Virtual Hosts

O suporte a virtual hosts é um daqueles recursos fundamentais, que possibilitaram o

surgimento da Internet da forma como a conhecemos hoje. Ele permite hospedar

diversos sites, com domínios ou subdomínios diferentes usando um único servidor e um

Page 15: Servidores Web - Apache

15

único endereço IP. Os únicos limitantes com relação ao volume de sites que é possível

hospedar são os recursos de hardware do servidor e a banda disponível.

Serviços de hospedagem compartilhada (os planos de shared hosting) utilizam este

recurso de forma intensiva, de forma a espremer o maior número possível de clientes

em cada servidor, sem falar nos serviços de hospedagem gratuita onde, em muitos

casos, um único servidor pode hospedar dezenas de milhares de sites diferentes.

Ao usar virtual hosts, os arquivos de cada site ficam guardados em uma pasta diferente e

o servidor se encarrega de direcionar cada visitante à pasta correta. Os recursos do

servidor (HD, memória, processamento e link) são divididos entre os sites hospedados,

assim como vários programas abertos simultaneamente disputam os recursos da

máquina. Isso faz muito sentido no caso de sites pequenos ou médios, que não possuem

um número suficiente de visitas para saturarem, sozinhos, o servidor.

Em geral, o servidor é configurado de forma que os usuários tenham direito a uma

determinada quota de espaço em disco, possam acessar os arquivos do site via FTP ou

SFTP e tenham acesso a uma ou mais bases de dados do servidor MySQL, o que

permite a instalação de gestores de conteúdo como o WordPress. Entretanto, eles não

podem instalar novos pacotes nem alterar a configuração do servidor. Feitas as

apresentações, vamos à configuração.

12. Instalando um servidor FTP

O servidor de FTP mais usado no Linux é o Proftpd, disponível em quase todas as

distribuições. O funcionamento do FTP é bem mais simples que o do Samba ou SSH,

por isso ele é usado como uma forma simples de disponibilizar arquivos na internet ou

mesmo dentro da rede local, sem muita segurança.

A principal limitação do protocolo FTP é que todas as informações são transmitidas de

forma não encriptada, como texto puro, incluindo os logins e senhas. Ou seja, alguém

capaz de sniffar a conexão, usando um programa como o Ethereal, veria tudo que está

sendo transmitido. Para aplicações onde é necessário ter segurança na transmissão dos

arquivos, é recomendável usar o SFTP, o módulo do SSH que permite transferir

arquivos de forma encriptada. Apesar disso, se você quiser apenas criar um repositório

com alguns arquivos para download ou manter um servidor público como o Ibiblio.org,

então o FTP é mais interessante, por ser mais simples de usar.

Page 16: Servidores Web - Apache

16

Não é difícil instalar o Proftpd, basta procurar pelo pacote "proftpd" na distribuição

usada, como em:

# apt-get install proftpd

# yum install proftpd

ou:

# urpmi proftpd

No Debian, durante a instalação do pacote do Proftpd, geralmente são feitas algumas

perguntas. A primeira é se você deseja deixar o servidor FTP ativo em modo standalone

ou em modo inetd.

O standalone é mais seguro e mais rápido, enquanto o inetd faz com que ele fique ativo

apenas quando acessado, economizando cerca de 400 KB de memória RAM (que fazem

pouca diferença hoje em dia). O modo standalone é a opção recomendada.

Você terá também a opção de ativar o acesso anônimo, que permite acessos anônimos

(somente leitura) na pasta "/home/ftp", onde você pode disponibilizar alguns arquivos

para acesso público. Nesse caso, os usuários fazem login no servidor usando a conta

"anonymous" e um endereço de e-mail como senha. Caso prefira desativar o acesso

anônimo, apenas usuários com login válido na máquina poderão acessar o FTP.

Depois de concluída a instalação, o servidor fica ativo por default, é inicializado

automaticamente durante o boot e pode ser controlado manualmente através do serviço

"proftpd", como em "/etc/init.d/proftpd start".

Você pode acessar outras máquinas da rede com servidores FTP ativos usando o GFTP,

o Konqueror ou o próprio navegador. O FTP pode ser usado também como opção para

transferência de arquivos na rede local. Uma das vantagens do FTP é que existem

clientes para todas as plataformas, você pode baixar o Filezilla, um servidor e cliente de

FTP for Windows, no http://filezilla.sourceforge.net/.

Sempre que fizer alterações no arquivo, reinicie o servidor para que elas entrem em

vigor. Para isso, use o comando "/etc/init.d/proftpd restart".

Para solucionar o problema, abra o arquivo "/etc/proftpd.conf" e substitua a linha:

UseIPv6 on

por:

UseIPv6 off

Page 17: Servidores Web - Apache

17

Uma das primeiras opções do arquivo é a opção Port, que permite alterar a porta usada

pelo FTP. O padrão é usar a porta 21, mas muitos serviços de banda larga bloqueiam as

portas 21 e 80 para que os usuários não rodem servidores. Nesse caso, você pode mudar

para a porta 2121, por exemplo:

# Port 21 is the standard FTP port.

Port 2121

Ao mudar a porta padrão do servidor, os usuários precisarão indicar manualmente a

porta no cliente de ftp ou navegador, como em: ftp://200.234.213.23:2121.

Em seguida, vem a opção MaxClients, que limita o número de conexões simultâneas ao

servidor FTP. Esta opção trabalha em conjunto com a limitação de banda (veja a

seguir). Você pode limitar os downloads de cada usuário a um máximo de 10 KB/s e

limitar o servidor a 3 usuários simultâneos, por exemplo. Assim, o FTP consumirá um

máximo de 30 KB/s do link do servidor.

MaxClients 30

Se você quiser limitar o acesso dos usuários, prendendo-os em seus respectivos

diretórios home, adicione a linha "DefaultRoot ~" no final do arquivo. Lembre-se de

que no Linux o "~" é um curinga, que é automaticamente substituído pela pasta home

do usuário que está logado:

DefaultRoot ~

Para ativar a limitação de banda, adicione a linha "TransferRate RETR 8:10", onde o

"8" pode ser substituído pela taxa desejada, em KB/s, por usuário:

TransferRate RETR 8:10

13. FTP + TLS

É possível adicionar uma camada de segurança ao protocolo FTP ativando a encriptação

via TLS. Nem todos os clientes de FTP suportam encriptação, de forma que a mudança

criará dificuldades aos usuários menos técnicos, mas, por outro lado, elimina o grande

risco do FTP, evitando que as senhas possam ser capturadas durante as conexões.

Page 18: Servidores Web - Apache

18

Presumindo que você já tenha instalado o pacote do Proftpd e feito a configuração

básica, o próximo passo é instalar o pacote "openssl". Ele é usado por diversos outros

serviços, por isso é provável que já esteja instalado:

# apt-get install openssl

Em seguida, crie um diretório dentro da pasta "/etc/proftpd" para armazenar os

certificados, como em:

# mkdir /etc/proftpd/cert

O próximo passo é gerar os certificados usando o comando "openssl", como em:

# openssl req -new -x509 -days 3650 -nodes -out \

/etc/proftpd/cert/proftpd.cert.pem -keyout /etc/proftpd/cert/proftpd.key.pem

A opção "-days" especifica o tempo de validade do certificado. Nesse caso, estou

gerando um certificado válido por 10 anos para evitar que os clientes passem a receber

erros relacionados ao certificado caso ele expire antes que tenha tempo de atualizá-lo.

Entretanto, do ponto de vista da segurança, o ideal é gerar certificados válidos por

apenas um ano ou dois e substituí-los mais regularmente.

Depois de responder às perguntas feitas durante a geração do certificado (país, estado,

cidade, nome da empresa, etc.), serão gerados os arquivos "proftpd.cert.pem" e

"proftpd.key.pem" dentro da pasta "/etc/proftpd/cert", que correspondem ao certificado.

O próximo passo é alterar a configuração do Proftpd de forma que ele ative o uso da

encriptação. Abra o arquivo "/etc/proftpd/proftpd.conf" e procure pelas linhas:

<IfModule mod_tls.c>

TLSEngine off

</IfModule>

Para ativar o uso do TLS, você deve substituí-las por:

<IfModule mod_tls.c>

TLSEngine on

TLSLog /var/log/proftpd/tls.log

TLSProtocol SSLv23

TLSOptions NoCertRequest

TLSRSACertificateFile /etc/proftpd/cert/proftpd.cert.pem

TLSRSACertificateKeyFile /etc/proftpd/cert/proftpd.key.pem

TLSVerifyClient off

Page 19: Servidores Web - Apache

19

TLSRequired on

</IfModule>

Note que as opções "TLSRSACertificateFile" e "TLSRSACertificateKeyFile" indicam a

localização dos dois arquivos com o certificado. Se você estiver usando uma pasta

diferente da "/etc/proftpd/cert" para armazená-los, não esqueça de indicar a localização

correta. Outra opção importante é a "TLSRequired", que determina se o uso da

encriptação será obrigatório ou não. Ao usar "TLSRequired on", como no exemplo,

apenas os clientes que tiverem ativado o uso do SSL poderão se conectar ao servidor,

enquanto que ao usar "TLSRequired off" a encriptação passa a ser opcional.

Depois de salvar a configuração, reinicie o serviço:

# /etc/init.d/proftpd restart

Para ativar a encriptação no cliente, é necessário usar o protocolo "FTP over SSL", em

vez do protocolo FTP regular.

O grande problema é que o FTP over SSL não é suportado por todos os clientes de FTP,

o que dificulta seu uso. Em geral, é mais fácil conseguir que os usuários migrem para o

SFTP (veja detalhes sobre ele no capítulo sobre o SSH), que é suportado por um

número maior de clientes de FTP do que conseguir fazer uma migração completa para o

TLS.

14. Gerando estatísticas

O Webalizer é um gerador de estatísticas de acesso para o servidor web. Ele loga todos

os acessos feitos ao servidor, incluindo as páginas acessadas, o tráfego gerado, os

navegadores e os sistemas operacionais usados pelos clientes, entre outras informações

úteis para entender os hábitos e interesses de seus visitantes.

É simples instalar o Webalizer, procure pelo pacote "webalizer" dentro do gerenciador

de pacotes.

O Webalizer não é um serviço que fica residente, mas sim um executável que precisa

ser chamado cada vez que quiser ver a página de estatísticas atualizada, basta chamá-lo

como root.

Por padrão, a página de estatísticas é armazenada na pasta "webalizer/", dentro do seu

servidor web.

Page 20: Servidores Web - Apache

20

O arquivo de configuração do Webalizer é o "/etc/webalizer.conf". É importante que

você revise o arquivo de configuração, indicando pelo menos a localização correta do

arquivo de log do Apache e alterando a pasta onde as estatísticas ficarão armazenadas,

caso não queira que elas fiquem disponíveis ao público. Você pode armazená-las em

uma pasta isolada no servidor web.

15. Gestores de conteúdo

Com o MySQL instalado e o suporte a PHP ativo, você tem pronta a estrutura

necessária para instalar os diversos scripts de fórum, chat, gestores de conteúdo e

outros. A maioria destes scripts é simples de instalar, você precisa apenas criar uma

base de dados no MySQL ou Postgre, copiar os arquivos para uma pasta dentro do

servidor web e editar um arquivo (ou acessar uma página de configuração através do

navegador) para incluir as informações sobre o servidor (base de dados a ser usada,

login e senha, etc.) e concluir a configuração.

Embora o Apache e o MySQL sejam bastante seguros, nada garante que os scripts

desenvolvidos por terceiros também serão.

O ponto fraco na segurança de qualquer site ou fórum é quase sempre a segurança do

script usado. Não escolha qual usar pensando apenas na facilidade de uso. Investigue o

histórico de segurança e, uma vez escolhido qual usar, fique de olho nas atualizações de

segurança.

16. Gestores de conteúdo: phpBB

O phpBB é um sistema de fórum bastante usado, que conta com um bom conjunto de

recursos e um bom histórico de segurança. Ele é ideal para fóruns de pequeno e médio

porte mas também atende bem a fóruns com um milhão de mensagens ou mais, graças

ao bom desempenho em conjunto com o MySQL.

Para instalar, salve-o dentro do diretório raiz do site ("/var/www" ) descompacte o

arquivo e renomeie a pasta criada para o diretório onde o fórum deve ficar acessível. No

caso, está sendo instalando na pasta "forum/".

Page 21: Servidores Web - Apache

21

Depois de copiar os arquivos, acesse a página "/forum/install/index.php" dentro da

árvore do seu site. O acesso pode ser feito tanto localmente

(http://127.0.0.1/forum/install/index.php) quanto via web. Esta é a página usada para

concluir a instalação. É importante que você acesse a página assim que os arquivos

forem copiados, pois ela fica acessível para qualquer um.

Figura 1: Instalando o phpBB, imagem de configuração da base de dados.

- Tipo de Base de Dados: é preenchido automaticamente pelo instalador, que se

encarrega de detectar o banco de dados usado;

- Nome do servidor da Base de Dados: é usado apenas se você está usando uma

máquina separada para o banco de dados;

- Porta do Servidor da Base de Dados: também fica em branco, a menos que você

tenha configurado o MySQL pra escutar em uma porta diferente da padrão.

- Nome da Base de Dados: indica a base de dados que será usada pelo fórum. Aqui, no

caso, estamos usando "phpbb". Caso você esteja instalando só para testar, pode usar

também a base de dados "test", criada por padrão.

- O login e senha serão utilizados pelo phpBB para acessar o banco de dados.

- Prefixo das tabelas na Base de Dados: é destinada a situações onde você precisa

compartilhar a mesma base de dados entre duas ou mais instalações do phpBB;

Page 22: Servidores Web - Apache

22

Figura 2: configurando a URL do servidor

As opções referentes ao servidor de e-mails são necessárias apenas para ativar o envio

de notificações de respostas aos posts iniciados pelos usuários.

A opção "Cookie seguro" pode ser usada para melhorar a segurança no login dos

usuários, mas ela pode ser usada apenas se você ativou o suporte a HTTPS na

configuração do servidor e ele está ativo na configuração do fórum. O uso de HTTPS

previne o roubo de senhas e outros tipos de vandalismos e melhora a segurança geral do

fórum, mas em compensação aumenta a carga de processamento do servidor, além de

tornar a configuração um pouco mais complexa, como vimos anteriormente.

A opção "Protocolo do Servidor" indica se o fórum será acessível via HTTP ou

HTTPS, a opção "Nome do Domínio" indica o domínio onde o site está hospedado, o

"Porta do Servidor" indica a porta em que o servidor web está escutando (80 para HTTP

ou 443 para HTTPS) e a "Pasta dos Ficheiros" indica o diretório do site onde o fórum

está disponível.

Page 23: Servidores Web - Apache

23

Figura 3: Painel administrativo do fórum.

Você tem então acesso ao painel administrativo do fórum, onde pode criar as salas e

ajustar as demais opções do fórum, além de moderar mensagens, suspender ou banir

usuários e assim por diante.

17. Solucionando problemas com o charset

Um problema muito comum ao utilizar o Apache 2 sobre uma distribuição Linux

recente é os caracteres acentuados das páginas hospedadas aparecerem trocados por

interrogações, quadrados ou vírgulas em alguns navegadores.

Isso acontece em situações onde os arquivos das páginas hospedadas no servidor foram

salvos usando o charset ISO-8859-1 e o servidor Apache está configurado para usar

UTF-8, que é o default na maioria das distribuições atuais.

Para solucionar os problemas existem 3 opções:

A primeira é especificar o charset correto no header de cada página do site, o que é

feito adicionando uma tag "meta" dentro da seção "head" da página, como em:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

A segunda opção é mudar a configuração do Apache para que ele passe a utilizar o ISO-

8859-1 como charset padrão, em vez do UTF-8.

edite o arquivo: /etc/apache2/apache2.conf

A Terceira opção é possível também converter os arquivos diretamente, usando o

comando "recode", que está disponível nos repositórios de praticamente todas as

distribuições que adotaram o uso do UTF8. Comece instalando o pacote, como em:

# apt-get install recode

Para converter um arquivo, use o comando "recode -d ISO-8859-1..UTF-8" seguido

pelo arquivo a ser convertido.

$ recode -d ISO-8859-1..UTF-8 arquivo.txt

OU você pode também converter de uma vez diversos arquivos, como em:

$ recode -d ISO-8859-1..UTF-8 *.html

Page 24: Servidores Web - Apache

24

18. Módulos do Apache

O principal ponto forte do Apache é o grande volume de módulos disponíveis para ele.

Sempre que você precisa de algum recurso em especial, o primeiro passo é fazer uma

pesquisa na web por algum módulo que desempenhe a função desejada. Se o recurso

que precisa for uma necessidade comum, muito provavelmente você encontrará um

módulo já pronto que se propõe a resolver o problema.

Mod_rewrite

Tem a função de reescrever URLs a partir de um conjunto de parâmetros especificado

por você. O uso mais simples para ele é quando você muda o domínio de acesso do site

e quer que todos os links sejam redirecionados para o novo endereço.

Você poderia solucionar isso de forma muito simples. O primeiro passo é verificar se o

módulo está carregado na configuração do Apache. No caso das distribuições derivadas

do Debian, você pode ativá-lo usando o comando a2enmod:

# a2enmod rewrite

a configuração, é feita através do arquivo ".htaccess", criado no diretório raiz do site

antigo .

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteRule (.*) http://www.dominio.com.br/$1 [R=301,L]

</IfModule>

A linha "RewriteEngine On" é a responsável por encaminhar as requisições ao

mod_rewrite, a linha "RewriteRule (.*) http://www.dominio.com.br/$1 [R=301,L]"

explica o que deve ser feito.

"(.*)" cria uma regra de encaminhamento, que será aplicada a qualquer URL dentro do

domínio. A página especificada pelo visitante ao acessar o site vira uma variável ($1),

que é então usada no parâmetro seguinte, o "http://www.dominio.com.br/$1" onde é

indicado o novo domínio do site.

Com isso, se o visitante tentar acessar o

"http://dominio.provedor.com.br/produtos/index.php?id=312" do exemplo anterior, a

variável "$1" será carregada com o valor "produtos/index.php?id=312" e ele será

Page 25: Servidores Web - Apache

25

encaminhado ao "http://www.dominio.com.br/produtos/index.php?id=312". O mesmo

se aplica a qualquer outra URL que ele vier a tentar acessar.

O "[R=301,L]" é o código de retorno que será enviado ao cliente. No caso o usado foi o

301, que é o código de redirecionamento permanente.

mod_deflate

No Debian, a configuração vai no arquivo: /etc/apache2/modsavailable/deflate.conf

Uma configuração simples, e bastante usada, é fazer com que o deflate comprima

apenas arquivos em html, texto ou xml, sem tentar comprimir outros tipos de arquivos

Esta configuração exige uma única linha e é a configuração padrão no Debian:

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/plain text/xml

</IfModule>

19. Usando quotas de disco

Através do Quota é possível limitar a quantidade de espaço em disco disponível para

cada usuário

No Quota existem dois limites que podem ser estabelecidos, o soft limit e o hard limit.

O hard limit é o limite de espaço em si, digamos, 1000 MB para cada usuário. Quando o

hard limit é atingido, a gravação de novos arquivos é bloqueada, se necessário

interrompendo a transferência.

O soft limit é um limite de advertência, um pouco inferior ao valor do hard limit. Se o

hard limit é de 1000 MB, o soft limit poderia ser 500 ou 800 MB, por exemplo. Sempre

que superar o soft limit, o usuário receberá uma mensagem de alerta, mas ainda poderá

gravar mais dados até que atinja o hard limit.

20. Configurando o Quota

Para que o Quota funcione, é necessário instalar os pacotes "quota" e "quotatool", que

contêm um conjunto de utilitários usados para configurar e verificar as quotas de disco.

Page 26: Servidores Web - Apache

26

Com o módulo carregado, o primeiro passo da configuração é alterar a entrada no fstab

referente à partição, de modo que o suporte a quotas de disco seja ativado.

Abra o arquivo "/etc/fstab", localize a linha referente à partição e adicione os

parâmetros "usrquota,grpquota" logo após o "defaults". Se você está ativando o Quota

para a partição "/home", por exemplo, a linha seria parecida com:

/dev/hda2 /home ext3 defaults 0 2

Depois da alteração, a linha ficaria:

/dev/hda2 /home ext3 defaults,usrquota,grpquota 0 2

Em seguida, você deve criar os arquivos "aquota.user" e "aquota.group" (onde ficam

armazenadas as configurações do Quota) no diretório raiz da partição. Se você está

ativando o Quota para a partição montada no /home, então os dois arquivos serão

"/home/aquota.user" e "/home/aquota.group".

É importante que ambos fiquem com permissão de acesso "600", de modo que apenas o

root possa acessá-los ou fazer modificações. Os comandos são executados com a

partição montada:

# touch /home/aquota.user

# chmod 600 /home/aquota.user

# touch /home/aquota.group

# chmod 600 /home/aquota.group

Feche todos os programas e serviços que estejam acessando arquivos dentro da partição

e remontá-la (para que sejam aplicados os parâmetros incluídos no fstab) usando o

parâmetro "-o remount" do mount, como em:

# mount -o remount /home

O quotacheck faz a verificação inicial dos arquivos e usuários, gerando uma tabela

oculta que lista os arquivos de posse de cada usuário. Essa tabela é usada pelo Quota

para checar o espaço ocupado por cada um e é atualizada em tempo real conforme

novos arquivos são gravados.

Com tudo pronto, ative o uso das quotas usando o comando "quotaon", seguido da pasta

onde está montada a partição, como em:

# quotaon /home

Page 27: Servidores Web - Apache

27

21. Bibliografia

MORIMOTO Carlos E. Servidores Linux. Guia Prático. Sul Editores. 2008.

http://www.hardware.com.br/livros/servidores-linux/capitulo-configurando-

servidores-web.html, - acessado de 12/03/2012 à 21/05/2012