segunda-feira, 4 de junho de 2012

Servidores Web



SERVIDORES WEB

Introdução

http://www.openbase.com.br/openbdoc/html-pb/opusweb/Ow1p2.htm - Acessado em 15/05/12

Um Servidor Web é um aplicativo responsável em aceitar solicitações HTTP feita pelos clientes web e responder fornecendo informações na forma de documentos de imagem texto, vídeos, aplicativos, serviços entre outros.

Esses servidores podem oferecer conteúdos na internet ou em uma intranet, os servidores web quando disponíveis em uma intranet ,também poderá oferecer serviços na internet dependendo das necessidades dos usuários e das configurações da rede onde ele se localiza.

Apesar de o aplicativo ser chamado de Servidor Web, ele não é um sistema operacional, mas um serviço que roda sobre uma plataforma. Essa plataforma é um sistema operacional que pode ser Unix, Linux, Windows Server, Mac, Sun, etc.

A maioria dos fabricantes disponibiliza um Servidor Web específico para os seus produtos, porém também existem Servidores Web multi plataforma e outros com várias versões que atendem diferentes sistemas operacionais.

Os servidores web mais utilizados no mercado hoje são o Apache desenvolvido pela comunidade linux, o IIS desenvolvido pela Microsoft e o IBM HTTP Server.



Introdução a Web Service

http://devedge-temp.mozilla.org/viewsource/2002/soap-overview/index_pt_br.html - Acessado em 15/05/12

Em meados dos anos 90 a Internet começou a se popularizar e as tecnologias presentes permitiam aos seus usuários acessarem sites e baixar o seu conteudo. A linguagem de programação HTML (Hiper Text Markup Language) era a linguagem utilizada na época e era através dela que as informações na internet eram apresentadas.

Com o passar do tempo novas tecnologias passaram a ser desenvolvidas, isso permitiu que diversos aplicativos e serviços passassem a ser disponíveis na rede. Diferentemente do principio, quando a internet oferecia, na sua maioria, páginas estáticas com informações, ela passou a disponibilizar sites dinâmicos que permitem a execução de diversos serviços, como sites de compras, consultas dinâmicas, serviços bancários entre outros.

Os web services ainda são acessados pelo protocolo HTTP, porém por trás disso existe uma string XML que consiste em um protocolo SOAP (Simple Object Acess Protocol), que é um padrão aberto criado em comum acordo entre a IBM, Ariba e Microsoft, com intuito de padronizar a transferência de dados entre aplicativos.



O protocolo HTTP

http://www.openbase.com.br/openbdoc/html-pb/opusweb/Ow1p2.htm Acessado em 15/05/12

O protocolo HTTP (Hypertext Transfer Protocol) permitir uma transferência rápida e eficiente de documentos na Internet, ele é baseado em um sistema de pedido (request) e resposta (response).

A transação HTTP possui uma estrutura básica que inicia com o cliente estabelecendo uma conexão com o servidor pela porta 80 (Padrão), utilizando o protocolo TCP/IP. Estabelecida a conexão o cliente envia uma mensagem ao servidor, essa mensagem é uma request, o servidor por sua vez processa o pedido respondendo ao cliente com a informação solicitada, após esse envio o servidor fecha a conexão.



Endereçamento de Sites:

Existem três tipos de endereçamento para um site:

• Enderço IP (IP Adress)

• Número da porta TCP (Port Number)

• DNS

Para que um site consiga ser publicado, pelo menos um, dentre esses três endereçamentos, precisa ser único para a máquina em que o site está hospedado.



Endereço IP: Favor colocar uma descrição



Porta TCP: Neste espaço escolhe-se o número da porta que o web site irá usar para se comunicar com os clientes. Apesar do aplicativo não impedir a escolha de um porta que já esta sendo usada, é altamente recomendado a utilização de uma que esteja livre, pois pode haver problemas de comunicação com outros serviços.

A porta 80 é a escolha padrão dos navegadores de internet sempre que tentam se comunicar com um web site. Caso outro número seja escolhido para a porta de comunicação, este terá que ser adicionado ao endereço URL do site pelos clientes.

