Вы находитесь на странице: 1из 23

Hardening Linux - RedHat

DIT Diretoria de Infraestrutura Tecnolgica

Proprietrio:
DIT Diretoria de Infra-estrutura Tecnolgica

Outubro de 2012

Este documento propriedade do PRODERJ e as informaes aqui contidas


devem ser consideradas sigilosas e no podem ser utilizadas fora do ambiente do
PRODERJ sem a devida autorizao dos seus proprietrios.

Hardening-Linux RedHat.odt Pgina 1 de 23


Controle de Documento

Histrico de Verso
Verso Data Comentrios
0.9 31/10/2012 Primeira verso para avaliao e aprovao

Mudanas Desde a ltima Verso


Data Comentrios
08/11/2012 Alterada a ordem dos captulo 6 e 7, para evitar que o fechamento
do root impea o acesso mquina.

Autoria, Reviso e Aprovao


Autores Data Gerncia
Reinaldo de Medeiros 31/10/2012 GSI

Revisado Por Data Gerncia


Daniel Luzente GSI

Aprovado Por Data Gerncia


Srgio Chiapetta DIT

Distribuio e Publicao
GRT
GSI
GST
DIT

Publicao

Hardening-Linux RedHat.odt Pgina 2 de 23


Sumrio
Hardening Linux - RedHat................................................................................................................... 1
Controle de Documento........................................................................................................................2
Histrico de Verso..........................................................................................................................2
Mudanas Desde a ltima Verso................................................................................................... 2
Autoria, Reviso e Aprovao..........................................................................................................2
Distribuio e Publicao................................................................................................................ 2
Publicao........................................................................................................................................ 2
1 - Introduo....................................................................................................................................... 5
1.1 - Objetivo....................................................................................................................................5
1.3 - Pblico Alvo............................................................................................................................ 5
1.4 - Aplicabilidade..........................................................................................................................5
1.5 Documentos Complementares................................................................................................ 5
2 Hardening....................................................................................................................................... 6
2.1 Introduo............................................................................................................................... 6
3 - Instalao do Sistema Operacional................................................................................................. 7
3.1 Instale a ltima Verso do SO................................................................................................ 7
3. 2 - Instale Apenas o Necessrio................................................................................................... 7
3.2.1 Pr-requisitos ou Dependncias:..................................................................................... 7
3.3 Perfis de Servidor e Softwares Necessrios............................................................................7
3.3.1 Desktops e Interface Grfica........................................................................................... 8
4 - Customizao para o Ambiente PRODERJ...................................................................................10
4.1 Repositrio Local.................................................................................................................. 10
4.1.1 Configurando o Repositrio local..................................................................................10
4.2 Registro................................................................................................................................. 11
4.3 Atualizao do SO.................................................................................................................11
4.4 Atualizao de Segurana..................................................................................................... 11
4.4.1 Instalao e Uso do Plugin............................................................................................ 11
4.5 Sincronizao de Horrio NTP.......................................................................................... 12
4.5.1 - Verifique se o pacote de NTP est instalado:................................................................. 12
4.5.2 Configurando a Timezone:...........................................................................................12
4.5.3 Configurando o NTP:.................................................................................................... 13
4.5.4 Verificando o Funcionamento....................................................................................... 13
4.6 - Configurao do LogWatch................................................................................................... 14
5 - Aes Adicionais...........................................................................................................................15
5.1 - SSH........................................................................................................................................ 15
5.1.1 Restrio de IPs que podem fazer SSH Opcional....................................................... 15
5.2 - Desabilite Servios Desnecessrios ou Inseguros................................................................ 16
6 Logins dos Administradores......................................................................................................... 17
6.1 - Criao de Grupos de Acesso................................................................................................ 17
6.2 - Criando Usurios Administradores........................................................................................18
6.2.1 Definindo uma Senha......................................................................................................... 18
6.3 - Manuteno e Reviso das Bases de Usurios...................................................................... 18
7 Controles de Acesso e do Usurio root........................................................................................19
7.1 Fechamento do Root.............................................................................................................. 19

Hardening-Linux RedHat.odt Pgina 3 de 23


