<!-- CVS revision of this document "$Revision: 1.5 $"  -->
<!-- original version: 1.5 -->
<!-- last translator: carlinha@debian-ba.org -->

<chapt id="sec-tools">Ferramentas de segurança no Debian

<p>FIXME: Necessário mais conteúdo.

<p>Debian fornece também uma série de ferramentas de segurança que podem tornar
uma máquina com o sistema Debian adaptada para os propósitos de segurança. Estes
propósitos incluem proteção dos sistemas de informação através de firewalls 
(de pacotes ou de aplicação), detecção de intrusão (baseados em rede e host), 
verificação de vulnerabilidades, antivirus, redes privadas, etc.

<p>Desde o Debian 3.0 (<em>woody</em>), a distribuição caracteriza-se pelo
software de criptografia integrado com a distribuição principal. OpenSSH e GNU
Privacy Guard estão incluídos na instalação padrão, e criptografia forte está 
agora presente em navegadores e servidores Web, bancos de dados, e assim por diante. 
Além disso, a integração de criptografia está planejada para futuros lançamentos.
Este software, devido as restrições de exportação nos EUA não foi distribuído
com a distribuição principal, sendo disponível apenas em sites non-US.

<sect id="vuln-asses">Ferramentas de verificação remota de vulnerabilidades
<p>As ferramentas fornecidas pelo Debian para realizar verificação remota de
vulnerabilidade são:
<footnote>
Algumas delas são fornecidas na instalação do pacote 
<package>harden-remoteaudit</package>.
</footnote>
<list>
<item>nessus
<item>raccess
<item>whisker 
<item>nikto (substituto de whisker)
<item>bass (non-free)
<item>satan (non-free)
<!-- Will never be available, I uploaded it but their license is not proper
<item>saint (non-free)
-->
<!-- Nunca ficará disponível. Eu fiz um upload dele mas sua licença não é
adequada
<item>saint (non-free)
-->
<!-- Might be available in the future since it holds the same license as satan
<item>sara (non-free)
-->
<!-- Pode tornar-se disponível no futuro desde que mantenha a mesma licença
do satan
<item>sara (non-free)
-->

</list>

<p>A ferramenta mais completa e atualizada é, de longe, o
<package>nessus</package> que é composta por um cliente
(<package>nessus</package>) usado com uma GUI e um servidor
(<package>nessusd</package>) que inicia os ataques programados. Nessus inclui
verificação de vulnerabilidades remotas para a grande maioria de sistemas incluindo
dispositivos de rede, servidores ftp e www, etc. Os últimos plugins de
segurança tem a capacidade de analisar um sítio Web e tentar descobrir as páginas
interativas disponíveis que podem ser atacadas. Existem também clientes Java e
Win32 (não incluidas no Debian) que podem ser usados para acessar o servidor de
gerenciamento.

<p>Note que se você está usando woody, os pacotes do Nessus estão realmente
desatualizados (veja bug <url id="http://bugs.debian.org/183524"
name="#183524">). Não é difícil portar os pacotes disponíveis no unstable 
para woody, mas se você encontrar dificuldades, pode pensar em usar 
os pacotes portados fornecidos por um dos co-mantenedores e disponíveis 
em <url id="http://people.debian.org/~jfs/nessus/"> (essas versões podem não 
estar atualizadas como as versões disponíveis no <em>unstable</em>).

<p><package>Whisker</package> é um varredor de verificação de vulnerabilidades
Web, que inclui táticas anti-IDS (a maioria não são mais anti-IDS). É um dos 
melhores varreadores baseados em CGI disponíveis, sendo capaz de detectar 
servidores WWW e iniciar um dado conjunto de ataques contra ele. O banco de
dados usado para a varredura pode ser facilmente modificado para fornecer novas 
informações.

