Home Map Index Search News Archives Links About LF
[Top Bar]
[Bottom
Bar]
[Foto do Autor]
Michael Jastremski
Sobre o Autor: Michael Jastremski Tem hackeado Unix nos �ltimos quatro anos. Sua p�gina web pode ser acessada no endere�o:http://westphila.net/mike . Ele agradece a Andrew por te-lo ajudado com seu ingl�s.

Cont�do:
Introdu��o
Passos de seguran�a

Acrescentando Seguran�a a uma Distribui��o Linux

[Illustration]

Abstrato: Este artigo discute as formas como um administrador pode prover seu sistema contra a entrada de intrusos. Trata de v�rias maneiras o melhoramento de seguran�as nos sistemas Linux.




Introdu��o

Os esfor�os em grande escala para sabotear os computadores na internet est�o se tornando uma rotina comum. Os Servidores Linux y FreeBSD tem se transformado em um excelente local nestes recentes ataques, implicando em um desmembramento no buffer e nas fontes imapd y BIND. A cada d�a, vulnerabilidades de todas formas e tamanhos, s�o enviadas sobre os quase 20.000 inscritos na lista de correio BUGTRAQ (se voce procura uma lista de correio com seguran�a, esta � a lista procurada).

Ser�a sensato assumir que ao menos um desses 19.305 inscritos v� escrever um loop for() e com um pouco de l�gica com um copy+paste, conseguir eficientemente acesso ilegal a tantos computadores quanto seja poss�vel...

Cedo ou tarde, o loop construir� o endere�o de teu computador. N�o h� tempo como o presente para preparar-te.

Apesar de que alguns "experts" possam fazer imaginar, instalar e manter um computador seguro n�o � dif�cil, algumas boas pr�ticas em administra��o de sistemas, serve como prote��o das amea�as da rede global. Este artigo descreve algumas das precau��es que geralmente tomo quando configuro um sistema Linux RedHat conectado na rede. ainda que este artigo provenha pautas para proteger seu computador de inten��es maliciosas de outros, n�o � uma referencia completa.

Os passos seguintes, s�o alguns que evitar�o que tua instala��o seja v�tima do pr�ximo vazio p�blico eno teu software de rede. CUIDADO!: se n�o estiveres absolutamente seguro do que fazes, n�o fa�a. Alguns destes passos assumem um grau moderado de experiencia de tua parte. Algumas leituras s�o sugeridas no final...

Passos de seguran�a

1. Remova todos os servi�os de rede desnecess�rios do sistema. enquanto houver menos arrodeios para conectar o computador, haver� menos oportunidades de que um intruso penetre nela. Apague tudo que n�o necessita em /etc/inetd.conf. N�o precisas de telnet em teu sistema? Desabilita-o, o mesmo para ftpd, rshd, rexecd, gopher ,chargen, echo, pop3d y amigos. N�o deixe de fazer um 'killall -HUP inetd' depois de editar inetd.conf. Tamb�m n�o discuides do diret�rio /etc/rc.d/init.d. Alguns servi�os de rede (BIND, printer daemons) s�o programas iniciados a partir destes scripts.

2. Instale SSH; SSH � uma substitui��o para a maioria dos antiquados comandos 'r' da Berkely, a partir da p�gina http://www.cs.hut.fi/ssh.

Ssh (Secure Shell) � um programa para entrar em outro computador numa rede,
para executar comandos em uma m�quina remota, y mover arquivos de uma 
m�quina a outra. Provem excelente autentica��o e comunica��es seguras em canais 
fr�geis.

Tamb�m realiza muitas outras coisas que qualquer aspirante a hacker acharia interessante. Baixa SSH a partir da p�gina http://ftp.rge.com/pub/ssh.

3. Use vipw(1) para assegurar as contas sem acesso. Note que sob Linux RedHat, as contas com um nome de acesso nulo s�o enviadas para /bin/sh, o que provavelmente voc� n�o quer. Tamb�m, assegure-se que nenhuma das tuas contas tenham senhas nulo. O pr�ximo exemplo, � usado para conseguir um arquivo de oassword saud�vel.

  daemon:*:2:2:daemon:/sbin:/bin/sync
  adm:*:3:4:adm:/var/adm:/bin/sync
  lp:*:4:7:lp:/var/spool/lpd:/bin/sync
  sync:*:5:0:sync:/sbin:/bin/sync
  shutdown:*:6:0:shutdown:/bin:/sync
  halt:*:7:0:halt:/sbin:/bin:/sync
  mail:*:8:12:mail:/var/spool/mail:/bin/sync
  news:*:9:13:news:/var/spool/news:/bin/sync
  uucp:*:10:14:uucp:/var/spool/uucp:/bin/sync
  operator:*:11:0:operator:/root:/bin/sync
  games:*:12:100:games:/usr/games:/bin/sync
  gopher:*:13:30:gopher:/usr/lib/gopher-data:/bin/sync
  ftp:*:14:50:FTP User:/home/ftp:/bin/sync
  nobody:*:99:99:Nobody:/:/bin/sync                    

4. Remova os bits 's' dos programas root-owned que n�o exijam este previl�gio. Isto pode ser conseguido com o comando 'chmod a-s' com o nome ou os nomes dos arquivos protegidos e seus argumentos.

Tais programas incluem mas n�o est�o limitados a:

  1. programs que nunca usas
  2. programas que n�o quer que um usu�rio n�o-root execute
  3. programas que usas ocasionalmente, e n�o importa se � root para execut�-lo

Coloquei um asterisco (*) ao lado de cada programa que pessoalmente desabilitaria. Lembre-se que seu sistema precisa de alguns programas suid root para trabalhar perfeitamente, assim, tenha cuidado.

