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