<p><package>Bass</package> (Bulk Auditing Security Scanner - BULK Varreador de 
auditoria de segurança) e <package>SATAN</package> (Security Auditing Tool for
Analyzing Networks - Ferramenta de auditoria de segurança para análise de redes)
devem ser na opinião da maioria das pessoas, mais como programas de "provas de 
conceitos" do que como ferramentas para serem usadas em auditorias. Ambas são 
bastantes antigas e não são mais atualizadas. Contudo, SATAN foi a primeira 
ferramenta para fornecer avaliação das vulnerabilidades de maneira simples
(através de uma GUI) e Bass é ainda uma ferramenta de avaliação de alta 
performace.

<sect>Ferramentas de varredura de rede
<p>Debian fornece algumas ferramentas usadas para a varredura remota de
hosts (mas não para verificação de vulnerabilidades). Estas ferramentas são, em
alguns casos, usadas pelos verificadores de vulnerabilidades como o primeiro
tipo de "ataque" executado contra os hosts remotos na tentativa de determinar
os serviços disponíveis. Atualmente Debian fornece os seguintes programas:

<list>
<item>nmap
<item>xprobe
<item>queso
<item>knocker
<item>isic
<item>icmpush
<item>nbtscan (para auditorias NetBIOS)
<item>fragrouter
<item>strobe (do pacote <package>netdiag</package>)
<item>hping2 (<em>Nota:</em> desatualizado)
</list>

<!--
Ettercap is not included since its a sniffing tool not a remote probe 
-->
<!--
Ettercap não está incluído pois é uma ferramenta de farejamento e não uma
ferramenta de varredura remota 
-->

<p>Enquanto o <package>queso</package> e o <package>xprobe</package> fornecem
apenas detecção remota de sistema operacional (usando TCP/IP fingerprinting),
<package>nmap</package> e <package>knocker</package> fazem, ambos, detecção de
sistema operacional e varreadura de portas nos hosts remotos. Por outro lado,
<package>hping2</package> e <package>icmpush</package> podem ser usados nas
técnicas de ataque ICMP remoto.

<p>Desenvolvido especificamente para redes Netbios, <package>nbtscan</package>
pode ser usado para varrer redes IP e recuperar informações de nome de
servidores samba habilitados, incluindo nomes de usuários e de rede, endereços
MAC...

Por outro lado, <package>fragrouter</package> pode ser usado para 
testar sistemas de detecção de instrusão e ver se o NIDS pode ser 
iludido com ataques de fragmentação.

<p>FIXME: Verificar <url id="http://bugs.debian.org/153117" name="Bug
#153117"> (ITP fragrouter) para ver se está incluído.

<p>FIXME adicionar informações baseadas em
<url id="http://www.giac.org/practical/gcux/Stephanie_Thomas_GCUX.pdf"
name="Debian Linux Laptop for Road Warriors"> que descreve como usar Debian 
e um laptop para varrer redes wireless (Link não existe mais).

<sect>Auditoria Interna
<p>Atualmente, somente a ferramenta <package>tiger</package> utilizada no Debian
pode ser usada para executar auditorias internas de hosts (também chamadas de 
"caixa branca") de fato para determinar se o sistema de arquivos está
corretamente configurado, que processos estão rodando no hosts, etc..

<sect>Auditoria de código fonte
<p>Debian fornce três pacotes que podem ser utilizados para auditar códigos
fontes em C/C++ e encontrar erros de programação que podem conduzir para
potenciais falhas de segurança:
<list>
<item>flawfinder
<item>rats
<item>splint
</list>

<sect id="vpn">Redes Privadas Virtuais (VPN)

<p>Uma rede privada virtual (VPN - Virtual Private Network) é um grupo de dois
ou mais sistemas computacionais, tipicamente conectados a uma rede privada com
acesso público de rede limitado, que se comunicam seguramente através de uma
rede pública. VPNs podem conectar um simples computador a uma rede privada
(cliente-servidor), ou uma LAN remota a uma rede privada (servidor-servidor).
VPNs, muitas vezes, incluem o uso de criptografia, autenticação forte de
usuários ou hosts remotos, e métodos para esconder a topologia da rede privada.

<p>Debian fornece a maioria dos pacotes para configurar uma rede privada virtual
criptografada:
<list>