Por exemplo: Se a porta 1200 for escolhida para o site www.vitrine.com, o usuário terá que digitar a seguinte URL para conseguir acessar esta página no servidor: www.vitrine.com:1200



DNS: É o nome que é digitado no barra de endereço do navegador. O uso do DNS permite que os sites que estão contidos no servidor tenham o mesmo número de IP e porta. Isso é muito útil quando se tem poucos números de IP disponíveis ou para economizá-los.



Porta SSL: A porta SSL permite que os dados que trafegam entre cliente e servidor sejam criptografados ou autenticados. Da mesma forma que na porta TCP, caso o número escolhido seja diferente do padrão (443), o usuário terá que digitar o número ao final do endereço do site.




O Protocolo SOAP

http://www.openbase.com.br/openbdoc/html-pb/opusweb/Ow1p2.htm - Acessado em 15/05/12

http://www.inf.ufsc.br/~bosco/old_page/ - Acessado em 15/05/12





O SOAP é um protocolo que tem como base o XML e é utilizado para troca de informação entre aplicativos. Como as Mensagens do SOAP são escritas em XML elas podem ser utilizadas em qualquer plataforma. O protocolo SOAP padroniza a arquitetura de serviços na Web, isso permite que diversas aplicações troquem mensagens, dados e serviços. Dessa forma clientes utilizando linguagens de programação diferentes em sistemas operacionais diferentes possam se conectar e compartilhar serviços web, usando o SOAP. Desta forma, torna-se possível a interoperabilidade e a comunicação entre diferentes sistemas.



A Linguagem XML



http://www.w3.org/XML/ - acessado em 15/05/12

O XML (Extensible Markup Language) é uma linguagem recomendada pelo consorcio W3C, ele se caracteriza por ser muito flexível.

No princípio ele foi criado para atender as necessidades de grande escala de publicações eletrônicas, se tornando uma ferramenta muito importante na troca de dados entre Serviços Web.

O XML utiliza sintaxe básica e pode ser combinado com outros padrões, tornando simples reutilizar o código em outras aplicações com propósitos diferentes.



A sua padronização e sintaxe básica permite que ele tenha boas características de portabilidade, pois um aplicativo pode escrever um arquivo XML e enviar para ser lindo e utilizado por outro aplicativo.



Alguns dos propósitos do XML são: auxiliar os sistemas de informação no compartilhamento de dados (especialmente via internet), codificar documentos e inserir seriais nos dados comparando o texto com o de outras linguagens baseadas em serialização.







INTERNET INFORMATION SERVICES (IIS)



IIS é um pacote de aplicativos da Microsoft para servidores Web. Este pacote inclui entre suas ferramentas o Serviço WWW.



WWW Service:

O WWW Service é um serviço para publicação e gerenciamento de Web Sites, que permite configurar informações de sites, diretórios e arquivos contidos em um servidor.

Para fazer o gerenciamento dos sites e aplicações que estão no servidor Web o IIS tem a ferramenta MMC (Microsoft Management Console). O MMC controla todos os componentes que estão instalados com o IIS.





Tela do MMC







Diretórios do Web Service:

Ao clicar na pasta Web Sites na janela esquerda do MMC tem-se a lista de todos os sites que estão no servidor. A navegação pelas janelas do MMC segue a mesma linha do Windows Explorer. Aqui também é possível ter acesso as permissões NTSF dos diretórios, porém não se pode configurar as permissões NTSF para arquivos.



Criando um site:

Vários sites podem ser criados em um servidor. Para criar um site há a opção de usar o Web Site Creation Wizard (Ajudante de criação de Web Site) ou importar um arquivo pronto.

Após o site ter sido criado, o próximo passo é definir suas configurações na Janela de Propriedades:



Endereço IP:

• Escolher um número do menu da caixa de propriedades do Web Site Indetification.

• All Unassigned: O IIS atribui automaticamente qualquer IP que não esteja sendo usado nessa máquina.

• Digitar um IP de sua escolha. Ao digitar um IP manualmente o IIS não confere se este IP está sendo usado por outro site ou se está disponível para a máquina em que o site está hospedado. Ele apenas certifica-se que o número digitado é um IP válido. É importante levar isso em consideração ao escolher um número de endereço IP manualmente.