7.2 Login de Root via Console.................................................................................................... 19
8 Sudo ............................................................................................................................................. 20
8.1 Configurao do Sudo...........................................................................................................20
9 Evoluo Deste Documento......................................................................................................... 22
9.1 - IDS de Host Habilitar um IDS de Host (HIDS Sugerido: OSSEC )...................................22
9.2 Auditoria e Anlise de Vulnerabilidade e Risco................................................................... 22
9.3 Integrao ao Kerberos do AD............................................................................................. 22
9.4 Avaliar a possibilidade de adotarmos o SELinux. ............................................................... 22
9.5 Instalao de agente SNMP ................................................................................................. 22
9.6 Hardening Especfico Para Cada Tipo de Servio................................................................22
9.6.1 - Servidores de Aplicao J2EE e PHP ........................................................................ 22
9.6.2 Hardening do Apache....................................................................................................22
9.7 Avaliar Implementao por Padro de firewall local............................................................ 22
9.8 - Segurana do inetd .............................................................................................................. 22
9.9 - Restringir TCP wrappers e xinetd ........................................................................................ 22
9.10 - Restringir acesso/desativar o compilador (gcc)................................................................... 22
10 - Observaes.................................................................................................................................23

Hardening-Linux RedHat.odt Pgina 4 de 23


1 - Introduo

1.1 - Objetivo
Estabelecer um padro bsico de hardening e controles de segurana para o ambiente Linux Red
Hat em produo.

1.3 - Pblico Alvo


Tcnicos e analistas da DIT e GST.

1.4 - Aplicabilidade
Este documento se aplica a todos os servidores Linux Red Hat do PRODERJ em produo.

1.5 Documentos Complementares


Red Hat System Administration III
Guide to the Secure Configuration of Red Hat Enterprise Linux 5
Manual de Instalao do Red Hat
http://10.10.1.79/wikigsl/index.php/Manual_de_Instala%C3%A7%C3%A3o_do_Red_Hat
Procedimento para registro de licena de sistema operacional Red Hat

Hardening-Linux RedHat.odt Pgina 5 de 23


2 Hardening

2.1 Introduo
Hardening um processo de mitigao que aplicamos sobre os sistemas operacionais
visando torn-los mais resilientes a tentativas de invaso.
Outras providncias que um processo de hardening pode incluir: limitar o software instalado
quele que se destina funo desejada do sistema; aplicar e manter os patches atualizados, tanto de
sistema operacional quanto de aplicaes; revisar e modificar as permisses dos sistemas de
arquivos, em especial no que diz respeito a escrita e execuo; reforar a segurana do login,
impondo uma poltica de senhas fortes.

Alguns dos objetivos da implementao de um hardening incluem:


Reduzir as vulnerabilidades do ambiente
Manter controle sobre eles
Reduzir downtime
Aumentar a resilincia do ambiente
Simplificar a infraestrutura de manuteno

Hardening-Linux RedHat.odt Pgina 6 de 23


3 - Instalao do Sistema Operacional
Para a instalao do sistema operacional siga a documentao existente no site da Red Hat ou
opcionalmente usando a documentao do PRODERJ, apenas tomando como princpio a instalao
apenas dos pacotes de softwares necessrios para o adequado funcionamento do sistema operacional
e da aplicao a que se destina, quer seja um servidor web simples (html esttico) com Apache quer
seja um servidor mais complexo, com PHP, J2EE, Banco de Dados, Impresso, etc, etc...

3.1 Instale a ltima Verso do SO


Para evitarmos que se coloque uma verso desatualizada do sistema operacional, deve-se instalar a
ltima verso do mesmo e, em seguida aplicar as devidas atualizaes de segurana.

3. 2 - Instale Apenas o Necessrio


A instalao apenas dos pacotes indispensveis ao correto destino do servidor, fundamental para
manter um nvel baixo de vulnerabilidades no sistema bem como de atualizaes para o mesmo.
Adicionalmente, um sistema enxuto possui um desempenho melhorado, menor consumo de energia
eltrica, CPU, memria e espao em disco.

3.2.1 Pr-requisitos ou Dependncias:


Antes de iniciar o processo de instalao de um servidor Linux, procure saber quais so os pacotes
indispensveis ao correto funcionamento do mesmo, monte uma tabela de dependncias.