<item><package>vtun</package>
<item><package>tunnelv</package>
<item><package>cipe</package>
<item><package>vpnd</package>
<item><package>tinc</package>
<item><package>secvpn</package>
<item><package>pptpd</package>
<item><package>freeswan</package>, que está obsoleto e substituido por
<item><package>openswan</package> (<url id="http://www.openswan.org/">)

</list>

<p>FIXME: Atualizar as informações aqui já que foram escritas com o FreeSWAN em
mente. Verificar  Bug #237764 e a mensagem:
&lt;200412101215.04040.rmayr@debian.org&gt;.

<p>O pacote OpenSWAN é provavelmente a melhor escolha, desde que ele promete
interoperar com quase tudo que usa o protocolo IP seguro, IPSec (RFC 2411).
Entretanto, os outros pacotes listados acima podem também ajudá-lo a ter um
túnel seguro rapidamente. O protocolo de tunelamento ponto a ponto (PPTP) é um
protocolo para VPN proprietário da Microsoft. É suportado no Linux, mas é
conhecido por ter sérios problemas de segurança.

<p>Para mais informações veja <url
id="http://www.tldp.org/HOWTO/VPN-Masquerade-HOWTO.html"
name="VPN-Masquerade HOWTO"> (cobrindo IPSec e PPTP), <url
id="http://www.tldp.org/HOWTO/VPN-HOWTO.html" name="VPN HOWTO">
(cobrindo PPP sobre SSH), e <url
id="http://www.tldp.org/HOWTO/mini/Cipe+Masq.html" name="Cipe
mini-HOWTO">, e <url
id="http://www.tldp.org/HOWTO/mini/ppp-ssh/index.html" name="PPP
and SSH mini-HOWTO">.

<p>Também vale a pena verificar o <url id="http://yavipin.sourceforge.net/"
name="Yavipin">, mas este programa ainda não possue um pacote Debian disponível.

<sect1>Tunelamento ponto a ponto

<p>Se você deseja fornecer um servidor de tunelamento para um ambiente misto
(com clientes Microsoft e Linux) e IPSec não é uma opção (desde que só é
fornecido no Windows 2000 e Windows XP), você pode usar <em>PoPToP</em>
(Servidor de Tunelamento Ponto a Ponto) disponível no pacote
<package>pptpd</package>.

<p>Se você deseja usar autenticação e criptografia da Microsoft com o servidor
fornecido pelo pacote <package>ppp</package>, veja o seguinte trecho do FAQ:

<example>
O uso do PPP 2.3.8 só faz-se necessário se você deseja ter autenticação e
criptografia MSCHAPv2/MPPE compatíveis com a Microsoft. A razão para isto é que
o patch MSCHAPv2/MPPE atualmente aplicado (19990813) está sobre o PPP 2.3.8. Se
você não precisa de autenticação/criptografia compatível com a Microsoft,
qualquer versão 2.3.X do fonte do PPP será suficiente.
</example>

<p>Entretanto, você também terá que aplicar o patch para o kernel fornecido no
pacote <package>kernel-patch-mppe</package>, que contém o módulo pp_mppe para o
pppd.

<p>Saiba que a criptografia no ppptd força o armazenamento de senhas de usuários
em texto limpo, e o protocolo MS-CHAPv2 contém <url
id="http://mopo.informatik.uni-freiburg.de/pptp_mschapv2/" name="furos de
segurança conhecidos">.

<sect>Infra-estrutura de Chave Pública (PKI)

<p>Infra-estrutura de Chave Pública (PKI - Public Key Infrastructure) é uma
arquitetura de segurança introduzida para fornecer um nível adicional de
confiança para trocas de informação em redes inseguras. Utiliza os conceitos de
chaves de criptografia pública e privada para verificar a identidade de um
remetente (assinatura) e para assegurar a privacidade (criptografia).

<p>Quando considerar uma PKI, você encontrará uma variedade de situações:

<list>

