10 dicas de fortalecimento do Linux para administradores de sistema iniciantes

Os sistemas Linux são seguros por design e fornecem ferramentas de administração robustas. Mas não importa o quão bem projetado um sistema seja, sua segurança depende do usuário.

Os iniciantes geralmente levam anos para encontrar as melhores políticas de segurança para suas máquinas. É por isso que estamos compartilhando essas dicas essenciais de fortalecimento do Linux para novos usuários como você. Dê uma chance a eles.

1. Aplicar políticas de senha forte

As senhas são o principal método de autenticação para a maioria dos sistemas. Não importa se você é um usuário doméstico ou profissional, aplicar senhas sólidas é uma obrigação. Primeiro, desative as senhas vazias. Você não vai acreditar quantas pessoas ainda os usam.

 awk -F: '($2 == "") {print}' /etc/shadow

Execute o comando acima como root para ver quais contas têm senhas vazias. Se você encontrar alguém com uma senha vazia, bloqueie o usuário imediatamente. Você pode fazer isso usando o seguinte.

 passwd -l USERNAME

Você também pode configurar o envelhecimento da senha para garantir que os usuários não usem senhas antigas. Use o comando chage para fazer isso a partir do seu terminal.

 chage -l USERNAME

Este comando exibe a data de expiração atual. Para definir a expiração da senha após 30 dias, use o comando abaixo. Os usuários podem usar gerenciadores de senhas do Linux para manter as contas online seguras .

 chage -M 30 USERNAME

2. Backup de dados essenciais

Se você leva seus dados a sério, configure backups regulares. Desta forma, mesmo se seu sistema travar, você pode recuperar os dados rapidamente. Mas, escolher o método de backup correto é crucial para a proteção do Linux.

Se você é um usuário doméstico, clonar os dados em um disco rígido pode ser suficiente. As empresas, no entanto, precisam de sistemas de backup sofisticados que ofereçam recuperação rápida.

3. Evite métodos de comunicação herdados

O Linux oferece suporte a muitos métodos de comunicação remota. Mas, serviços Unix legados como telnet, rlogin e ftp podem representar sérios problemas de segurança. Portanto, tente evitá-los. Você pode removê-los completamente para reduzir os problemas de segurança associados a eles.

 apt-get --purge remove xinetd nis tftpd tftpd-hpa telnetd 
> rsh-server rsh-redone-server

Este comando remove alguns serviços amplamente usados, mas desatualizados, de máquinas Ubuntu / Debian. Se você estiver usando um sistema baseado em RPM, use o seguinte.

 yum erase xinetd ypserv tftp-server telnet-server rsh-server

4. OpenSSH seguro

O protocolo SSH é o método recomendado de comunicação remota para Linux. Certifique-se de proteger a configuração do servidor OpenSSH (sshd). Você pode aprender mais sobre como configurar um servidor SSH aqui .

Edite o arquivo / etc / ssh / sshd_config para definir as políticas de segurança para ssh. Abaixo estão algumas políticas de segurança comuns que qualquer pessoa pode usar.

 PermitRootLogin no # disables root login
MaxAuthTries 3 # limits authentication attempts
PasswordAuthentication no # disables password authentication
PermitEmptyPasswords no # disables empty passwords
X11Forwarding no # disables GUI transmission
DebianBanner no # disbales verbose banner
AllowUsers *@XXX.X.XXX.0/24 # restrict users to an IP range

5. Restringir o uso de CRON

CRON é um agendador de tarefas robusto para Linux. Ele permite que os administradores agendem tarefas no Linux usando o crontab . Portanto, é crucial restringir quem pode executar tarefas CRON. Você pode descobrir todos os cronjobs ativos para um usuário usando o seguinte comando.

 crontab -l -u USERNAME

Verifique as tarefas de cada usuário para descobrir se alguém está explorando o CRON. Você pode bloquear o uso do crontab por todos os usuários, exceto você. Execute o seguinte comando para isso.

 echo $(whoami) >> /etc/cron.d/cron.allow
# echo ALL >> /etc/cron.d/cron.deny

6. Aplicar Módulos PAM

Linux PAM (Pluggable Authentication Modules) oferece poderosos recursos de autenticação para aplicativos e serviços. Você pode usar várias políticas de PAM para proteger o login do sistema. Por exemplo, os comandos abaixo limitam a reutilização de senha.

 # CentOS/RHEL
echo 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >>
> /etc/pam.d/system-auth
# Ubuntu/Debian
echo 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >>
> /etc/pam.d/common-password

Eles restringem o uso de senhas que foram usadas nas últimas cinco semanas. Existem muito mais políticas de PAM que fornecem camadas extras de segurança.

7. Remova os pacotes não utilizados

A remoção de pacotes não utilizados reduz a superfície de ataque em sua máquina. Portanto, recomendamos que você exclua pacotes raramente usados. Você pode ver todos os pacotes atualmente instalados usando os comandos abaixo.

 yum list installed # CentOS/RHEL
apt list --installed # Ubuntu/Debian

Digamos que você queira remover o pacote não utilizado vlc. Você pode fazer isso executando os seguintes comandos como root.

 yum remove vlc # CentOS/RHEL
apt remove vlc # Ubuntu/Debian

8. Parâmetros de kernel seguros

Outra maneira eficaz de fortalecer o Linux é proteger os parâmetros do kernel. Você pode configurar esses parâmetros usando sysctl ou modificando o arquivo de configuração. Abaixo estão algumas configurações comuns.

 kernel.randomize_va_space=2 # randomnize address base for mmap, heap, and stack
kernel.panic=10 # reboot after 10 sec following a kernel panic
net.ipv4.icmp_ignore_bogus_error_responses # protects bad error messages
net.ipv4.ip_forward=0 # disables IP forwarding
net.ipv4.icmp_ignore_bogus_error_responses=1 # ignores ICP errors

Estas são apenas algumas configurações básicas. Você aprenderá diferentes maneiras de configuração do kernel com a experiência.

9. Configure iptables

Os kernels Linux fornecem métodos de filtragem robustos para pacotes de rede por meio de sua API Netfilter. Você pode usar iptables para interagir com esta API e configurar filtros personalizados para solicitações de rede. Abaixo estão algumas regras básicas de iptables para usuários focados na segurança.

 -A INPUT -j REJECT # reject all inbound requests
-A FORWARD -j REJECT # reject traffic forwarding
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT # allow traffic on localhost
# allow ping requests
-A OUTPUT -p icmp -j ACCEPT # allow outgoing pings
# allow established/related connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow DNS lookups
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
# allow http/https requests
-A OUTPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
# allow SSH access
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT

10. Monitorar Logs

Você pode utilizar logs para entender melhor sua máquina Linux. Seu sistema armazena vários arquivos de log para aplicativos e serviços. Estamos delineando os essenciais aqui.

  • /var/log/auth.log — registra tentativas de autorização
  • /var/log/daemon.log — registra aplicativos de fundo
  • / var / log / debug — registra dados de depuração
  • /var/log/kern.log — registra os dados do kernel
  • / var / log / syslog — registra os dados do sistema
  • / var / log / faillog — registra logins com falha

Melhores dicas de fortalecimento do Linux para iniciantes

Proteger um sistema Linux não é tão difícil quanto você pensa. Você pode fortalecer a segurança seguindo algumas das dicas mencionadas neste guia. Você vai dominar mais maneiras de proteger o Linux à medida que ganha experiência.