O Geoserver em produção e com segurança

Publicado: 15/05/2013 em Linux, Programação, Serviços IP
Tags:, , ,

Neste post vamos tratar de algumas complementariedades importantes para o perfeito funcionamento do servidor de mapas Geoserver no Linux/Debian. Seguiremos uma linha de roteiro de instalação do ambiente e do aplicativo, com enfoque na segurança. Este post complementa os demais posts que fizemos abordando o servidor Geoserver.

1. Instalar o Java

O primeiro passo para o colocar o Geoserver em funcionamento é a instalação da máquina virtual Java, que pode ser realizado através de apt-get. Existe um post neste blog que descreve a instalação do Java, e isto pode ser verificado aqui.

2. Instalar o Tomcat
A maneira mais fácil é utilizando o apt-get. Existe um post neste blog que descreve a sua instalação do Tomcat, e isto pode ser verificado aqui.

Chamamos a atenção aos seguintes espectos:

  • a instalação default do Tomcat é na porta 8080. Se desejar alterar, por exemplo para a porta 8085, deve-se alterar o arquivo /etc/tomcat6/server.xml
  • para uma maior segurança, alterar os usuários iniciais e perfis em /etc/tomcat6/tomcat-users.xml, conforme post referenciado acima.
  • para verificar o bom funcionamento do Tomcat acessando a URL http://server-IP:8085/manager/html , com user/passw: admin / admin

3. Instalar o Geoserver
Existe um post neste blog que descreve a instalação do Geoserver, e isto pode ser verificado aqui. É baixar o arquivo do sitio do próprio aplicativo e descompactá-lo na pasta apropriada de forma ao Tomcat poder servir.

Para verificar o bom funcionamento do ambiente Java, Tomcat e o Geoserver, acessar a URL http://server-IP:8085/manager/html   (ou porta 8080 se não houve modificação). O usuário/senha default para login após a instalação é admin/geoserver.

Chamamos a atenção aos seguintes aspectos:

  • no momento da instalação também é gerado um outro usuário chamado “root”. Que deve ser utilizado em caso de alguma emergência, quando o login pelo administrador não for possível. A senha para este usuário estará disponibilizada no arquivo /var/lib/tomcat6/webapps/geoserver/data/security/masterpw.info
  • se não for utilizar os serviços WCS e WFS, desabitá-los:
    Retirar serviços desnecessários: services -> WCS (desmarcar “Enable WCS”) e services -> WFS (desmarcar “Enable WFS”).
  • alterar as informações de contato através de: About & Status –> Contact Information
  • é importante fazer a alteração da senha default do usuário admin através do menu Security -> Users,Groups,Rules -> admin
  • remover arquivo users.properties.olg: rm /var/lib/tomcat6/webapps/geoserver/data/security/users.properties.old
  • remover arquivo masterpw.info em /var/lib/tomcat6/webapps/geoserver/data/security/masterpw.info , após tomar conhecimento da senha do usuário “root” contido neste arquivo.
  • limitar a lista de SRS do serviço WMS apenas aqueles de necessidade: services -> WMS -> Limited SRS list. Esta caixa, por exemplo, poderia ser preenchida por: 4326, 4674, 3857, 4269
  • Quanto aos logs: em produção, fixar o perfil de logs Settings –> Global –> LoggingProfile –> PRODUCTION_LOGGING.properties
    • relatório de logs que obtemos em About&Status –> GeoserverLogs é oriundo do arquivo /var/lib/tomcat6/webapps/geoserver/data/geoserver.log
    • profile de logs:  Settings –> Global –> LoggingProfile   são os arquivos depositados  em /var/lib/tomcat6/logs

4. Geoserver atrás de um proxy
Não é uma boa política expor na internet o Geoserver, mesmo que se esteja usando o Tomcat ou o Jetty. Uma opção mais segura é utilizar um servidor web mais estável, como o Apache. Uma boa solução é lançar mão de um proxy através do servidor Apache. Este servidor redirecionaria as requisições para o Tomcat, que estaria mais seguro numa rede protegida interna. É isto que vamos descrever nesta parte deste post.
4.1 Habilitar protocolo ajp na máquina do Geoserver
Editar o arquivo /var/lib/tomcat6/conf/server.xml e descomentar a linha:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Com isto cria-se um conector na porta 8009 para o protocolo ajp.
Não esquecer de reiniciar o tomcat:
# /etc/init.d/tomcat6 restart

AJP: “Apache JServ Protocol” – trata-se de um protocolo binário que pode redirecionar requisições de entrada de um servidor web para um servidor de aplicação que fica por trás do servidor web. Implementadores da Web normalmente usam o AJP em uma implantação de balanceamento de carga, onde um ou mais servidores Web de front-end alimentam pedidos para um ou mais servidores de aplicação. Tanto o container Apache Tomcat servlet como o container Jetty servlet suportam o AJP.

4.2 Instalar o Apache na máquina front-end
Existe um post neste blog que descreve a instalação do Apache, e isto pode ser verificado aqui.

4.3 Instalar módulos proxy do Apache na máquina front-end
# a2enmod proxy proxy_ajp
# /etc/init.d/apache2 restart

Existe um post neste blog que descreve os procedimntos para instalação de módulos do Apache, e isto pode ser verificado aqui.

4.4 Configurar o funcionamento do proxy
Editar o arquivo /etc/apache2/apache2.conf e inserir as seguintes linhas:

# ProxyPass
ProxyPass /geoserver   ajp://192.168.1.101:8009/geoserver
<Location /geoserver>
Order deny,allow
Deny from all
Allow from all
</location>

ProxyPass /meumapa    ajp://192.168.1.101:8009/meumapa
<Location /meumapa>
Order deny,allow
Deny from all
Allow from all
</location>

Os dois comandos de redirecionamento acima fará com que:
– toda requisição para /geoserver será redirecionada para o host 192.168.1.101, na porta 8009, utilizando o protocolo ajp
– toda requisição para /meumapa será redirecionada para o host 192.168.1.101, na porta 8009, utilizando o protocolo ajp

Não esquecer de reiniciar o apache:
# /etc/init.d/apache2 restart

4.5 Fazer requisições normalmente
utilizando um navegador, acessar normalmente o servidor de front-end através das seguintes URL:
http://<IP-servidor_front-end>/geoserver
http://<IP-servidor_front-end>/meumapa
Observe que o servidor de front-end é acessado normalmente pela porta 80.

5. Mensagem Importante
Se este post fora útil para você, não deixe de comentar. Além de ser um estímulo importante, pode melhorar este trabalho. Com certeza é muito mais trabalhoso fazer uma boa documentação do que implementar.

Sucesso!

Referências:
1- Instalar Geoserver no Linux – Debian

comentários
  1. Marcelo Rangel disse:

    Muito bom !!

Deixe um comentário, pois isto é muito motivante para continuarmos este trabalho

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s