Primeiramente vamos providenciar a configuração de uma senha na BIOS da máquina para prevenirmos caso algum atacante com acesso físico consiga alterar a ordem de boot para um cdrom ou pendrive e dessa forma consiga acesso ao sistema.
Após configurarmos a senha na BIOS iremos agora ativar a senha no grub para que dessa forma possamos prevenir que algum atacante consiga acesso de root editando o grub na inicialização e dessa forma consiga acessar o sistema em modo runlevel1 ou chamando o bash ao invés do init.
# grub-md5-crypt
Password: (entre com a senha)
Retype password: (redigite a senha)
Após receber o hash da senha digitada, edite o arquivo
/etc/grub.conf e adicione a seguinte linha:
password -md5 [hash]
Configure a umask padrão para os daemons durante o boot editando os arquivos
/etc/sysconfig/init e
/etc/init.d/functions.
Adicione ou altere a entrada umask para a seguinte:
umask 027
No Red Hat, por padrão, quando iniciado em modo de manutenção (ou runlevel 1) o mesmo chama um bash como root automaticamente sem solicitação de senha. Para evitarmos isso iremos configurar o Red Hat para solicitar a senha de root durante modo de manutenção.
Para isso vamos editar o arquivo
/etc/inittab e adicione a seguinte linha:
~:S:wait:/sbin/sulogin
Durante o startup do Red Hat o sistema permite o usuário de entrar no modo interativo e escolher quais processos devem ser carregados ou não. Isso é uma falha de segurança, pois um atacante com acesso físico pode escolher desativar um firewall durante o boot do sistema e dessa forma deixar o sistema desprotegido contra um ataque externo.
Para desabilitar o prompt interativo durante o boot altere a entrada PROMPT de "yes" para "no" em
/etc/sysconfig/init.
A NSA aconselha a separação das seguintes partições por questão de segurança: /boot, /var, /var/tmp, /tmp e /home. As razões para isso são apresentadas abaixo.
- /boot - Esta é a primeira partição lida pelo sistema durante o boot. A imagem do kernel e o boot load do sistema são guardados nessa partição, de forma que devemos garantir que a mesma não seja encriptada, pois caso ela esteja junto a partição / e a mesma esteja encriptada acabará tornando o sistema indisponível durante o boot.
- /var - Esta partição é usada no sistema para manipulação de dados nos quais são alterados com grande frequência, dessa forma ao separarmos garantimos uma melhor performance na manipulação dos dados nessa partição.
- /var/tmp e /tmp - Estas partições são usadas para manipular dados temporários nos quais não permaneceram por muito tempo no sistema. A opção de separá-las é devido caso as mesmas estejam junto a partição / e alguma aplicação acabe estourando o limite de armazenamento contido na mesma o sistema acabará parando e possivelmente truncando alguns arquivos importantes.
- /home - A partição /home mantém os dados de interesse dos usuários, dessa forma caso a mesma não esteja separada da partição / corre o risco de algum usuário ultrapassar o limite de armazenamento e assim causar uma parada no ambiente.
Adicione a opção nodev em partições diferentes da partição /. Com esta opção é possível prevenir que usuários montem dispositivos não autorizados em partições diferentes da raiz.
Adicione as opções nodev, noexec e nosuid em dispositivos removíveis como floppy, usb e cdrom.
Isso previne que usuários possam rodar aplicativos com permissão suid a partir desse dispositivos para tentarem ganhar acesso privilegiado ao sistema.