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 3: Acessos e permissões
Por padrão o Red Hat permite que o usuário root acesse o sistema por todos os terminais disponíveis, porém por questão de segurança vamos apagar todas as entradas do arquivo /etc/securetty e assim garantir o bloqueio do acesso ao usuário root.
# echo > /etc/securetty
Agora vamos remover usuários e grupos desnecessários para o ambiente e caso algum usuário seja necessário vamos mudar o shell padrão para o /sbin/nologin.
Exemplo de usuários e grupos: games, news, uucp, floppy entre outros.
Edite o arquivo /etc/pam.d/su e adicione a linha abaixo para assegurar que somente usuários que estejam no grupo wheel possam usar o comando su para ter acesso ao root.
Edite o arquivo /etc/sudoers para permitir o acesso ao root aos usuários do grupo wheel.
Altere as entradas do arquivo /etc/login.defs para alterarmos os valores de validade das senhas, quantidades de caracteres entre outros.
Rode o comando abaixo para alterarmos o algoritmo padrão das senhas do Red Hat em /etc/shadow de md5 para sha512.
# authconfig --passalgo=sha512 --update
Vamos alterar o arquivo /etc/pam.d/system-auth para garantirmos a complexidade das senhas com a ajuda da lib pam_cracklib, com isso o sistema irá checar entre outras coisas se a senha digitada é fácil de se adivinhar e dessa forma garantiremos um pouco mais a segurança do ambiente.
Altere a linha:
password requisite pam_cracklib.so try_first_pass retry=3
Para:
Altere em /etc/pam.d/system-auth a seguinte entrada para que o sistema possa reter as últimas 5 senhas usadas pelo usuário e dessa forma garantir que o usuário não utilize senhas repetidas.
Altere a linha:
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
Para:
Altere a umask padrão dos usuários para 077 nos seguintes arquivos:
Crie os seguintes arquivos para garantir que o sistema desconecte os usuários em caso de inatividade, lembrando de colocar a permissão 750 nos mesmos.
bash:
Arquivo /etc/profile.d/tmout.sh:
csh:
Arquivo /etc/profile.d/autologout.csh:
Crie o arquivo abaixo com o seu respectivo conteúdo para garantir um histórico mais detalhado dos comandos usados, lembrando a permissão de 750;
/etc/profile.d/history.sh:
Devemos alterar os arquivos /etc/issue e /etc/issue.net para que quando algum usuário tentar acessar ao servidor o mesmo mostre um banner informando que o sistema é de acesso restrito.
Vamos alterar o arquivo /etc/ssh/sshd_conf para adicionarmos entradas para bloquear o acesso via root, permitir somente o acesso de usuários liberados, criar um timeout de 5 minutos, forçar o uso do protocolo ssh versão 2 e especificar o banner que irá aparecer para o usuário quando o mesmo tentar acesso ao sistema.
# echo > /etc/securetty
Agora vamos remover usuários e grupos desnecessários para o ambiente e caso algum usuário seja necessário vamos mudar o shell padrão para o /sbin/nologin.
Exemplo de usuários e grupos: games, news, uucp, floppy entre outros.
Edite o arquivo /etc/pam.d/su e adicione a linha abaixo para assegurar que somente usuários que estejam no grupo wheel possam usar o comando su para ter acesso ao root.
auth required pam_wheel.so use_uid
Edite o arquivo /etc/sudoers para permitir o acesso ao root aos usuários do grupo wheel.
%wheel ALL=(ALL) ALL
Altere as entradas do arquivo /etc/login.defs para alterarmos os valores de validade das senhas, quantidades de caracteres entre outros.
PASS_MAX_DAYS 60
PASS_MIN_DAYS 0
PASS_MIN_LEN 8
PASS_WARN_AGE 7
PASS_MIN_DAYS 0
PASS_MIN_LEN 8
PASS_WARN_AGE 7
Rode o comando abaixo para alterarmos o algoritmo padrão das senhas do Red Hat em /etc/shadow de md5 para sha512.
# authconfig --passalgo=sha512 --update
Vamos alterar o arquivo /etc/pam.d/system-auth para garantirmos a complexidade das senhas com a ajuda da lib pam_cracklib, com isso o sistema irá checar entre outras coisas se a senha digitada é fácil de se adivinhar e dessa forma garantiremos um pouco mais a segurança do ambiente.
Altere a linha:
password requisite pam_cracklib.so try_first_pass retry=3
Para:
password required pam_cracklib.so try_first_pass retry=3 minlen=14 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0
Altere em /etc/pam.d/system-auth a seguinte entrada para que o sistema possa reter as últimas 5 senhas usadas pelo usuário e dessa forma garantir que o usuário não utilize senhas repetidas.
Altere a linha:
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
Para:
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remenber=5
Altere a umask padrão dos usuários para 077 nos seguintes arquivos:
- /etc/profile
- /etc/logins.def
Crie os seguintes arquivos para garantir que o sistema desconecte os usuários em caso de inatividade, lembrando de colocar a permissão 750 nos mesmos.
bash:
Arquivo /etc/profile.d/tmout.sh:
TMOUT=900
readonly TMOUT
export TMOUT
readonly TMOUT
export TMOUT
csh:
Arquivo /etc/profile.d/autologout.csh:
set -r autologout 15
Crie o arquivo abaixo com o seu respectivo conteúdo para garantir um histórico mais detalhado dos comandos usados, lembrando a permissão de 750;
/etc/profile.d/history.sh:
#!/bin/bash
readonly HISTTIMEFORMAT="%d/%m/%Y as %T -> "
export HISTTIMEFORMAT
readonly HISTTIMEFORMAT="%d/%m/%Y as %T -> "
export HISTTIMEFORMAT
Devemos alterar os arquivos /etc/issue e /etc/issue.net para que quando algum usuário tentar acessar ao servidor o mesmo mostre um banner informando que o sistema é de acesso restrito.
################### A T E N C A O ###################
Esse sistema destina-se apenas a pessoas autorizadas.
Todas atividades são logadas e verificas regularmente
################### W A R N I N G ###################
This computer system is for authorized users only.
All activity is logged and regulary checked.
Esse sistema destina-se apenas a pessoas autorizadas.
Todas atividades são logadas e verificas regularmente
################### W A R N I N G ###################
This computer system is for authorized users only.
All activity is logged and regulary checked.
Vamos alterar o arquivo /etc/ssh/sshd_conf para adicionarmos entradas para bloquear o acesso via root, permitir somente o acesso de usuários liberados, criar um timeout de 5 minutos, forçar o uso do protocolo ssh versão 2 e especificar o banner que irá aparecer para o usuário quando o mesmo tentar acesso ao sistema.
Protocol 2
AllowUsers USER1 USER2
X11Forwarding no
StrictModes yes
ClientAliveInterval 300
ClientAliveCountMax 0
PermitRootLogin no
IgnoreRhosts yes
banner /etc/issue
AllowUsers USER1 USER2
X11Forwarding no
StrictModes yes
ClientAliveInterval 300
ClientAliveCountMax 0
PermitRootLogin no
IgnoreRhosts yes
banner /etc/issue
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!