Porta TCP: O valor 80 já vem com padrão de instalação. A escolha de outra porta TCP implicará na necessidade do cliente adicionar esse valor no endereçamento DNS.

Porta SSL: 443 é o valor padrão de instalação. Aqui a escolha de outro número também exigirá que o cliente adicione o valor escolhido ao endereço DNS.



Janela de propriedades do Web Site



DNS: Digitar o enderço DNS do site.



Janela de propriedades de identificação avançadas



Identificação dos Web Sites:

O primeiro site que aparece nas lista de diretórios é o Default Web Site. Cada site possui um número de identificação que é gerado aleatoriamente. O único site em que o identificador é sempre o número um é o Default Web Site.



Controle de Serviços de Web Sites:

Através do MMC consegue-se controlar o estado que um site se encontra na Web :

• Running (Ativo): O site está no "ar"

• Stop (Parado): O site não responde a chamadas dos clientes, ou seja, está inativo.

• Pausado (Pause): O site não aceita novas chamadas de clientes, porém as chamadas iniciadas antes dele ser pausado serão concluídas. Essa função é importante caso seja necessário tirar o site do ar sem cortar o acesso dos clientes abruptamente.





Permissões de Ações de Usuários:

As permissões são configuráveis nos níveis do Servidor Web, do site, do diretório e do arquivo.

Leitura: Permite que clientes façam download de uma página da web, leiam e baixem arquivos. Se essa opção estive habilitada, os usuários não poderão ver páginas de conteúdo estático.

Escrita: Caso esteja habilitada, os clientes poderão fazer uploads de arquivos no servidor.

http://programming4.us/security/600.aspx

Permissões de Aplicativos:

Nenhuma: Permite só paginas estáticas. Scripts não podem ser executados. Impede que qualquer aplicação que esteja no servidor possa rodar.

Scripts: É permitido que scripts, como o ASP, rodem através da extensão ISAPI. Com essa permissão ficam abertas as portas para que qualquer tipo de script funcione no servidor, o que pode gerar um problema de segurança.

Executáveis: Possibilita que qualquer tipo de arquivo seja acessado e executado. Além de scripts, arquivos como .exe, .dll e .cgi também rodem no servidor

Ao optar por habilitar só scripts ou scripts e executáveis, recomenda-se que permissão NTSF de escrita para usuários esteja desabilitada, evitando assim que pessoas possam fazer uploads e rodar arquivos executáveis e scripts maldosos no servidor.



Autenticação e Controle de Acesso

O IIS permite os seguintes tipos de autenticação:



Acesso anônimo: A pessoa que estiver acessando a página não fazer precisa fazer o logon com a senha e nome de usuário. O IIS utiliza o Internet Guest Account, que é uma conta instalada junto com o aplicativo, para autenticar o usuário.



Autenticação Básica: É a forma mais simples de autenticação. A senha e o nome do usuário são enviados pela rede em forma de texto, sem serem criptografados. A autenticação básica tem um alto nível de compatibilidade, pois utiliza-se da especificação HTTP, que é aceita pela maioria dos navegadores.

Um grande problema desse tipo de autenticação é a segurança. Além de trafegarem de forma não criptografada pela internet, o IIS guarda os dados de login do usuário em cache por um período pré-determinado, possibilitando que hackers roubem essas informações antes que elas sejam apagadas da memória.

Recomenda-se o uso nas seguintes situações:

• O usuário não precisa ter uma configuração de sistema específica. Pode utilizar qualquer sistema operacional ou navegador.

• A estrutura de rede não suporta autenticação criptografada.

Como a autenticação básica não criptografa as informações de login, é necessário utilizar a criptografia do protocolo SSL.



Digest Autenticantion for Windows Domain Servers: Este tipo de autenticação está disponível caso o Active Directory esteja sendo usado.

É mais confiável do que a autenticação básica, pois transmite e guarda as informações no servidor no formato hash MD5. Caso alguém intercepte a mensagem ou invada o servidor em que está hospeda, não consiguirá visualizar os dados do usuário.