Tipicamente, servidores Linux no PRODERJ so usados como:


Servidor Web Esttico (PHP)
Servidor PHP
Servidor de Aplicao Java (J2EE)
Servidor de Banco de Dados MySQL, PostGRE

3.3 Perfis de Servidor e Softwares Necessrios


Quando for escolher os pacotes que sero instalados, opte por Basic Server

Hardening-Linux RedHat.odt Pgina 7 de 23


Ilustrao 1: Pacote Bsico de Instalao

Selecione Customize now para escolher os pacotes a serem instalados.

Clique em Next.

Na segunda pgina mantenha as selees padro do Base System e escolha, em cada opo
esquerda, apenas os pacotes necessrios para o adequado funcionamento do Servidor.

3.3.1 Desktops e Interface Grfica


S instale uma interface grfica (Gnome, Xfce, KDE e etc) to somente se a mesma for requisito
para o funcionamento do servidor.
Interfaces grficas consomem CPU, agregam vulnerabilidades e so na quase totalidade dos casos,
absolutamente dispensveis.

Hardening-Linux RedHat.odt Pgina 8 de 23


Ilustrao 2: Escolha de Pacotes

Hardening-Linux RedHat.odt Pgina 9 de 23


4 - Customizao para o Ambiente PRODERJ

4.1 Repositrio Local


Para evitar que os servidores Linux Red Hat tenham que ir Internet para se atualizarem, onerando
dessa forma o nosso link dados, a Gerncia de Software Livre (GSL) mantm um repositrio local
com os pacotes Red Hat.
Para acesso ao repositrio local, o servidor dever estar includo na regra Repositrio Red Hat

4.1.1 Configurando o Repositrio local


Configure o Yum para acessar o repositrio conforme a verso de seu Sistema Operacional.

# cd /etc/yum.repos.d

Baixe o arquivo de configurao de acesso ao repositrio, conforme a verso do seu Sistema


Operacional.

Para o Red Hat Enterprise LINUX 5.5 - 64 bits

# wget http:// 10.14.0.66/repofile/rh5-x64.repo

Para o Red Hat Enterprise LINUX 6.0 - 32 bits

# wget http://10.14.0.66/repofile/rh6-i386.repo

Para o Red Hat Enterprise LINUX 6.0 - 64 bits

# wget http://10.14.0.66/repofile/rh6-x64.repo

Atualize a sua lista de pacotes disponveis com os comandos a seguir:

# yum clean all


# yum list

Feito os passos acima, atualize o Sistema Operacional com o seguinte comando.

# yum update

Hardening-Linux RedHat.odt Pgina 10 de 23


4.2 Registro
Registre o sistema operacional junto a Red Hat conforme o Procedimento para registro de
licena de sistema operacional Red Hat
O comando para o registro junto Red Hat :

# rhn_register

A interface que ele abre intuitiva, bastando seguir o passo a passo que aparece na tela.

Caso o servidor no esteja com acesso com acesso Internet, solicite, GRT, a criao de um NAT
behind provisrio e incluso do mesmo na regra de servidores Red Hat, atravs do formulrio de
abertura de portas, disponvel na Intranet do PRODERJ.

4.3 Atualizao do SO
Concludo o registro e a configurao do repositrio local, deve-se efetuar uma atualizao dos
pacotes instalados, utilizando o sistema de pacotes do yum.
O yum o gerenciador de pacotes do Red Hat, e usa arquivos .rpm como base. Para atualizar o
sistema, basta usar a opo update do gerenciador de pacotes:

# yum update

4.4 Atualizao de Segurana


Eventualmente um um sistema pode, para manter estabilidade ou compatibilidade de verso entre os
seus diversos componentes, requerer que no seja habitualmente atualizado todo o sistema
operacional, no entanto no podemos - em hiptese alguma - manter servidores com falhas de
segurana na rede.
Nesses casos, devemos utilizar um plugin do yum que permite aplicar apenas as correes de
segurana:

4.4.1 Instalao e Uso do Plugin


Para instalar o plugin d o seguinte comando:

# yum install yum-security

Para listar a relao de correes de segurana disponveis digite o seguinte comando:

# yum list-security

Hardening-Linux RedHat.odt Pgina 11 de 23


