Hardering com Red Hat 5
Nesse artigo veremos como melhorar a segurança em um ambiente Red Hat. Todas as configurações apresentadas podem ser usadas em outras versões de Linux e as mesmas são requisitos para que o ambiente entre em conformidade com políticas como PCI entre outras.
Parte 2: Kernel e Core dump
Arquivos de dump ajudam muito programadores a descobrir bugs em aplicações por apresentarem o estado da memória no momento de uma falha.
Porém em um ambiente de missão crítica um atacante pode usar desses arquivos para descobrir dados sigilosos, dessa forma aconselho a desativação dessa funcionalidade em ambientes de produção.
Para desativar a criação de core dump edite o arquivo /etc/security/limits.conf e adicione a seguinte linha:
Edite também o arquivo /etc/sysctl.conf e adicione a linha:
Para ativarmos a proteção contra buffer overflows no kernel adicionaremos as seguintes linhas em /etc/sysctl.conf:
Caso o ambiente não venha a ser um firewall, vamos desativar a função de router alterando e adicionando as seguintes entradas em /etc/sysctl.conf.
Um atacante pode descobrir por meio de um scanner como o nmap quanto tempo uma máquina está ligada por meio do mecanismo tcp timestamp, dessa forma para desativarmos vamos editar novamente o arquivo /etc/sysctl.conf e adicionar a seguinte linha:
Em seguida, para ativamos todas as alterações, vamos executar o comando:
# sysctl -p
Outra forma de descobrimos a quanto tempo nosso servidor está up é por meio do icmp timestamp, para desativarmos basta seguir o seguinte procedimento.
# iptables -I OUTPUT -p icmp --icmp-type timestamp-request -j DROP
# iptables -I INPUT -p icmp --icmp-type timestamp-request -j DROP
# service iptables save
# service iptables restart
Caso não seja usado o suporte a ipv6, vamos desativá-lo em /etc/sysconfig/network adicionando as seguintes entradas:
Outra coisa que devemos nos atentar é para o suporte a usb, firewire e sistemas de arquivos nos quais não iremos utilizar, dessa forma prevenimos que alguém coloque um usb no servidor e copie arquivos importantes.
Para desativar edite o arquivo /etc/modprobe.conf e adicione os módulos como mostrado, abaixo seguem alguns exemplos nos quais eu costumo utilizar.
Porém em um ambiente de missão crítica um atacante pode usar desses arquivos para descobrir dados sigilosos, dessa forma aconselho a desativação dessa funcionalidade em ambientes de produção.
Para desativar a criação de core dump edite o arquivo /etc/security/limits.conf e adicione a seguinte linha:
* hard core 0
Edite também o arquivo /etc/sysctl.conf e adicione a linha:
fs.suid_dumpable = 0
Para ativarmos a proteção contra buffer overflows no kernel adicionaremos as seguintes linhas em /etc/sysctl.conf:
kernel.exec-shield = 1
kernel.randomize_va_space = 1
kernel.randomize_va_space = 1
Caso o ambiente não venha a ser um firewall, vamos desativar a função de router alterando e adicionando as seguintes entradas em /etc/sysctl.conf.
net.ipv4.ip forward = 0
net.ipv4.conf.all.send redirects = 0
net.ipv4.conf.default.send redirects = 0
net.ipv4.conf.all.send redirects = 0
net.ipv4.conf.default.send redirects = 0
Um atacante pode descobrir por meio de um scanner como o nmap quanto tempo uma máquina está ligada por meio do mecanismo tcp timestamp, dessa forma para desativarmos vamos editar novamente o arquivo /etc/sysctl.conf e adicionar a seguinte linha:
net.ipv4.tcp_timestamps = 0
Em seguida, para ativamos todas as alterações, vamos executar o comando:
# sysctl -p
Outra forma de descobrimos a quanto tempo nosso servidor está up é por meio do icmp timestamp, para desativarmos basta seguir o seguinte procedimento.
# iptables -I OUTPUT -p icmp --icmp-type timestamp-request -j DROP
# iptables -I INPUT -p icmp --icmp-type timestamp-request -j DROP
# service iptables save
# service iptables restart
Caso não seja usado o suporte a ipv6, vamos desativá-lo em /etc/sysconfig/network adicionando as seguintes entradas:
IPV6INIT=no
NETWORKING_IPV6=no
NETWORKING_IPV6=no
Outra coisa que devemos nos atentar é para o suporte a usb, firewire e sistemas de arquivos nos quais não iremos utilizar, dessa forma prevenimos que alguém coloque um usb no servidor e copie arquivos importantes.
Para desativar edite o arquivo /etc/modprobe.conf e adicione os módulos como mostrado, abaixo seguem alguns exemplos nos quais eu costumo utilizar.
install cramfs /bin/true
install freevxfs /bin/true
install jffs2 /bin/true
install hfs /bin/true
install hfsplus /bin/true
install squashfs /bin/true
install udf /bin/true
install ipv6 /bin/true #somente se não for usado o suporte a ipv6
install cramfs /bin/true
install freevxfs /bin/true
install jffs2 /bin/true
install hfs /bin/true
install hfsplus /bin/true
install squashfs /bin/true
install udf /bin/true
install usb-storage /bin/true
install firewire-ohci /bin/true
install firewire-core /bin/true
install firewire-sbp2 /bin/true
install freevxfs /bin/true
install jffs2 /bin/true
install hfs /bin/true
install hfsplus /bin/true
install squashfs /bin/true
install udf /bin/true
install ipv6 /bin/true #somente se não for usado o suporte a ipv6
install cramfs /bin/true
install freevxfs /bin/true
install jffs2 /bin/true
install hfs /bin/true
install hfsplus /bin/true
install squashfs /bin/true
install udf /bin/true
install usb-storage /bin/true
install firewire-ohci /bin/true
install firewire-core /bin/true
install firewire-sbp2 /bin/true
Excelente artigo! A minha sugestão para o pessoal que irá aplicar os itens que você sugere no artigo, é de eles sejam
conferidos de tempos em tempos, e não apenas feitos uma única vez e depois esquecidos.
Abraços!