Por dentro do login no Linux
Posted on jun 08, 2008 under Dicas Linux, Segurança, Sem categoria |Quando executamos o login no linux, várias medidas de segurança são executadas antes de permitir o acesso. Estas medidas podem variar de distribuição para distribuição, mas geralmente são as mesmas.
Login: segundo a documentação Linux é um programa usado para estabelecer uma nova sessão com o sistema. Este programa executa vários checagens antes de permitir acesso mostrarei eles passo a passo.
Primeiro, o login irá verificar se existe o arquivo /etc/nologin este arquivo sinaliza que somente o usuário root pode logar no sistema. Este arquivo é criado quando desligamos a máquina com o comando shutdown. Então quando existir o arquivo /etc/nologin o login irá falhar e o conteúdo do arquivo será mostrado no prompt, somente será aceito que o root faça o login. Exemplo:
vim /etc/nologin Sistema em manutenção tente a partir das 17:00hs Login localhost: marlon Sistema em manutenção tente a partir das 17:00hs Senha: Login incorrect Login localhost:root Sistema em manutenção tente a partir das 17:00hs Senha: localhost ~ #
Segundo, verificar a existência de alguma restrição nos arquivos /etc/usertty e /etc/securetty estes arquivos definem em qual TTY(terminal), pode ser feito o login por usuário ou root respectivamente.
Exemplo:
vim /etc/securetty console tty0 tty1 tty2 tty3 :q
Caso seja necessário proibir que o root faça login em algum dos terminais listados no arquivo, somente coloque # na frente do terminal, comentando a linha.
Após a verificação do password e restrições mostradas acima o login armazena no arquivo /var/log/lastlog o horário que foi executado o login, criando uma entrada no arquivo /var/run/utmp e indicando que o login foi executado com sucesso.
Terceiro, verifica a existência do arquivo .hushlogin dentro do diretório /home do usuário. Caso exista o login será silencioso, não haverá nenhuma mensagem; caso contrário uma seqüência de eventos ocorrerá. As informações serão mostradas ao usuário no terminal, por exemplo informações sobre direitos autorais, seguidas pela mensagem do dia geralmente armazenada no arquivo /etc/motd e por fim a data do último login e sua origem. Mas se você não quiser receber este ruído simplesmente execute o seguinte comando:
touch ~/.hushlogin
Finalmente, se todas as checagem passaram e as restrições foram executadas,o login inicia um shell. Este depende das informações contidas no arquivo (/etc/passwd,NIS,LDAP). O shell possui a opção de ajuste para ser não interativo . Este diretiva geralmente é configurada para usuário de email e ftp, com a opção /bin/true ou /bin/false, que informa se o usuário poderá ou não ter acesso ao shell.
Estou lendo um livro, que tem me inspirado bastante vale a pena ler: Hack Notes: Segurança no Linux e Unix
Se gostaram do post comentem, solicitem assuntos de seu interesse.




junho 9th, 2008 at 17:03
[...] por Marlon Petry (marlonpetryΘgmail·com) - referência [...]
junho 9th, 2008 at 17:32
Muito interessante! O .hushlogin foi uma surpresa para mim.
Parabéns!
junho 9th, 2008 at 18:07
Valeu Diego, obrigado pelo incentivo!
junho 9th, 2008 at 19:30
Legal, não tinha pensado que um “simples” procedimento de login poderia realizar tantas checagens e verificações.
junho 9th, 2008 at 21:29
Eu não sei porque todo mundo prefere o touch para criar aquivos, enquanto a maneira “certa” ( espero que entenda o sentido do “certa ) seria o “>”.
Exemplo:
tuxhome ~/Desktop $ time touch teste.txt
real 0m0.005s
user 0m0.001s
sys 0m0.002s
@tuxhome ~/Desktop $ time > teste1.txt
real 0m0.001s
user 0m0.000s
sys 0m0.000s
Parabéns, ótimo artigo!
junho 9th, 2008 at 21:37
Opa Diogo
Pô da uma diferença boa de tempo.
Vou adotar > para criar arquivos, já usei mas somente com cat,echo,tail desta forma numca tinha utilizado.
Obrigado
junho 9th, 2008 at 22:26
Gostei da dica, tanto do login quanto do livro.
Um abraço.
junho 9th, 2008 at 22:32
Opa Fernando obrigado pelo comentário
Muito legal teu blog http://desconstruindo.eng.br, eu também gosto de hardware embarcado.
junho 10th, 2008 at 19:26
[...] do arquivo será mostrado no prompt, somente será aceito que o root faça o login. Exemplo: view plaincopy to [...]
junho 10th, 2008 at 19:28
touch é feito somente para criar arquivos vazio, nao foi feito para se criar conteudo a um arquivo mesmo, ele nao exige nenhum parametro extra q o > necessita tipo um comando antes.. seria mta perda de tempo fazer echo “” > teste.txt em vez de touch teste.txt ¬¬
junho 11th, 2008 at 2:12
Bom post!
Mas fiquei com uma dúvida: em que ponto do login é lido o arquivo “login.defs” e também quando são carregados os módulos do pam.d?
junho 11th, 2008 at 8:34
Bom dia Marcelo
Em relação a tua dúvida, eu tive a intenção de fazer um post sem mencionar os módulos pam.d porque existe distribuições que não usam. O login busca as configurações dentro do /etc/login.defs. Até tem mais parâmetros que podem ser ajustados como quantas vezes o usuário pode errar a senha, quanto tempo o login deve esperar para mostrar o prompt de login novamente.
julho 5th, 2008 at 8:58
Gostei do informativo sobre como é feito o login, pois está dita de uma forma clara e simples. Congratulations!!!
julho 5th, 2008 at 11:43
Muito obrigado Bosco.