Servidor apache

32

Transcript of Servidor apache

Page 1: Servidor apache
Page 2: Servidor apache

1 UFCD 0840 - Servidores Web

odução ............................................................................................................................................... 4

de de páginas e suas aplicações ...................................................................5

do Servidor Apache ......................................................................................................... 7

Instalação, Iniciação e Configuração de um Servidor Web com Apache, MySQL, PHP

no Windows (WAMP) ........................................................................................................................... 8

Instalação, Iniciação e Configuração de um Servidor Web com Apache, MySQL, PHP

no Ubuntu (LAMP) .............................................................................................................................. 15

Conclusão ............................................................................................................................................... 30

Bibliografia ............................................................................................................................................. 31

Page 3: Servidor apache

2 UFCD 0840 - Servidores Web

Ilustração 1 - Gráfico dos servidores ................................................................................................. 6

Ilustração 2 - Apache ............................................................................................................................ 7

Ilustração 3 - Instalação WampServer ............................................................................................ 8

Ilustração 4 - Directoria da configuração Wamp ...................................................................... 9

Ilustração 5 - Página escolhida ......................................................................................................... 9

Ilustração 6 - Ficheiro hosts ............................................................................................................... 10

Ilustração 7 - Reiniciar serviços .......................................................................................................... 11

Ilustração 8 - Aceder remotamente ao servidor de páginas .................................................. 11

Ilustração 9 - Instalação OpenSSL .................................................................................................. 12

Ilustração 10 - openssl genrsa -des3 -out server.key 1024 ....................................................... 12

Ilustração 11 - Criar Certificado ........................................................................................................ 13

Ilustração 12 - Ficheiro httpd-ssl.conf ............................................................................................. 14

Ilustração 13 - apt-get install apache2 .......................................................................................... 15

Ilustração 14 - PassWord .................................................................................................................... 16

Ilustração 15 - apt-get install mysql-server mysql-client ......................................................... 16

Ilustração 16 - apt-get install php5 libapache2-mod-php5 ................................................... 17

Ilustração 17 - aptitude install phpmyadmin .............................................................................. 18

Ilustração 18 - Reiniciar servidor Apache ...................................................................................... 18

Ilustração 19 - Configuração PHPMYADMIN2 ........................................................................... 19

Ilustração 20 - Configuração PHPMYADMIN ............................................................................ 19

Ilustração 21 - Configuração PHPMYADMIN3 .......................................................................... 20

Ilustração 22 - Configuração PHPMYADMIN4 ......................................................................... 20

Ilustração 23 - mkdir /var/www/carlos.local ............................................................................... 21

Ilustração 24 - sudo getdit /etc/apache2/sites-available/carlos.local .................................. 21

Ilustração 25 - Ficheiro hosts ............................................................................................................ 22

Ilustração 26 - a2dissite default ...................................................................................................... 23

Ilustração 27 - a2ensite carlos.local ............................................................................................... 23

Ilustração 28 - Recarregar o Apache ............................................................................................ 24

Ilustração 29 - Criar ficheiro index.html....................................................................................... 24

Ilustração 30 - cd /etc/ssl ................................................................................................................... 25

Ilustração 31 - sudo openssl genrsa -aes256 -out server.key 1024 ....................................... 25

Page 4: Servidor apache

3 UFCD 0840 - Servidores Web

Ilustração 32 - sudo openssl req -new -key server.key -out server.csr ............................... 26

Ilustração 33 - sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out

server.crt ................................................................................................................................................. 26

Ilustração 34 - cd /etc/apache2 ...................................................................................................... 27

Ilustração 35 - sudo mv server.key private/ ............................................................................... 27

Ilustração 36 - sudo a2ensite default-ssl ...................................................................................... 28

Ilustração 37 - Ficheiro default-ssl ................................................................................................. 28

Ilustração 38 - Reiniciar Apache ..................................................................................................... 29

Page 5: Servidor apache

4 UFCD 0840 - Servidores Web

O servidor Apache pode ser instalado no Linux e noutros sistemas operativos, suporta

algumas funcionalidades avançadas que iremos analisar e configurar ao longo do

presente trabalho.

A configuração do apache é efectuada com o recurso a determinados ficheiros de

configuração que iremos conhecer.

Para além das funcionalidades básicas, o Apache suporta módulos que acrescentam

novas funcionalidades.

Começaremos por focar a nossa atenção na configuração base do servidor Apache

que iremos abordar em seguida.

Page 6: Servidor apache

