Гайд: Исправление ошибк w003 в hMailServer: отключаем External to External в диапазоне Internet
Подробный гайд по предупреждению/ошибке:
w003 critical: hMailServer is configured to allow deliveries from external to external accounts in the IP range Internet
Если коротко:
В hMailServer в диапазоне Internet включена опция External to external. Это означает, что сервер потенциально может работать как open relay — принимать от внешних отправителей письма и пересылать их внешним получателям. Это критично, потому что такой сервер могут использовать для рассылки спама, а ваш IP может попасть в блэклисты.
1. Что означает эта ошибка
В hMailServer есть диапазоны IP-адресов:
- Settings → Advanced → IP ranges
Для диапазона обычно есть флажки:
- Allow deliveries from Local to local
- Allow deliveries from Local to external
- Allow deliveries from External to local
- Allow deliveries from External to external
- Require SMTP authentication
Диапазон Internet обычно охватывает все адреса:
0.0.0.0 - 255.255.255.255
Если в нем включено:
External to external
То hMailServer разрешает сценарий:
внешний отправитель → hMailServer → внешний получатель
без необходимости быть вашим локальным пользователем или без нормальной аутентификации. Это классический признак открытого релея.
Пример опасной ситуации:
Кто-то из интернета подключается к вашему SMTP.
MAIL FROM: spammer@example.net
RCPT TO: victim@gmail.com
Если сервер отвечает 250 OK и принимает письмо для пересылки наружу — это open relay.
2. Что нужно сделать в первую очередь
Самое простое и правильное исправление:
Отключить External to external для диапазона Internet.
Если вам не нужно специально релеить чужую почту между внешними доменами, эта опция должна быть выключена.
3. Подготовка перед изменениями
Перед правкой настроек сделайте резервную копию.
Если используется встроенная SQLite-база hMailServer
Обычно путь может быть таким:
C:\Program Files\hMailServer\Database\hMailServer.sqlite
или:
C:\Program Files (x86)\hMailServer\Database\hMailServer.sqlite
Пример резервной копии через PowerShell от администратора:
$stamp = Get-Date -Format yyyyMMdd_HHmm
$backup = "C:\Backup\hMailServer_$stamp"
New-Item -ItemType Directory -Force -Path $backup | Out-Null
Stop-Service -Name hMailServer -Force
Copy-Item -Path "C:\Program Files\hMailServer\Database" -Destination $backup -Recurse
Copy-Item -Path "C:\Program Files\hMailServer\Bin\hMailServer.ini" -Destination $backup -ErrorAction SilentlyContinue
Start-Service -Name hMailServer
Если у вас MySQL/MSSQL-база, сделайте соответствующий дамп базы.
Также полезно сделать скриншот текущих настроек:
Settings → Advanced → IP ranges
4. Быстрое исправление через hMailServer Administrator
Шаг 1. Откройте hMailServer Administrator
Запустите от администратора:
hMailServer Administrator
Подключитесь к вашему серверу.
Шаг 2. Перейдите в IP-диапазоны
Путь:
Settings
→ Advanced
→ IP ranges
Шаг 3. Найдите диапазон Internet
Обычно он называется:
Internet
и имеет адреса:
Lower IP: 0.0.0.0
Upper IP: 255.255.255.255
Шаг 4. Отключите External to external
В настройках диапазона Internet снимите галку:
Allow deliveries from External to external
Для большинства типовых серверов безопасная настройка диапазона Internet такая:
| Параметр | Рекомендуемое значение | Комментарий |
|---|---|---|
| Local to local | Выключено или по необходимости | Обычно не нужно для анонимного интернета |
| Local to external | Выключено для анонимного интернета | Если нужно — только с аутентификацией/ограничениями |
| External to local | Включено | Чтобы принимать входящую почту из интернета для ваших доменов |
| External to external | Выключено | Главное исправление ошибки W003 |
| Require SMTP authentication | Осторожно | Может блокировать входящую почту извне, если применяется ко всем типам доставки |
Шаг 5. Сохраните изменения
Нажмите:
Save
Шаг 6. Перезапустите службу hMailServer
Хотя иногда настройки применяются сразу, лучше перезапустить службу.
Через PowerShell:
Restart-Service -Name hMailServer
Если служба называется иначе:
Get-Service *hMail*
Затем:
Restart-Service -Name ИМЯ_СЛУЖБЫ
Или через services.msc:
services.msc → hMailServer → Restart
5. Рекомендуемая безопасная конфигурация
Вариант A. Сервер принимает почту из интернета для своих доменов
Это самый частый сценарий.
Диапазон Internet:
Lower IP: 0.0.0.0
Upper IP: 255.255.255.255
Флажки:
Allow deliveries from Local to local: off
Allow deliveries from Local to external: off или только если точно понимаете, зачем
Allow deliveries from External to local: on
Allow deliveries from External to external: off
Require SMTP authentication: off, если нужно принимать входящие из интернета
Почему External to local должен быть включен?
Потому что иначе сервер не сможет принимать письма из интернета вида:
отправитель@gmail.com → user@ваш-домен.ru
Вариант B. Есть доверенная локальная сеть
Если ваши пользователи или устройства отправляют почту из локальной сети, создайте отдельный диапазон для LAN.
Пример диапазона:
Name: LAN
Lower IP: 192.168.0.0
Upper IP: 192.168.255.255
Или более узко:
Lower IP: 192.168.1.0
Upper IP: 192.168.1.255
Флажки для LAN:
Allow deliveries from Local to local: on
Allow deliveries from Local to external: on
Allow deliveries from External to local: on, если нужно
Allow deliveries from External to external: off
Require SMTP authentication: желательно on, если клиенты поддерживают
Важно: у LAN-диапазона приоритет должен быть выше, чем у Internet.
В разных версиях hMailServer логика приоритета обычно такая:
чем выше приоритет, тем важнее диапазон
Например:
Internet priority: 10
LAN priority: 20 или выше
Если после настройки что-то работает не так, проверьте приоритеты.
Вариант C. Нужна отправка почты удаленными пользователями через SMTP AUTH
Если пользователи отправляют почту из интернета через Outlook, Thunderbird, телефон и т.п., обычно используется SMTP-аутентификация.
Главное правило:
Не включайте External to external для всего интернета только ради отправки пользователей.
Обычно отправка вашего пользователя наружу — это не External to external, а сценарий:
local to external
потому что пользователь является вашим локальным/аутентифицированным пользователем.
Безопасный подход:
1. В диапазоне Internet оставить:
External to local: on
External to external: off
2. Для отправки пользователей использовать SMTP AUTH в почтовых клиентах.
3. Если отправка не работает, проверить:
- включена ли SMTP-аутентификация в клиенте;
- правильный ли логин/пароль;
- порт 25, 587 или другой назначенный SMTP-порт;
- разрешен ли
Local to externalв нужном IP-диапазоне; - не блокирует ли
Require SMTP authenticationвходящую почту извне.
6. Если вам действительно нужен External to external
Иногда External to external нужен специально, например:
- сервер работает как relay для партнерской системы;
- сервер является промежуточным для определенного внешнего сервиса;
- есть интеграция, которая должна отправлять почту через ваш сервер для внешних доменов. В этом случае не оставляйте такую возможность для всего интернета.
Правильнее:
- Создать отдельный IP-диапазон только под нужный IP.
- Включить для него минимум необходимых прав.
- Обязательно использовать SMTP-аутентификацию, если возможно.
- Ограничить доступ firewall'ом.
- Мониторить логи и очередь.
Пример отдельного диапазона:
Name: Partner Relay
Lower IP: 203.0.113.10
Upper IP: 203.0.113.10
Флажки:
Allow deliveries from External to external: on
Require SMTP authentication: on
И приоритет выше, чем у Internet. Но повторюсь: для обычного почтового сервера своих доменов External to external в диапазоне Internet быть не должно.
7. Проверка после исправления
7.1. Повторите диагностику hMailServer
Запустите тот же диагностический тест, который выдал ошибку:
w003 critical
Ошибка должна исчезнуть.
7.2. Проверка open relay вручную через telnet
Проверку лучше делать с внешнего хоста, например:
- с VPS;
- с мобильного интернета;
- из другой сети;
- через внешний SMTP-тест. Из вашей же локальной сети проверка может быть некорректной из-за NAT, firewall и локальных разрешений.
Подключение:
telnet mail.example.com 25
Дальше:
EHLO test.example.net
MAIL FROM:<test@example.net>
RCPT TO:<external-user@gmail.com>
Если сервер настроен правильно, на RCPT TO для внешнего получателя он должен отказать.
Примеры нормальных отказов:
530 Authentication required
550 Relaying not allowed
554 Relay access denied
Если получаете:
250 OK
и письмо принимается для пересылки внешнему получателю — проблема не устранена.
7.3. Проверка входящей почты
Проверьте, что сервер все еще принимает письма для ваших доменов:
EHLO test.example.net
MAIL FROM:<test@example.net>
RCPT TO:<user@ваш-домен.ru>
Ожидаемый ответ:
250 OK
Если здесь отказ, значит вы случайно выключили:
External to local
или включили обязательную SMTP-аутентификацию там, где она блокирует входящие.
7.4. Проверка через swaks
Если есть Linux-машина или WSL, удобна утилита swaks.
Проверка входящей доставки:
swaks \
--server mail.example.com \
--port 25 \
--from external@example.net \
--to user@ваш-домен.ru
Проверка попытки relay:
swaks \
--server mail.example.com \
--port 25 \
--from external@example.net \
--to external-user@gmail.com
Вторая команда должна завершиться отказом.
7.5. Проверка отправки аутентифицированным пользователем
Пример через swaks:
swaks \
--server mail.example.com \
--port 587 \
--from user@ваш-домен.ru \
--to external-user@gmail.com \
--auth LOGIN \
--auth-user user@ваш-домен.ru
Если используется порт 25 вместо 587, укажите:
--port 25
Но для клиентской отправки лучше использовать отдельный submission-порт, обычно 587, если он настроен.
8. Где смотреть логи
Если после изменений что-то сломалось, включите и смотрите SMTP-логи.
В hMailServer Administrator:
Settings → Advanced → Logging
Включите логирование SMTP.
Логи обычно находятся здесь:
C:\Program Files\hMailServer\Logs
или:
C:\Program Files (x86)\hMailServer\Logs
Ищите строки:
530
550
554
authentication
relay
denied
Также полезно смотреть очередь:
hMailServer Administrator → Status → Delivery queue
Если в очереди много исходящих писем на внешние домены, которые вы не отправляли, это может признаком того, что сервер ранее использовали как open relay.
9. Если ошибка W003 не исчезает
Проверьте следующее.
9.1. Вы изменили именно диапазон Internet
Убедитесь, что изменили диапазон:
0.0.0.0 - 255.255.255.255
или любой другой диапазон, который фактически покрывает весь интернет.
9.2. Есть другой диапазон с более высоким приоритетом
Возможно, есть другой диапазон с приоритетом выше, где также включено:
External to external
Проверьте все диапазоны.
9.3. Есть IPv6-диапазон
Если используется IPv6, проверьте, нет ли диапазона вроде:
::/0
или:
0000:0000:0000:0000:0000:0000:0000:0000 - ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
Для него тоже нужно отключить:
External to external
9.4. Служба не перезапущена
Выполните:
Restart-Service -Name hMailServer
И проверьте статус:
Get-Service -Name hMailServer
9.5. Изменения не сохранились
Иногда банально не нажали:
Save
или не хватило прав администратора.
10. Типовые безопасные схемы
Схема 1. Только прием почты извне
Диапазон Internet:
External to local: on
Local to local: off
Local to external: off
External to external: off
Require SMTP authentication: off
Отправка пользователями наружу должна идти через отдельный доверенный диапазон или через SMTP AUTH/VPN.
Схема 2. Локальная сеть может отправлять без пароля
Диапазон Internet:
External to local: on
Local to local: off
Local to external: off
External to external: off
Диапазон LAN:
Local to local: on
Local to external: on
External to local: on
External to external: off
Это подходит для принтеров, сканеров, внутренних систем, но лучше по возможности переходить на SMTP-аутентификацию.
Схема 3. Удаленные пользователи отправляют через SMTP AUTH
Диапазон Internet:
External to local: on
External to external: off
Почтовые клиенты пользователей:
Outgoing server requires authentication: yes
Username: user@ваш-домен.ru
Password: пароль
Если отправка не работает, аккуратно проверить, нужен ли в вашей версии hMailServer флаг:
Local to external
для диапазона Internet. Но External to external включать не нужно.
11. Что делать, если сервер уже использовали как open relay
Если диагностика показала W003, и сервер какое-то время был доступен из интернета с External to external, желательно проверить последствия.
Признаки злоупотребления
- большая очередь исходящей почты;
- много писем на внешние домены в логах;
- жалобы abuse;
- попадание IP в Spamhaus, Barracuda, SpamCop и другие блэклисты;
- высокая нагрузка на SMTP;
- неизвестные получатели в логах.
Действия
- Немедленно отключите
External to external. - Перезапустите службу hMailServer.
- Проверьте очередь и удалите спам.
- Проверьте логи.
- Смените пароли почтовых ящиков, если есть подозрение на компрометацию.
- Проверьте, нет ли слабых паролей.
- Проверьте, не добавлены ли левые домены, аккаунты или relay-правила.
- Если IP попал в блэклист, после устранения причины подавайте заявку на delisting.
12. Дополнительные меры защиты
Чтобы снизить риски в будущем:
12.1. Не открывайте лишние порты
Для почты обычно нужны:
25 SMTP server-to-server
587 SMTP submission для клиентов, если используется
465 SMTPS, если настроен
143 IMAP, если используется
993 IMAPS, если используется
110 POP3, если используется
995 POP3S, если используется
Не публикуйте наружу ненужные порты.
12.2. Используйте SMTP-аутентификацию для клиентов
В Outlook/Thunderbird/телефонах должно быть включено:
Outgoing server requires authentication
12.3. Настройте SPF, DKIM, DMARC
Для вашего домена:
- SPF разрешает отправку только вашим серверам.
- DKIM подписывает письма.
- DMARC задает политику обработки поддельных писем. Это не исправляет W003 напрямую, но защищает ваш домен от подделки.
12.4. Включите Auto-ban, если доступно
В hMailServer есть механизмы ограничения попыток подбора паролей:
Settings → Advanced → Auto-ban
Настройте осторожно, чтобы не заблокировать легитимные серверы.
12.5. Обновляйте hMailServer и Windows
Устаревшее ПО может быть использовано для атак.
13. Итоговая минимальная инструкция
Если нужно быстро убрать ошибку:
1. Откройте:
hMailServer Administrator
2. Перейдите:
Settings → Advanced → IP ranges
3. Откройте диапазон:
Internet
4. Снимите:
Allow deliveries from External to external
5. Убедитесь, что для приема почты включено:
Allow deliveries from External to local
6. Сохраните.
7. Перезапустите службу:
Restart-Service -Name hMailServer
8. Проверьте диагностику и relay-тест извне.
14. Главная мысль
Ошибка:
w003 critical hMailServer is configured to allow deliveries from external to external accounts in the IP range internet
лечится так:
Internet → External to external = off
Не оставляйте External to external для всего интернета. Если relay действительно нужен, делайте это только для конкретного IP, с аутентификацией и под контролем.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.