Dicas de segurança em sistemas GNU / Linux

Bem, eu estava preparando este post para meu blog por algum tempo eles me sugeriram em DesdeLinux, e devido à falta de tempo, ele não pôde ou não quis. Se eu sou um pouco preguiçoso ????. Mas agora estão em greve, como dizemos em Cuba ...

Esta é uma compilação de regras básicas de segurança para administradores de sistema, neste caso, para aqueles que, como eu, gerenciam redes / sistemas baseados em GNU / Linux ... Pode haver mais e na verdade há mais, este é apenas um amostra das minhas aventuras no mundo linux ...

0- Mantenha nossos sistemas atualizados com as últimas atualizações de segurança.

0.1- Listas de discussão de atualizações críticas [Consultor de Segurança Slackware, Consultor de Segurança Debian, no meu caso]

1- Acesso físico zero aos servidores por pessoal não autorizado.

1.1- Aplicar senha para BIOS de nossos servidores

1.2- Sem inicialização por CD / DVD

1.3- Senha no GRUB / Lilo

2- Boa política de senha, caracteres alfanuméricos e outros.

2.1- Vencimento das senhas [Vencimento da senha] com o comando “chage”, bem como o número de dias entre a alteração da senha e a data da última alteração.

2.2- Evite usar senhas anteriores:

em /etc/pam.d/common-password

password sufficient pam_unix.so use_auth ok md5 shadow remember 10

Então você muda a senha e ela lembra das últimas 10 senhas que o usuário tinha.

3- Boa política de gestão / segmentação da nossa rede [routers, switches, vlans] e firewall, bem como regras de filtragem INPUT, OUTPUT, FORWARD [NAT, SNAT, DNAT]

4- Habilite o uso de shells [/ etc / shells]. Os usuários que não precisam efetuar login no sistema obtêm / bin / false ou / bin / nologin.

5- Bloqueia usuários quando o login falha [faillog], bem como controla a conta de usuário do sistema.

passwd -l pepe -> bloquear usuário pepe passwd -v pepe -> desbloquear usuário pepe

6- Habilite o uso de "sudo", NUNCA faça login como root por ssh, "NUNCA". Na verdade, você deve editar a configuração do ssh para atingir esse propósito. Use chaves públicas / privadas em seus servidores com sudo.

7- Aplique em nossos sistemas o “Princípio de menor privilégio".

8- Verifique nossos serviços de tempos em tempos [netstat -lptun], para cada um de nossos servidores. Adicione ferramentas de monitoramento que podem nos ajudar nesta tarefa [Nagios, Cacti, Munin, Monit, Ntop, Zabbix].

9- Instale IDSs, Snort / AcidBase, Snotby, Barnyard, OSSEC.

10- Nmap é seu amigo, use-o para verificar sua sub-rede / sub-redes.

11- Boas práticas de segurança em OpenSSH, Apache2, Nginx, MySQL, PostgreSQL, Postfix, Squid, Samba, LDAP [os que mais usam] e algum outro serviço que você precisa em sua rede.

12- Criptografe toda a comunicação possível em nossos sistemas, SSL, gnuTLS, StarTTLS, digest, etc ... E se você manipular informações confidenciais, criptografe seu disco rígido !!!

13- Atualize nossos servidores de e-mail com as regras de segurança, lista negra e antispam mais recentes.

14- Registro de atividades em nossos sistemas com logwatch e logcheck.

15- Conhecimento e uso de ferramentas como top, sar, vmstat, free, entre outras.

sar -> relatório de atividade do sistema vmstat -> processos, memória, sistema, i / o, atividade da cpu, etc iostat -> status da cpu i / o mpstat -> status do multiprocessador e uso pmap -> uso de memória por processos livres -> memória iptraf -> tráfego em tempo real de nossa rede ethstatus -> monitor de estatísticas ethernet baseado em console etherape -> monitor gráfico de rede ss -> status do soquete [informações do soquete tcp, udp, soquetes brutos, Sockets DCCP] tcpdump -> Análise detalhada de tráfego vnstat -> monitor de tráfego de rede de interfaces selecionadas mtr -> ferramenta de diagnóstico e análise de sobrecarga em redes ethtool -> estatísticas sobre placas de rede

Por enquanto, é tudo. Sei que existem mil e uma mais sugestões de segurança neste tipo de ambiente, mas são estas que mais me impressionaram, ou que em algum momento tive que aplicar / fazer exercícios em um ambiente que administrei .

