23 Dicas de segurança de endurecimento do servidor CENTOS - Parte 2

23 Dicas de segurança de endurecimento do servidor CENTOS - Parte 2

Continuando o tutorial anterior sobre como proteger e endurecer o servidor CentOS, neste artigo, discutiremos outras dicas de segurança que serão apresentadas na lista de verificação abaixo.

Requisitos

  1. 20 Dicas de segurança de endurecimento do servidor CENTOS - Parte 1

21. Desativar comandos inúteis suid e sgid

Se o setuid e setGid Os bits são definidos em programas binários, esses comandos podem executar tarefas com outros direitos de usuário ou grupo, como raiz privilégios que podem expor sérios problemas de segurança.

Freqüentemente, os ataques de sobrevivência de buffer podem explorar esses binários executáveis ​​para executar o código não autorizado com os direitos de um usuário de energia raiz.

# find / -path / proc -prune -o -type f \ (-perm -4000 -o -perm -2000 \) -exec ls -l  \; 

Para despertar o setuid Bit execute o comando abaixo:

# chmod u-s/path/to/binary_file 

Para despertar o bit Setgid, execute o comando abaixo:

# chmod g-s/path/to/binary_file 

22. Verifique se há arquivos e diretórios não de propriedade

Arquivos ou diretórios não pertencentes a uma conta válida devem ser excluídos ou atribuídos com permissões de um usuário e grupo.

Emitir o comando encontre abaixo para listar arquivos ou diretórios sem usuário e grupo.

# find / -nouser -o -Nogroup -exec ls -l  \; 

23. Liste arquivos escritos mundiais

Manter um arquivo criativo mundial no sistema pode ser perigoso devido ao fato de que qualquer um pode modificá-los. Executar o comando abaixo para exibir arquivos criáveis ​​por palavras, exceto Symblinks, que são sempre criados mundiais.

# find / -path / proc -prune -o -perm -2 ! -Tipo L -ls 

24. Crie senhas fortes

Crie uma senha de um mínimo de oito caracteres. A senha deve conter dígitos, caracteres especiais e cartas maiúsculas. Usar pwmake Para gerar uma senha de 128 bits de /Dev/Urandom arquivo.

# pwmake 128 

25. Aplicar uma política de senha forte

Forçar o sistema a usar senhas fortes, adicionando a linha abaixo em /etc/pam.D/Passwd arquivo.

Senha necessária Pam_pwquality.Então tente novamente = 3 

Adicionando a linha acima, a senha inserida não pode conter mais do que 3 personagens em uma sequência monotônica, como ABCD, e mais de 3 caracteres consecutivos idênticos, como 1111.

Para forçar os usuários a usar uma senha com um comprimento mínimo de 8 Personagens, incluindo todas as classes de caracteres, verificação de força para seqüências de personagens e caracteres consecutivos, adicione as seguintes linhas ao /etc/segurança/pwquality.conf arquivo.

minlen = 8 minclass = 4 maxsequence = 3 maxRepeat = 3 

26. Use o envelhecimento de senha

O comando de gage pode ser usado para o envelhecimento de senha do usuário. Para definir a senha de um usuário para expirar 45 dias, use o seguinte comando:

# chage -m 45 nome de usuário 

Para desativar o tempo de expiração de senha, use o comando:

# chage -m -1 nome de usuário 

Forçar a expiração imediata da senha (o usuário deve alterar a senha no próximo login) executando o seguinte comando:

# chage -d 0 nome de usuário 

27. Contas de bloqueio

Contas de usuário podem ser bloqueadas executando o Passwd ou comando UserMod:

# passwd -l nome de usuário # usermod -l nome de usuário 

Para desbloquear as contas, use o -você opção para Passwd comando e -você opção para Usermod.

Artigo relacionado: Como bloquear as contas de usuário após falhas as tentativas de login

28. Evite o acesso do shell de contas

Para impedir uma conta do sistema (conta ordinária ou conta de serviço) para obter acesso a um shell de bash, altere o shell de raiz para /usr/sbin/nologin ou /bin/false no /etc/passwd Arquivo emitindo o comando abaixo:

# UserMod -s /bin /False Nome de usuário 

Para alterar o shell ao criar um novo usuário emitir o seguinte comando:

# userAdd -s/usr/sbin/nologin nome de usuário 
Artigo relacionado: Aprenda 15 exemplos do comando "userAdd" no Linux

29. Bloquear o console do usuário virtual com o VLOCK

