Liferay – Enumeração de utilizadores utilizando os documentos

Uma das vulnerabilidades existentes no liferay que permite enumerar utilizadores existentes na plataforma encontra-se no caminho dos documentos do Liferay, para corrigir esta vulnerabilidade deve seguir-se o seguinte procedimento:

Editar o ficheiro urlrewrite.xml (\tomcat-7.0.40\webapps\ROOT\WEB-INF

Inserir a seguinte regra:

<rule>
<from>^/documents/([A-Za-z]+)</from>
<to type=”permanent-redirect”>/</to>
</rule>

Erro “Unable to verify leaf signature” no NodeJS

Recentemente, após instalar uma aplicação NodeJS (MEAN Stack) deparei-me com o erro “Unable to verify leaf signature”. Após alguns despites conclui que a dificuldade encontrada estava relacionada com a cadeia de certificação associada ao certificado SSL utilizado pela aplicação. A minha primeira abordagem foi verificar no servidor NGINX a correta configuração do certificado e devida cadeia, no entanto todas as configurações estavam de acordo com as especificações, desta forma conclui que o a situação estava relacionada com servidor aplicacional (NodeJS).

Para tornar a aplicação funcional executei o seguinte procedimento no servidor aplicacional:

npm install ssl-root-cas

Este pacote NodeJS contem vários certificados intermédios que são “confiáveis” pelo browser mas não pelo NodeJS

var sslRootCAs = require('ssl-root-cas/latest')
sslRootCAs.inject()

Desta forma os certificados em falta serão adicionados.

Para além desta situação foi-me necessário adicionar mais certificados a este modulo pois por defeito os que eu necessitava não se encontravam neste “bundle”, para tal foi ncessário fazer o download dos certificados em falta para tal utilizei o seguinte procedimento:

require('ssl-root-cas/latest')
  .inject()
  .addFile(__dirname + '/certificadointermedioemfalta.crt');

Adicionar IP secundário em Linux

Adicionar IP temporário

Utilizando o ifconfig

Caso seja necessário adicionar um ip secundário a um interface que se encontra em uso e esta situação é temporária deve correr-se o seguinte comando:

ifconfig [nic]:0 [IP-Address] netmask [mask] up

Como exemplo:

ifconfig eth0:0 192.168.1.2 netmask 255.255.255.0 up

Para correr este comando é necessário estar autenticado com o user root.

Utilizando o comando ip

Para efetuar esta configuração utilizando o binario ip deve correr-se o seguinte comando:

ip address add [ip]/[mask-digits] dev [nic]

Como exemplo:

ip address add 192.168.99.37/24 dev eth0

Adicionar IP permanentemente

CentoOS/RHEL

Para sistemas Centos/RHEL deve criar-se um ficheiro chamado:

ifcfg-eth0:1

O ficheiro deverá ter os seguintes conteudos:

NAME=""
BOOTPROTO=none
MACADDR=""
IPV6INIT=no
DEVICE=eth0:1
NETMASK=255.255.255.248
MTU=""
ONPARENT=yes
IPADDR=192.168.8.1
ONBOOT=yes

Uma vez efetuada a configuração devem reiniciar-se os serviços de network:

service network restart

JVM 100% CPU Leap Second

Na passagem do ano deparei-me com uma situação no mínimo curiosa, devido ao facto do ultimo minuto do ano ter tido 1 segundo a mais (leap second) várias JVM’s ficaram com uma utilização excessiva de CPU, afetando assim a performance de vários servidores. Depois de várias pesquisas, verifiquei que as recomendações de multiplos fabricantes era: efetuar reboot aos servidores em questão. Por se tratarem de ambientes produtivos, não considerei boa opção reiniciar as máquinas e descobri um “workaround”. Aparentemente forçar um reset à data é suficiente para corrigir o problema.

O comando a utilizar é o seguinte:

date -s "`date`"