Um abraço e espero que sirva a você 😀


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   koratsuki dito

    Convido você nos comentários a nos contar sobre alguma outra regra que você implementou além das já mencionadas, para aumentar o conhecimento de nossos leitores 😀

    1.    yukiteru dito

      Bem, eu acrescentaria:

      1.- Aplique regras sysctl para evitar acesso dmesg, / proc, SysRQ, atribua PID1 ao núcleo, habilite proteções para links simbólicos físicos e soft, proteções para pilhas TCP / IP para IPv4 e IPv6, ative VDSO completo para indicadores de randomização máxima e alocações de espaço de memória e melhora a resistência contra estouros de buffer.

      2.- Criar firewalls do tipo SPI (Stateful Package Inspect) para evitar que conexões não criadas ou previamente permitidas tenham acesso ao sistema.

      3.- Se você não possui serviços que garantam conexões com privilégios elevados a partir de uma localização remota, simplesmente revogue o acesso a eles usando access.conf, ou, na falta disso, habilite o acesso a apenas um determinado usuário ou grupo.

      4.- Use limites rígidos para evitar que o acesso a certos grupos ou usuários desestabilize seu sistema. Muito útil em ambientes onde existe um multiusuário real ativo o tempo todo.

      5.- TCPWrappers é seu amigo, se você estiver em um sistema com suporte para ele, usá-lo não faria mal, então você pode negar o acesso de qualquer máquina a menos que esteja previamente configurado no sistema.

      6.- Crie chaves SSH RSA de pelo menos 2048 bits ou melhores de 4096 bits com chaves alfanuméricas de mais de 16 caracteres.

      7.- Você é gravável no mundo inteiro? Verificar as permissões de leitura e gravação de seus diretórios não é ruim e é a melhor maneira de evitar o acesso não autorizado em ambientes multiusuário, sem mencionar que torna mais difícil para certos acessos não autorizados obter acesso às informações que você faz não quero que ninguém mais veja.

      8.- Monte qualquer partição externa que não o mereça, com as opções noexec, nosuid, nodev.

      9.- Use ferramentas como rkhunter e chkrootkit para verificar periodicamente se o sistema não possui rootkit ou malware instalado. Uma medida prudente se você for um daqueles que instalam coisas a partir de repositórios não seguros, de PPAs ou simplesmente compilando códigos em tempo real de sites não confiáveis.

      1.    koratsuki dito

        Uhmmm, delicioso… Bom comentário, acrescente pessoal… 😀

    2.    William Moreno-Reyes dito

      Aplicar um controle de acesso obrigatório com SElinux?

  2.   Armando F dito

    artigo muito bom

    1.    koratsuki dito

      Obrigado amigo 😀

  3.   joaco dito

    Olá e se eu for um usuário normal, devo usar su ou sudo?
    Eu uso su porque não gosto de sudo, porque qualquer pessoa que tenha minha senha de usuário pode alterar o que quiser no sistema, em vez de su no.

    1.    koratsuki dito

      No seu PC não incomoda usar o su, você pode usá-lo sem problemas, nos servidores é altamente recomendável desabilitar o uso do su e usar o sudo, muitos dizem que é devido ao fato de auditar quem executou o quê comando e sudo faz essa tarefa ... eu no particular, no meu pc eu uso o dele, assim como você ...

      1.    joaco dito

        Claro, eu realmente não sei como funciona nos servidores. Porém, me parece que o sudo tinha a vantagem de poder dar privilégios ao usuário de outro computador, se não me engano.

    2.    andrew dito

      Artigo interessante, criptografo alguns arquivos com gnu-gpg, pois é o de privilégio mínimo, caso queira executar, por exemplo, um binário de origem desconhecida perdido nos imensos mares de informações do disco, como faço para remover acesso a certas funções?

      1.    koratsuki dito

        Devo essa parte a você, embora ache que só deva rodar como sudo / root, programas que são confiáveis, ou seja, vêm do seu repo ...

      2.    yukiteru dito

        Lembro-me de ter lido que existe uma maneira de habilitar os recursos de root em algum manual do GNU / Linux e UNIX, se eu encontrar, vou colocá-la 😀

      3.    palhaço dito

        e gaiolas de chown para executar binários desconhecidos?

    3.    yukiteru dito

      Usar sudo o tempo todo é muito melhor.

    4.    elav. dito

      Ou você pode usar o sudo, mas limitando o tempo em que a senha é lembrada.

  4.   Kevin Rodrigues dito

    Ferramentas semelhantes que utilizo para monitorar o pc, "iotop" como um substituto para "iostat", "htop" excelente "gerenciador de tarefas", "iftop" monitoramento de largura de banda.

  5.   monitorlinux dito

    muitos vão achar que isso é exagerado, mas já vi ataques para incluir um servidor em um botnet.

    https://twitter.com/monitolinux/status/594235592260636672/photo/1

    ps: mendigos chineses e suas tentativas de hackear meu servidor.

  6.   palhaço dito

    algo que também é conveniente é usar gaiolas de chown para os serviços, então se por algum motivo eles forem atacados não comprometerão o sistema.

  7.   diabo dito

    Usar o comando ps também é excelente para monitoramento e pode fazer parte das ações para verificar falhas de segurança. executando ps -ef lista todos os processos, é semelhante ao top, porém mostra algumas diferenças. a instalação do iptraf é outra ferramenta que pode funcionar.

  8.   Claudio J. Conceição Certeza dito

    Boa contribuição.

    Eu acrescentaria: SELinux ou Apparmor, dependendo da distro, sempre habilitado.

    Por experiência própria, percebi que não é uma boa prática desabilitar esses componentes. Quase sempre o fazemos quando vamos instalar ou configurar um serviço, com a desculpa de que funciona sem problemas, quando na verdade o que devemos fazer é aprender a manuseá-los para permitir esse serviço.

    Uma saudação.

  9.   GnuLinux ?? dito

    1.Como criptografar todo o sistema de arquivos? Vale a pena??
    2. Ele precisa ser descriptografado toda vez que o sistema for atualizado?
    3. A criptografia de todo o sistema de arquivos da máquina é o mesmo que criptografar qualquer outro arquivo?

    1.    yukiteru dito

      Como você mostra que sabe do que está falando?

  10.   NauTiluS dito

    Além disso, você pode criar gaiolas e até mesmo vários usuários. Embora fazer isso dê mais trabalho, mas se algo aconteceu, e você tinha uma cópia anterior dessa pasta, é só bater e cantar.

  11.   toño dito

    A melhor e mais conveniente política de segurança é não ser paranóico.
    Experimente, é infalível.

  12.   Angelbenitas dito

    Estou usando csf e ao desbloquear um cliente que perdeu sua senha em algum acesso, isso atrasa o processo, mas atrasa. É normal?

    Estou procurando o comando para desbloquear do ssh ... qualquer sugestão