JBoss AS 7

Tecnologias JavaEE Suportadas no JBoss EAP

Postado em

Navegando pela internet encontrei uma diagrama bem interessante sobre as tecnologias suportadas no JBoss EAP.

http://mgreau.com/posts/2013/12/10/jboss-eap-62-51-43-javaee-supported.html
Abraços

Solucionando o Erro “missing operand after `/var/run/jboss-as'”

Postado em Atualizado em

E ai galera,

Normalmente em nossos ambientes utilizamos as aplicações como servico, ou seja, iniciamos, paramos ou reiniciamos utilizando o gerenciador de servico do Sistema Operacional. Por exemplo:

sudo service jboss start

Para configurar o JBoss como serviço geralmente utilizamos os scritps em JBOSS_HOME//bin/init.d/. Também copiamos o arquivo jboss-as.conf que possui uma configuração do nome do usuário ( JBOSS_USER ) que será o “dono” do processo JBoss. Se essa variável não estiver definida o seguinte erro ocorrerá:

"Starting jboss-as: chown: missing operand after `/var/run/jboss-as'Try `chown --help' for more information.

Bem simples!!!

Abraços

Script para Criação Automatizada de Ambiente JBoss no RHEL 6.4 / CentOS 6.4

Postado em

Olá amigos,

Aproveitando um tempo que tive hoje resolvi criar um pequeno script para instalar o Apache, configurar basicamente o Mod Cluster e instalar o JBoss como servico. Como eu não sei muito  Shell Scritp não ficou muito bom mas dá criar um ambiente inicial permitindo ganhar algum tempo nessa tarefa.

Veja abaixo:

#! /bin/bash
echo "Starting Configuration Environment..."
adduser -c "JBoss AS 7" jboss
echo  jboss ALL='('ALL')'  NOPASSWD:ALL >> /etc/sudoers
sudo mkdir -p /etc/jboss-as
echo JBOSS_USER=jboss JBOSS_CONSOLE_LOG=/var/log/jboss/console.log >> /etc/jboss-as/jboss-as.conf
su jboss
sudo yum install java-1.7.0-openjdk-devel -y
sudo yum install httpd -y
sudo cd /tmp
sudo wget http://downloads.jboss.org/mod_cluster//1.2.0.Final/mod_cluster-1.2.0.Final-linux2-x64-ssl.tar.gz
sudo tar -zxvf mod_cluster-1.2.0.Final-linux2-x64-ssl.tar.gz
sudo cp opt/jboss/httpd/lib/httpd/modules/mod_advertise.so /etc/httpd/modules/
sudo cp opt/jboss/httpd/lib/httpd/modules/mod_manager.so /etc/httpd/modules/
sudo cp opt/jboss/httpd/lib/httpd/modules/mod_proxy_cluster.so /etc/httpd/modules/
sudo cp opt/jboss/httpd/lib/httpd/modules/mod_slotmem.so /etc/httpd/modules/
sudo wget https://dl.dropboxusercontent.com/s/pz91ugnyil1ez2m/httpd.conf
sudo rm -rf /etc/httpd/conf/httpd.conf
sudo cp  httpd.conf /etc/httpd/conf/
sudo wget https://dl.dropboxusercontent.com/s/mv3r3ugdpn0dkd4/mod_cluster.conf
sudo cp mod_cluster.conf /etc/httpd/conf.d/
sudo wget http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip
sudo unzip jboss-as-7.1.1.Final.zip -d /usr/share/
sudo ln -s /usr/share/jboss-as-7.1.1.Final /usr/share/jboss-as
sudo chown -h jboss:jboss /usr/share/jboss-as
sudo chown -R jboss:jboss /usr/share/jboss-as-7.1.1.Final
sudo cp /usr/share/jboss-as/bin/init.d/jboss-as-standalone.sh /etc/init.d/
sudo mv /etc/init.d/jboss-as-standalone.sh /etc/init.d/jboss
sudo chmod a+x /etc/init.d/jboss
sudo chkconfig --add /etc/init.d/jboss
sudo chkconfig --level 3 /etc/init.d/jboss
sudo service jboss start
sudo service httpd restart
sudo /usr/bin/firefox -new-window http://localhost:8080
sudo /usr/bin/firefox -new-tab http://localhost:80/mod_cluster_manager
echo "End of Configuration"

Esse script pode ser salvo por exemplo como jboss-env.sh para ser executado pela linha de comando.

Espero que seja útil.

Abs

Protegendo o Mod Cluster Manager

Postado em Atualizado em

Olá amigos,

Atualmente o Mod Cluster é um dos principais módulos para realização de balanceamento de carga em ambientes JBoss. Quando configuramos o Mod Cluster com o Apache Web Server “ganhamos” de presente um pequeno gerenciador para habilitar/desabilitar os contextos, grupos e mais algumas outras configurações. Veja abaixo:

mcm

Perceba que o painel está totalmente vulnerável a um ataque. O atacante poderia facilmente desabilitar alguns contextos ou mesmo grupos de servidores causando instabilidade em todo ambiente.

Uma forma simples de proteger esse recurso é utilizando a autenticação basic baseada em arquivos oferecido pelo próprio Apache.  Basicamente os atributos AuthType e AuthUserFile devem ser utilizados.

Por exemplo, adicione um usuário chamado admin:

htpasswd -c /etc/modclusterpassword admin

No arquivo de configuração do Mod Cluster adicione os atributos AuthType e AuthUserFile como abaixo:

<Location /mod_cluster_manager>
SetHandler mod_cluster-manager
Order deny,allow
Deny from all
Allow from 127.0.0.1
AuthType Basic
AuthName "Mod Cluster Manager"
AuthUserFile /etc/modclusterpassword
Require user admin
</Location>