<item>uma Autoridade Certificadora (CA - Certificate Authority) que pode
distribuir e verificar certificados, e que pode trabalhar sobre uma dada
hierarquia.

<item>um Diretório para manter certificados públicos de usuário

<item>um Banco de Dados (?) para manter Listas de Revogação de Certificados (CRL -
Certificate Revocation Lists)

<item>dispositivos que interagem com a CA a fim de imprimir em smart cards/
tokens USB ou qualquer outra forma para armazenar seguramente os certificados.

<item>aplicações aptas a utilizarem certificados que podem usar certificados
fornecidos por uma CA para realizar uma comunicação criptografada e verificar
certificados dados contra CRL (para soluções de autenticação e assinatura de
uma única vez completa)

<item>uma autoridade de marcação de tempo para assinar documentos digitalmente

<item>um console de gerenciamento a partir do qual tudo isso pode ser
corretamente usado (geração de certificados, controle de lista de revogações,
etc...)

</list>

<p> Debian GNU/Linux tem pacotes de software para ajudar você com alguns
desses pontos da PKI. Eles incluem <prgn>OpenSSL</prgn> (para geração de
certificados), <prgn>OpenLDAP</prgn> (como um diretório para manter os
certificados), <prgn>gnupg</prgn> e <prgn>openswan</prgn> (com
suporte para o padrão X.509). Entretanto, como na versão Woody (Debian
3.0), Debian não tem nenhuma das autoridades certificadoras disponíveis
gratuitamente como pyCA, <url id="http://www.openca.org"
name="OpenCA"> ou os exemplos de CA do OpenSSL. Para mais informações, leia o
<url id="http://ospkibook.sourceforge.net/" name="livro Open PKI">.

<sect>Infra-estrutura SSL

<p>Debian fornece alguns certificados SSL com  a distribuição de modo que eles
podem ser instalados localmente. Eles são encontrados no pacote
<package>ca-certificates</package>, que fornece um repositório central dos
certificados que foram submetidos para o Debian e aprovados (ou seja,
verificados) pelo mantenedor do pacote e utéis para qualquer aplicação OpenSSL
que verifica conexões SSL.

<p>FIXME: leia o debian-devel para verificar se algo foi adicionado a ele.

<sect>Ferramentas Anti-vírus

<p>Não existem muitas ferramentas anti-vírus incluídas no Debian GNU/Linux,
provavelmente porque os usuários GNU/Linux não são aborrecidos com vírus. O
modelo de segurança dos UN*X fazem uma distinção entre os processos
privilegiados (root) e os processos de usuário, então quando um executável
"hostil" é criado ou recebido por um usuário não-root e então executado, não 
pode "infectar" ou manipular o sistema em questão. Entretanto, worms e vírus no
GNU/Linux existem, embora eles não tenham (ainda, esperançosamente) se espalhado em nenhuma distribuição Debian. Em qualquer caso,
administradores podem querer construir gateways anti-vírus que os protejam
contra vírus enviados para outros sistemas mais vulneráveis em suas redes.

<p>Debian GNU/Linux atualmente fornece as seguintes ferramentas para a
construção de ambientes anti-vírus:

<list>

<item><url id="http://clamav.elektrapro.com/" name="Clam Antivirus">, fornecido
no Debian <em>sarge</em> (futura versão 3.1). Pacotes são fornecidos tanto para
o varredor de vírus (<package>clamav</package>), quanto para o daemon varredor
(<package>clamav-daemon</package>) e para os arquivos de dados necessários para o
varredor. Como a atualização do anti-vírus é crítica para o seu funcionamento,
há duas formas diferentes de fazê-la: <package>clamav-freshclam</package> fornece
um modo para atualização do banco de dados automaticamente através da Internet e
<package>clamav-data</package> que fornece os arquivos de dados diretamente.
<footnote>Se você usar este último pacote e estiver usando um Debian oficial, o
banco de dados não será atualizado com as atualizações de segurança. Você poderá
usar o <package>clamav-freshclam</package> e o <prgn>clamav-getfiles</prgn> para
gerar novos pacotes <package>clamav-data</package> ou atualizar do repositório
do mantenedor, através da localização:
<example>
  deb http://people.debian.org/~zugschlus/clamav-data/ /
  deb-src http://people.debian.org/~zugschlus/clamav-data/ /