vlock é um programa usado para travar uma sessão múltipla no Linux Console. Instale o programa e comece a bloquear sua sessão de terminal executando os comandos abaixo:

# yum install vlock # vlock 

30. Use um sistema centralizado para gerenciar contas e autenticação

O uso de um sistema de autenticação centralizado pode simplificar bastante o gerenciamento e o controle de contas. Serviços que podem oferecer esse tipo de gerenciamento de contas são IPA Server, LDAP, Kerberos, Microsoft Active Directory, NIS, Samba ADS ou WinBind.

Alguns desses serviços são, por padrão.

Artigo relacionado: Configurar o servidor NFS com autenticação de usuário baseada em Kerberos no Linux

31. Montagem somente leitura de força da mídia USB

Usando BlockDev Utilitário, você pode forçar toda a mídia removível a ser montada como somente leitura. Por exemplo, crie um novo udev arquivo de configuração nomeado 80-Readonly-USB.regras no /etc/udev/regras.d/ Diretório com o seguinte conteúdo:

Subsistema == "bloco", attrs removable == "1", execute program = "/sbin/blockdev - -setro %n" 

Em seguida, aplique a regra com o comando abaixo:

# udevadm Control -reload 
Artigo relacionado: Como usar o UDEV para detecção e gerenciamento de dispositivos no Linux

32. Desativando o acesso de raiz via TTY

Para impedir que a conta raiz execute o login do sistema através de todos os dispositivos de console (TTY), apague o conteúdo do arquivo Securetty digitando o seguinte terminal de comando prompt como root.

# cp /etc /securetty /etc /securetty.bak # gato /dev /null> /etc /securetty 

Lembre -se de que esta regra não se aplica às sessões de login SSH
Para evitar o login de raiz via ssh editar o arquivo /etc/ssh/sshd_config e adicione a linha abaixo:

Permitrootlogina no 
Artigo relacionado: Como proteger e endurecer o servidor OpenSsh

33. Use POSIX ACLs para expandir as permissões do sistema

As listas de controle de acesso podem definir direitos de acesso para mais do que apenas um usuário ou grupo e podem especificar direitos para programas, processos, arquivos e diretórios. Se você definir a ACL em um diretório, seus descendentes herdarão os mesmos direitos automaticamente.

Por exemplo,

# setfacl -m u: usuário: arquivo rw # getfacl arquivo 
Artigo relacionado: Configurar cotas de LCA e disco para usuários/grupos no Linux

34. Configurar Selinux no modo de execução

O Selinux O aprimoramento da Linux Kernel implementa a política de controle de acesso obrigatório (MAC), permitindo que os usuários defina uma política de segurança que forneça permissões granulares para todos os usuários, programas, processos, arquivos e dispositivos.

As decisões de controle de acesso do kernel são baseadas em todo o contexto relevante de segurança e não na identidade autenticada do usuário.

Obter Selinux O status e a aplicação da política executam os comandos abaixo:

# getenforce # setenforce 1 # sestatus 
Artigo relacionado: Setup Política de controle de acesso obrigatório com Selinux

35. Instale utilitários adicionais do Selinux

Instalar Policicoreutils-python pacote que fornece utilitários python adicionais para operar Selinux: Audit2allow, AUDIT2WHY, Chcat, e Semanage.

Para exibir todos os valores booleanos, juntamente com uma breve descrição, use o seguinte comando:

# semanage boolean -l 

Por exemplo, para exibir e definir o valor de httpd_enable_ftp_server, Execute o comando abaixo:

# getSeBool httpd_enable_ftp_server 

Para tornar o valor de um booleano persistir nas reinicializações, especifique o -P opção para SetSeBool, Conforme ilustrado no exemplo a seguir:

# setsebool -p httpd_enable_ftp_server 

36. Use servidor de log centralizado

Configure rsyslog Daemon para enviar mensagens de log de utilitários sensíveis para um servidor de log centralizado. Além disso, monitore os arquivos de log com a ajuda do LogWatch Utility.

O envio de mensagens de log para um servidor remoto garante que, uma vez comprometidas o sistema, os usuários maliciosos não podem ocultar completamente sua atividade, deixando sempre traços em arquivos de log remotos.

Artigo relacionado: 4 melhores ferramentas de monitoramento e gerenciamento do Linux Log

37. Ativar contabilidade do processo

Ativar contabilidade do processo instalando o utilitário PSACCT e use LastComm comando para exibir informações sobre comandos executados anteriormente, conforme registrado no arquivo de contabilidade do sistema e SA Para resumir informações sobre comandos executados anteriormente, conforme registrado no arquivo de contabilidade do sistema.

