В настоящее время вся наша электронная почта хранится на сервере Dovecot IMAP во внутренней сети. Клиентские машины в сети могут подключаться и получать доступ к своей электронной почте.
Теперь мы хотим разрешить определенным пользователям подключаться и просматривать свою электронную почту извне с помощью IMAP. В настоящее время у нас есть межсетевой экран / маршрутизатор с выделенным (неиспользуемым) портом DMZ. На мой взгляд, у нас есть два варианта:
Есть ли у кого-нибудь предложения / комментарии по достоинствам любого из подходов?
Мне трудно думать о каких-либо преимуществах чтения при наличии дополнительного обратного прокси в DMZ трехстороннего межсетевого экрана, поскольку он в любом случае будет эффективно выполнять переадресацию портов. ... Или я что-то упускаю?
Перенаправление портов IMAP из Интернета в локальную сеть означает добавление довольно избирательного правила перенаправления. У вас нет уродливых вещей, таких как динамическое назначение портов, происходящее на стороне сервера (как в случае с такими протоколами, как FTP или MSRPC). На мой взгляд, подверженность LAN минимальна. Вы полагаетесь на стек IP на вашем сервере IMAP, чтобы не делать ничего глупого (поскольку вы предоставляете незапрашиваемый входящий IP-доступ к серверу), и вы полагаетесь на само программное обеспечение сервера IMAP, чтобы не делать ничего глупого.
Сценарий DMZ, который вы описываете, вы ограничиваете прямое IP-соединение для сервера IMAP с Интернетом, и вы ограничиваете степень, в которой сервер IMAP, делая что-то глупое, может подвергнуть вас риску. Вы жертвуете риском прямого IP-подключения к серверу IMAP с прямым IP-подключением к прокси-серверу IMAP, и вы полагаетесь на программное обеспечение прокси-сервера IMAP, чтобы не сделать ничего глупого. В этом сценарии все еще существует вероятность того, что уязвимость в сервере IMAP может быть использована через прокси-сервер IMAP, в зависимости от того, насколько «отслеживающим» состояние прокси-сервера IMAP и насколько он выполняет «проверку работоспособности».
На мой взгляд, подход DMZ добавляет движущиеся части и сложность, не добавляя реальной безопасности. Я думаю, вам будет лучше перенаправить порт в локальную сеть и использовать усилия, которые вы бы потратили на прокси-сервер DMZ / IMAP, чтобы убедиться, что у вас есть хорошая регистрация для сервера IMAP, политики паролей / блокировки, которые защита от взлома паролей методом грубой силы и механизм предупреждений, позволяющий узнать, если вы видите неожиданный трафик на сервер IMAP (анализ «никогда не видел»).
Я столкнулся с аналогичной проблемой и решил ее, добавив столбец allow_remote_login в свою базу данных аутентификации, а затем изменил команду sql для аутентификации пользователей на:
SELECT email as user, password FROM users WHERE email='%u' AND (allow_remote OR %a != 144);
В dovecot.conf я изменил строку прослушивания на список портов 143 и 144; где 144 - это тот, на который направлена переадресация внешнего порта:
listen = *:143 [::]:143 *:144 [::]:144