Ir para o conteúdo
ou

Software livre Brasil

 Voltar a Blog
Tela cheia

HnTool 0.1 liberado

9 de Abril de 2010, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 400 vezes

Seguindo o principio do "release early, release often", estamos orgulhosos de liberar a primeira versão do HnTool, uma ferramenta cujo objetivo é fazer uma análise simples do servidor e dizer quais as falhas de segurança que existem.

Nesta primeira versão você terá:

  • Suporte ao Arch Linux, CentOS, Debian, Fedora, Gentoo e Ubuntu.
  • Testes para Apache, PHP, Portas, PostgreSQL, SSH e outros.
  • Relatório em HTML ou terminal.
  • Estrutura interna modular e fácil de contribuir.

Temos muitas ideias para as próximas versões do HnTool, entre elas:

  • Módulos para MySQL, FTP, DNS, Squid, Iptables, Samba, DHCP, cups
  • Um report mais detalhado, mostrando como corrigir a falha encontrada
  • Opção para atualizar os módulos pela própria ferramenta
  • Analisador web, através de upload de arquivos de configuração
  • Suporte a traduções

Baixando e instalando

Para instalar o HnTool pelo fonte, baixe-o desde endereço e faça:

$ tar xvf hntool-0.1.tar.gz

$ cd hntool-0.1

# python setup.py install --prefix /usr/ --root /

Se você usa Arch Linux você pode instalar o HnTool através do pacote criado:

$ wget http://hntool.googlecode.com/files/hntool-0.1-1-i686.pkg.tar.xz

# pacman -U http://hntool.googlecode.com/files/hntool-0.1-1-i686.pkg.tar.xz

NOTA: Por enquanto só há pacote para o Arch Linux. Se você usa alguma distribuição baseada em rpm ou deb e sabe criar pacote, por favor, não se acanhe. Crie um e adicione em um bug report.  Se precisar de um guia, pode usar o PKGBUILD que fiz para criar o pacote do Arch Linux.

Usando

Para rodar o HnTool basta executar o seguinte comando:

# hntool

Isso irá gerar um relatório no terminal:

Se preferir, você pode gerar um relatório em HTML com o comando:

# hntool -t html > index.html

Para maiores informações rode:

# hntool -h

Reportando Bugs

O HnTool está em um estado tão inicial e com tanto código sendo adicionado frequentemente que, com certeza, você vai encontrar vários bugs. Por favor, não deixe de relatá-los em http://code.google.com/p/hntool/issues/list.

Contribuindo

Contribuir com o projeto é fácil. Você pode dar sugestões, reportar bugs e pedir novas funcionalidades. Além disso, você pode contribuir criando módulos. Veja como é fácil:

Todos os módulos seguem a seguinte estrutura:

Como falei, resolvi criar o hntool de forma modular. A estrutura de um modulo é, mais ou menos, assim:

import os
 
	class rule:
		def short_name(self):
			return "ssh"
		def long_name(self):
			return "Checks security problems on sshd config file"
		def __init__(self, options):
			pass
		def analyze(self, options):
			check_results = {'ok': [], 'low': [], 'medium': [], 'high': [], 'info': []}
			ssh_conf_file = ['/etc/ssh/sshd_config', '/etc/sshd_config']
 
			for sshd_conf in ssh_conf_file:
				if os.path.isfile(sshd_conf):
					try:
						fp = open(sshd_conf,'r')
					except IOError, (errno, strerror):
						check_results['info'].append('Could not
open %s: %s' % (sshd_conf, strerror))
						continue
 
					lines = [x.strip('\n') for x in fp.readlines()]
 
					# Checking if SSH is using the default port
					if 'Port 22' in lines or '#Port 22' in lines:
						check_results['low'].append('SSH is using the default port')
					else:
						check_results['ok'].append('SSH is not using the default port')
 
					# Closing the sshd_config file
					fp.close()
 
				return check_results
		def type(self):
			return "files"

Explicando melhor:

  • short_name(self): Uma string contendo o nome curto do modulo. Ele será usado, por exemplo, na hora de listar todos os módulos existentes (hntool -l).
  • long_name(self) : Aqui é a descrição do módulo. Também será mostrada na listagem dos módulos.
  • analyze(self): É aqui que fica o código de verdade. O resultado desse método deve ser sempre uma lista com 5 elementos, que correspondem aos níveis de segurança encontrados - ok, info, low, medium e high, respectivamente.
  • type(self): Cada módulo será de um tipo. "files" para módulos que lidam com arquivos de texto simples(/etc/passwd, por exemplo) ou de configuração. "services" para módulos que lidam com serviços.

Autores

Muita gente foi importante para este release, contribuindo com sugestões, bugs reports, código e, claro, apoio. Muito obrigado, Alexandro Silva, Aurélio Heckert, Candido Vieira, Elton Pereira, Italo Valcy, Késsia Pinheiro, Rafael Gomes, Rafael Gonçalves Martins, picoloto, Sebastian SWC. :-)

Bem, é isso. Aguardem novidades na versão 0.2.


Fonte: http://blog.hugodoria.org/2010/04/hntool-0-1-liberado/

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.