Безопасно ли жестко указывать путь /etc/ для конфигураций в приложении, в котором я участвую?

См. эту часть документации Exim.

Короче говоря, доставка электронной почты довольно сильно зависит от MXзаписей системы DNS, и в /etc/hostsдля них нет эквивалента.

По-видимому, тестовая функция Exim сначала принимает во внимание, сконфигурирован ли Exim для использования смарт-хоста или нет; если это так, он сообщит адрес (es )смарт-хоста, о котором он знает. (Конфигурация Smarthost = старая терминология электронной почты на основе sendmail-, означающая «не пытайтесь доставлять напрямую на адрес назначения -, вместо этого отправляйте всю исходящую электронную почту на один конкретный сервер для дальнейшей обработки».)

Если конфигурация смарт-хоста не используется, тест проверяет наличие записи DNS MXдля rpi.mydomain.com. Если запись MX имеет следующую форму, она интерпретируется как явно означающая «нет службы электронной почты для этого домена», и поиск завершается:

rpi.mydomain.com. IN MX 0.

Если в DNS нет записи MX и rpi.mydomain.comуказан в элементе конфигурации exim mx_domains, поиск также завершится ошибкой "mail is undeliverable".

Если вышеуказанное еще не завершило поиск, exim проверит записи Aили AAAAв DNS.

В вашей собственной сети, если вы хотите использовать rpi.mydomain.comв качестве почтового сервера, вы должны настроить локальный Exim для использования его в качестве смарт-хоста. Вот соответствующая часть документации Exim. Короче говоря,замените блок конфигурации почтового маршрутизатора по умолчанию dnslookupна этот блок конфигурации Exim:

send_to_smart_host:
  driver = manualroute
  route_list = !+local_domains rpi.mydomain.com
  transport = remote_smtp

Это должно привести к тому, что вся почта, адресатом которой не является локальный почтовый ящик /var/mail/, будет отправляться на rpi.mydomain.comдля дальнейшей обработки.

Что ж, -почтовые серверы, работающие надлежащим образом, уже давно должны иметь действующую регистрацию DNS, а также действительную обратную регистрацию DNS, которая согласуется с прямой записью DNS.

Как правило, когда почтовый сервер получает входящее соединение, которое не аутентифицировано и исходит не из известной -доверенной сети, почтовый сервер, как правило, сначала выполняет обратный поиск в DNS, чтобы узнать имя системы, пытающейся подключить. Затем он выполняет прямой поиск DNS, используя это имя, и сравнивает полученный IP-адрес (es )с фактическим исходным IP-адресом соединения. Если совпадений нет или нет обратной записи DNS, предполагается, что соединение исходит от возможного спамера, и может быть подвергнуто более строгим проверкам или полностью отключено. Это одна из старейших антиспамовых проверок -.

0
18.07.2020, 20:33
1 ответ

Делая это, вы изменяете фундаментальную природу приложения, делая его более не самостоятельным -в пределах одного дерева файловой системы. Это может быть не то, чего хотят ваши пользователи; ни о том, как ваше приложение используется, распространяется и устанавливается на практике. Если ваше приложение устанавливает себя -, содержащееся из одного архива, в отдельное поддерево файловой системы -как установку «переносимого приложения» , вы нарушите это. Если документация по вашему приложению рекомендует это как лучший способ установки , вы нарушаете работу многих ваших пользователей.

Вы создаете проблемы с поддержкой и увеличиваете расходы на поддержку (из-за устаревших файлов конфигурации, неожиданного общего доступа к файлам конфигурации, неожиданных событий при обновлении программного обеспечения и других )по единственной причине, кроме использования частей стандарта Linux, которые Многие операционные системы на основе Linux -намеренно не используют и это даже не относится к операционным системам, отличным от -Linux , таким как MacOS, на которые нацелена ваша программа.

Будьте осторожны.

Также имейте в виду, что /etcне всегда является тем местом, которое операционные системы хотят использовать для подобных вещей. Например, в BSD приложения часто настраиваются на использование /usr/local/etc, а не /etc.

Точно так же стандарты FreeDesktop.org предпочитают, чтобы приложения использовали каталоги, указанные переменными среды XDG_CONFIG_HOMEи XDG_CONFIG_DIRS.

По иронии судьбы, вы на самом деле отходите от модели "переносимого приложения" вашего приложения, не делая вещи более переносимыми.

И вы даже не выполняете работу по синхронизации документов.

Дополнительная литература

2
18.03.2021, 23:18

Теги

Похожие вопросы