25 dicas de segurança de endurecimento para servidores Linux

25 dicas de segurança de endurecimento para servidores Linux

Todo mundo diz isso Linux é seguro por padrão e concordou com algum extenso (seus tópicos discutíveis). No entanto, o Linux possui modelo de segurança construído por padrão. Precisa ajustá -lo e personalizar conforme sua necessidade, o que pode ajudar a criar um sistema mais seguro. O Linux é mais difícil de gerenciar, mas oferece mais opções de flexibilidade e configuração.

25 dicas de segurança e endurecimento Linux

Protegendo um sistema em uma produção das mãos de hackers e biscoitos é uma tarefa desafiadora para um Administrador do sistema. Este é o nosso primeiro artigo relacionado a “Como proteger a caixa Linux" ou "Endurecendo uma caixa Linux““. Neste post, nós explicaremos 25 dicas e truques úteis Para proteger seu sistema Linux. Espero que as dicas e truques abaixo o ajudem a estender para proteger seu sistema.

1. Segurança do sistema físico

Configure o BIOS Para desativar a inicialização de CD/DVD, Dispositivos externos, Unidade de disquete em BIOS. Em seguida, ativar BIOS senha e também proteger Grub com senha para restringir o acesso físico do seu sistema.

  1. Defina a senha do grub para proteger os servidores Linux

2. Partições de disco

É importante ter partições diferentes para obter maior segurança de dados, caso algum desastre acontecer. Ao criar partições diferentes, os dados podem ser separados e agrupados. Quando ocorre um acidente inesperado, apenas os dados dessa partição serão danificados, enquanto os dados de outras partições sobreviveram. Verifique se você deve ter partições separadas e certifique -se de que os aplicativos de terceiros devem ser instalados em sistemas de arquivos separados em /optar.

/ /boot /usr /var /home /tmp /opt

3. Minimizar os pacotes para minimizar a vulnerabilidade

Você realmente quer todo tipo de serviço instalado?. É recomendável evitar a instalação de pacotes inúteis para evitar vulnerabilidades em pacotes. Isso pode minimizar o risco de que o compromisso de um serviço possa levar ao compromisso de outros serviços. Encontre e remova ou desative serviços indesejados do servidor para minimizar a vulnerabilidade. Use o 'chkconfigComando para descobrir os serviços que estão em execução RUNLEVEL 3.

# /sbin /chkconfig - -list | grep '3: on'

Depois de descobrir que algum serviço indesejado está em execução, desative -os usando o seguinte comando.

# chkconfig serviceName

Use o RPM gerente de pacotes como “yum" ou "apt-get”Ferramentas para listar todos os pacotes instalados em um sistema e removê -los usando o seguinte comando.

# yum -y Remova o nome do pacote
# sudo apt-get Remova o nome do pacote
  1. 5 exemplos de comando chkconfig
  2. 20 exemplos práticos de comandos de RPM
  3. 20 Comandos Linux Yum para gerenciamento de pacotes Linux
  4. 25 comandos apt-get e apt-cache para gerenciar o gerenciamento de pacotes

4. Verifique as portas de rede de audição

Com a ajuda de 'netstat'Comando de rede você pode visualizar todas as portas abertas e programas associados. Como eu disse acima, uso 'chkconfigComando para desativar todos os serviços de rede indesejados do sistema.

# netstat -tulpn
  1. 20 comandos NetStat para gerenciamento de rede no Linux

5. Use Shell Secure (SSH)

Telnet e rlogin Os protocolos usam texto simples, não criptografado, que é a violação de segurança. Ssh é um protocolo seguro que usa a tecnologia de criptografia durante a comunicação com o servidor.

Nunca faça login diretamente como raiz a menos que seja necessário. Usar "sudo”Para executar comandos. sudo são especificados em /etc/sudoers O arquivo também pode ser editado com o “Visudo”Utilitário que abre em Vi editor.

Também é recomendável alterar o padrão SSH 22 Número da porta com outro número de porta de nível superior. Abra o principal Ssh arquivo de configuração e faça alguns parâmetros a seguir para restringir os usuários a acessar.

# vi/etc/ssh/sshd_config
Desative o login da raiz
Permitrootlogina no
Permitir apenas usuários específicos
Nome de usuário de permissões
Use a versão SSH Protocol 2
Protocolo 2
  1. 5 melhores práticas para proteger e proteger o servidor SSH