5 UFCD 0840 - Servidores Web

Um servidor de páginas disponibiliza informação numa rede, permite o acesso

simplificado através de cliente unificado e simples (browser WWW). Funciona como

interface entre aplicações e o utilizador, esconde as aplicações do utilizador, ajuda a

focar o utilizador nos serviços, permite construir novas aplicações através da

interligação de aplicações existentes

São necessários mecanismos de programação no servidor de páginas, tais como:

CGI – execução de programas externos;

Embebidos – linguagens internas ao servidor WWW.

Passaremos agora a mencionar alguns tipos de servidor de páginas:

Servidor HTTP Apache:

o Aplicação open source;

Servidor HTTP MS IIS:

o Aplicação proprietária;

Outros servidores HTTP

o Xitami, Zeus, OmniHTTPd, etc;

Page 7: Servidor apache

6 UFCD 0840 - Servidores Web

No uso dos servidores de páginas os dados são obtidos através de acessos ao servidor,

a sua compilação é por tipo e características do servidor, são geradas estatísticos

mensais.

Vejamos um gráfico onde nos mostra qual dos servidores é mais utilizado:

O servidor Apache é o mais utilizado como podemos ver no gráfico anterior, para

que isso aconteça, este servidor contém um conjunto de características para que tal

aconteça, vejamos:

Código mantido por uma comunidade aberta;

Elevada fiabilidade;

Excelente desempenho;

Grande flexibilidade de configuração e uso;

Suporte de várias plataformas;

Suporte do protocolo HTTP 1.1;

Estruturado em módulos;

Administração através de linha de comandos.

Vamos agora ver as aplicações disponíveis no servidor Apache.

Ilustração 1 - Gráfico dos servidores

Page 8: Servidor apache

7 UFCD 0840 - Servidores Web

O Apache como servidor Web tem como finalidade ser um servidor de páginas para

internet, mas pode ser usado como um servidor Web para acesso restrito, servir

exclusivamente para estações da rede interna.

Se usarmos um computador para partilha na internet, firewall ou proxy como um

servidor web interno, este, não consome muitos recursos, consome espaço em HD

conforme o que for disponibilizado.

Ao disponibilizar a página da empresa numa máquina interna, com o Apache

podemos obter uma economia de banda, ou disponibilizar documentos diversos,

tutoriais, instruções, normas da empresa e etc...

Fazer o download de ficheiros grandes e disponibilizar internamente, obtemos uma

grande economia de banda, o download interno é muito rápido, existe uma

separação destes ficheiros com o do servidor de ficheiros, protecção contra vírus

quando acedido por máquinas Windows, evita que os utilizadores naveguem na

Internet.

Podemos criar páginas com senha para restringir o acesso, utilizado em muitos casos

no backup de Discos Rígidos, em reinstalações, principalmente do Windows,

disponibilizar relatórios do SARG, relatórios de uso da internet com dados dos logs do

Squid.

Ilustração 2 - Apache

Page 9: Servidor apache

8 UFCD 0840 - Servidores Web

Para procedermos à instalação do Apache, Mysql e PHP no Windows, basta apenas

instalarmos o ficheiro WampServer. Como podemos ver na seguinte imagem:

Depois de instalado, a configuração do Wamp, é feita na directoria “c: wamp/www”.

Nesta directoria criamos uma pasta, e dentro desta pasta colocamos os ficheiros

pretendidos.

Ilustração 3 - Instalação WampServer

Page 10: Servidor apache

9 UFCD 0840 - Servidores Web

Sempre que quisermos colocar ficheiros no nosso servidor, basta realizar o

procedimento anterior.

Vejamos uns exemplos realizados em aula:

Agora se abrirmos o localhost ele vai abrir o índex, adicionado na directoria acima

referida:

Ilustração 4 - Directoria da configuração Wamp

Ilustração 5 - Página escolhida

Page 11: Servidor apache

10 UFCD 0840 - Servidores Web

Um outro passo importante que podemos realizar é o virtualhosts, ou seja todos os

computadores da rede acedem ao nosso servidor de páginas, vamos gora passar a

mencionar as configurações realizadas para que seja feita esta virtualização.

O primeiro passo é irmos à directoria “C: \ WINDOWS \ system32 \ drivers \ etc \”,

nesta directoria encontramos um ficheiro com o nome “hosts”, neste ficheiros

adicionamos as seguintes linhas “127.0.0.1 carlos/127.0.0.1 filipe”, estas linhas fazem

