Permitir IMAP para Roundcube e como serviço externo apenas para alguns usuários especiais. Como configurar

1

É fácil configurar uma consulta passdb especial no dovecot para restringir o acesso do IMAP a determinados usuários, por exemplo, veja esta documentação no wiki dovecot .

Mas quando eu uso um webmailer como o Roundcube e quero permitir que todos os outros usuários o usem (e não apenas os usuários que eu permiti usar o IMAP pelo método acima) essa abordagem falha.

O que seria uma ideia de configuração em funcionamento?

O webmailer está no mesmo servidor que o dovecot. Talvez uma instrução SQL-passdb especial trabalhada junto com um campo extra allow_nets para o endereço local para todos os usuários somente webmailer? Ou uma opção especial no próprio Roundcube?

    
por initall 01.04.2014 / 09:51

2 respostas

1

Eu encontrei uma maneira de não entrar em uma sobrecarga extra_fields e usar uma variável simples, '% r'. Ele resolve para o ip remoto, então eu posso usar algo como

WHERE active = '1'\
   AND ('%s' = 'pop3' OR (imap_allowed = true OR '%r' = '1.2.3.4'))

O caso padrão pop3 é testado primeiro (via '% s') e depois

  1. quem está sempre autorizado a IMAP? (coluna imap_allowed na tabela)
  2. ou quem usa o webmailer (ip remoto == webmailer ip)
por 01.04.2014 / 11:25
1

Você poderia fazer algum tipo de instrução CASE em sua consulta MySQL, com base no campo allow_nets , algo como SELECT password CASE WHEN allow_nets = '127.0.0.1' OR <whatever you're using> THEN allow_imap = 'true' ELSE allow_imap = 'false' END FROM users WHERE userid = '%u' and active='1'

Olhe para a instrução CASE, tenho certeza que a minha não vai funcionar, mas a ideia deve ser sólida.

    
por 01.04.2014 / 10:38