nologin em / etc / shells é perigoso .. POR QUE?

20

Eu encontrei isso na internet, enquanto colocava um servidor FTP no FreeBSD.

Putting nologin into /etc/shells potentially creates a back door by which those accounts can be used with FTP.

(consulte: link )

Alguém pode explicar por que isso acontece? E por que pegar uma cópia do nologin e colocá-la no / etc / shells resolve esse problema?

    
por RobAu 07.11.2011 / 08:10

2 respostas

21

/etc/shells contém uma lista de binários que o sistema considera shells (irrestritos). Isso significa que qualquer uso que tenha configurado um desses binários como seu shell é considerado como tendo acesso total ao sistema (significando que eles podem executar qualquer comando, desde que tenham a permissão apropriada).

O resultado mais direto é que eles podem usar chsh para alterar o shell configurado.

Se um usuário tem um shell configurado que não é nesta lista, então o sistema assume que ele é de alguma forma restrito. No caso de chsh , significa que o usuário não pode alterar esse valor.

Outros programas podem consultar essa lista e aplicar restrições semelhantes.

Portanto, colocando nologin em /etc/shells você efetivamente diz "qualquer usuário que tenha nologin como seu shell é considerado um usuário completo e irrestrito". Isso é quase certamente o oposto do que nologin pretendia dizer .

    
por 07.11.2011 / 09:49
8

ftp não fornece um shell padrão, ele fornece uma interface ftp. Os usuários que possuem uma conta, mesmo que seu shell aponte para o nologin, ainda podem acessar a interface do ftp. Além disso, eles ainda poderão acessar quaisquer outros serviços fornecidos que também não requeiram um shell (por exemplo, se você tiver uma interface da Web http, etc., que dependa da autenticação da conta, mas não do acesso ao shell). Isso não é necessariamente uma porta dos fundos para o seu sistema, mas é uma porta dos fundos para os serviços.

    
por 07.11.2011 / 08:23