HnTool 0.1 liberado

9 Apr

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.

9 Responses to “HnTool 0.1 liberado”

  1. Alexandre 13. Apr, 2010 at 19:19 #

    Hugo parabéns pela ferramenta, espero que continue incluindo melhorias. Bom como não fala do slackware nas distros suportadas eu resolvi testar e postar o resultado:
    http://alexandrebezerra.net/seguranca/como-instalar-o-hntool-no-slackware
    []‘s

    • Hugo Doria 15. Apr, 2010 at 15:38 #

      Opa Alexandre,

      Muito obrigado pelo feedback, cara. Foi muito importante para mim. Vou adicionar o Slackware nos sistemas suportados.

      Também curti seu post. Parabéns.

      Abraços e obrigado. :)

  2. Francisco Neto 27. May, 2010 at 19:29 #

    Boa noite, ao digitar python setup.py install –prefix /usr/ –root / , está me retornando o erro abaixo, como resolvo???

    Traceback (most recent call last):
    File “setup.py”, line 3, in
    from setuptools import setup
    ImportError: No module named setuptools

    • Hugo Doria 27. May, 2010 at 19:47 #

      Opa Francisco,

      Este erro está acontecendo porque você não possui o “setuptools” instalado. Ele é necessário para poder instalar o HnTool.

      Instale o “setuptools” e em seguida rode o setup do HnTool novamente.

      Que distribuição você está usando? Já há pacotes para os principais formatos.

  3. Francisco Neto 17. Jun, 2010 at 15:26 #

    Oi Hugo, com as dicas que vc me deu funcionou aqui,eu uso o ubuntu lucid lynx, más tenho uma duvida: como faço para escanear toda minha rede apartir do meu pc?

  4. Francisco Neto 17. Jun, 2010 at 15:36 #

    Oi Hugo, quando eu faço hntool -t html > index.html ele era para gerar um relatório em HTML , até ontem ele estava fazendo hj ele não gera mais.

Trackbacks and Pingbacks

  1. Techfree » Blog Archive » HnTool 0.1 liberado - 09. Apr, 2010

    [...] Copiado daqui. Share and [...]

  2. Como instalar o Hntool no Slackware | Alexandre Bezerra - 13. Apr, 2010

    [...] explicado no blog do Hug Doria "o HnTool é uma ferramenta cujo objetivo é fazer uma análise simples do servidor e  dizer quais [...]

  3. HnTool, uma ferramenta para ajudar a blindar seu servidor. | Vitor Vilas Boas - 19. Apr, 2010

    [...] Para saber como instalar e colaborar dando sugestões, reportando bugs e pedindo novas funcionalidades e criando módulos , clique aqui! [...]

Leave a Reply