Configure o intervalo de nomes de usuários virtuais com a mesma senha

2

Eu agradeceria se houvesse alguém que possa me avisar se a seguinte configuração de FTP for possível. Preciso de um intervalo de usuários somente leitura que siga esse padrão:

(_[0-9]{15})

, por exemplo, _012345678901234 que usará a mesma senha sem criar todas as combinações possíveis. O caso de uso é o seguinte: nós provisionamos os dispositivos e eles estão usando o FTP para baixar a nova versão do firmware. No log eu posso ver o nome de usuário e senha usados para baixar arquivos. O objetivo principal é ter o número de série do dispositivo no log.

Não encontrei uma maneira de especificar o caractere curinga para o nome de usuário. Atualmente, temos apenas acesso anônimo, mas obviamente não é bom o suficiente.

    
por ruruskyi 21.07.2014 / 19:44

1 resposta

2

No ProFTPD, não há uma maneira direta de especificar um caractere curinga para um nome de usuário. No entanto, você pode usar mod_sql para autenticar seus usuários e personalizar as consultas usadas para obter informações do usuário.

Exemplo de consultas personalizadas retiradas do ProFTPD docs :

SQLAuthenticate users groups usersetfast
SQLUserInfo custom:/get-user-by-name/get-user-by-id/get-user-names/get-all-users
SQLNamedQuery get-user-by-name SELECT "userid, passwd, uid, gid, homedir, shell FROM users WHERE userid = '%U'"
SQLNamedQuery get-user-by-id SELECT "userid, passwd, uid, gid, homedir, shell FROM users WHERE uid = %{0}"
SQLNamedQuery get-user-names SELECT "userid FROM users"
SQLNamedQuery get-all-users SELECT "userid, passwd, uid, gid, homedir, shell FROM users" 

No seu caso, a consulta get-user-by-name poderia ser algo como:

SQLNamedQuery get-user-by-name SELECT "'%U', passwd, uid, gid, homedir, shell FROM users WHERE userid = SUBSTRING_INDEX('%U', '_', 1) AND SUBSTRING_INDEX('%U', '_', -1) RLIKE '_[0-9]{15}'"

Por favor, note que esta não é uma solução testada. Apenas uma ideia de uma maneira possível de como isso poderia ser alcançado.

    
por 21.07.2014 / 20:45