23 Dicas de segurança de endurecimento do servidor CENTOS - Parte 2
- 956
- 156
- Maurice Champlin
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
- 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.
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árioArtigo 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 Linux31. 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 -reloadArtigo 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 noArtigo 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 arquivoArtigo 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 # sestatusArtigo 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 Log37. 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 CentOS40. 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:
- NMAP - Scanner de rede 29 Exemplos de comando NMAP
- Nessus - Scanner de segurança
- Openvas - usado para digitalizar vulnerabilidades e para gerenciamento abrangente de vulnerabilidades.
- 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:
- Auxiliar - Ambiente avançado de detecção de intrusões - http: // assistente.sourceforge.líquido/
- CLAMAV - Scanner antivírus https: // www.CLAMAV.líquido
- Rkhunter - scanner de rootkit
- Lynis - Ferramenta de auditoria e digitalização de segurança para Linux
- Tripwire - Integridade de segurança e dados http: // www.Tripwire.coma
- Fail2ban - Prevenção de rede de intrusão
- OSSEC - (HIDS) Sistema de Detecção de Intrusão baseado em hospedeiro http: // ossec.Github.io/
- 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 .BashrcArtigo 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.
- « Como instalar o PostgreSQL e Pgadmin4 no Ubuntu 20.04
- Configuração do Zimbra Collaboration Suite (ZCS) no RHEL/CENTOS 7/8 »