6. Mantenha o sistema atualizado

Sempre mantenha o sistema atualizado com os últimos releases, correções de segurança e kernel quando estiver disponível.

# yum atualizações # yum check-upate

7. Bloqueio cronjobs

Cron tem seu próprio recurso embutido, onde permite especificar quem pode e quem pode não querer executar empregos. Isso é controlado pelo uso de arquivos chamados /etc/cron.permitir e /etc/cron.negar. Para bloquear um usuário usando CRON, basta adicionar nomes de usuário em Cron.negar e permitir que um usuário execute o CRON adicione Cron.permitir arquivo. Se você deseja desativar todos os usuários de usar Cron, adicione o 'TODOS'linha para Cron.negar arquivo.

# echo tudo >>/etc/cron.negar
  1. 11 exemplos de agendamento cron no Linux

8. Desative o adereço USB para detectar

Muitas vezes acontece que queremos restringir os usuários de usar USB Atenha -se em sistemas para proteger e proteger dados de roubar. Criar um arquivo '/etc/modprobe.d/não-USB'E adicionar a linha abaixo não detectará USB armazenar.

Instale o USB-Storage /Bin /True

9. Ligue o Selinux

Linux com segurança (Selinux) é um mecanismo de segurança de controle de acesso obrigatório fornecido no kernel. Desativar Selinux significa remover o mecanismo de segurança do sistema. Pense duas vezes cuidadosamente antes de remover, se o seu sistema estiver anexado à Internet e acessado pelo público, pense um pouco mais sobre ele.

Selinux fornece três modos básicos de operação e eles são.

  1. Aplicação: Este é o modo padrão que habilita e aplica o Selinux Política de segurança na máquina.
  2. Permissivo: Neste modo, Selinux não aplicará a política de segurança no sistema, apenas avisar e registrar ações. Este modo é muito útil em termo de solução de problemas Selinux assuntos relacionados.
  3. Desabilitado: Selinux está desligado.

Você pode visualizar o status atual de Selinux modo da linha de comando usando 'System-Config-Selinux','getenforce' ou 'SestatusComandos.

# sestatus

Se estiver desativado, habilite Selinux Usando o seguinte comando.

# setenforce aplicação

Também pode ser gerenciado de '/etc/Selinux/Config'arquivo, onde você pode habilitá -lo ou desativá -lo.

10. Remova os desktops KDE/Gnome

Não há necessidade de correr X Janela Desktops como KDE ou GNOMO em seu servidor de lâmpada dedicado. Você pode removê -los ou desativá -los para aumentar a segurança do servidor e do desempenho. Para desativar simples, abra o arquivo '/etc/inittab'e definir o nível de execução para 3. Se você deseja removê -lo completamente do sistema, use o comando abaixo.

# yum groupremove "X Window System"

11. Desligue o IPv6

Se você não está usando um IPv6 protocolo, então você deve desativá -lo porque a maioria das aplicações ou políticas não necessárias IPv6 protocolo e atualmente não é necessário no servidor. Vá para o arquivo de configuração de rede e adicione linhas de acompanhamento para desativá -lo.

# vi/etc/sysconfig/rede
Networking_ipv6 = sem ipv6init = não

12. Restringe os usuários a usar senhas antigas

Isso é muito útil se você deseja que os usuários usem as mesmas senhas antigas. O arquivo de senha antigo está localizado em /etc/segurança/opasswd. Isso pode ser alcançado usando Pam módulo.

Abrir '/etc/pam.D/System-Auth'arquivo em RHEL / CENTOS / FEDORA.

# vi /etc /pam.D/System-Auth

Abrir '/etc/pam.D/Pass-Password'arquivo em Ubuntu/Debian/Linux Mint.

# vi /etc /pam.D/Pass-Password

Adicione a seguinte linha a 'Auth' seção.

Auth PAM_UNIX suficiente.Então Likeauth Nullok

Adicione a seguinte linha a 'senha'Seção para proibir um usuário de reutilizar a última 5 senha dele ou dela.

Senha Pam_unix suficiente.Então Nullok use_authtok md5 shadow lembre = 5