Advanced Digest Authentication: Funciona da mesma forma que o Digest Autentication, porém com uma diferença essencial para a segurança das informações. Os dados de login dos clientes são guardados no controlador de domínio utilizando o hash MD5, o que garante uma segurança muito maior para informações.

Os pré-requisitos para usar esse tipo de autenticação são:

• Controlador de domínio e Servidor IIS precisam estar rodando no Windows Server 03

• Os usuários que estiverem usando Advanced Diggest Autentication têm que possuir o IE5 ou uma versão mais nova.

• Utilizar o Active Directory



Autenticação Integrada do Windows: É a forma mais segura de autenticação, porém só funciona em navegadores Internet Explorer. Cliente e servidor se comunicam de forma criptografada.

As formas de criptografias aceitas são:

• Kerberos V5

• NTLM



.Net Passaport Autentication: Os clientes fazem a autenticação através do Microsoft .Net Passaport. A vantagem desse tipo de solução é que as informações de login dos clientes ficam armazenadas em outro servidor cuja segurança e manutenção são de responsabilidades da Microsoft .Net Passaport. Não é necessário cria um sistema de credencias em seu servidor. Após o usuário fazer o logon no servidor do .Net passport ele é automaticamente rederecionado para página do site requisitado. Com a autenticação .Net Passport vários sites podem ser acessados com apenas um nome de usuário e senha.

Para utilizar esse serviço é preciso pagar uma taxa para a Microsoft .Net Passport.



Gerenciamento de Aplicativos:

A arquitetura do IIS oferece um sistema de isolamento de processos que garante maior segurança e desempenho para o Servidor Web. No IIS os serviços essencias de gerenciamento e publicação Web funcionam isoladamente dos aplicativos. Além disso, os aplicativos também podem ser configurados em diferentes grupos, evitando que o defeito de uma aplicação interfira em outras páginas do site.

Por exemplo, vamos supor que vc esteja testando um novo método de pagamento para um site de compras. Esse serviço deve ser configurado em um novo grupo de aplicativos, pois havendo algum problema com essa aplicação, outros diretórios, como os que guardam imagens e páginas estáticas do site, não serão afetados.

A plataforma da Microsoft para o desenvolvimento de aplicativos Web, Asp.net, é a ferramenta para criação de conteúdo dinâmico que melhor trabalha em conjunto com o IIS.

Através das extensões ISAPI e CGI, o IIS também oferece suporte a outras plataforma de desenvolvimento de aplicativos Web. Algumas delas são:

• ASP

• PHP

• Perl

• Phyton

• Ruby on Rails (Open Source que trabalha com Apache e outras Servidores Web).



Considerações finais sobre o IIS:

• O IIS é flexível, seguro e de fácil gerenciamento.

• Com uma arquitetura que isola os processos de operação e o aplicativos das funcões essenciais para o funcionamento de um site, é um Servidor Web de alta confiabilidade.

• Sua capacidade de lidar com tarefas que vão desde streming de video à aplicações web, o torna uma excelente escolha para quem deseja realizar serviços de hospedagem.







APACHE

História

O Apache foi desenvolvido por Rob McCool que na época trabalhava na NCSA (National Center of Supercomputing applications). Quando Rob deixou a empresa, o desenvolvimento foi interrompido, assim muitos desenvolvedores buscaram personalizar sua própria versão ou adicionar mais características para atender as suas necessidades. Desde então começa a história do Apache com Brian Behlendorf e Cliff Skolnick. Teve também participação da HotWired que doou um servidor como cobaia para fazerem testes, corrigir erros, adicionar recursos e também discutir ideias com hackers interessados neste projeto.

A primeira versão oficial foi a 0.6.2, lançada em abril de 95 (nesta época a NCSA retomava o desenvolvimento de seu servidor web, tendo como desenvolvedores Brandon Long e Beth Frank, que também se tornaram membros do grupo Apache). Nas versões 2.x do Apache, o servidor já foi ampliado suportando as plataformas Win32.