Reinicie o Apache e Pronto!!! Agora o ambiente está um pouco mais protegido 🙂

Eu não testei mas acredito que essa autenticação também possa ser realizada utilizando o Active Directory com módulos específicos do Apache.

Grande Abraço,

Mauricio Magnani

Ref: http://httpd.apache.org/docs/2.0/mod/mod_auth.html

Configurando Ambiente de Produção no JBoss AS 7.1.3 (JBoss EAP 6.0.1) – Parte 4

Postado em

E ai galera blz?

Continuando os posts:

Anteriormente nós configuramos um balanceador de carga ( Apache + Mod Cluster ) , um Domain Controller e dois Host Controllers com uma instância cada. Ativamos também os recursos de cluster.

Hoje vamos aprender como encriptar o tráfego entre o Cliente<— —> Balancer <— —> Instâncias JBoss utilizando SSL.

Atualmente nós temos o seguinte cenário:

env-1

O dados estão trafegando sobre HTTP sem nenhuma criptografia podendo ser interceptado facilmente.

Então a primeira coisa a ser feita é utilizar SSL entre Cliente <—- —-> Balancer:

env-2

Antes de tudo quero deixar claro que vai ocorrer perda de performance já que o tráfego será encriptado.

Vamos gerar os certificado para ser utilizado no Apache Web Server que é o nosso Balancer.  Pelo fato de  utilizar o SSL/HTTPS devemos instalar o Mod SSL. Para isso, execute :

yum install mod_ssl

Vamos utilizar o openssl para geração dos certificados. Instale os pacotes necessários:

yum install openssl ca-certificates

Para melhor organização crie  um diretório dentro de /etc/ssl com o nome de server-certs:

mkdir /etc/ssl/server-certs

O primeiro passo é gerar uma chave privada.  Navegue até o diretório /etc/ssl/server-certs  e execute:

openssl genrsa -des3 -out my-server.key 2048

A chave gerada está encriptada e protegida por uma senha ou seja se nós utilizarmos essa chave no Apache, toda vez que reiniciarmos o serviço essa senha será solicitada causando alguns transtornos. Para solucionarmos essa questão podemos gerar uma chave “desprotegida” baseada na chave privada  my-server.key que não irá solicitar qualquer tipo de senha.

Execute comando abaixo para que a chave seja gerada:

openssl rsa -in my-server.key -out my-server.key.public

Tenha muito cuidado com a chave privada my-server.key, guarde-a em um local seguro e que seja acessível somente pelo root.

O próximo passo é gerar o Certificate Signing Request. Execute o comando abaixo:

openssl req -new -key my-server.key -out my-server.csr

O arquivo my-server.crt deveria ser enviado para a autoridade certificadora, que devolveria o certificado assinado. Neste caso, vamos utilizá-lo para criar um certificado auto assinado válido por 365 dias. Para isso execute:

openssl x509 -req -days 365 -in my-server.csr -signkey my-server.key -out my-server.cer

A criação dos certificados está concluída. Foram gerado os seguintes arquivos:

my-server.key – Chave privada.
my-server.key.public –  Chave sem password.
my-server.csr – Pedido de assinatura do certificado.
my-server.cer – Certificado auto assinado.

Edite o arquivo  vim /etc/httpd/conf.d/mod_cluster.conf  e deixe-o como  abaixo:

<VirtualHost 192.168.0.141:443>

SSLEngine on
SSLCipherSuite AES128-SHA:ALL:!ADH:!LOW:!MD5:!SSLV2:!NULL
SSLVerifyDepth 10
SSLCertificateFile /etc/ssl/server-certs/my-server.cer
SSLCertificateKeyFile /etc/ssl/server-certs/my-server.key.public

<Directory />
Order deny,allow
Allow from all
</Directory>

KeepAliveTimeout 60
ManagerBalancerName mycluster
MaxKeepAliveRequests 0
ServerAdvertise On

EnableMCPMReceive On

</VirtualHost>

<Location /mod_cluster-manager>
SetHandler mod_cluster-manager
Order deny,allow
Allow from all
</Location>

Reinicie o Apache e acesse  por exemplo https://192.168.0.140/cluster e observe que agora os dados já trafegam encriptados. Para verificar se os dados realmente estão encriptados utilize o Wireshark.

Essa foi a parte final. Você pode ter sentido falta de muitos  outros tópicos como configuração de datasource, tuning e algumas outras coisas mas a ideia dessa série foi configurar a infra para um ambiente JBoss moderno.

Nas próximas semanas estarei publicando novos posts relacionados a tuning.
Obrigado e Abraços 🙂

Linux e JBoss: Seja Cuidadoso!

Postado em

E ai Galera blz?

Esse post é mais uma dica do que um tutorial.

Em hipótese alguma inicie o JBoss utilizando o usuário root, pois a plataforma Java oferece APIs para execução de códigos nativos do sistema operacional e mecanismos de gerenciamento remoto. No Linux crie um usuário com privilégios adequados para iniciar o serviço do JBoss.

Se quiser ver com isso tudo pode prejudicar o seu ambiente. Pegue a aplicação filebrowser e faça um deploy no JBoss.

Primeiro execute o JBoss utilizando um usuário com privilégios reduzidos e brinque com algumas funcionalidade da aplicação filebrowser.

Agora execute o JBoss com o usuário root e teste novamente o filebrowser. Perceba que com uma aplicação web escrita em Java você pode ser capaz de invadir até uma rede ser as permissões estiverem no nível de root.

Abraços

App: http://www.vonloesch.de/filebrowser.html