Este tutorial cobre apenas dicas gerais de segurança para CentOS 8/7 que pode ser usado para fortalecer o sistema. As dicas da lista de verificação devem ser usadas principalmente em vários tipos de servidores bare-metal ou em máquinas (físicas ou virtuais) que fornecem serviços de rede.
No entanto, algumas das dicas podem ser aplicadas com sucesso a máquinas de uso geral também, como desktops, laptops e computadores de placa única do tamanho de uma placa (Raspberry Pi).
Bloqueie o acesso às salas do servidor, use o bloqueio de racks e a vigilância por vídeo. Leve em consideração que qualquer acesso físico a salas de servidores pode expor sua máquina a sérios problemas de segurança.
BIOS as senhas podem ser alteradas reiniciando os jumpers na placa-mãe ou desconectando a bateria CMOS. Além disso, um invasor pode roubar os discos rígidos ou anexar diretamente novos discos rígidos às interfaces da placa-mãe (SATA, SCSI, etc), inicializar com uma distribuição Linux live e
clonar ou copiar dados sem deixar nenhum rastro de software.No caso de dados altamente confidenciais, você provavelmente deve usar proteção física avançada, como colocar e travar o servidor em um Gaiola de Faraday ou use um militar TEMPESTADE solução a fim de minimizar o impacto da espionagem do sistema via rádio ou emanações de vazamento elétrico.
Comece o processo de endurecimento de sua máquina, fixando BIOS / UEFI configurações, especialmente definir um BIOS / UEFI senha e desabilitar dispositivos de mídia de inicialização (CD, DVD, desabilitar suporte USB) para evitar que usuários não autorizados modificar as configurações do BIOS do sistema ou alterar a prioridade do dispositivo de inicialização e inicializar a máquina de um alternativo médio.
Para aplicar este tipo de alteração à sua máquina, você precisa consultar o manual do fabricante da placa-mãe para obter instruções específicas.
Defina um GRUB senha para evitar que usuários mal-intencionados adulterem a sequência de inicialização do kernel ou níveis de execução, edite os parâmetros do kernel ou inicie o sistema em modo de usuário único para prejudicar o sistema e redefina a senha de root para obter controle privilegiado.
Ao instalar CentOS em sistemas concebidos como servidores de produção, use partições dedicadas ou discos rígidos dedicados para as seguintes partes do sistema:
/ (root) / boot / home / tmp / var
O /var partição é o local onde as mensagens de log são gravadas no disco. Esta parte do sistema pode crescer exponencialmente em tamanho em servidores de tráfego intenso que expõem serviços de rede, como servidores web ou servidores de arquivos.
Portanto, use uma partição grande para /var ou considere configurar esta partição usando volumes lógicos (LVM) ou combinar vários discos físicos em um dispositivo RAID 0 virtual maior para sustentar grandes quantidades de dados. Para dados, a redundância, considere o uso do layout LVM em cima de o RAID 1 nível.
Para configurar LVM ou RAID nos discos, siga nossos guias úteis:
Partições separadas destinadas a armazenar dados e impedir a execução de programas, arquivos de dispositivos ou setuid bit neste tipo de partições, adicionando as seguintes opções para fstab arquivo conforme ilustrado no trecho abaixo:
padrões / dev / sda5 / nas ext4,nosuid, nodev, noexec 1 2.
Para evitar o aumento de privilégios e a execução arbitrária de scripts, crie uma partição separada para /tmp e montá-lo como nosuida, nodev, e noexec.
padrões / dev / sda6 / tmp ext4,nosuid, nodev, noexec 0 0.
A fim de proteger a espionagem de dados confidenciais em caso de acesso físico aos discos rígidos da máquina. Eu sugiro que você aprenda como criptografar o disco lendo nosso artigo Criptografia de dados do disco rígido Linux com LUKS.
Para criptografar discos, use PGP e criptografia de chave pública ou o comando OpenSSL para criptografar e descriptografar arquivos confidenciais com uma senha, conforme mostrado neste artigo Configurar o armazenamento criptografado do sistema Linux.
Evite instalar programas, aplicativos ou serviços sem importância ou desnecessários para evitar vulnerabilidades de pacotes. Isso pode diminuir o risco de que o comprometimento de uma parte do software possa levar ao comprometimento de outras aplicativos, partes do sistema ou até mesmo sistemas de arquivos, resultando finalmente em corrupção de dados ou dados perda.
Atualize o sistema regularmente. Mantenha o kernel do Linux sincronizado com os patches de segurança mais recentes e todos os software instalado atualizado com as versões mais recentes, emitindo o comando abaixo:
# atualização yum.
Para evitar que os usuários reiniciem o servidor, uma vez que tenham acesso físico a um teclado ou por meio de um aplicativo de console remoto ou um console virtualizado (KVM, Interface de software de virtualização) você deve desativar Ctrl + Alt + Del
sequência de teclas executando o comando abaixo.
# systemctl mask ctrl-alt-del.target
Instale o software mínimo necessário para sua máquina. Nunca instale programas ou serviços extras. Instale pacotes apenas de repositórios confiáveis ou oficiais. Use a instalação mínima do sistema no caso de a máquina estar destinada a funcionar toda a sua vida como servidor.
Verifique os pacotes instalados usando um dos seguintes comandos:
# rpm -qa.
Faça uma lista local de todos os pacotes instalados.
# yum list installed >> installed.txt.
Consulte a lista de softwares inúteis e exclua um pacote emitindo o comando abaixo:
# yum remove package_name.
Use o exemplo de comando abaixo para reiniciar um serviço systemd para aplicar novas atualizações.
# systemctl restart httpd.service.
Identifique os serviços que estão escutando em portas específicas usando o seguinte comando ss.
# ss -tulpn.
Para listar todos os serviços instalados com seus status de saída, emita o comando abaixo:
# systemctl list-units -t service.
Por exemplo, CentOS a instalação mínima padrão vem com o daemon Postfix instalado por padrão que roda com o nome de um mestre na porta 25. Remova o serviço de rede Postfix caso sua máquina não seja usada como servidor de e-mail.
# yum remove postfix.
Não use protocolos inseguros para acesso remoto ou transferência de arquivos, como Telnet, FTPou outros protocolos elevados de texto simples, como SMTP, HTTP, NFS ou SMB que, por padrão, não criptografa as sessões de autenticação ou os dados enviados.
Usarem apenas sftp, scp para transferências de arquivos e túneis SSH ou VNC sobre SSH para conexões de console remoto ou acesso GUI.
Para encapsular um console VNC via SSH, use o exemplo abaixo, que encaminha a porta VNC 5901 da máquina remota para sua máquina local:
# ssh -L 5902: localhost: 5901 remote_machine.
Na máquina local, execute o comando abaixo para fazer a conexão virtual com o endpoint remoto.
# vncviewer localhost: 5902.
Conduza verificações de portas externas usando a ferramenta Nmap de um sistema remoto pela LAN. Este tipo de varredura pode ser usado para verificar vulnerabilidades de rede ou testar as regras de firewall.
# nmap -sT -O 192.168.1.10.
Usar Firewalld utilitário para proteger as portas do sistema, abrir ou fechar portas de serviços específicos, especialmente portas bem conhecidas (<1024).
Instale, inicie, ative e liste as regras de firewall emitindo os comandos abaixo:
# yum install firewalld. # systemctl start firewalld.service. # systemctl enable firewalld.service. # firewall-cmd --list-all.
Usar utilitário tcpdump para detectar pacotes de rede localmente e inspecionar seu conteúdo em busca de tráfego suspeito (portas de origem-destino, protocolos TCP / IP, tráfego de camada dois, solicitações ARP incomuns).
Para uma melhor análise do tcpdump arquivo capturado usa um programa mais avançado, como Wireshark.
# tcpdump -i eno16777736 -w tcpdump.pcap.
Inspecione o conteúdo do seu resolvedor, normalmente /etc/resolv.conf arquivo, que define o endereço IP dos servidores DNS que deve usar para consultar os nomes de domínio, para para evitar ataques man-in-the-middle, tráfego desnecessário para servidores DNS raiz, falsificação ou criação de um DOS ataque.
Esta é apenas a primeira parte. Na próxima parte, discutiremos outras dicas de segurança para CentOS 8/7.