Apenas durar 5 As senhas são lembradas pelo servidor. Se você tentou usar algum dos últimos 5 Senhas antigas, você receberá um erro como.

A senha já foi usada. Escolha outro.

13. Como verificar a expiração da senha do usuário

No Linux, as senhas do usuário são armazenadas em '/etc/sombra'Arquivo em formato criptografado. Para verificar a expiração da senha dos usuários, você precisa usar 'ChanceComando. Ele exibe informações sobre detalhes de expiração de senha junto com a última date de mudança de senha. Esses detalhes são usados ​​pelo sistema para decidir quando um usuário deve alterar sua senha.

Para ver qualquer informação de envelhecimento de qualquer usuário existente, como data de validade e tempo, Use o seguinte comando.

#CHage -L Nome de usuário

Para alterar o envelhecimento de senha de qualquer usuário, use o seguinte comando.

#CHage -M 60 Nome de usuário #CHage -M 60 -M 7 -W 7 Nome de usuário
Parâmetros
  1. -M Defina o número máximo de dias
  2. -m Defina o número mínimo de dias
  3. -C Defina o número de dias de aviso

14. Bloquear e desbloquear a conta manualmente

Os recursos de bloqueio e desbloqueio são muito úteis, em vez de remover uma conta do sistema, você pode travá -lo por uma semana ou um mês. Para bloquear um usuário específico, você pode usar o comando a seguir.

# Passwd -l AccountName

Observação : O usuário bloqueado ainda está disponível para raiz somente usuário. O bloqueio é realizado substituindo a senha criptografada por um (!) corda. Se alguém tentando acessar o sistema usando esta conta, ele receberá um erro semelhante a abaixo.

# SU - Nome da conta Esta conta atualmente não está disponível.

Para desbloquear ou ativar o acesso a uma conta bloqueada, use o comando como. Isso vai remover (!) String com senha criptografada.

# passwd -u AccountName

15. Exibindo senhas mais fortes

Vários usuários usam senhas suaves ou fracas e sua senha pode ser invadida com um baseado no dicionário ou ataques de força bruta. O 'pam_cracklib'Módulo está disponível em Pam (Módulos de autenticação traváveis) pilha de módulos que forçarão o usuário a definir senhas fortes. Abra o seguinte arquivo com um editor.

Leia também:

# vi /etc /pam.D/System-Auth

E adicione linha usando parâmetros de crédito como (lcredit, ucredit, dcrediT e/ou ocredit respectivamente em caso inferior, de casos superiores, dígitos e outros)

/lib/segurança/$ isa/pam_cracklib.Então, tente novamente = 3 minlen = 8 lcredit = -1 ucredit = -2 dcredit = -2 ocredit = -1

16. Ativar iptables (firewall)

É altamente recomendado para ativar Firewall do Linux Para garantir o acesso não autorizado de seus servidores. Aplicar regras em iptables para filtros entrada, extrovertido e encaminhamento pacotes. Podemos especificar o endereço de origem e destino para permitir e negar em específico UDP/TCP número da porta.

  1. Guia e dicas básicas de iptables

17. Desativar Ctrl+Alt+Excluir em Inittab

Na maioria das distribuições Linux, pressionando 'Ctrl-alt-delset ' Will leva seu sistema para reiniciar o processo. Portanto, não é uma boa ideia ter essa opção permitida pelo menos em servidores de produção, se alguém por engano faz isso.

Isso é definido em '/etc/inittab'arquivo, se você olhar de perto nesse arquivo, verá uma linha semelhante a abaixo. Por padrão, a linha não é comentada. Temos que comentar. Esta sinalização de sequência de chave específica desligará um sistema.

# TRAP CTRL -ALT -DELETE #CA :: Ctrlaltdel:/sbin/Shutdown -t3 -r agora

18. Verificando as contas de senhas vazias

Qualquer conta com uma senha vazia significa que é aberto para acesso não autorizado a qualquer pessoa na web e faz parte da segurança de um servidor Linux. Portanto, você deve garantir que todas as contas tenham senhas fortes e ninguém tenha acesso autorizado. Contas de senha vazias são riscos de segurança e isso pode ser facilmente hackeável. Para verificar se havia alguma conta com senha vazia, use o seguinte comando.

# gato /etc /sombra | awk -f: '($ 2 == "") print $ 1'

