domingo, 29 de janeiro de 2012

Loopback RJ45

A utilização das máquinas virtuais traz enormes vantagens, principalmente para quem, como eu, gosta de experimentar sistemas operativos :)
Quando usamos um sistema operativo normal, desktop, não há problemas com as configurações de rede, basta por a máquina cliente com a interface de rede em NAT e temos internet instantânea (desde que o computador host esteja ligado à internet, claro).
Mas eu também gosto de fazer experiências com servidores, que implica que a máquina virtual fique disponível na rede para poder ser acedida a partir de outra, nomeadamente da máquina física. Aí levanta-se um problema: precisamos de um switch, mesmo que queiramos aceder a uma máquina virtual que está na nossa máquina física. Para evitar ter que ligar a um switch podemos usar uma ficha RJ45 ligada em loopbak, ou seja, em que as entradas estão diretamente ligadas às saídas.
Experimentei ligar apenas os pinos 1 com 3 (laranja/branco com verde/branco) e 2 com 6 (laranja com verde), mas não funcionou, tive também de ligar o 4 com 7 (azul com castanho/branco) e 5 com 8 (azul/branco com castanho).
E pronto, pude ligar imediatamente à máquina virtual ligada em bridge à placa de rede com fios.

segunda-feira, 23 de janeiro de 2012

Quando é preciso descer ao Windows

Naquelas, felizmente cada vez mais raras, ocasiões em que é necessário descer ao Windows, verifico que este software é bastante útil:

Desktop



Sistema & Utilitários


Segurança


Multimedia


Internet

Notas soltas sobre Joomla

O grande poder do Joomla é a graaaande quantidade de extensões, disponíveis em http://extensions.joomla.org
Algumas extensões úteis:
  • JCE - Um editor HTML bastante poderoso
  • Extplorer - Gestão de ficheiros ao estilo do Explorer
  • ACYMailing Starter - para gerir mailing lists
  • BreezingForms - Para criar formulários
  • Community Builder - Para criar comunidades. Permite criar uma área pessoal para cada utilizador.
  • K2 - Melhora a gestão de conteúdos do Joomla.
  • Sobi2 - Para criar diretórios - por enquanto apenas para Joomla 1.5
  • Virtuemart - e-commerce
  • Joomfish - Permite criar sites multilinguagem
  • DocMac - Gestão do repositório de ficheiros
  • Phoca Maps, Phoca Downloads, Phoca ... - Muitas extensões de qualidade

domingo, 22 de janeiro de 2012

rssh no OpenPanel

O OpenPanel é um competente painel de controlo para servidores web. Permite definir acesso de shell aos utilizadores, o que é ótimo para usar com SFTP e deixar o arcaico e inseguro FTP de lado. Mas seria ainda melhor se fosse possível definir a shell rssh para os utilizadores, pois a rssh só permite mesmo a utilização do SFTP.
Segundo este fórum http://forum.openpanel.com/viewtopic.php?f=9&t=440#p918 faz-se assim:
Instalar o rssh no servidor:
apt-get install rssh
Editar /etc/rssh.conf e descomentar a linha
allowsftp
Editar /etc/shells e acrescentar a linha
/usr/bin/rssh
Editar /var/openpanel/modules/SSH.module/module.xml e acrescentar a linha

<value id="rssh" val="rssh">rssh</value>
à lista das outras shells (~ linha 44)
Reiniciar o OpenPanel com
/etc/init.d/openpanel restart

Segurança básica de um webserver

Algumas configurações simples e rápidas para tornar um servidor web um pouco mais seguro e resistente a ataques.
Assume-se que o servidor é Ubuntu 10.04 (lucid lynx) Server, mas a maior parte das definições funciona sem alterações na maior parte de outras distribuições linux.
Estas definições não asseguram a total segurança do servidor, pois o único computador seguro é o que está desligado (e mesmo assim...) mas aumentam a resistência da máquina a potenciais ataques.
Nenhuma das configurações aqui indicadas deve ser seguida 'cegamente', pois têm influência no funcionamento da máquina. Por isso cada definição é seguida de uma breve (brevíssima) descrição para ajudar na decisão de aplicar ou não essa definição. Para mais informação, o Google é teu amigo.

SSH

Editar o ficheiro de configuração em /etc/ssh/sshd_config e alterar as seguintes definições:
Port 2222
Esta definição muda o porto usado pelo SSH do 22 (padrão) para o 2222. É uma alteração simples, mas exige que nos lembremos de indicar manualmente o porto 2222 quando queremos fazer uma ligação. É também preciso abrir o porto 2222 na firewall e é conveniente fechar o 22.
Protocol 2
Indica que o SSH só aceite ligações com a versão 2 do protocolo, mais segura (é a definição padrão e não se deve alterar).
PermitRootLogin = no
Não permitir ue o utilizador root faça login diretamente.
AllowUsers = user1 user2
Só permite que o user1 e user2 façam login através de SSH. Usar com cuidado, podemos trancar-nos a nós próprios fora do servidor ou causar problemas aos utilizadores (podem por exemplo deixar de poder usar o SFTP).
Reiniciar o serviço com /etc/init.d/ssh restart para tornar as definições ativas.