Para aplicar as correes de segurana digite o seguinte comando:

# yum update --security

Caso seja relevante obter uma descrio detalhada das vulnerabilidades endereadas pelas
correes, execute o seguinte comando:

# yum info-sec

Com essa abordagem, possvel instalar uma correo especfica e emergencial referenciada por um
CVE (Common Vulnerabilities and Exposures)

# yum update --cve CVE-2008-0947

4.5 Sincronizao de Horrio NTP


Para efeitos de segurana, importantssimo que todos os servidores estejam com horrio correto.
Devidamente sincronizados com os servidores de hora do PRODERJ.
Para maior detalhamento da infraestrutura de NTP do PRODERJ, gentileza consultar o documento:
NTP - Estrutura Proderj disponvel na rede do PRODERJ.
Segue o procedimento para configurar a sincronizao.

4.5.1 - Verifique se o pacote de NTP est instalado:


Para listar se os pacotes NTP esto instalados basta digitar o seguinte comando:

# yum list | grep -i ntp

Caso ele no esteja instalado, devemos executar o seguinte comando:

# yum install ntp

4.5.2 Configurando a Timezone:


Para que o horrio esteja sempre configurado, necessrio que o servidor tenha a sua zona de
horrio configurada corretamente, para tanto verifique se o arquivo /etc/sysconfig/clock est
devidamente configurado digitando o seguinte comando:

# more /etc/sysconfig/clock

Hardening-Linux RedHat.odt Pgina 12 de 23


O resultado dever ser:

ZONE="America/Sao_Paulo"

4.5.3 Configurando o NTP:


Para que o horrio seja sincronizado corretamente deveremos apontar o arquivo /etc/ntp.conf para os
nossos servidores de NTP
Edite o arquivo:

#vi /etc/ntp.conf

Comente as linhas existentes e insira as insira as seguintes linhas:

server 10.3.157.109
server 10.10.8.93
server 10.12.44.9

O arquivo dever ficar conforme a figura a seguir:

Ilustrao 3: ntp.conf

Salve o arquivo e reinicialize o servio NTP:

# service ntpd restart

Para que o NTP seja iniciado de forma automtica execute o seguinte comando:

# chkconfig ntpd on

4.5.4 Verificando o Funcionamento


Nos servidores Linux conseguimos verificar a configurao do NTP executando-se o seguinte

Hardening-Linux RedHat.odt Pgina 13 de 23


comando

# ntpq -c pe

Teremos como resposta parecida com essa:


remote refid st t when poll reach delay offset jitter
===============================================================================
+10.12.44.9 200.160.0.8 3 u 355 1024 377 2.406 -0.317 0.695
+10.10.8.93 200.160.0.8 3 u 363 1024 377 2.887 -2.349 0.106
*10.3.157.109 200.160.0.8 3 u 194 1024 377 3.010 1.162 2.245

Que nos mostra a sincronia com os servidores ntp.

Para ter certeza do horrio, v ao site www.ntp.br e veja o horrio que aparece na tela e confronte
contra o comando:

# date
Qui Set 27 09:16:49 BRT 2012

A diferena se houver - dever na casa de alguns poucos segundos.

4.6 - Configurao do LogWatch


A configurao do LogWatch deve ser conduzida pelo especialista da empresa 3-Elos responsvel
pelo suporte ao LogWatch
PRGSI = root no grupo gsi
Passar para a 3Elos instalar e configurar o Logwatch

Hardening-Linux RedHat.odt Pgina 14 de 23


5 - Aes Adicionais
Algumas aes Adicionais, so necessrias para aumentar a segurana do SO, conforme sero
listados a seguir:

5.1 - SSH

Modifique as configuraes do SSH para permitir acesso usando o protocolo SSHv2 somente.

Editar o arquivo /etc/ssh/sshd_config e trocar a linha:

#PROTOCOL 1,2

para:

PROTOCOL 2

Observao: No Red Hat 6, essa opo j vem implementada por padro. Certifique-se de que assim
seja, dando um grep no arquivo.

# grep -i protocol /etc/ssh/sshd_config

5.1.1 Restrio de IPs que podem fazer SSH Opcional.


