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 Contúdo: Introdução Passos de segurança |
Acrescentando Segurança a uma Distribuição LinuxAbstrato: 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çãoOs 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... 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.
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:
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
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.
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:
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: |
Esta WebPage é mantida por Miguel Angel Sepulveda © Michael Jastremski LinuxFocus 1998 |