com que qualquer url com o valor “Carlos e Filipe”, seja reencaminhado para o

127.0.0.1(localhost), vejamos:

De seguida, vamos editar o ficheiro "vhosts.conf-httpd", localizado na directoria "C: \

bin wamp \ \ apache \ conf Apache2.2.11 \", e aqui vamos inserir o seguinte texto:

Ilustração 6 - Ficheiro hosts

Page 12: Servidor apache

11 UFCD 0840 - Servidores Web

Reiniciamos todos os serviços na opção Wamp, como podemos ver na seguinte imagem:

Pronto em qualquer computador podemos aceder ao nosso servidor de Páginas:

Ilustração 7 - Reiniciar serviços

Ilustração 8 - Aceder remotamente ao servidor de páginas

Page 13: Servidor apache

12 UFCD 0840 - Servidores Web

O próximo passo é colocar o openSSL a funcionar, para tal vamos instala-lo, vejamos:

Depois de instalado o OpenSSl, vamos à linha de comando do Winodws e vamos à

directória onde está instalado Apache, “C:\wamp\bin\apache\Apache2.2.11\bin”,

depois excutamos o seguinte comando “openssl genrsa -des3 -out server.key 1024”:

Ilustração 9 - Instalação OpenSSL

Ilustração 10 - openssl genrsa -des3 -out server.key 1024

Page 14: Servidor apache

13 UFCD 0840 - Servidores Web

Após criarmos a nosso pass phrase, segue-se um tipo de questionário, sobre o nosso

país, etc, para que isso existe a necessidade de executarmos o seguinte comando

“openssl req -new -key server.key -out server.csr –config

C:\wamp\bin\apache\Apache2.2.11\\conf\openssl.cnf”:

O próximo passo será criar um certificado, para basta ainda na consola digitar o

seguinte comando “openssl rsa -in server.key -out server.key”, digitamos a pass

phrase criada anteriormente e está criado o nosso certificado:

Durante estas operações realizadas anteriormente, esta foram guardadas na

directoria actual “/bin”,então existe a necessidade de as copiarmos para a directoria

para “/conf”, basta digitarmos o seguinte comando “Copy server.*

C:\wamp\bin\apache\Apache2.2.11\\conf\\conf\*”, os ficheiros a ser copiados são

server.key, server.csr e server.crt:

Ilustração 11 - Criar Certificado

Page 15: Servidor apache

14 UFCD 0840 - Servidores Web

O próximo passo, passa pela configuração de alguns ficheiros, que precisam de ser

configurados consoante as nossas necessidades, para que o SSL, funcione

correctamente, são eles httpd-ssl.conf e httpd.conf.

Comecemos por o httpd.conf, aqui vamos descomentar (retirar o símbolo cardinal)

nas seguintes linhas existentes no documento:

Abrimos o ficheiro httpd-ssl.conf e procuramos pelas seguintes linhas e observamos se

o caminho dos ficheiros server.key e server.crt estão correctos e descomentamos as

linhas em questão:

Pronto, o OpenSSL, está a funcionar no nosso servidor Apache.

Ilustração 12 - Ficheiro httpd-ssl.conf

Page 16: Servidor apache

15 UFCD 0840 - Servidores Web

Vamos agora mostrar como procedemos à instalação e configuração do Apache,

Mysql e Php no Ubuntu.

Começamos com a instalação do Apache, como habitual no Ubuntu para qualquer

instalação usamos o comando “apt-get install apache2”:

Depois de instalado o Apache, vamos agora instalar o Mysql, usando o comando

“apt-get install mysql-server mysql-client”, neste passo seremos solicitados para

fornecer uma senha para o utilizador root do MySQL, esta senha é válida para o

utilizador root @ localhost:

Ilustração 13 - apt-get install apache2

Page 17: Servidor apache

16 UFCD 0840 - Servidores Web

Agora vamos passar à instalação do PHP5 “apt-get install php5 libapache2-mod-

php5”:

Ilustração 15 - apt-get install mysql-server mysql-client

Ilustração 14 - PassWord

Page 18: Servidor apache

17 UFCD 0840 - Servidores Web

Depois de instalado o PHP5, existe a necessidade de reiniciarmos o servidor apache,

para isso executamos o seguinte comando: “/ Etc/init.d/apache2 restart”:

Ilustração 16 - apt-get install php5 libapache2-mod-php5

Page 19: Servidor apache

18 UFCD 0840 - Servidores Web