</example>
</footnote>

<item><package>mailscanner</package> um gateway de email com varredor de vírus e
detector de spam. Usando o <package>sendmail</package> ou
<package>Exim</package> como sua base, ele pode usar mais de 17 diferentes
mecanismos de varredura de vírus (incluindo <package>clamav</package>)

<item><package>libfile-scan-perl</package> que fornece File::Scan, uma extensão
Perl para a varredura de arquivos em busca de vírus. Este módulo pode ser usado para
fazer varredores de vírus independentes de plataforma.

<item><url id="http://www.sourceforge.net/projects/amavis"
name="Amavis Nova Geração">, fornecido no pacote <package>amavis-ng</package> e
disponível no <em>sarge</em>, é um varredor de vírus em emails que é integrado
com diferentes MTAs (Exim, Sendmail, Postfix, ou Qmail) e suporta cerca de
quinze mecanismos de varredura de vírus (incluindo clamav, File::Scan e openantivirus).

<item><url id="http://packages.debian.org/sanitizer"
name="sanitizer">, uma ferramenta que usa o pacote <package>procmail</package>
que pode varrer anexos de email em busca de vírus, bloquear anexos baseados
em seus nomes de arquivos e outras opções.

<item><url id="http://packages.debian.org/amavis-postfix"
name="amavis-postfix">, um script que fornece uma interface de um agente de
transporte de email para um ou mais varredores de vírus comerciais (este pacote é
construído para suportar apenas o MTA <prgn>postfix</prgn>).

<item><package>exiscan</package>, um varreador de e-mails escrito em Perl que
funciona com o Exim.

<item><package>sanitizer</package>, um varreador de emails que pode remover
anexos potencialmente perigosos.

<item><package>blackhole-qmail</package> um filtro de spam para o Qmail que foi
construído com suporte para o Clamav.
</list>

<p>Alguns daemons de gateways já suportam extensões de ferramentas para
construir ambientes anti-virus, incluindo <package>exim4-daemon-heavy</package>
(a versão <em>pesada</em> do MTA Exim), <package>frox</package> (um servidor
proxy e cache transparente para ftp), <package>messagewall</package> (um daemon proxy
SMTP) e <package>pop3vscan</package> (um proxy transparente POP3).

<p>Como você pode ver, Debian não fornece atualmente nenhum software anti-vírus
em sua distribuição oficial principal (3.0 no momento da escrita desse
documento), mas fornece múltiplas interfaces para a construção de gateways
anti-vírus. O varredor <package>Clamav</package> estará disponível na próxima
versão oficial.

<p>Alguns outros projetos anti-vírus livres que podem ser incluídos numa futura
versão Debian GNU/Linux:

<list>

<item><url id="http://sourceforge.net/projects/openantivirus/" name="Open
Antivirus"> (veja
<url
id="http://bugs.debian.org/150698" name="Bug #150698 (ITP oav-scannerdaemon"> 
e <url id="http://bugs.debian.org/150695" name="Bug #150695 (ITP oav-update">
).

</list>

<p><!-- FIXME: Not finding this package in Debian, maybe oav-update
replaced it? -->Existe também um pacote <package>virussignatures</package>, que
fornece assinaturas para todos os pacotes. Este pacote contém um script para
fazer o download das últimas assinaturas de virus de <url id="http://www.openantivirus.org/latest.php">.

<p>FIXME: Verificar se scannerdaemon é o mesmo que o daemon varredor open
anti-virus (ver ITPs).