Segundo uma pesquisa realizada em Dezembro de 2007, foi concluído que a utilização do Apache representa 47.20% dos servidores ativos no mundo. Em maio de 2010, o Apache serviu mais de 54,68% de todos os sites e mais de 66% dos milhões de sites mais populares. É a principal tecnologia da Apache Software Foundation, responsável por dezenas de projetos envolvendo tecnologias de transmissão web.

Suas funcionalidades são mantidas através de uma estrutura de módulos, permitindo inclusive que o usuário escreva seus próprios módulos utilizando a API do software.



Algumas características do Apache:

• Possui suporte a scripts cgi usando linguagens como Perl, PHP, Shell Script, ASP, etc.

• Suporte a autorização de acesso podendo ser especificadas restrições de acesso separadamente para cada endereço/arquivo/diretório acessado no servidor.

• Autenticação requerendo um nome de usuário e senha válidos para acesso a alguma página/sub-diretório/arquivo

• Mensagens de erro.

• Suporte a IP virtual hosting.

• Suporte a name virtual hosting.

• Suporte a servidor Proxy ftp e http.

• Suporte a proxy e redirecionamentos baseados em URLs para endereços Internos.

• Suporte a criptografia via SSL.

• Módulos DSO (Dynamic Shared Objects) permitem adicionar/remover funcionalidades e recursos sem necessidade de recompilação do programa.



Ficha Técnica

Por default os arquivos do Apache na plataforma GNU Linux se encontram no \etc\apache.

• httpd.conf - Arquivo de configuração principal do Apache;

• srm.conf - Contém diretivas que controlam a especificação de documentos que o servidor oferece aos clientes;

• access.conf - Contém diretivas que controlam o acesso aos documentos.

OBS: As configurações também podem ser especificadas diretamente no arquivo httpd.conf. Não é obrigatório usar os arquivos srm.conf e access.conf, mas isto proporciona uma melhor organização das diretivas do servidor.



Instalação

O servidor é configurado por um arquivo mestre nomeado httpd.conf e pode haver configurações para cada diretório utilizando arquivos com o nome .htaccess, onde é possível utilizar autenticação de usuário pelo próprio HTTP utilizando uma combinação de arquivo .htaccess com o arquivo .htpasswd, guardará os usuários e senhas (criptografadas).

Antes de iniciar a instalação, convém verificar se o Apache já não está instalado no sistema. Verifique se ele está abrindo um navegador web no endereço http://127.0.0.1.

Para instalar o servidor, a primeira coisa a fazer é transferir a versão que pretendemos instalar do site oficial da Apache http://www.apache.org. Existem sempre várias distribuições disponíveis mais o melhor é usar a última versão. (No exemplo usaremos o Apache 2).



Instalação no Debian / Linux:

# apt-get update

# apt-get install apache2

Configuração:

Use o comando “whereis” para descobrir onde estão os arquivos de instalação:

# whereis apache2

Na tela irá mostrar algo como:

usr/sbin/apache2
/etc/apache2
/usr/lib/apache2
usr/share/apache2

Onde:

• usr/sbin/apache2 é o diretório do binário principal do apache;

• /etc/apache2 ficam os principais arquivos de configuração do apache;

• /usr/lib/apache2 é a biblioteca do apache2;

• usr/share/apache2 são os objetos padrões do apache.

Utiliza-se somente o diretório /etc/apache2 e o diretório /var/www/apache2-default, onde ficarão os sites armazenados no servidor apache.

Dica: Crie um link simbólico chamado apache no diretório /var/www.

# ln -s /var/www/apache2-default /var/www/apache

Isso facilita na hora de configurarmos os sites do apache.

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.



Instalação no Windows

Resolvemos instalar o Apache em uma pasta chamada Webserver na raiz do HD, ficando da seguinte forma: C:\Webserver. Após inicie o instalador do Apache, a primeira tela de instalação é semelhante a essa:







Avançando algumas telas chegamos à seguinte tela de configuração. Aqui é onde iremos fazer algumas configurações do servidor, basta preencher o primeiro campo com o valor localdomain, o segundo campo com localhost e o terceiro um e-mail próprio. É recomendável que você deixe o Apache configurado na porta 80, não é obrigatório você pode alterar caso queira.







Temos a tela que escolhemos a opção típica ou customizada se caso queira personalizar a pasta de instalação do Apache:





Por default o Apache é instalado na pasta Arquivos de Programas/Apache Software Foundation/Apache 2.2, mas vamos instalá-lo dentro da pasta Webserver, ficando então:







Após o término da instalação, veremos que apareceu um novo ícone, o Apache Monitor. Através dele temos acesso ao status do Apache, onde podemos obter informações se ele está rodando, podemos também parar o servidor, reiniciá-lo e iniciá-lo:







Testando o Apache

Abra o browser e digite o seguinte na barra de endereços: http://localhost/.







As versões mais antigas do Apache exibiam outras informações, mas a 2.2.XX mostra só isso. As páginas ficam por padrão dentro da pasta “htdocs”, no diretório onde o Apache foi instalado. No caso ela está na seguinte pasta: C:\Webserver\Apache2.2\htdocs.

Caso queira pode substituir o arquivo “index.html” pelo arquivo de outro site e também pode adicionar pastas e subpastas representando outros diretórios.

Até agora nosso servidor lê somente HTML. Porém, é diferente a forma de acesso do endereço “http://localhost/index.html” de “C:\Webserver\Apache2.2\htdocs\index.html”. No primeiro caso, o navegador solicita a página ao servidor “localhost”, recebe a página do servidor, armazena no cache, e só depois então a exibe. Como se fosse um site que estivesse realmente hospedado em algum servidor da Internet. Como o servidor do site está no próprio PC, trata-se então de uma Intranet. No segundo caso, estamos acessando o arquivo diretamente do HD. O navegador pode até armazenar algum dado no cache, mas não há nenhuma comunicação com qualquer servidor. Ele lê o arquivo como qualquer programa leria qualquer arquivo.





IBM HTTP SERVER



O IBM HTTP SERVER é uma servidor web desenvolvido pela IBM utilizando como base o Servidor Apache. A IBM se preocupou em adicionar ao sistema vários recursos, otimizando sua utilização, e permitindo novos recursos.



Recursos adicionados ao IBM HTTP SERVER:

InstallShield: É uma ferramenta utilizada para criação de instaladores de softwares, muito utilizado na plataforma Windows, ele cria uma arquivo executável para ser utilizado no computador onde o software deve ser instalado.

Componente do Servidor de Administração : Esse recurso permite que o IBM HTTP SERVER seja administrado por uma interface web, esse sistema permite que o servidor seja administrado remotamente através de qualquer sistema operacional que possua um browser.

Suporte a SSL (Secure Sockets Layer): É um padrão utilizado mundialmente que cria um canal criptografado entre o cliente web e o servidor web, permitindo uma transmissão de dados mais segura.

Suporte a FRCA (Fast Response Cache Accelerator): É um acelerador de cache de conteúdo e que também faz um cache de HTTP GET, esse recurso só é disponível para sistemas operacionais Windows. O FRCA também possui um desempenho melhor que o apache para distribuir páginas estáticas.

Geração de conteúdo dinâmico com FastCGI: Esse recurso otimiza o funcionamento de extensões CGI, PHP, entre outras. Com ela, aplicações externas rodam muito mais rápido em servidores Windows.

Suporte a idiomas: Permite a instalação do IBM HTTP Server em idiomas diferentes, esse recurso está disponível em todas as plataformas.



Suporte a autenticação de LDAP

Gerenciamento de arquivo WebDAV: Web-based Distributed Authoring and Versioning, é uma extensão do protocoloHTTP que é utilizada para transferência de arquivos.Ele permite que arquivos fiquem bloqueados quando um usuário está alterando o mesmo, impedindo que mais de um usuário altere o arquivo aomesmo tempo

Suporte de SNMP com acesso a MIB (management information base): Permite a captação, envio e o gerenciamento de informações do sistema,Apache SCOREBOARD que é um módulo de autenticação do Apache.

http://www.ibm.com/developerworks/br/data/library/techarticle/dm-1105httprestdb2/ - Acessado em 16/05/2012
http://www.comunitacenacolo.it/index.asp?idlingua=7

Nenhum comentário:

Descubra quanto de Mata Atlântica existe em você!

Contador visitas