O phpMyAdmin é uma interface Web através da qual podemos gerir as nossas bases

de dados MySQL, torna-se numa ferramenta muito útil, por isso vamos mostrar como

procedemos à sua instalação, digitamos o seguinte comando “aptitude install

phpmyadmin”:

Durante esta instalação devemos escolher as opções que nos são sugeridas:

Ilustração 18 - Reiniciar servidor Apache

Ilustração 17 - aptitude install phpmyadmin

Page 20: Servidor apache

19 UFCD 0840 - Servidores Web

Ilustração 20 - Configuração PHPMYADMIN

Ilustração 19 - Configuração PHPMYADMIN2

Page 21: Servidor apache

20 UFCD 0840 - Servidores Web

Feitas todas as instalações, vamos agora passar para as configurações para que tudo

funcione correctamente.

Ilustração 21 - Configuração PHPMYADMIN3

Ilustração 22 - Configuração PHPMYADMIN4

Page 22: Servidor apache

21 UFCD 0840 - Servidores Web

Para criar um virtual host no apache2 instalado no Ubuntu, temos de criar pastas

dentro da directoria /var/www, por exemplo no meu caso criei a directoria carlos.local

através do comando, “mkdir /var/www/carlos.local”, vejamos:

De seguida vamos editar o ficheiro “sites-available” que se encontra nesta directoria,

digitamos o comando “sudo getdit /etc/apache2/sites-available/carlos.local”:

Ilustração 23 - mkdir /var/www/carlos.local

Ilustração 24 - sudo getdit /etc/apache2/sites-available/carlos.local

Page 23: Servidor apache

22 UFCD 0840 - Servidores Web

Irá aparecer uma janela com o ficheiro que vamos editar:

Guardamos este ficheiro e fechamos.

De seguida vamos editar o ficheiro “hosts” do Ubuntu: “sudo gedit /etc/hosts”,

adicionamos a seguinte linha: “127.0.0.1 carlos.local”

Guardamos e fechamos.

Vamos abrir o ficheiro “apache2.conf”, “sudo gedit /etc/apache2/apache2.conf” e

certificarmo-nos de que ele possui as linhas:

Ilustração 25 - Ficheiro hosts

Page 24: Servidor apache

23 UFCD 0840 - Servidores Web

NameVirtualHost *:80

Listen 80

Editamos se for preciso (adicionamos as linhas), guardamos e fechamos.

Na consola, desabilitamos o site default do apache: “a2dissite default”:

E habilitamos o nosso vhost: “a2ensite carlos.local”

Ilustração 26 - a2dissite default

Ilustração 27 - a2ensite carlos.local

Page 25: Servidor apache

24 UFCD 0840 - Servidores Web

Digitamos o seguinte comando: “sudo /etc/init.d/apache2 reload”

Em seguida vamos até à directoria /var/www/carlos.local, e criamos um novo ficheiro,

“index.html”, e inserimos o seguinte código:

Ilustração 28 - Recarregar o Apache

Ilustração 29 - Criar ficheiro index.html

Page 26: Servidor apache

25 UFCD 0840 - Servidores Web

Abrimos o browser e acedemos a http://carlos.local, e lá está o ficheiro que criámos

anteriormente. O virtual host está criado!

Para criar outros, seguimos o mesmo processo, substituindo carlos.local pelo nome do

novo virtual host.

Para habilitarmos o SSL no Apache2 do Ubuntu temos de aceder à directoria /etc/ssl

executando o comando “cd /etc/ssl”:

O primeiro passo é gerarmos um par de chaves RSA através do comando “sudo

openssl genrsa -aes256 -out server.key 1024”,

Ilustração 30 - cd /etc/ssl

Ilustração 31 - sudo openssl genrsa -aes256 -out server.key 1024

Page 27: Servidor apache

26 UFCD 0840 - Servidores Web

Depois de gerarmos o par de chaves, temos de criar um certificado (CSR - Cert signing

request), executamos o comando “sudo openssl req -new -key server.key -out

server.csr”, vejamos:

Neste ficheiro aparece-nos um formulário de informações que ficará incorporado no

certificado. Em seguida vamos criar Self Sign Certificate, executamos o comando

“sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt”,

vejamos:

Ilustração 32 - sudo openssl req -new -key server.key -out server.csr

Ilustração 33 - sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Page 28: Servidor apache

27 UFCD 0840 - Servidores Web

Em seguida movemos o certificado e a respectiva chave para as pastas apropriadas,

