Como restringir os usuários acessar em uma máquina Linux

Como restringir os usuários acessar em uma máquina Linux

Objetivo

Aprenda a restringir os usuários Acesso em uma máquina Linux

Sistema operacional e versões de software

  • Sistema operacional: - Todas as distribuições Linux

Requisitos

  • Permissões de raiz

Dificuldade

FÁCIL

Convenções

  • # - requer que os comandos Linux sejam executados com privilégios de raiz também
    diretamente como usuário root ou por uso de sudo comando
  • $ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Introdução

Neste tutorial, vamos aprender a restringir o acesso a uma máquina Linux, interagindo com dois arquivos: /etc/securetty, que vamos especificar de que console é possível fazer login diretamente como root e /etc/segurança/acesso.conf, em que podemos definir algumas regras para restringir o acesso a usuários ou grupos especificados de certas origens.

Restringir o login da raiz

A primeira coisa que vamos fazer, é para aprender a editar o /etc/securetty arquivo para permitir o acesso direto de raiz apenas em alguns consoles específicos. Vamos dar uma olhada no arquivo: é assim que se parece em uma máquina do CentOS7:



Console VC/1 VC/2 VC/3 VC/4 VC/5 VC/6 VC/7 VC/8 VC/9 VC/10 VC/11 TTY1 TTY2 TTY3 TTY4 TTY5 TTY6 TTY7 TTY8 TTY9 TTY10 TTY1 tty1 hvc0 hvc1 hvc2 hvc3 hvc4 hvc5 hvc6 hvc7 hvsi0 hvsi1 hvsi2 xvc0 

O que vemos lá é apenas uma lista de todos os terminais dos quais o acesso direto como o usuário root é permitido. Vamos nos concentrar no tty dispositivos por enquanto. Abra o arquivo com um editor de texto e comente o tty1 entrada:

[…] #Tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 tty9 tty10 tty11 […] 

Salvar e sair do editor de texto. Agora, se mudarmos para o primeiro tty pressionando Ctrl + alt + 1 ou correndo CHVT 1, E tente fazer login como root, teremos o seguinte resultado:

Como esperado, o sistema nos negou acesso como raiz do TTY especificado. Para obter privilégios root e realizar tarefas administrativas, devemos fazer login como um usuário normal e depois usar sudo ou su (ou login de outro tty, se permitido).

Esteja ciente de que isso não afetará a capacidade de fazer login como root ao usar o SSH. Para evitar esse comportamento específico, você deve configurar o servidor SSH, modificando o /etc/ssh/sshd_config arquivar e definir o Permitrootlogina diretiva para não



Regras de acesso à configuração em/etc/segurança/acesso.conf

Se o /etc/securetty O arquivo nos permite especificar de qual terminal é possível fazer login diretamente como root, configurando regras de acesso no /etc/segurança/acesso.conf Arquivo, podemos permitir ou negar o acesso a usuários ou grupos específicos de origens específicas.

Insira o pam_access.então módulo

Antes de configurar nossas regras, precisamos modificar /etc/pam.d/login, para adicionar o pam_access.então módulo que permitirá Pam Para escanear o acesso.conf arquivar as regras que definiremos. Use seu editor de texto favorito para modificar o arquivo para que ele pareça desta maneira:

#%PAM-1.0 auth [user_unknown = ignorar sucesso = ok ignorar = ignorar default = bad] pam_securetty.Então, auth substack system-auth auth inclui uma conta pós-login necessária pam_nologin.Portanto, a conta necessária Pam_access.Portanto, a conta inclui senha do sistema-auth incluem System-Auth # pam_selinux.Tão perto deve ser a primeira sessão de regra de sessão exigida Pam_selinux.Sessão tão próxima necessária Pam_loginuid.Então sessão opcional pam_console.Então # pam_selinux.Portanto, o aberto deve ser seguido apenas por sessões a serem executadas na sessão de contexto do usuário exigida Pam_selinux.Sessão tão aberta exigiu pam_namespace.Então sessão opcional pam_keyinit.Portanto, a Sessão de Revogação da Força inclui sessão de System -Auth inclui pós -login -Session opcional Pam_CK_Connector.então 