19. Exibir banner SSH antes do login

É sempre uma ideia melhor ter um banner legal ou banners de segurança com alguns avisos de segurança antes da autenticação SSH. Para definir essas faixas, leia o seguinte artigo.

  1. Exibir mensagem de aviso SSH para os usuários

20. Monitore as atividades do usuário

Se você estiver lidando com muitos usuários, é importante coletar as informações de cada atividades e processos do usuário consumidos por eles e analisá -los posteriormente ou por caso, se houver algum tipo de desempenho, problemas de segurança. Mas como podemos monitorar e coletar informações de atividades do usuário.

Existem duas ferramentas úteis chamadas 'psacct' e 'Acct'são usados ​​para monitorar as atividades e processos do usuário em um sistema. Essas ferramentas são executadas em um plano de fundo do sistema e rastreia continuamente cada atividade do usuário em um sistema e recursos consumidos por serviços como Apache, Mysql, Ssh, Ftp, etc. Para obter mais informações sobre instalação, configuração e uso, visite o URL abaixo.

  1. Monitore a atividade do usuário com comandos PSACCT ou ACCT

21. Revise os registros regularmente

Mover logs no servidor de log dedicado, isso pode impede que os intrusos modifiquem facilmente logs locais. Abaixo estão o nome comum dos arquivos de log padrão do Linux e seu uso:

  1. /var/log/mensagem - Onde logs de sistema inteiro ou registros de atividades atuais estão disponíveis.
  2. /var/log/auth.registro - Logs de autenticação.
  3. /var/log/kern.registro - Loges do kernel.
  4. /var/log/cron.registro - Crond Logs (Cron Job).
  5. /var/log/maillog - Logs do servidor de email.
  6. /var/log/bota.registro - Log de inicialização do sistema.
  7. /var/log/mysqld.registro - Arquivo de log do servidor de banco de dados MySQL.
  8. /var/log/seguro - Log de autenticação.
  9. /var/log/utmp ou /var/log/wtmp : Arquivo de registros de login.
  10. /var/log/yum.loG: Arquivos de log yum.

22. Backup de arquivo importante

Em um sistema de produção, é necessário fazer backup de arquivos importantes e mantê -los no cofre de segurança, no local remoto ou no local para a recuperação de desastres.

23. Nic Bonding

Existem dois tipos de modo em Nic vínculo, preciso mencionar na interface de ligação.

  1. modo = 0 - Robin redondo
  2. modo = 1 - Ativo e backup

Nic Bonding nos ajuda a evitar um único ponto de falha. Em Nic vínculo, nós ligamos dois ou mais Cartões Ethernet de rede juntos e fazer uma única interface virtual onde podemos atribuir IP endereço para conversar com outros servidores. Nossa rede estará disponível no caso de um Cartão NIC está inativo ou indisponível devido a qualquer motivo.

Leia também : Crie a ligação do canal NIC no Linux

24. Mantenha /inicialize como somente leitura

Linux Kernel e seus arquivos relacionados estão em /bota diretório que é por padrão como ler escrever. Mudando para somente leitura reduz o risco de modificação não autorizada de arquivos críticos de inicialização. Para fazer isso, abra “/etc/fstab" arquivo.

# vi /etc /fstab

Adicione a seguinte linha na parte inferior, salve e feche -a.

Rótulo = /bota /bota ext2 padrões, ro 1 2

Observe que você precisa redefinir a alteração para leitura-gravação se precisar atualizar o kernel no futuro.

25. Ignore ICMP ou solicitação de transmissão

Adicione a linha a seguir em “/etc/sysctl.conf”Arquivo para ignorar ping ou transmissão solicitar.

Ignorar a solicitação ICMP: NET.IPv4.ICMP_ECHO_IGNORE_ALL = 1 Ignore a solicitação de transmissão: NET.IPv4.ICMP_ECHO_IGNORE_BROADCASTS = 1

Carregue novas configurações ou alterações, executando o seguinte comando

#SySCTL -P

Se você perdeu alguma dica importante de segurança ou endurecimento na lista acima, ou tem outra dica que precisa ser incluída na lista. Por favor, deixe seus comentários em nossa caixa de comentários. Tecmint está sempre interessado em receber comentários, sugestões e discussão para melhorias.