У меня 50 пользователей электронной почты (виртуальных пользователей), использующих Dovecot, Postfix и Squirrelmail с CentOS 6.0. Я хочу разрешить некоторым пользователям иметь глобальный доступ к POP и IMAP, а для остальных пользователей - только из моей локальной сети.
Я пробовал использовать Dovecot allow_nets
функции, но это не соответствует моим требованиям.
Если я разрешаю 127.0.0.1 в allow_nets, пользователь с ограничениями сможет получить доступ к веб-почте глобально. Если я отключу 127.0.0.1 в allow_nets, ограниченный пользователь также не сможет получить доступ к веб-почте из моей локальной сети. Ниже моя конфигурация.
restricted virtual email user (/etc/dovecot/passwd file)
xyz@abc.com:{CRAM-MD5}encrypted pass::::::allow_nets=127.0.0.1,192.168.1.55/32
global virtual email user (/etc/dovecot/passwd-file)
xxx@xxx.xxx.xxx:{CRAM-MD5}encrypted pass
При доступе к почте с помощью веб-почты подключение к Dovecot осуществляется напрямую из SquirrelMail, запущенного на тем же машина, и поэтому всегда исходят из 127.0.0.1 независимо от того, где находится пользователь. Dovecot не имеет возможности узнать, откуда пользователь обращается к SquirrelMail. Поэтому вам необходимо реализовать ограничение для веб-почты в самом SquirrelMail (или, например, перед SquirrelMail с помощью iptables).
Я нашел плагин squirrelmail под названием ip_restriction
что помогает ограничить аутентификацию на основе IP.