O que fizemos é adicionar o conta necessária pam_access.então linha no final do conta seção. Agora que configuramos Pam Podemos começar a falar sobre regras de acesso.

A sintaxe das regras

Para definir uma regra no acesso.conf arquivo, devemos respeitar uma sintaxe muito simples e clara. Uma regra é composta por três seções, separadas por um cólon:

Permissão: Usuários: Origens

A primeira parte da regra especifica as permissões e consiste em um - ou + Sinal: o primeiro cria o que podemos chamar de regra de 'negar', enquanto este especifica uma regra em que as permissões de acesso são concedidas.

Na segunda parte, fornecemos os assuntos da regra. A seção consiste em uma lista de grupos ou nomes de login. Para evitar conflitos entre usuários e grupos que podem ser nomeados da mesma maneira, as entradas do grupo podem ser especificadas entre colchetes, mas apenas se o nodefgroup a opção está definida no /etc/pam.d/login arquivo que modificamos acima, no final da linha, adicionamos.

A terceira parte da regra especifica a fonte da qual o acesso é permitido ou negado, sendo: um ou mais ttys, nomes de host, endereços de host ou domínios.



Palavras-chave

A sintaxe da regra vamos usar algumas palavras -chave poderosas. Primeiro de tudo, temos TODOS. Essa palavra -chave sempre corresponderá: por exemplo, quando usada na segunda seção, corresponderá a todos os usuários ou grupos possíveis ou quando usado no terceiro, todas as fontes possíveis.

O NENHUM palavra -chave tem o efeito exatamente oposto de TODOS, e LOCAL, que tem sentido apenas no origens Seção da regra, corresponderá a todas as strings que não contêm um '.'. Finalmente uma palavra -chave muito poderosa é EXCETO que nos permite especificar exceções a uma regra definida.

Alguns exemplos

O arquivo fornece alguns exemplos úteis, vejamos alguns deles. Primeiro de tudo, temos o seguinte:

- : Todos, exceto raiz: tty1

Essa linha, permitia obter o resultado oposto que obtivemos antes, modificando o /etc/securetty Arquivo: Primeiro de tudo, temos o - sinal, o que significa que é um negar regra. Na próxima seção, separada por um cólon, temos Todos, exceto raiz,que especifica que a regra deve ser aplicada a todos os usuários, exceto raiz, E na terceira seção, vemos que a regra especificada é válida apenas quando alguém tenta acessar tty1.

Outro exemplo, desta vez com vários nomes de usuário:

-: wsbscaro wsbsecr wsbspac wsbsym wscosor wstaiwde: all

A regra proíbe o acesso aos usuários WSBScaro, WSBSECR, WSBSPAC, WSBSYM, WSCOSOR e WSTAIWDE de todas as fontes (veja o TODOS palavra -chave em ação)

Algo mais complexo. Desta vez, a regra nega o acesso a todos os usuários que não são membros do grupo de rodas em local Logins:

-: Todos exceto (roda): local

Finalmente, um exemplo que especifica uma regra para um login remoto:

+ : raiz: 192.168.200.1 192.168.200.4 192.168.200.9

Como devemos agora entender, esta regra permite raiz Para acessar o sistema apenas a partir dos endereços IP especificados.

Um caso de teste

Podemos verificar o que dissemos acima com um caso de teste: vamos construir uma regra para negar o acesso a egdoc (minha conta neste sistema) de tty1 e anexá -lo no final do /etc/segurança/acesso.conf arquivo:

-: egdoc: tty1

Agora, se mudarmos para tty1 E tente fazer login, obtemos essa resposta rude do sistema:

Observe que a ordem das regras especificadas no /etc/segurança/acesso.conf O arquivo é realmente importante, pois as regras são avaliadas em ordem de aparência.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Arquivos de configuração do Linux: os 30 primeiros mais importantes
  • Download do Linux
  • Linux pode obter vírus? Explorando a vulnerabilidade do Linux…
  • Melhor distro Linux para desenvolvedores
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Comandos Linux: os 20 comandos mais importantes que você precisa para…
  • Instale Arch Linux na estação de trabalho VMware
  • Comandos básicos do Linux