EXIM SMTP позволяет отправлять письма без входа в систему / аутентификации через telnet на любой домен.

Вопрос или проблема

Мне стыдно, но мне нужно попросить о помощи. Мой сервер используется для отправки спама, я выяснил, что могу просто подключиться через telnet (редактирование: с любого сервера в офисе, дома и даже напрямую из CMD/Putty Telnet), добавить mail from/rcpt to/data без какой-либо авторизации и отправить письма с моего домена на любой внешний почтовый ящик (например, на gmail). Я использую Exim/SMTP/CSF на Debian и имею базовые знания о них.

root@vps:~# telnet example.com 25
Trying 19x.10x.8x.1xx...
Connected to example.com.
Escape character is '^]'.
220 serwer.example.com.pl ESMTP Exim 4.91 Wed, 19 Sep 2018 10:48:05 
+0200
mail from: [email protected]
250 OK
rcpt to: [email protected]
250 Accepted
data
354 Enter message, ending with "." on a line by itself
test data.
.
250 OK id=1g2Y9t-0003yu-Of

Я хочу предотвратить это и заставить любую форму аутентификации, чтобы предотвратить отправку спама с моего сервера на внешние почтовые ящики. Мой второй сервер, пытаясь сделать то же самое, после команды “rcpt to”: возвращает “550 authentication required”. Я думаю, что это правильное поведение, чтобы нельзя было отправлять спам.

В моем exim.conf у меня пустые параметры реле (я пытался указать IP моего сервера или адрес localhost, но безуспешно):

addresslist whitelist_senders = lsearch;/etc/virtual/whitelist_senders
addresslist blacklist_senders = lsearch;/etc/virtual/blacklist_senders
domainlist blacklist_domains = lsearch;/etc/virtual/blacklist_domains
domainlist whitelist_domains = lsearch;/etc/virtual/whitelist_domains
domainlist local_domains = lsearch;/etc/virtual/domains
domainlist relay_domains = 
domainlist use_rbl_domains = lsearch;/etc/virtual/use_rbl_domains
hostlist auth_relay_hosts = 
hostlist bad_sender_hosts = lsearch;/etc/virtual/bad_sender_hosts
hostlist bad_sender_hosts_ip = net-lsearch;/etc/virtual/bad_sender_hosts
hostlist relay_hosts = 
hostlist whitelist_hosts = lsearch;/etc/virtual/whitelist_hosts
hostlist whitelist_hosts_ip = net-lsearch;/etc/virtual/whitelist_hosts

Секция аутентификации

begin authenticators

plain:
    driver = plaintext
    public_name = PLAIN
    server_prompts = :
    server_condition = "${perl{smtpauth}}"
    server_set_id = $2

login:
    driver = plaintext
    public_name = LOGIN
    server_prompts = "Username:: : Password::"
    server_condition = "${perl{smtpauth}}"
    server_set_id = $1

Как мне защитить свой SMTP сокет? Как я могу заставить процесс “требуется аутентификация”? Я пытался сравнить .conf файлы с моим вторым сервером, но, несмотря на 2 дня попыток, мне не повезло.

Удалите * из dc_relay. Это позволяет любому отправлять письма.
В файле /etc/exim4/exim4.conf.localmacros добавьте следующее

MAIN_TLS_ENABLE = true

Пожалуйста, добавьте server_mail_auth_condition проверьте здесь

Для получения дополнительной информации об SMTP аутентификации

Ответ или решение

Для решения проблемы с отправкой спама через сервер Exim SMTP без аутентификации, необходимо тщательно настроить конфигурацию Exim и применить меры безопасности. Давайте разберем основные шаги и рекомендации, которые помогут вам предотвратить несанкционированный доступ и отправку почты.

1. Анализ текущей конфигурации

Согласно вашей информации, текущая конфигурация Exim не ограничивает отправку почты от любых пользователей. Это приводит к тому, что любой может подключиться к вашему серверу через Telnet и отправить почту без аутентификации. Убедитесь, что следующие параметры правильно настроены в вашем конфигурационном файле Exim:

  • Параметры relay_hosts: Убедитесь, что relay_hosts пуст, что предотвращает реле для любых неавторизованных пользователей.
  • Параметры dc_relay: Убедитесь, что в файле /etc/exim4/exim4.conf.localmacros удален * из dc_relay, иначе любой сможет отправлять почту без аутентификации.

2. Включение аутентификации

Для того чтобы заставить всех пользователей проходить аутентификацию перед отправкой почты, необходимо добавить следующие параметры в конфигурацию Exim:

Настройка секции аутентификации:

Убедитесь, что секция аутентификации в вашем конфигурационном файле настроена правильно:

begin authenticators

plain:
    driver = plaintext
    public_name = PLAIN
    server_prompts = :
    server_condition = "${perl{smtpauth}}"
    server_set_id = $2

login:
    driver = plaintext
    public_name = LOGIN
    server_prompts = "Username:: : Password::"
    server_condition = "${perl{smtpauth}}"
    server_set_id = $1

Эти параметры указывают на использование механизмов PLAIN и LOGIN для аутентификации, обеспечивая стандартный процесс авторизации.

3. Добавление условий аутентификации

Обязательно добавьте условие аутентификации в ваше рабочее окружение. Это можно сделать через параметр server_mail_auth_condition в соответствующем разделе конфигурации Exim.

4. Настройка TLS

Для обеспечения безопасности соединения, рекомендуется включить TLS. Добавьте следующее в ваш конфигурационный файл:

MAIN_TLS_ENABLE = true

Это дополнительно защитит ваши попытки подключения и предотвратит перехват данных аутентификации.

5. Тестирование конфигурации

После выполнения всех изменений, важно протестировать конфигурацию Exim. Попробуйте подключиться через Telnet и проверить, потребует ли сервер аутентификацию перед отправкой почты. Должен появиться ответ с требованием ввести учетные данные для доступа.

6. Мониторинг и журналирование

Не забывайте про мониторинг и анализ лог файлов Exim (/var/log/exim4/mainlog), чтобы отслеживать подозрительную активность и попытки несанкционированного доступа.

Заключение

Правильная настройка конфигурации Exim и внедрение аутентификации позволит вам защитить ваш сервер от злоумышленников и улучшить общую безопасность почтовой системы. Если вы следуете всем перечисленным рекомендациям, вы сможете минимизировать риск отправки спама и несанкционированного доступа к вашему серверу.

Оцените материал
Добавить комментарий

Капча загружается...