[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