Para limitarmos as tentativas de conexo via ssh apenas aos IPs que devem ser autorizados a faz-lo,
edite o arquivo arquivo /etc/hosts.allow e acrescente as linhas abaixo, substitua x.x.x.x pelos IPs das
estaes de trabalho autorizadas.
Esse item opcional e deve ser validado com a rea gestora do ativo antes de ser implementada.

sshd : 127.0.0.1 : allow


sshd : x.x.x.x : allow
sshd : x.x.x.x : allow
sshd : ALL : deny

A ltima linha restringe o acesso via SSH, liberando apenas os IPs explicitamente listados

Hardening-Linux RedHat.odt Pgina 15 de 23


5.2 - Desabilite Servios Desnecessrios ou Inseguros

Verifique se os servios abaixo esto instalados, caso estejam remova-os utilizando o Yum:

rshd
rlogind
rwhod
telnetd substitudo pelo ssh
ftpd - substitudo pelo dcp
sendmail
identd

Para verificar se esto instalados:


# yum search Servio-XPTO

Para remover um servio especfico:


# yum remove Servio-XPTO

Para obter uma lista completa com todos os pacotes instalados:


# yum list installed|less

Hardening-Linux RedHat.odt Pgina 16 de 23


6 Logins dos Administradores
Nos servidores Linux Red Hat, a administrao dos mesmos dever ser realizando usando os logins
reais dos seus administradores. Cada analista ou administrador do PRODERJ dever possuir a sua
prpria conta, com login (nome do usurio) idntico ao do domnio PRODERJ.
Vantagens dessa abordagem:
Poderemos integrar os logins dos ambientes Linux ao AD do PRODERJ, promovendo um
Single Sign On entre os dois ambientes.
Eventuais desvios do padro aceitvel de uso do sistema operacional sero registrados e seus
responsveis identificados e responsabilizados.
Os logins dos administradores devero se associados ao perfil da sua gerncia e ter os
acessos permitidos pelo proprietrio do ativo, por exemplo se o ativo for administrado pela
gerncia de banco de dados
Essas contas devero ser documentadas e a responsabilidade da gesto das senhas do usurio. As
senhas de acesso no devero ser compartilhadas.

6.1 - Criao de Grupos de Acesso


O Primeiro passo para criao das contas criar os grupos que tero acesso ao ativo, conforme a
tabela abaixo:
Nome do Grupo ID do Grupo Detalhamento
GSI 201 Gerncia de Segurana da Informao

GTI 202 Gerncia de Tratamento da Informao

GST 203 Gerncia de Suporte Tcnico

GSW 204 Gerncia de Servios Web

GRT 205 Gerncia de Redes e Telecomunicao

DPGE 209 Defensoria Pblica Geral do Estado

DIT 210 Diretoria de Infraestrutura

GPG 211 Gerncia do Palcio Guanabara

O comando para criar um grupo atribuindo a ele um id :

# groupadd -g 201 gsi

Hardening-Linux RedHat.odt Pgina 17 de 23


importante que seja seguida a numerao de identificao dos grupos da tabela acima.

6.2 - Criando Usurios Administradores

Para criar usurios o comando a ser usado :

# useradd -G gsi,adm -c "Fulano de Tal" prfuta

Onde:
-G indica os grupos aos quais ele vai pertencer, no exemplo, adm e gsi.
-c o comentrio, usamos como comentrio o nome completo do usurio entre aspas.
prfuta o login de rede do usurio que dever ser idntico ao do AD do PRODERJ, para
facilitar uma futura integrao entre as bases.

6.2.1 Definindo uma Senha


A senha do usurio dever ser definida e com o comando:

# passwd prfuta

Dever ser criada uma senha conforme algoritmo usado pela GSI. Essa senha dever ser informada
ao usurio pela GSI e este dever ser obrigado a troc-lo no primeiro acesso ao servidor.
O comando para forar a troca de senha :

# chage -d 0 prfuta

6.3 - Manuteno e Reviso das Bases de Usurios


A GSI responsvel por manter essa base de usurios atualizada, com a colaborao das gerncias
envolvidas, que devero informar as alteraes nas suas equipes de administradores Linux.

Hardening-Linux RedHat.odt Pgina 18 de 23


