Мы — долго запрягаем, быстро ездим, и сильно тормозим.

RFC
Программирование
FreeBSD
man
EXIM
  4.62
  4.70
  часть 1
  часть 2
  часть 3
  часть 4
  часть 5
  часть 6
  часть 7
  часть 8
  часть 9
  часть 10
  часть 11
  часть 12
  часть 13
  часть 14
  часть 15
  часть 16
  часть 17
  часть 18
  часть 19
  часть 20
  часть 21
  часть 22
  часть 23
  часть 24
  часть 25
  часть 26
  часть 27
  часть 28
  часть 29
  часть 30
  часть 31
  часть 32
  часть 33
  часть 34
  часть 35
  часть 36
  часть 37
  часть 38
  часть 39
  часть 40
  часть 41
  часть 42
  часть 43
  часть 44
  часть 45
  часть 46
  часть 47
  часть 48
  часть 49
  часть 50
  часть 51
  часть 52
  часть 53
  часть 54
  часть 55
  filter facility


www.lissyara.su —> документация —> EXIM —> 4.70 —> часть 13

13. Запуск даемона, и использование сетевых интерфейсов


    Хост, который связан сетью TCP/IP, может иметь один, или более, аппаратных (физических) сетевых интерфейсов. Каждый из этих интерфейсов может быть сконфигурирован как один или несколько логических интерфейсов, с которыми, фактически, работает программа. Каждый из этих логических интерфейсов ассоциирован с IP-адресом. Кроме того, программное обеспечение TCP/IP поддерживает loopback-интерфейсы (127.0.0.1 в IPv4 и ::1 в IPv6), которые не используют какое-либо физическое устройство. Exim`у требуется информация о интерфейсах хоста для использования в трёх различных обстоятельствах:

  • 1. Когда запущен слушающий даемон, exim должен знать, какие интерфейсы и порты ему нужно слушать.
  • 2. Когда exim роутит адрес, он должен знать, какие IP-адреса ассоциированы с локальными интерфейсами. Это требуется для корректной обработки списков MX, удаляя локальный хост и прочие, с такими же или более высокоприоритетными значениями. Также, exim должен обнаруживать случаи, когда адрес роутится на IP адрес принадлежащий локальному хосту. За исключением опции self в роутере, или если опция allow_localhost в SMTP-транспорте установлена (как соответствующая), это обрабатывается как ошибочная ситуация (наверно, речь идёт о роутинге адреса на свой собственный хост - прим. lissyara).
  • 3. Когда exim коннектится к удалённому хосту, ему может быть необходимым знать, какой интерфейс использовать для исходящего соединения.
       Дефолтовое поведение exim`a, вероятно, будет подходящим, в подавляющем большинстве случаев. Если у вашего хоста лишь один интерфейс, и вы хотите, чтобы все его IP-адреса были обработаны одинаково, и вы используете стандартный SMTP-порт, то вы не должны предпринимать каких-либо специальных действий. Остальная часть этой главы к вам не относится.
       В более сложных ситуациях, вам может быть необходимо слушать только на определённых интерфейсах, или на различных портах, и для этого есть много опций, которые можно использовать для влияния на поведение exim`a. Остальная часть этой главы описывает, как они работают.
       Когда сообщение получено через TCP/IP, интерфейс и порт, которые фактически использовались, установлены в переменных
    $received_ip_address и $received_port.

    13.1 Запуск слушающего даемона

       Когда слушающие даемон запущен (путём опции командной строки -bd), интерфейсы и порты на которых он слушает управляются следующими опциями:

  • daemon_smtp_ports содержит список дефолтовых портов. (для обратной совместимости, эта опция также может быть задана в единственном числе.)
  • local_interfaces содержит список IP адресов интерфейсов, которые слушаются. Каждый элемент также опционально может определять порт.
       В обоих случаях, дефолтовый разделитель списка - двоеточие, но он может быть изменён, как описано в разделе 6.19. Когда используются адреса IPv6, обычно, лучше изменять разделитель, чтобы избежать необходимости удваивать все двоеточия. Например:
    local_interfaces = <; 127.0.0.1 ; \
                          192.168.23.65 ; \
                          ::1 ; \
                          3ffe:ffff:836f::fe86:a061
    

       Есть два различных формата для задания порта с IP-адресом в local_interfaces:
    1. Порт добавлен в адрес, с разделеителем в виде точки. Например, для прослушивания порта 1234 на двух различных адресах:
    local_interfaces = <; 192.168.23.65.1234 ; \
                          3ffe:ffff:836f::fe86:a061.1234
    

    2. IP-адрес заключается в квадратные скобки, и порт добавляется с разделителем в виде двоеточия, например:
    local_interfaces = <; [192.168.23.65]:1234 ; \
                          [3ffe:ffff:836f::fe86:a061]:1234
    

       Когда прот не задан, используется значение daemon_smtp_ports. Дефолтовая настройка содержит лишь один порт:
    daemon_smtp_ports = smtp
    

       Если перечислено более одного порта, каждый интерфейс, для которого не определён его собственный порт, слушает каждый из них. Порты перечисленные в daemon_smtp_ports могут быть идентифицированы по имени (определённому в /etc/services), или по номеру. Однако, когда порты даны в с индивидуальными IP-адресами в local_interfaces, только номера (не имена) могут использоваться.

    13.2 Специальный IP слушающий адреса

       Адрес 0.0.0.0 и ::0 обрабатываются особенно. Они интерпретируются как все интерфейсы IPv4 и все интерфейсы IPv6, соответственно. В каждом случае, exim говорит стеку TCP/IP слушать на всех интерфейсах IPvx вместо установки отдельных слушающих сокетов для каждого интерфейса. Дефолтовое значение local_interfaces:
    local_interfaces = 0.0.0.0
    

    когда exim собран без поддержки IPv6; иначе оно:
    local_interfaces = <; ::0 ; 0.0.0.0
    

       Таким образом, по умолчанию, exim слушает все доступные интерфейсы, на SMTP-порту.

    13.3 Отмена local_interfaces и daemon_smtp_ports

       Опция командной строки -oX может быть использована для переопределения значений daemon_smtp_ports и/или local_interfaces для специфичаского случая даемона. Другой способ сделать это состоял бы в использовании макроса и опции -D. Однако, -oX может использоваться лишь административными пользователями, тогда как модификация рабочей конфигурации, использованием опции -D, разрешена только когда вызывающий - root или пользователь exim`a.
       Значение
    -oX - список значений. Дефолтовый разделитель, двоеточие, может быть изменён обычным способом, если требуется. Если есть элементы не содержащие точек или двоеточий (т.е. не IP адреса), значение daemon_smtp_ports заменяется списком этих элементов. Если тут есть какие-то пункты содержащие точки или двоеточия, значение local_interfaces заменяется этими элементами. Таким образом, например:
    -oX 1225
    

    перезадаёт daemon_smtp_ports, но оставляет local_interfaces неизменным, тогда как
    -oX 192.168.34.5.1125
    

    перезадаёт local_interfaces, оставляя  неизменным daemon_smtp_ports. (Однако, с этого момента local_interfaces не содержит элементов без портов, и в этом примере значение daemon_smtp_ports неуместно.)

    13.4 Поддержка устаревшего протокола SSMTP (или SMTPS)

       Exim поддерживает устаревший протокол SSMTP (также известный как SMTPS), который использовался прежде чем для SNMP была стандартизована команда STARTTLS. Некоторые старый клиенты до сих пор используют этот протокол. Если опция tls_on_connect_ports установлена в список портов, подключение к этим портам должно использовать SSMTP. Обычное использование этой опции - такое:
    tls_on_connect_ports = 465
    

    поскольку 465 - обычный порт используемый старыми клиентами. Также есть опция командной строки -tls-on-connect, которая вынуждает все порты вести себя так, при старте даемона.
       Предупреждение: Установка
    tls_on_connect_ports не вынуждает даемома слушать пречисленные в ней порты. Вы всё равно должны задать daemon_smtp_ports, local_interfaces или -oX. (Это так, потому что tls_on_connect_ports обращается к подключениям через inetd также, как и к подключениям через даемон)

    13.5 Области адресов IPv6

       Адреса IPv6 имеют области (scopes), и хост с многими аппаратными интерфейсами, в принцмпе, может иметь один и тотже локальный (не до конца понятно, в документации это обозвано link-local - локальный, или локально ссылающийся, чтоли... Не очень я знаю IPv6 - прим. lissyara) адрес IPv6 на различных интерфейсах. Таким образом, необходима дополнительная информация, кроме IP-адреса, чтобы различать индивидуальные интерфейсы. В некоторых случаях, было принято соглашение, о использовании символа процента, сопровождаемого чем-либо (часто - именем интерфейса), приводя к адресам вроде такого:
    fe80::202:b3ff:fe03:45c1%eth0
    

       Для согласования этого использования, символ процента, сопровождаемый произвольной строкой, разрешён в конце адреса IPv6. По дефолту, exim вызывает getaddrinfo(), чтобы преобразовать текстовый адрес IPv6 для фактического использования. Эта функция распознаёт соглашение процента в операционных системах, которые поддерживают его, и соответственно обрабатывают адрес. К сожалению, некоторые старые библиотеки имеют проблемы с getaddrinfo(). Если
    IPV6_USE_INET_PTON=yes
    

    установлена в Local/Makefile (или в ОС-зависимом Makefile) когда exim собирается, exim использует inet_pton() для конвертации текстового адреса IPv6 в реально используемый, вместо getaddrinfo(). (До версии 4.14, всегда использовалась эта функция.) Конечно, это означает, что дополнительные возможности getaddrinfo() - распознание областей адресов - потеряны.

    13.6 Отключение IPv6

       Иногда случается, что бинарник exim`a собранный с поддержкой IPv6, запускается на хосте, ядро которого не знает о IPv6. Бинарник продолжает использовать IPv4, но это может вызывать пустую растрату ресурсов на поиск AAAA записей, и попыток коннекта к адресам IPv6, вызывающие задержки в доставке почты. Если вы установите опцию disable_ipv6 в истина, даже когда бинарник exim`a поддерживает IPv6, IPv6 не активируется. AAAA записи никогда не ищутся, и любые адреса IPv6 перечисленные в local_interfaces, данных для маршрутизатора manualroute и т.д. - игнорируются. Eсли IP литералы включены (доставка не по имени а по IP - прим. lissyara), роутер ipliteral отказывается обрабатывать адреса IPv6.
       C другой стороны, когда используется IPv6, могут быть моменты, когда вы хотите отключить его для определённых хостов или доменов. Вы можете использовать опцию
    dns_ipv4_lookup для глобальног подавления поиска AAAA записей для указанных доменов, и можете использовать общую опцию роутеров ignore_target_hosts, для игнорирования адресов IPv6 в индивидуальном роутере.

    13.7 Примеры запуска слушающего даемона

       Дефолтовый случай в среде IPv6 таков:
    daemon_smtp_ports = smtp
    local_interfaces = <; ::0 ; 0.0.0.0
    

       Этим определяется слушать smtp-порт на всех интерфейсах IPv4 и IPv6. Могут использоваться один или два сокета, в зависимости от характеристик стека TCP/IP. (Это запутанно, и беспорядочно; для дополнительной информации прочтите комментарии в файле исходников daemon.c)
       Для задания прослушивания портов 25 и 26 на всех интерфейсах:
    daemon_smtp_ports = 25 : 26
    

    (оставляя local_interfaces с дефолтовыми настройками), или, более явно:
    local_interfaces = <; ::0.25     ; ::0.26 \
                          0.0.0.0.25 ; 0.0.0.0.26
    

       Для того, чтобы слушать на дефолтовом порту всех IPv4 интерфейсов и порту 26, только на адресе обратной петли:
    local_interfaces = 0.0.0.0 : 127.0.0.1.26
    

       Для того, чтобы слушать на дефолтовом порту, только на специфических интерфейсах:
    local_interfaces = 192.168.34.67 : 192.168.34.67
    

       Предупреждение: Такая установка исключает прослушивание интерфейса обратной петли.

    13.8 Распознание локального хоста

       Опция local_interfaces также используется, когда exim`y необходимо определить, действительно ли IP адрес относится к локальному хосту. таким образом, все IP-адреса, на которых слушает даемон, всегда обрабатываются как локальные.
       Для этого использования, номера портов в
    local_interfaces игнорируются. Если встречается один из двух элементов 0.0.0.0 или ::1, exim получает полный список доступных интерфейсов от операционной системы, и извлекает уместные (т.е. IPv4 или IPv6) адреса, чтобы использовать для проверки.
       Некоторые системы устанавливают большое число вирутальных интерфейсов, для обеспечения большого числа виртуальных серверов в сети. В этой ситуации, вы можете захотеть слушать лишь некоторые доступные интерфейсы для получения почты, но обрабатывать все локальные интерфейсы как местные, при роутинге. Вы можете сделать это установкой
    extra_local_interfaces в список IP-адресов, возможно, включая подстановочное значение все. Эти адреса распознаются как локальные, но не используются для прослушивания. Рассмотрите этот пример:
    local_interfaces = <; 127.0.0.1 ; ::1 ; \
                          192.168.53.235 ; \
                          3ffe:2101:12:1:a00:20ff:fe86:a061
    
    extra_local_interfaces = <; ::0 ; 0.0.0.0
    

       даемон слушает на интерфейсе обратной петли, и лишь на одном адресе IPv4 и одном адресе IPv6, но все доступные интерфейсы обрабатываются как локальные, при роутинге.
       В некотором количестве окружения, имя локального хоста может быть в списке MX, но с IP-адресом не назначенным ни одному местному интерфейсу. В других случаях, может быть желательным обработать другие имена хостов, как будто они ссылаются на локальный хост. Оба этих случая могут быть обработаны установкой опции
    hosts_treat_as_local. Она содержит имена хостов, а не IP-адреса. Когда на хост ссылаются в процессе маршрутизации, или через MX-запись, или непосредственно, он обрабатывается как локальный хост, если его имя совпадает с hosts_treat_as_local, или если любой из его IP-адресов совпадает с local_interfaces или extra_local_interfaces.

    13.9 Доставка к удалённому хосту

       Доставка к удалённому хосту обрабатывается smtp-транспортом. По-умолчанию, это позволяет системным функциям TCP/IP выбирать, какой интерфейс использовать (если их больше одного) при соединении с удалённым хостом. Однако, опцией interface может быть установлено, какой интерфейс использовать. Смотрите описание smtp-транспотра в разделе 30, для получения дополнительных деталей.


    =============
    translated by lissyara
    verifying by Gerk



    Ссылка на обсуждение: http://forum.lissyara.su/viewforum.php?f=20.



  • Хостинг HOST-FOOD

    2014-07-27, lissyara
    gmirror

    Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
    2013-08-20, zentarim
    Scan+Print server FreeBSD 9

    Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
    2011-11-20, BlackCat
    Разъём на WiFi-карту

    Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
    2011-09-14, manefesto
    Настройка git+gitosis

    Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
    2011-08-14, zentarim
    Wi-FI роутер + DHCP + DNS

    Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
    2011-06-15, -ZG-
    Охранная система на FreeBSD+LPT

    В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
    2011-03-13, terminus
    ng_nat

    Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
    2011-02-20, Капитан
    Nagios+Digitemp

    Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
    2011-02-17, Le1
    Zyxel Configuration

    Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
    2011-02-16, fox
    hast carp zfs ucarp cluster

    HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
    2011-02-04, BlackCat
    Восстановление ZFS

    История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
    2011-02-03, Капитан
    1-Wire

    Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
    2011-01-28, Капитан
    Температура в серверной

    Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
    2011-01-21, m4rkell
    Syslog server

    Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
    2011-01-07, lissyara
    Canon/gphotofs

    Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
    2010-12-13, Al
    IPSec

    Описание принципов работы IPSEC и способов аутентификации.
    2010-12-07, manefesto
    FreeBSD on flash

    Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
    2010-12-05, Fomalhaut
    root ZFS, GPT

    Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
    2010-09-05, Cancer
    Настройка аудиоплеера на ximp3

    Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
    2010-08-31, Cancer
    Установка и настройка OpenVPN

    На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
    2010-08-25, manefesto
    freebsd lvm

    Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
    2010-04-30, gonzo111
    proftpd file auth&quota

    Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
    2010-04-22, lissyara
    tw_cli

    Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
    2010-04-14, fox
    MySQL Master+Master

    MySQL (Master Master) and (Master Slave) Как настроить репликацию…
    подписка

        вверх      
    Статистика сайта
    Сейчас на сайте находится: 48 чел.
    За последние 30 мин было: 134 человек
    За сегодня было
    2609 показов,
    639 уникальных IP
     

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.0372 секунд
    Из них PHP: 33%; SQL: 67%; Число SQL-запросов: 56 шт.
    Исходный размер: 137652; Сжатая: 23179