1. O documento discute medidas de segurança para hardening de sistemas Linux após a instalação, incluindo proteger a BIOS e o bootloader com senhas, desabilitar login como root localmente e via SSH, desabilitar serviços inseguros como telnet e vsftpd, configurar regras no firewall iptables para rejeitar tráfego ICMP e permitir apenas tráfego DNS e conexões estabelecidas, e manter o sistema atualizado com o utilitário yum.
1. Curso Técnico de Manutenção e Suporte em Informática
Segurança da Informação
Prof. Leandro Almeida
Roteiro – Hardening pós-instalação em Linux
1 BIOS e Bootloader passwords
1.1 Proteção contra alterações na BIOS
No setup do computador, habilite a inicialização através de senha. Vale salientar
que nem todos os setups possuem essa funcionalidade.
1.2 Proteger o GRUB contra edições
Execute o comando para gerar o hash da senha:
# /sbin/grubmd5crypt
Edite o arquivo de configuração do GRUB, /boot/grub/boot.conf. Após a linha
timeout na seção principal do documento, adicione a seguinte linha:
password md5 <passwordhash>
Onde <passwordhash> corresponde a saída do comando /sbin/grub
md5crypt
2 Controles administrativos
2.1 Desabilitar acesso com usuário root
2.1.1 Local
Remova o conteúdo do arquivo com o comando:
# echo > /etc/securetty
Este arquivo possui uma lista de dispositivos onde o usuário root pode efetuar
login. Esta ação força ao usuário, após efetuar login, utilizar os comandos 'su' ou 'sudo'.
2. 2.1.2 SSH
Edite o arquivo de configuração (/etc/ssh/sshd_config) e troque a linha
# PermitRootLogin yes
para:
PermitiRootLogin no
Esta ação força ao usuário, após efetuar login remoto, utilizar os comandos 'su'
ou 'sudo'.
3 Serviços inseguros
Utilizando o utilitário chkconfig, observe se os serviços abaixo estão em
execução:
• rlogin
• rsh
• telnet
• vsftpd
Caso estejam, desabilite os serviços com o utilitário 'service'.
4 Filtro de pacotes
A ideia é criar uma configuração personalizada do filtro de pacotes. Inicialmente,
setaremos a política padrão das chains INPUT e FORWARD para rejeitar pacotes. A chain
OUTPUT será setada para aceitar pacotes. Adicionamos uma regra a chain INPUT para aceitar
conexões da interface de loopback(127.0.0.1), visto que alguns serviços, necessitam dessa
conexão.
Adicionamos uma regra para rejeitar pacotes ICMP, ou seja, o servidor não aceitará
Linux. Adicionamos uma regra para aceitar direcionados a porte UDP/53, assim o servidor
poderá navegar utilizando o DNS. A última regra permite o trágefo de conexões
estabelecidas.
#!/bin/bash
#assign variable $IPT with the iptables command
IPT=/sbin/iptables
#set policies on each chain
$IPT P INPUT DROP
$IPT P FORWARD DROP
$IPT P OUTPUT ACCEPT #default, but set it anyway
#flush all rules in the filter table
$IPT F
#allow traffic on the loopback interface
$IPT A INPUT i lo j ACCEPT
#deny icmp traffic
$IPT A INPUT p icmp j DROP
#allow incoming DNS traffic
$IPT A INPUT p udp sport 53 j ACCEPT
#allow established TCP connections
$IPT A INPUT p tcp ! syn j ACCEPT
3. 5 Atualizações de segurança
Crie o hábito de manter seu sistema atualizado com o utilitário YUM:
# yum update
Procure sempre utilizar os repositórios oficiais do CentOS. Uma lista de
repositórios pode ser encontrada em:
http://www.centos.org/modules/tinycontent/index.php?id=30