Opcionalmente, poderia criar um grupo especial chamado 'suidexec', coloca as contas dos usu�rios de confian�a neste grupo. chgrp(1) � duvidoso ou os programas suid duvidosos ao grupo suidexec, e remova as permiss�es de execu��o global.

     
# find / -user root -perm "-u+s"    
*/bin/ping              
*/bin/mount              -- s�mente root deve estar montando
                            arquivos do sistema
*/bin/umount             -- o mismo aqui    
/bin/su                  -- n�o tocar!
/bin/login
/sbin/pwdb_chkpwd
*/sbin/cardctl           -- utilidade de controle para placa PCMCIA
*/usr/bin/rcp            -- Usa ssh
*/usr/bin/rlogin         -- idem
*/usr/bin/rsh            --  "
*/usr/bin/at             -- usa cron, ou desabilitado totalmente
*/usr/bin/lpq            -- instala LPRNG
*/usr/bin/lpr            -- "
*/usr/bin/lprm           -- "
*/usr/bin/mh/inc
*/usr/bin/mh/msgchk
/usr/bin/passwd          -- n�o tocar! 
*/usr/bin/suidperl       -- a cada nova vers�o do suideperl 
                            parece ter um desdobramento do buffer
*/usr/bin/sperl5.003     -- use se for necess�rio
/usr/bin/procmail        -- 
*/usr/bin/chfn
*/usr/bin/chsh
*/usr/bin/newgrp
*/usr/bin/crontab               
*/usr/X11R6/bin/dga      -- muitos desdobramentos do buffer 
                            como no X11
*/usr/X11R6/bin/xterm    -- "
*/usr/X11R6/bin/XF86_SVGA   -- "    
*/usr/sbin/usernetctl           
/usr/sbin/sendmail
*/usr/sbin/traceroute    -- pode aceitar escrever a senha do
                            root de vez em quando

5. Atualize sendmail. Baixe as fontes na p�gina ftp://ftp.sendmail.org/pub/sendma il. Descomprima e leia as instru��es. Instale smrsh (comprimido com sendmail) se tiver alfgum tempo extra, este programa mostra muitas coisas importantes sobre sendmail, tais como enviar email a programas distintos. Edite sendmail.cf e coloca a op��o 'PrivacyOptions' em 'goaway':

        O PrivacyOptions=goaway

se n�o planejas receber e-mail, N�O EXECUTE SENDMAIL NO MODO DE RECEBER (sendmail -bd)!. neste caso, desabilita-o em /etc/rc.d/init.d/sendmail.init e realiza um 'killall -TERM sendmail'. Ser� capaz de enviar e-mail para fora.

6. Atualize BIND se o usas. A �ltima vers�o pode ser encontrada na p�gina http://www.isc.org . Se n�o for assim, desabilita-o totalmente.

7. Recompila o kernel. Geralmente fa�o isto para reduzir o tamanho do kernel. CONSELHO: Ative todas as op��es do firewall, mesmo que seu computador n�o seje um firewall.

       
        CONFIG_FIREWALL=y
        CONFIG_NET_ALIAS=y
        CONFIG_INET=y
        # CONFIG_IP_FORWARD is not set
        # CONFIG_IP_MULTICAST is not set
        CONFIG_SYN_COOKIES=y
        CONFIG_RST_COOKIES=y
        CONFIG_IP_FIREWALL=y
        CONFIG_IP_FIREWALL_VERBOSE=y
        # CONFIG_IP_MASQUERADE is not set
        # CONFIG_IP_TRANSPARENT_PROXY is not set
        CONFIG_IP_ALWAYS_DEFRAG=y
        CONFIG_IP_ACCT=y
        # CONFIG_IP_ROUTER is not set
        # CONFIG_NET_IPIP is not set
        CONFIG_IP_ALIAS=m

8. Aplica patches: Qualquer problema conhecido com o software pode ser encontrado na p�gina de Erratas do RedHat. (veja em http://www.redhat.com/support/docs/errata.html para saber quais patches aplicar em tua vers�o. RedHat faz um excelente trabalho de manuten��o com estas p�ginas. Elas tamb�m incluem links aos arquivos RPM que voce precisa com instru��es de instala��o.

9. Configura tcp_wrappers: Os tcp_wrappers s�o m�todos para controlar quais computadores na net(c) tem permiss�o para falar com teu computador. Este pacote, escrito pelo gur� em seguran�a Wieste Venema, est� a frente dos programas que executam inetd (ou aquelescompilados com sua biblioteca) consultando seus arquivos de configura��o para determinar se permite ou nega uma transa��o na rede. Por exemplo, para permitir telnet y ftp a partir do teu isp v�a home, enquanto nega os demais, coloca lo siguiente em /etc/hosts.allow:

        in.ftpd : .dialup.your-isp.com : allow
        all : all : deny 

SSH, sendmail e outros pacotes podem ser construidos com suporte tcp_wrappers. Leia a p�gina de manual tcpd(1) para mais informa��es.

Patches de seguran�a Linux por Solar Designer:
http://www.false.com/security/li nux/

replay.com p�ginas cryptografia do RedHat:
http://www.replay.com/redhat/

Melhorando a Seguran�a de teu Site violentado:
http://www.alw.nih.gov/Security/Docs/admin-guide-to-cracking.101.html

Slashdot � uma boa fonte de not�cias atualizadas:
http://www.slashdot.org

Para estar constantemente atualizado com softwares, visite FreshMeat regularmente:
http://www.freshmeat.net

Extraordinario:
http:/ /reality.sgi.com/nate/machines/security/P49-14-Aleph-One


Esta WebPage � mantida por Miguel Angel Sepulveda
© Michael Jastremski
LinuxFocus 1998