MySQL

A forma mais eficaz de manter o MySQL seguro é bloquear o acesso ao porto 3306 a partir do exterior.

Bind

A forma 'tradicional' de tornar o bind mais seguro é colocá-lo a correr dentro de uma jail, que o isola do resto do sistema, mas no Ubuntu 10.04 este método NÃO é aconselhado, pois o AppArmor já fornece segurança ao bind e seriam necessárias alterações de configuração para que o bind funcionasse dentro de uma jail com o AppArmor, por isso o melhor é 'não mexer' e deixar o AppArmor tratar do bind.

Apache

Editar o /etc/apache2/apache2.conf:
ServerTokens ProductOnly
ServerSigature off
Estas duas linhas impedem que o Apache forneça informação sobre a versão, que poderia ser usada em ataques dirigidos.
TraceEnable off
O TraceEnable é um método usado para determinar se o Apache está a funcionar. Normalmente não é necessário, por isso deve ser desligado.

PHP

Editar /etc/php5/apache2/php.ini
safe_mode=off
safe_mode_gid=off
Contrariamente ao que parece ter estas duas diretivas ligadas não torna o servidor mais seguro e podem introduzir efeitos indesejados em muitas aplicações, por isso convém colocá-las em off.
display_errors=off
display_startup_errors=off
Estas duas linhas evitam que o PHP mostre mensagens de erro que poderiam revelar informação para ser usada num ataque.
register_globals=off
Evita que se usem variáveis fora do script onde foram definidas.
session.use_cookies=1
session.use_only_cookies=1
session.cookie_http_only=1
Usar cookies para armazenar as variáveis de sessão.
disable_functions=phpinfo, system, proc_open, proc_close, popen, passthru, shell_exec, dl, show_source, highlight_file, pcntl_exec
Desliga estas funções do PHP, que são potencialmete inseguras. Algumas (poucas) aplicações podem deixar de funcionar com algumas destas funções desabilitadas.
error_reporting=E_ALL & ~E_NOTICE
log_errors=on
log_errors_max_len=1024
error_log=/var/log/php5.log
Definições sobre o logs do PHP. Não são exatamente definições de segurança, mas são úteis.
magic_quotes_gpc=off
magic_quotes_runtime=off
magic_quotes_sybase=off
As magic quotes foram uma tentativa de tornar mais seguro o acesso a dados de um formulário, mas trouxeram mais problemas que benefícios. Convém desligar.
expose_php=off
Não informa sobre a versão de PHP.
file_uploads=on
Permitir que os utilizadores enviem ficheiros é um problema de segurança, mas se não permitirmos que os utilizadores enviem ficheiros o servidor será relativamente inútil...
post_max_size=32M
upload_max_filesize=32M
Estas duas definições controlam o tamanho máximo dos ficheiros que os utilizadores podem enviar. Podem ser alteradas para outros valores, mas devem ser iguais.
Reiniciar apache com /etc/init.d/apache2 restart

Pure-ftp

O servidor de FTP pure-ftp é um dos servidores ftp mais usados e mais seguro, mas o protocolo FTP em si é bastante inseguro. O melhor mesmo é NÃO usar o FTP e usar o SFTP com a shell rssh.

Prevenção de intrusões - fail2ban

O fail2ban analisa os registo de login do ssh, apache e outros e se deteta que um determinado IP tentou fazer vários logins com a password errada num curto espaço de tempo, bloqueia esse IP durante alguns minutos. É um método de proteção simples e eficaz. O maior risco que corremos é ser colocados durante alguns minutos em 'quarentena' se nos esquecermos da nossa password.
Para o instalar basta fazer:
apt-get install fail2ban
O serviço fica imediatamente ativo para SSH. Para mudar a configuração é preciso editar /etc/fail2ban/jail.conf.

Anti-rootkit -  rkhunter

Os rootkits são conjuntos de ferramentas usadas pelos hackers para ganhar privilégios de root num sistema. A presença de um rootkit indica que o sistema está comprometido e normalmente a única medida a tomar é formatar o disco. O rkhunter analisa o sistema à procura dos rootkits mais conhecidos. Atenção, não protege contra nem elimina rootkits, apenas deteta alguns rootkits.
Para instalar fazemos:
apt-get install rkhunter.
Antes de usar convém atualizar as definições com:
rkhunter --update
Para analisar o sistema fazemos:
rkhunter --checkall
Convém que ocasionalmente se corra o rkhunter, manualmente.

Auditoria - nikto

O nikto é uma ferramenta de auditoria a servidores web. Funciona melhor se for corrido a partir de outra máquina que não o servidor, para simular um 'ataque externo'.
Instala-se com:
apt-get install nikto
Para o executar fazemos:
nikto -h MAQUINA
Em que MAQUINA é o IP ou hostname da máquina a analisar.