Implementando um Servidor Web Java com Tomcat no Debian
Se você desenvolve Aplicações Web em Java, o Tomcat é um servidor rápido e fácil em um ambiente de servidor completo projetado especificamente para esse fim. Neste guia, vamos instalar e configurar de forma básica o Tomcat Servidor GNU/Linux baseado na Distribuição Debian 8. Para que seja possível finalizar este tutorial, é necessário que você utilize um usuário com privilégios administrativos (sudo ou root).
A elaboração deste tutorial foi possível graças a união de outros guias na web, além da experiência na implementação deste tipo de serviço em um Sistema Operacional Unix Like. Este servidor pode ser usado para hospedagem de sites dinâmicos que usam a tecnologia Java como back-end (“lado do servidor”).
Índice
O Apache Tomcat
O Software Tomcat (desenvolvido pela Fundação Apache), é um Servidor Web, mais especificamente, um container de Servlets. Ele implementa, dentre outras de menor relevância, as tecnologias Java Servlet, JavaServer Pages (JSP), JavaServer Faces (JSF) entre outros. Esta abordagem rivaliza, por exemplo, com a usada pela Microsoft com o ASP (baseada na linguagem Visual Basic). A Microsoft possui seu próprio Servidor Web chamado de IIS (Internet Information Services – anteriormente denominado Internet Information Server).
A Fundação Apache, mais conhecida pelo seu servidor web de mesmo nome (Apache HTTP Server), permite, como no caso do servidor Apache, que o Tomcat seja usado livremente, seja para fins comerciais ou não.
O Tomcat foi escrito em Java e, por isso, necessita que a versão Java 2 Standard Edition (J2SE) esteja instalada no mesmo computador onde ele será executado. No entanto, não basta ter a versão runtime de Java instalada, pois o Tomcat necessita compilar (e não apenas executar) programas escritos em Java. O projeto Jakarta da Fundação Apache, do qual o subprojeto Tomcat é o representante mais ilustre, tem como objetivo o desenvolvimento de soluções código aberto baseadas na plataforma Java. (DEVMIDIA, 2016).
Servlets e Java Server Pages
Um servlet é uma classe escrita em Java cujos objetos têm a finalidade de gerar documentos codificados em HTML. Esta característica dos servlets implica em que um “Web Designer” precisa conhecer Java para poder construir as páginas de uma aplicação.
Bem, é aí que está a limitação. Quantos Web Designers conhecem e trabalham com a linguagem Java?
É aí que entra o JSP. Uma página escrita em JSP (arquivos com extensão .jsp) é uma página escrita em HTML e que contém pequenos fragmentos de código Java e/ou tags especiais (definidos na Documentação do JSP). Com estes tags, o Web Designer não necessita escrever uma única linha de código Java. Ao contrário do que acontece com a tecnologia ASP, o analista/programador pode criar (em Java) os seus próprios tags customizados para a aplicação em desenvolvimento. (DEVMIDIA, 2016).
O Servidor Tomcat tem a habilidade de converter automaticamente qualquer página JSP em um servlet equivalente. Em outras palavras, o Tomcat é capaz de criar código fonte Java a partir de um documento HTML.
1 – Do ponto de vista técnico
- O Tomcat é a implementação referência das especificações das tecnologias de servlets e JSP criadas pela Sun Microsystem. A versão 4.0.x do Tomcat implementa as especificações Servlet 2.3 e JSP 1.2 (que são as mais recentes).
2 – Do ponto de vista operacional
- A principal finalidade das tecnologias de servlets e JSP é permitir a criação dinâmica de conteúdos. A dinâmica, em um cenário típico, funciona do seguinte modo:
- Um usuário, no seu browser, solicita algum documento (indicado por um URL) a um servidor Tomcat;
- O servidor, ao receber uma solicitação (URL) do usuário, executa o servlet ou JSP correspondente àquele URL (a associação entre URL e servlet ou JSP é especificada no arquivo web.xml). O conteúdo gerado pelo servlet ou JSP, normalmente um documento no formato HTML, é uma combinação de tags HTML (incluídos explicitamente) e o resultado de algum processamento (por exemplo, algoritmo Java e/ou acesso a um banco de dados).
- O usuário recebe o conteúdo gerado pelo servidor Tomcat e o exibe através do seu browser.
Para mais detalhes do Projeto Apache Tomcat, acesse a página oficial clicando aqui.
Instalando as Ferramentas para Execução e Desenvolvimento Java
Como o intuito deste tutorial não é ensinar como Instalar um Servidor GNU/Linux Debian, logo é importante que já tenha uma Distribuição Debian instalada.
Passo 1 – Instalar Java Development Tools
O Java trabalha com a JVM (Java Virtual Machine, ou Máquina Virtual Java). Para desenvolver e rodar aplicações Java devemos instalar o JDK (Java Development Kit, ou Kit de Desenvolvimento Java).
Em seu Terminal digite os comandos abaixo para atualizar a lista de pacotes do seu repositório e em seguida atualizar o sistema. Caso seu sistema já esteja atualizado, desconsidere os dois comandos abaixo (Obs.: Cada linha indica um comando):
1 2 |
# apt-get update # apt-get upgrade |
Verifique se há o Java está instalado:
1 |
$ java -version |
Se retornar “The program java can be found in the following packages”, o Java ainda não foi instalado, então execute o seguinte comando para instalar Java Runtime Environment (JRE) e o JDK. Como estamos lidando com Software Livre, iremos instalar o OpenJDK 7, que é uma versão Open Source do JDK da Oracle:
1 |
# apt-get install openjdk-7-jre openjdk-7-jdk |
Você também pode optar por instalar uma versão padrão para o seu sistema, então ao invés de executar o comando acima, utilize este outro:
1 |
# apt-get install default-jdk |
Passo 2 – Instalar Ferramentas Adicionais ao Tomcat
A Documentação do Tomcat também sugere que você instale o Apache Ant, que é uma poderosa ferramenta de construção para aplicativos Java no back-end (“lado do servidor”), e um “Sistema de Controle de Versão“, que neste caso específico, será o GIT:
1 |
# apt-get install ant git |
Instalando o Apache Tomcat
Agora que você já conhece um pouco mais sobre o Servidor Apache Tomcat, vamos aos passos necessários para sua instalação no sistema.
Passo 1 – Instalar o pacote básico
Felizmente, como o Tomcat é Open Source, seus pacotes estão incluídos nos repositórios padrão do Debian. Execute o comando abaixo:
1 |
# apt-get install tomcat7 |
Isso é tudo o que é preciso fazer para chegar à página Tomcat padrão. Ou seja, em poucos comandos, já é possível testar a página padrão da instalação do Tomcat.
Passo 2 – Verifique a Página Inicial Padrão do Tomcat
Nossa instalação ainda não está completa, mas você pode dar uma olhada na página Tomcat padrão. Abra um navegador de internet e digite o ip do servidor Debian, seguido da porta 8080:
1 |
http://ip_do_servidor:8080 |
Passo 3 – Instalar os pacotes adicionais
Estes pacotes irão permitir usar uma interface web para controlar o seu Tomcat, além da documentação e exemplos que também pode acessar através da interface web.
1 |
# apt-get install tomcat7-admin tomcat7-examples tomcat7-docs |
Com a instalação destes pacotes adicionais, é possível acessar via navegador a Documentação (em modo offline), Administrar o Tomcat via interface gráfica, além de testar alguns exemplos de páginas em Java.
Administração do Servidor Tomcat
Por padrão, o Tomcat acaba executando em nível de usuário root logo após a sua instalação, ou seja, durante este processo não é criado nenhum usuário ou grupo de usuários para sua exclusiva execução, sendo deste ponto de vista, um problema quanto a segurança do sistema. Por motivos de segurança, o Tomcat não deve ser executado com privilégios administrativos (root). Para isso, iremos criar um novo usuário para que seja utilizado pelo Tomcat.
Passo 1 – Criar um usuário para administração do Servidor Tomcat
Iremos criar um grupo de usuários e o usuário para o Tomcat. Para isto em seu terminal execute os comandos abaixo:
1 2 3 |
# groupadd tomcat # mkdir /opt/tomcat # useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat |
Com os comandos acima, foi criado um grupo de usuário “tomcat”, e um usuário de mesmo nome. O segundo comando (mkdir /opt/tomcat), cria um diretório que será utilizado pelo usuário Tomcat quando necessário. É importante destacar que o terceiro comando além de criar um usuário, também bloqueia para que ninguém faça o login em sua máquina através dele (-s /bin/false). Crie uma senha para este usuário com o comando abaixo (neste exemplo utilizei “tom@cat”, sem aspas):
1 |
# passwd tomcat |
Ao digitar o comando acima, ele irá pedir que digite a senha e em seguida que digite novamente para confirmar.
Passo 2 – Configurar um usuário para administração do servidor Tomcat
Agora que o usuário já está criado, será necessário configurar os arquivos do Tomcat. A configuração é muito simples. Precisamos editar um arquivo chamado tomcat-users.xml. Abra-o com seu editor favorito (neste caso utilizei o “nano”):
1 |
# nano /etc/tomcat7/tomcat-users.xml |
Devemos adicionar a tag abaixo, dentro do arquivo aberto, no local indicado na figura abaixo (abaixo de <tomcat-users>). Vamos dar este acesso do usuário para a interfaces web. Para definirmos temos que escrever algo desse tipo:
1 |
<user username="tomcat" password="tom@cat" roles="manager-gui,admin-gui"/> |
- Obs: username=”nome_do_usuário” e password=”senha_criada”
O resultado final dentro do arquivo será algo parecido com o seguinte:
1 2 3 |
<tomcat-users> <user username="tomcat" password="tom@cat" roles="manager-gui,admin-gui"/> </tomcat-users> |
Após acrescentar esta tag, salve e feche o arquivo e reinicie o servidor Tomcat.
O comando abaixo é irá reiniciar o serviço:
1 |
# service tomcat7 restart |
Passo 3 – Testando Administração na Interface Web
Com o serviço configurado e reiniciado, basta abrir através do navegador a página desejado. Neste caso, vamos testar a página de Administração. Ao digitar o endereço abaixo, será necessário realizar a autenticação de usuário conforme já cadastrado anteriormente:
1 |
http://ip_do_servidor:8080/manager |
Uma página semelhante a figura abaixo deverá ser exibida:
Dicas finais
Para o acesso e configurações a seguir, digite os links abaixo na barra de endereços do seu navegador.
- Para acessar a documentação do Tomcat:
1 |
http://ip_do_servidor:8080/docs |
- Para acessar os exemplos práticos digite:
1 |
http://ip_do_servidor:8080/examples |
- Para administrar o Tomcat através de uma interface gráfica digite:
1 |
http://ip_do_servidor:8080/manager/html |
- Para criar hosts virtuais no Tomcat através de uma interface gráfica digite:
1 |
http://ip_do_servidor:8080/host-manager/html |
Para hospedar os sites, basta salvá-los do diretório padrão: /var/lib/tomcat7/webapps
Conclusão
A instalação do Tomcat está completa! Você pode agora implementar suas próprias aplicações web em Java!
Como você pode ver, o Tomcat fornece uma plataforma legal para controlar e fornecer seus aplicativos Java em um ambiente web. Você pode facilmente implantar projetos em arquivos .war em muito pouco tempo.
Porém, atualmente a instalação do Tomcat é funcional, mas inteiramente sem criptografia. Isto significa que todos os dados, incluindo itens sensíveis, como senhas, são enviadas em texto simples que podem ser interceptados e lidos por pessoas mal-intencionadas. A fim de impedir que isto aconteça, é altamente recomendável que você criptografe suas conexões com SSL, além de implementar algum Serviço de Firewall em sua rede. Nossa equipe recomenda a utilização do pfSense (um firewall baseado em FreeBSD), além de configurações nos arquivos do sistema.
Viu algum erro ou gostaria de adicionar alguma sugestão a essa ou outra matéria? Colabore, clique aqui.
Fontes
Pentester, Especialista em Segurança de Redes e Testes de Invasão, Programador, Consultor e Professor de T.I.. Geek Inveterado, Apaixonado por Segurança da Informação e Louco por GNU/Linux. Dedica grande parte do seu tempo para criar soluções que ajudem dezenas de milhares de pessoas com dicas e artigos em Tecnologia e Segurança da Informação. Possui algumas Certificações em Ethical Hacking, Cabling System, Security+, SIEM Netwitness, SIEM SNYPR Securonix e Proficiência em Soluções de Vulnerability Management da Tenable.
1 Resultado
[…] uma série de projetos Java. Ele é mais utilizado para projetos pequenos e de baixa performance (Veja aqui, como implementar um Servidor Tomcat no Debian). (Coruja TI, […]