7 Controles de Acesso e do Usurio root
O usurio root o administrador do Linux. A utilizao dele dever ser vetada para aes
quotidianas, pois h riscos considerveis na sua utilizao.
O usurio root dever ser envelopado e armazenado em cofre, conforme procedimento de custdia
de senhas administrativas.

7.1 Fechamento do Root


O primeiro passo para fechar o root alterar a senha do mesmo, configurando uma senha com no
mnimo 8 caracteres, contendo letras, nmeros e caracteres especiais.
Essa senha ficar sob custdia da GSI e ser envelopada para eventual uso emergencial ou por
solicitao da rea administradora.
O comando para a alterao da senha de root, estando logado como root, :

# passwd

Outras configuraes adicionais podem ser necessrias para maior controle dos acesso do root e
sero detalhadas posteriormente.

7.2 Login de Root via Console


O login de root deve ser restrito console. Dessa forma evitamos, na camada do sistema
operacional, todas as tentativas de login com o usurio root via ssh.
Para desabilitar o login via ssh do root edito arquivo de configurao do protocolo SSH:

vi /etc/ssh/sshd_config

E altere o parmetro PermitRootLogin de:

#PermitRootLogin yes

Para:

#PermitRootLogin no

Hardening-Linux RedHat.odt Pgina 19 de 23


8 Sudo
O comando sudo do sistema operacional Unix e Linux permite a usurios comuns obter privilgios
de outro usurio, em geral o super usurio, para executar tarefas especficas dentro do sistema de
maneira segura e controlvel pelo administrador. O nome uma forma abreviada de se referir a
substitute user do (fazer substituindo usurio) ou super user do (fazer como super usurio).
Os administradores do PRODERJ dos sistemas Linux, devero utilizar o comando sudo para a
execuo das tarefas administrativas.
Dessa forma temos as seguintes vantagens:
Registro de quem (qual login) efetivamente utilizou a conta de root.
Logs das aes por usurio.
Auditoria do sistema.
Menor probabilidade de quebra ou compartilhamento da senha de root.
Na configurao proposta no PRODERJ, no h qualquer restrio administrao do
servidor pelos responsveis pelo ativo.

8.1 Configurao do Sudo


A configurao do sudo server ser feita utilizando o comando:

# visudo

Esse comando abrir uma interface no estilo do editor vi onde voc dever procurar a linha
destacada na figura abaixo:

Ilustrao 4: Grupo administrador no Sudo

Hardening-Linux RedHat.odt Pgina 20 de 23


E configur-la para que d permisso administrativa irrestrita aos logins do grupo que dever
administrar o servidor, no exemplo abaixo esse grupo a GSI:

## Allows people in group wheel to run all commands


# %wheel ALL=(ALL) ALL
%gsi ALL=(ALL) ALL

Hardening-Linux RedHat.odt Pgina 21 de 23


9 Evoluo Deste Documento
Nas futuras verses deste documento, deveremos avaliar a possibilidade de implementarmos as
caractersticas listadas abaixo.
Os testes para a implementao destes mdulos sero realizados e, na prxima verso deste
documento o procedimento estar descrito. No entanto, se houver a possibilidade de se fazer
qualquer uma das implementaes abaixo sem impacto em produo, podem ser efetuadas.

9.1 - IDS de Host Habilitar um IDS de Host (HIDS Sugerido: OSSEC )

9.2 Auditoria e Anlise de Vulnerabilidade e Risco.

9.3 Integrao ao Kerberos do AD

9.4 Avaliar a possibilidade de adotarmos o SELinux.

9.5 Instalao de agente SNMP

9.6 Hardening Especfico Para Cada Tipo de Servio

9.6.1 - Servidores de Aplicao J2EE e PHP

9.6.2 Hardening do Apache

9.7 Avaliar Implementao por Padro de firewall local

9.8 - Segurana do inetd

9.9 - Restringir TCP wrappers e xinetd

9.10 - Restringir acesso/desativar o compilador (gcc)

Hardening-Linux RedHat.odt Pgina 22 de 23


10 - Observaes
Observaes sobre este documento, incluindo alteraes, sugestes, correes, devem ser
registradas neste espao e remetidos aos proprietrios deste documento para anlise.

Hardening-Linux RedHat.odt Pgina 23 de 23