38. Endurecimento /etc /sysctl.conf

Use as seguintes regras dos parâmetros do kernel para proteger o sistema:

Desativando o roteamento de origem

líquido.IPv4.conf.todos.aceit_source_route = 0 

Desative o encaminhamento IPv4

IPv4.conf.todos.encaminhamento = 0 

Desative o IPv6

líquido.IPv6.conf.todos.desabille_ipv6 = 1 rede.IPv6.conf.padrão.desabille_ipv6 = 1 rede.IPv6.conf.lo.desabille_ipv6 = 1 

Desative a aceitação e o envio de pacotes redirecionados do ICMP, a menos que seja necessário especificamente.

líquido.IPv4.conf.todos.aceit_redirects = 0 rede.IPv4.conf.todos.seguro_redirects = 0 rede.IPv4.conf.todos.send_redirects = 0 

Desativar o encaminhamento do caminho reverso

líquido.IPv4.conf.todos.rp_filter = 2 

Ignore todas as solicitações de eco do ICMP (definido como 1 para ativar)

líquido.IPv4.ICMP_ECHO_IGNORE_ALL = 0 

39. Use serviços VPN para acessar suas instalações em redes públicas desprotegidas

Sempre use VPN Serviços para as operadoras acessarem remotamente as instalações da LAN pela Internet. Esses tipos de serviços podem ser configurados usando uma solução de código aberto gratuito, como o OpenVPN, ou usando uma solução proprietária, como a Cisco VPN (Instale vpnc Utilitário de linha de comando fornecido pelos repositórios EPEL).

Artigo relacionado: Instale o OpenVPN Server com clientes Windows em CentOS

40. Executar varredura externa do sistema

Avalie a segurança do seu sistema para as vulnerabilidades, digitalizando o sistema a partir de pontos remotos sobre sua LAN usando ferramentas específicas, como:

  1. NMAP - Scanner de rede 29 Exemplos de comando NMAP
  2. Nessus - Scanner de segurança
  3. Openvas - usado para digitalizar vulnerabilidades e para gerenciamento abrangente de vulnerabilidades.
  4. Nikto - Uma excelente interface de gateway comum (CGI) Script Scanner Scan vulnerabilidade na Web no Linux

41. Proteger o sistema internamente

Use a proteção interna do sistema contra vírus, rootkits, malware e, como uma boa prática, instale sistemas de detecção de intrusões que podem detectar atividade não autorizada (ataques de DDoS, varreduras de portas), como:

  1. Auxiliar - Ambiente avançado de detecção de intrusões - http: // assistente.sourceforge.líquido/
  2. CLAMAV - Scanner antivírus https: // www.CLAMAV.líquido
  3. Rkhunter - scanner de rootkit
  4. Lynis - Ferramenta de auditoria e digitalização de segurança para Linux
  5. Tripwire - Integridade de segurança e dados http: // www.Tripwire.coma
  6. Fail2ban - Prevenção de rede de intrusão
  7. OSSEC - (HIDS) Sistema de Detecção de Intrusão baseado em hospedeiro http: // ossec.Github.io/
  8. Mod_security - Proteger ataques brutos ou ataques DDoS

42. Modificar variáveis ​​de ambiente do usuário

Acrescentar data e tempo formato para armazenar a execução dos comandos emitindo o comando abaixo:

# echo 'histimeformat = "%d/%m/%y%t"' >> .bashrc ' 

Força para gravar instantaneamente Histfile Toda vez que um comando é digitado (em vez de logout):

# echo 'Prompt_Command = "History -a"' >> .Bashrc 

Limite a sessão de login do tempo limite. Aparo automaticamente a concha quando nenhuma atividade é realizada durante um período de tempo ocioso. Muito útil para desconectar automaticamente as sessões SSH.

# echo 'tmout = 120' >> .Bashrc 

Aplique todas as regras executando:

# fonte .Bashrc 
Artigo relacionado: Defina variáveis ​​de ambiente do usuário no Linux

43. Dados de backup

Use utilitários de backup, como alcatrão, gato, rsync, scp, instantâneos LVM, etc. para armazenar uma cópia do seu sistema, de preferência externa, no caso de uma falha no sistema.

Se o sistema for comprometido, você poderá realizar a restauração de dados de backups anteriores.

Por fim, não se esqueça que, não importa quantas medidas de segurança e contra-medidas você tome para manter seu sistema seguro, você nunca estará 100% completamente seguro, desde que sua máquina esteja conectada e ligada.