«

»

ago 25

Hardening GNU/Linux – parte 2 – Kernel

linux_hardening

Dando continuidade á nossa série de posts sobre Hardening no Linux, aí vai um post do amigo Adônis Tarcio Moreira sobre Hardening de Kernel.

E ai galera, blz? Faz um tempo desde o meu ultimo post mas vim aqui dar uma dica sobre Hardening de Kernel.

O arquivo /etc/sysctl.conf ajusta os parâmetros definidos para os processos do Kernel Linux, montados no pseudo-filesystem /proc. Sendo assim, uma vez alterado este arquivo, o ideal é que se remonte o Kernel para que as alterações tenham efeito, ou seja: dê um reboot no servidor.

Essa dica foi testada em servidores: Debian, Ubuntu, CentOS e RedHat.  Alguns dos parâmetros já estão no arquivo e alguns você deve adicionar manualmente.

# Protecao contra ataques ICMP
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Protecao contra mensagens de erro de ICMP
# As vezes roteadores enviam respostas invalidas de broadcast ICMP. Esse comando evita fazer log de mensagens de warning desnecessarias do kernel
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Habilitar syncookies para protecao de ataques SYN Flood
net.ipv4.tcp_syncookies = 1

# Manter log de pacotes suspeitos como spoofed, source-routed, e redirect
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1

# Dropar pacotes com opcoes de Strict Source Route (SSR) ou Loose Source Routing (LSR)
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

# Habilitar verificacao de origem de pacotes por ‘reversed path’. Opcao recomendada por RFC1812
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Garantir que ninguem consegue alterar as tabelas de rotas. #Protecao contra spoof de rede.
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0

# Modo ‘host only’. Desabilita redirecionamento de pacotes.
#ATENCAO: Nao habilitar essa opcao se o seu Servidor funciona como router
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# Habilitar protecao execshild contra worms, ataques automatizados e outros
kernel.exec-shield = 1
kernel.randomize_va_space = 1

# Melhoria para IPv6
net.ipv6.conf.default.router_solicitations = 0
net.ipv6.conf.default.accept_ra_rtr_pref = 0
net.ipv6.conf.default.accept_ra_pinfo = 0
net.ipv6.conf.default.accept_ra_defrtr = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.default.dad_transmits = 0
net.ipv6.conf.default.max_addresses = 1

# Aumentar o limite de arquivos abertos
fs.file-max = 65535

# Aumentar o numero de PIDs
kernel.pid_max = 65536

# Aumentar o numero maximo de portas para conexoes IP para TCP e UDP
# Opcao importante para quem tem um servidor para banco de dados Oracle
net.ipv4.ip_local_port_range = 2000 65000

# Aumentar o buffer maximo TCP
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 87380 8388608

# Aumentar o auto tuning de buffer TCP
# min, default, e max em bytes
# Definir maximo para pelo menos 4MB
# Opcao essencial se voce tiver conexao de alta velocidade
net.core.rmem_max = 8388608
net.core.wmem_max = 8388608
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_window_scaling = 1

É isso ai pessoal! Espero que essa dica ajude a melhorar o desempenho e protecão do seu servidores.
Recomendo dar uma estudada com atencão nos parâmetros, já que sao muitos e é dificil entrar em detalhes sobre eles.

A documentacão da RedHat é muito boa e explica bem cada um deles.

Abraços e ate o próximo post!!