<p>Por outro lado, Debian <em>nunca</em> irá fornecer softwares anti-vírus
comerciais como: Panda Antivirus,
<!--
<url
id="http://www.pandasoftware.com/com/linux/linux.asp" name="Panda
Antivirus">,
<url
id="http://www.networkassociates.com/us/downloads/evals/"
name="NAI Netshield (uvscan)">, -->
NAI Netshield,
<url id="http://www.sophos.com/"
name="Sophos Sweep">, <url id="http://www.antivirus.com"
name="TrendMicro Interscan">, ou <url id="http://www.ravantivirus.com"
name="RAV">. Para mais apontadores veja em <url
id="http://www.computer-networking.de/~link/security/av-linux_e.txt"
name="Linux antivirus software mini-FAQ">. Isto não signifca que estes softwares
possam ser instalados corretamente em um sistema Debian.

<p>Para mais informações de como configurar um sistema de detecção de vírus,
veja o artigo de Dave Jones <url
id="http://www.linuxjournal.com/article.php?sid=4882" name="Building
an E-mail Virus Detection System for Your Network">.

<sect id="gpg-agent">Agentes GPG

<p>É muito comum, atualmente, assinar digitalmente (e algumas vezes
criptografar) e-mails. Você pode, por exemplo, verificar que muitas pessoas
participando em listas de discussão assinam seus e-mails. Assinaturas de chave
pública são atualmente o único mecanismo para verificar que um email foi
enviado pelo remetente e não por qualquer outra pessoa.

<p>Debian GNU/Linux fornece clientes de emails com funções embutidas para assinatura
de emails que interagem com o <package>gnupg</package> ou <package>pgp</package>:

<list>
<item><package>Evolution</package>.
<item><package>mutt</package>.
<item><package>kmail</package>.

<item><package>sylpheed</package>. Dependendo de como a versão estável deste
pacote evolua, você pode precisar usar a <em>versão bleeding edge</em>,
<package>sylpheed-claws</package>.

<item><package>gnus</package>, que quando instalado com o pacote
<package>mailcrypt</package> , é uma interface <prgn>emacs</prgn>
interface para o <prgn>gnupg</prgn>.

<item><package>kuvert</package>, que fornece esta funcionalidade
independentemente do agente de email do usuário (MUA - Mail User Agente)
escolhido já que interage com o agente de transporte de email (MTA - Mail
Transport Agente).

</list>

<p>Servidores de chave permitem você fazer o download de chaves públicas
publicadas que podem então verificar assinaturas. Um desses servidores de chaves
é <url id="http://wwwkeys.pgp.net">. <package>gnupg</package> pode
automaticamente buscar chaves públicas que não estão em seu chaveiro público.
Por exemplo, para configurar <prgn>gnupg</prgn> para usar o servidor de
chaves acima, edite o arquivo <file>~/.gnupg/options</file> e adicione a seguinte
linha:

<footnote>
Para mais exemplos de como configurar o <prgn>gnupg</prgn>, veja
<file>/usr/share/doc/mutt/examples/gpg.rc</file>.
</footnote>
<example>
keyserver wwwkeys.pgp.net
</example>

<p>A maioria dos servidores de chaves estão ligados, logo quando uma chave pública 
é adicionada em um servidor, esta é propagada para todos os outros servidores de 
chaves públicas. Existem também um pacote Debian <package>debian-keyring</package>, 
que fornece todas as chaves públicas dos desenvolvedores Debian. Os chaveiros do 
<prgn>gnupg</prgn> são instalados em <file>/usr/share/keyrings/</file>.

<p>Para mais informações:

<list>

<item><url ID="http://www.gnupg.org/faq.html" name="GnuPG FAQ">.

<item><url ID="http://www.gnupg.org/gph/en/manual.html" name="GnuPG
Handbook">.

<item><url
ID="http://www.dewinter.com/gnupg_howto/english/GPGMiniHowto.html"
name="GnuPG Mini Howto (English)">.

<item><url ID="http://www.uk.pgp.net/pgpnet/pgp-faq/"
name="comp.security.pgp FAQ">.

<item><url ID="http://www.cryptnet.net/fdp/crypto/gpg-party.html"
name="Keysigning Party HOWTO">.

</list>
