Gerenciar usuários SSH com o backend do MySQL

6

existe a possibilidade de usar um banco de dados (mysql) para gerenciar credenciais de login SSH em vez de / etc / passwd?

Eu sei que eu poderia usar o ldap, mas eu só quero gerenciamento de usuário simples e ldap parece um pouco sobrecarregado para este trabalho.

    
por W0bble 27.06.2014 / 15:42

2 respostas

9

Sim. A autenticação do Linux é baseada em torno dos módulos de autenticação conectáveis (PAM), o que permite alternar facilmente de um backend de autenticação para outro. Simplesmente instale e configure um módulo PAM MySQL, com um banco de dados de usuário correspondente no MySQL.

Os pacotes pré-compilados estão disponíveis no arquivo EPEL do RHEL / CentOS, pois pam_mysql e pam-mysql devem estar disponível no Debian / Ubuntu.

    
por 27.06.2014 / 16:00
4

Embora o PAM-MySQL possa gerenciar as credenciais de login, ele é uma solução incompleta, já que ele apenas lida com a parte de autenticação. Não cria uma conta de usuário no sistema. Por exemplo:

Em outras palavras, o PAM-MySQL é um substituto para /etc/shadow , não para /etc/passwd . Você precisará criar uma entrada /etc/passwd e uma entrada MySQL para cada usuário, ou suplementar o PAM-MySQL com NSS MySQL .

O LDAP é, de fato, a melhor ferramenta para o trabalho, pois você poderá centralizar as informações da conta do usuário em um só lugar. Eu não acredito que seja overpowered. Em vez disso, é um tipo de banco de dados especialmente projetado para gerenciar contas de usuário, portanto, a melhor prática seria simplesmente usar o LDAP como uma solução padrão em vez de hackear um sistema não-padrão com o MySQL. O OpenLDAP ou o 389 Directory Server seria um banco de dados de usuário mais apropriado que o MySQL. (Ambos podem ser configurados para usar um back-end de SQL, se você insistir.)

    
por 27.06.2014 / 20:16

Tags