Я использую opensmtpd, и все в порядке.
Конечно, я не использую открытый ретранслятор и строго контролирую, как почта отправляется через почтовый сервер.
Однако мой личный почтовый инструмент работает на другой виртуальной машине на том же физическом сервере, что и виртуальная машина opensmtpd. Это одна и та же машина, просто разные виртуальные машины и, конечно же, разные IP-адреса.
Могу ли я пропустить все сложные механизмы аутентификации и просто сказать opensmtpd: "Пересылать почту от ЭТОТ Айпи адрес" ?
Мне бы очень хотелось просто добавить одну строку в мою конфигурацию, указав один IP-адрес, который разрешен, как если бы это был локальный почтовый сервер, и не нужно было делать сложные конфигурации как на стороне клиента, так и на стороне сервера ...
Я никогда не использовал OpenSMTPD, но SMTPD.CONF (5) кажется весьма полезным. Есть даже пример того, как настроить сервер для отклонения сообщений, если они не поступают с IP-адресов, перечисленных как другие ретрансляторы.
Сайты, которые принимают нелокальные сообщения, могут сократить объем получаемого спама, отклоняя поддельные сообщения, которые утверждают, что они поступают из локального домена. В следующем примере используется таблица со списком другие реле для указания IP-адресов ретрансляторов, которые могут законно отправлять почту с доменом владельца в качестве отправителя.
table aliases file:/etc/mail/aliases table other-relays file:/etc/mail/other-relays listen on lo0 listen on egress action "local_mail" mbox alias <aliases> action "outbound" relay match for local action "local_mail" match for any action "outbound" match !from src <other-relays> mail-from "@example.com" for any \ reject match from any for domain example.com action "local_mail"
В match for any
довольно раскрепощен и требует match !from src <other-relays>
чтобы ограничить его еще больше, но поскольку вы запросили одну строку конфигурации, вы можете использовать противоположный подход. Например. если вы хотите внести в белый список, т.е. разрешить неограниченную ретрансляцию из 198.51.100.10
, ты мог:
match from src 198.51.100.10 for any relay
Если это не работает напрямую, вам может потребоваться сначала указать простое действие реле:
action "outbound" relay
match from src 198.51.100.10 for any action "outbound"
Это:
match
параметры действие названиеЕсли хотя бы один почтовый конверт соответствует параметрам одного действие матча директиву, получите входящее сообщение, поместите копию в каждый соответствующий конверт и атомарно сохраните конверты в почтовую катушку для последующей обработки соответствующим диспетчером название.
[!] from src
адрес |<address>
Укажите, что сеанс может происходить только из адреса строки или таблицы списка, который может быть конкретным адресом или подсетью, выраженной в нотации CIDR.
[!] for any
Укажите, что сеанс может быть адресован любому месту назначения.
action
название метод [параметры]
relay
Передайте сообщение другому SMTP-серверу.