digitamos os comandos, “sudo mv server.crt certs/” e “sudo mv server.key private/”:

O próximo passo é habilitar o default-ssl site no apache2, para isso digitamos o

comando “cd /etc/apache2/”, entramos na directoria e habilitamos o módulo ssl,

vejamos:

Ilustração 35 - sudo mv server.key private/

Ilustração 34 - cd /etc/apache2

Page 29: Servidor apache

28 UFCD 0840 - Servidores Web

Em seguida habilitamos o default-ssl site com o comando “sudo a2ensite default-ssl”:

Depois vamos editar o ficheiro sites-enabled/default-ssl com o comando, “sudo gedit

sites-enabled/default-ssl”:

Ilustração 36 - sudo a2ensite default-ssl

Ilustração 37 - Ficheiro default-ssl

Page 30: Servidor apache

29 UFCD 0840 - Servidores Web

Depois basta reiniciarmos o apache2, digitamos o comando “sudo service apache2

restart”:

Para testar e finalizar temos de abrir o browser e digitar no meu caso o endereço

https://carlos.local, e funciona.

Ilustração 38 - Reiniciar Apache

Page 31: Servidor apache

30 UFCD 0840 - Servidores Web

Depois de realizado este trabalho podemos estabelecer as diferenças existentes entre

as duas plataformas (Windows/Linux (Ubuntu)).

A instalação dos servidores em ambos é muito fácil de realizar, pois basta instalar o

Wamp em Windows e o Lamp em Linux, mas existem algumas dificuldades na

configuração do OpenSSL no Windows, coisa que no Ubuntu, torna-se uma

configuração muito fácil e rápida de se executar.

Vejamos agora algumas vantagens do uso da plataforma Linux:

O Linux tem uma boa reputação para maior segurança, e em muitos casos

não é necessário instalar software antivírus ao nível do servidor. Graças à

natureza bloqueado, modular de sistemas baseados em Unix, é difícil para um

vírus se infiltrar no sistema sem a expressa autorização do administrador.

Apesar da reputação como um sistema operativo para "nerds", é muito bem

organizado e lógico. Há poucas camadas de abstracção que reduz o inchaço

de código, e a natureza do código aberto do Linux significa vulnerabilidades

são localizados e corrigidos mais rapidamente.

Envolve menos preocupações e custos, e é mais confiável do que no Windows.

Também sai no topo em termos de segurança e protecção, e custa menos, pois

é OpenSource.

Concluímos então que a plataforma Linux é a mais fiável a nível de servidores Web.

Page 32: Servidor apache

31 UFCD 0840 - Servidores Web

Este trabalho teve como base o seguintes sites:

https://help.ubuntu.com/10.04/serverguide/C/httpd.html;

https://help.ubuntu.com/10.04/serverguide/C/web-servers.html;

http://tuxtweaks.com/2010/04/installing-lamp-on-ubuntu-10-04-lucid-lynx/;

http://tuxtweaks.com/2009/07/how-to-configure-apache-linux/;

http://blog.idealmind.com.br/geral/criando-virtual-hosts-no-linux-ubuntu-9-

10/;

https://wiki.auckland.ac.nz/display/BeSTGRID/Enabling+SSL+on+Apache2++%2

8Ubuntu+10.10%29;

http://www.andyhawthorne.net/2010/10/setting-up-a-lamp-server-on-

ubuntu-10-10/;

http://www.jonasmartinez.com/posts/criando-virtual-host-no-apache-2-2-

windows;

http://www.ruifeio.com/2011/01/30/setting-up-virtual-hosts-on-wampserver/;

http://www.neilstuff.com/apache/apache2-ssl-windows.htm;

http://imasters.com.br/artigo/3465/servidores_windows/instalando_ssl_no_apac

he2_em_ambiente_windows/;

http://pt.howticle.com/como-configurar-ssl-do-apache-para-windows.html;

http://ubuntu.no.sapo.pt/ssl.html;

http://nurulislam.wordpress.com/2008/06/24/https-and-ssl-setup-step-by-step-

guide/;

http://www.htmlstaff.org/ver.php?id=19702;

http://www.codigofonte.net/dicas/php/91_sistema-de-login-e-senha-com-bd;

http://osdir.com/ml/culture.publications.dicas/2008-06/msg00016.html;

http://rubayathasan.com/tutorial/apache-ssl-on-windows/;

http://phpbrasil.com/artigo/TRRz8rR-Qz_U/configurando-o-apache-22-com-

ssl-e-php-52-no-windows;