Как узнать IP-адрес отправителя вашего домена в Exim?

Как правильно настроить конфигурацию в exim.conf, чтобы проверить, присутствует ли домен моего сервера в качестве отправителя в письмах, и затем убедиться, что IP-адрес соответствует моему? Я уже понимаю, как искать в файле /etc/exim/domains, но не уверен, как осуществить проверку IP-адреса. Возможно, я что-то делаю неправильно, или существует настройка в конфигурации, которая не работает должным образом?
  • 14 октября 2024 г. 12:12
Ответы на вопрос 2
Чтобы узнать IP-адрес отправителя вашего домена в Exim и настроить соответствующие проверки, вам нужно использовать несколько элементов конфигурации Exim.

Exim позволяет настроить фильтрацию и проверку адресов с помощью ACL (Access Control Lists). Вы можете настроить правила, которые будут проверять, соответствует ли IP-адрес отправителя вашим требованиям.

### Настройка проверки IP-адреса отправителя в Exim

1. **Откройте файл конфигурации Exim.**
   Обычно он находится по пути `/etc/exim/exim.conf` или в `/etc/exim4/exim.conf.template`, в зависимости от вашей системы.

2. **Добавьте ACL для проверки отправителя.**
   Найдите секцию `acl_check_rcpt` или создайте новую, если она отсутствует. Пример:

   ```exim
   acl_check_rcpt {
       # Проверьте, является ли отправитель вашим доменом
       accept  authenticated = *

       # Проверьте IP-адрес отправителя
       deny   sender = @yourdomain.com
              condition = ${if !eq{${remote_host_address}}{YOUR.IP.ADDRESS}{true}{false}}
              message = Your IP address is not authorized to send mail.

       # Разрешить остальные
       accept  finish
   }
   ```

   Замените `yourdomain.com` на ваш домен и `YOUR.IP.ADDRESS` на ваш фактический IP-адрес.

3. **Проверка конфигурации.**
   После внесения изменений убедитесь, что конфигурация правильная, выполнив команду для проверки:

   ```bash
   exim -bV
   ```

4. **Перезапустите Exim.**
   Чтобы изменения вступили в силу, перезапустите службу Exim:

   ```bash
   sudo systemctl restart exim
   ```

### Дополнительные советы:

- Если ваш сервер имеет несколько IP-адресов, рассмотрите возможность использования проверки диапазона IP-адресов или CIDR, чтобы учесть все авторизованные IP-адреса.

- Включите логирование, чтобы видеть, как обрабатываются входящие письма. Это поможет вам отладить конфигурацию.

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

### Получение IP-адреса отправителя

Чтобы просто увидеть, какие IP-адреса отправляют почту через ваш сервер, вы можете посмотреть логи Exim, которые обычно находятся в `/var/log/exim/main.log`. В этих логах вы сможете увидеть информацию о входящих и исходящих сообщениях, включая IP-адреса отправителей.

```bash
tail -f /var/log/exim/main.log
```

Эти шаги помогут вам правильно настроить Exim для проверки IP-адреса отправителя вашего домена и отладить возникающие проблемы.
Окей, смотри, тебе нужно настроить Exim так, чтобы он чекал IP-адреса для доменов, которые ты считаешь своими. Если домен твой, но письмо пришло с левого IP — блокируем его к чертям. 

Для этого тебе нужно создать файл /etc/exim/domainips, где пропишешь свои домены и их реальные IP-адреса, типа так:
mydomain.com: 192.168.1.1
anotherdomain.com: 192.168.1.2

Теперь, в конфиге Exim (exim.conf) добавь вот такую проверку:
acl_check_mail:
  accept  condition = ${if eq{$sender_address_domain}{+local_domains}{yes}{no}}
         condition = ${if match_ip{$sender_host_address}{lookup{$sender_address_domain}lsearch{/etc/exim/domainips}}{yes}{no}}
         message = "Чувак, IP не соответствует домену $sender_address_domain"


Если настроишь всё так, то любой шлак с поддельных IP больше не проскочит.
Похожие вопросы