[Assegurando SUN passo a passo - Receita]


Auditoria:

1. Ative o Modulo de Seguranca Basica (Basic Security Module BSM):

/etc/security/bsmconv


2. Configure as classes de eventos que devam ser logados em 
/etc/security/audit_control:

          dir:/var/audit
          flags:lo,ad,pc,fc,fd,fm
          naflags:lo,ad

3. Crie o arquivo /etc/security/newauditlog.sh com o seguinte conteudo:

          #!/sbin/sh
          #
          #
          AUDIT_EXPIRE=30
          AUDIT_DIR="/var/audit"

          /usr/sbin/audit -n

          cd $AUDIT_DIR 
          /usr/bin/find . $AUDIT_DIR -type f -mtime +$AUDIT_EXPIRE \
              -exec rm {} > /dev/null 2>&1 \;

4. Coloque o script no seu CRON para ser rodado toda noite:

	/usr/bin/crontab -e root
	0 0 * * * /etc/security/newauditlog.sh


5. Os arquivos de auditoria gerados nao sao padrao ASCII e nao podem ser 
lidos, para isso use o comando praudit(1M) para converte-los a um formado 
para leitura...


Arquivos de BOOT e LOGS:

1. Desabilite todos os scripts de inicializacao para servicos que a maquina NAO 
PRECISARA em /etc/rc2.d/ e /etc/rc3.d... Os servicos sao desativados 
trocando-se a letra inicial S (maiuscula) pela letra s (minuscula) do nome dos 
arquivos... Os seguintes servicos NAO devem ser desabilitados a nao ser que 
tenha CERTEZA absoluta de que saibao que esta fazendo:

          S01MOUNTFSYS   S30sysid.net   S72inetsvc     S74xntpd       S80PRESERVE
          S05RMTMPFILES  S69inet        S74autofs      S75cron        S88utmpd
          S20sysetup     S71sysid.sys   S74syslog      S75savecore    S99audit

2. Para ter certeza de que todos os scripts irao rodar com a umask correta, vc 
pode utilizar-se do script:

          umask 022  
          echo "umask 022" > /etc/init.d/umask.sh
          for d in /etc/rc?.d
          do
             ln /etc/init.d/umask.sh $d/S00umask.sh
          done


3. Para logar o maximo de informacoes possiveis adicione em seu 
/etc/syslogd.conf as linhas:

          mail.debug              /var/log/syslog
          *.info;mail.none        /var/adm/messages

4. Crie o arquivo /var/adm/loginlog para tentativas de conexao sem sucesso:

          touch /var/adm/loginlog
          chown root /var/adm/loginlog
          chgrp sys /var/adm/loginlog

5. Setar as permissoes dos arquivos de log:


	  chmod 600 /var/adm/messages /var/log/syslog /var/adm/loginlog


6. Ativar protecao de hardware para xploits que exploram buffer overflow em 
/etc/system (sun4u, sun4d, and sun4m systems apenas):

          set noexec_user_stack = 1
          set noexec_user_stack_log = 1

7. Ativar protecao de hardware para xploits que exploram Stack Overflow em 
/etc/system:


          NOUSEREXEC





Network e servicos:


1. Crie o arquivo  /etc/init.d/nddconfig e linke com /etc/rc2.d/S70nddconfig :


          touch /etc/init.d/nddconfig
          ln /etc/init.d/nddconfig /etc/rc2.d/S70nddconfig


No arquivo /etc/init.d/nddconfig inclua as seguintes linhas:


          #!/bin/sh
          #
          # /etc/init.d/nddconfig
          #

          # Smurf nao eh algo sadio ;)
          /usr/sbin/ndd -set /dev/ip ip_respond_to_echo_broadcast 0
          /usr/sbin/ndd -set /dev/ip ip_forward_directed_broadcasts 0

          # Spoof eh coisa seria :)
          /usr/sbin/ndd -set /dev/ip ip_strict_dst_multihoming 1
          /usr/sbin/ndd -set /dev/ip ip_ignore_redirect 1

          # Nao inclua essa linha se tiver maquinas mascaradas sob essa

	  /usr/sbin/ndd -set /dev/ip ip_forwarding 0

          # 
          /usr/sbin/ndd -set /dev/ip ip_forward_src_routed 0
           
          
          /usr/sbin/ndd -set /dev/ip ip_ire_flush_interval 60000    
          /usr/sbin/ndd -set /dev/arp arp_cleanup_interval 60

2. Nao deixe que servicos rodados pelo inetd (super daemon) crie arquivos core 
... Ative o log para todos os servicos TCP editando o /etc/rc2.d/S72inetsvc:


          ulimit -c 0
          /usr/sbin/inetd -s -t&

3. Configure a geracao de numeros TCP (de acordo com o RFC 1948) no   
/etc/default/inetinit:


        TCP_STRONG_ISS=2

4. Remova os servicos desnecessarios do inetd (super daemon) como os 
seguintes:


          shell           login           exec
          comsat          talk            uucp
          tftp            finger          sysstat
          netstat         time            echo
          discard         daytime         chargen
          rquotad         sprayd          walld
          rexd            rpc.ttdbserverd
          ufsd            printer         dtspc
          rpc.cmsd



Controle de Acesso:

1. Nao deixe que o root logue na maquina a nao ser via console habilitando o 
"CONSOLE"  no arquivo /etc/default/login.

2. Analise seu arquivo de usuarios e retire os que nao sao usados ou vc nao usara 
como "sys", "uucp", "nuucp", "listen".

3. Habilite autenticacao para comandos remotos comentando a seguinte linha do arquivo 
/etc/pam.conf:


        #rlogin  auth sufficient /usr/lib/security/pam_rhosts_auth.so.1

E troque a linha do rsh para:


        rsh auth required   /usr/lib/security/pam_unix.so.1


4. Apenas adicione usuarios que PRECISEM de acesso no sistema, se vc usa NIS use o 
"compat mode" editando o arquivo /etc/nsswitch.conf :


           passwd: compat

Adicione usuarios no /etc/passwd :


            +nis_user:x::::/home_dir:/bin/sh

E no /etc/shadow:


            +nis_user::10626::::::



5. Crie o arquivo /etc/rc3.d/S79tmpfix para que a cada boot o diretorio /tmp 
tenha permissoes corretas atribuidas:


          #!/bin/sh
          #ident  "@(#)tmpfix 1.0    95/09/14"

          if [ -d /tmp ]
          then
          /usr/bin/chmod 1777 /tmp
          /usr/bin/chgrp sys /tmp
          /usr/bin/chown sys /tmp
          fi

[A TERMINAR AINDA]



[BIBLIOGRAFIA]

     Sun Recommended & Security Patches
	

     Sun Security Bulletins
	

     The Solaris Security FAQ
	

     SANS Solaris Security: Step-by-Step
	

     The SUN documentation
	

     The CERT coordination center
	

     Jason Rhoad's