Fortalecimento de Servidores Debian

Esse roteiro tem como base o Debian Securing How-to[1] (http://www.debian.org/doc/manuals/securing-debian-howto/).


Depois da instalação

Essas dicas de hardening se destinam à pós-instalação de um servidor com Debian GNU/Linux 8, para roteiro de instalação leia Instalação básica de Debian para Servidores

Editar o arquivo /etc/default/grub editando a linha a seguir com o número de tempo correspondente em segundos:

GRUB_TIMEOUT=2

Após a edição do arquivo executar o comando abaixo para que a configuração entre em vigor:

# update-grub

Para restringir a reinicialização via Ctrl+Alt+Del, comente a linha:

#ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

Para desativar os consoles de 3 a 6, mantenha o trecho referente aos consoles assim:

1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

Para que somente o root consiga desligar/reinicializar o sistem rode o comando:

# echo "root" > /etc/shutdown.allow

Para para restringir o uso do su criaremos um grupo wheel e adicionaremos os usuários com esse privilégio ao grupo Criar o grupo:

# groupadd wheel

Adicione nesse grupo o root e outros usuários que podem usar o su:

# adduser root wheel
# adduser nome_admin wheel

Onde: nome_admin é usuário que terá acesso ao su

Adicione a linha “auth requisite pam_wheel.so group=wheel debug” abaixo da linha comentada “# auth required pam_wheel.so”, deixando o resultado assim:

# auth required pam_wheel.so
auth requisite pam_wheel.so group=wheel debug

Tornando logins mais seguros

# dpkg-reconfigure --priority=high passwd

Comente TODAS as linhas do aquivo /etc/securetty, desta forma não será permitido o login do root em nenhum terminal. O acesso de administrador deverá ser obtido logando como usuário comum e posteriormente usando o comando su. O arquivo ficará mais ou menos assim:

# /etc/securetty: list of terminals on which root is allowed to login.
# See securetty(5) and login(1).
#console
# Local X displays (allows empty passwords with pam_unix's nullok_secure)
#:0
#:0.0
#:0.1
#:1
...
# echo "nome_admin" > /etc/sshusers-allowed

Onde: nome_admin é usuário que logará via ssh

  1. No arquivo /etc/pam.d/sshd insira a linha “auth required pam_listfile.so item=user sense=allow file=/etc/sshusers-allowed onerr=fail” após a linha “auth requiredpam_env.so envfile=/etc/default/locale” deixando o trecho do arquivo assim:
# In Debian 4.0 (etch), locale-related environment variables were moved to
# /etc/default/locale, so read that as well.
auth required pam_env.so envfile=/etc/default/locale
auth required pam_listfile.so item=user sense=allow file=/etc/sshusers-allowed onerr=fail
# Standard Un*x authentication.
@include common-auth

No arquivo /etc/ssh/sshd_config Na linha PermitRootLogin troque “yes” para “no”

PermitRootLogin no

Descomente a linha Banner /etc/issue.net

  • Instale o fail2ban:
# aptitude install fail2ban
  • Configurações básicas para proteger o SSH.
cd /etc/fail2ban
vi jail.local
  • Cole as configurações a seguir:
[DEFAULT]
# Destination email address used solely for the interpolations in
# jail.{conf,local} configuration files.
destemail = you@emailservice.com
##
#Choose default action. To change, just override value of 'action' with the
# interpolation to the chosen action shortcut (e.g. action_mw, action_mwl, etc) in jail.local
# globally (section [DEFAULT]) or per specific section
action = %(action_mwl)s
#
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
#
[ssh-ddos]
enabled = true
port = ssh
filter = sshd-ddos
logpath = /var/log/auth.log
maxretry = 3

Instale o autolog:

# aptitude install autolog

Edite o arquivo /etc/issue.net e deixe-o assim:

*********************************************************
* ACESSO RESTRITO - Todas as atividades sao monitoradas *
*********************************************************

Edite o arquivo /etc/issue e deixe-o assim:

\n \l
*********************************************************
* ACESSO RESTRITO - Todas as atividades são monitoradas *
*********************************************************

Deixe o arquivo /etc/motd.tail vazio (não apague o arquivo, apague apenas o conteúdo)


Fechar portas e acessos indevidos

Nesse caso, é conveniente limitar acesso às portas default de aplicações conhecidas, como SSH (22), FTP (20 e 21), HTTP e HTTPS (80,443) etc. Recomenda-se adotar política de proibir todo acesso via iptables primeiro e depois liberar apenas aqueles serviços necessários.

  • pres/gerti/infraestrutura_de_ti/sistemas_operacionais/fortalecimento_de_servidores_debian.txt
  • Última modificação: 16/06/2016 11:17
  • por mbjesus