LINUX.ORG.RU
решено ФорумAdmin

EXIM, LDAP и документация.


0

0

Хочу настроить аутентификацию пользователей EXIM'а по содержимому LDAP'ного справочника. Поскольку делаю это для локалхоста, то могу упростить себе задачку, пусть EXIM обслуживает только один домен (хотя у меня их два, но второй может подождать), настройки хранятся НЕ в LDAP'е (как это сделано здесь, к сожалению EXIM3), из LDAP берётся только аутентификация пользователей. Тут нам поможет EXIM and SMTP auth against LDAP (там EXIM4). Для Ъ процитирую самое интересное:

ldap_default_servers = ldap.example.com::636

begin authenticators

 plain_server:
   driver = plaintext
   server_advertise_condition = ${if match{$sender_host_address}{\N^10\.0\.0\.\d{1,3}\N}{0}{1}}
   public_name = PLAIN
   server_condition = ${if ldapauth \
    {user="uid=${quote_ldap_dn:$2},ou=People,dc=example,dc=com" \
    pass=${quote:$3} \
    ldaps:///}{yes}{no}}
   server_set_id = $2
   server_prompts = :

 login_server:
   driver = plaintext
   server_advertise_condition = ${if match{$sender_host_address}{\N^10\.0\.1\.\d{1,3}\N}{0}{1}}
   public_name = LOGIN
   server_prompts = "Username:: : Password::"
   server_condition = ${if ldapauth \
    {user="uid=${quote_ldap_dn:$1},ou=People,dc=example,dc=com" \
    pass=${quote:$2} \
    ldaps:///}{yes}{no}}
   server_set_id = $1
Собственно вопросы: где почитать про выражения вроде тех которые в строчках с server_advertise_condition? Интересует использование ${}, if, match, что означает {0}, {1}, как понять \N^10\.0\.1\.\d{1,3}\N (хочу вставить туда 127.0.0.1, то есть только клиентам с локалхоста можно не аутентифицироваться). И почему аутентификаторов два, PLAIN и LOGIN?

★★★★★

PCRE

С \N^10\.0\.1\.\d{1,3}\N почти разобрался.

^ — начало, \. — точка, \d{1,3} — от одной до трёх цифр. Сейчас поищу что такое \N

Camel ★★★★★
() автор топика
Ответ на: PCRE от Camel

\N

Сейчас поищу что такое \N

Проклятье, не находится. \N это символ новой строки, то есть то что обычно \n, правильно я понимаю?

И таки где в документации описано использования ${}, if и прочего? Или это тоже относится к PCRE?

Camel ★★★★★
() автор топика
Ответ на: \N от Camel

You can prevent part of a string from being expanded by enclosing it between two occurrences of «\N».

sdio ★★★★★
()
Ответ на: \N от Camel

Доходит.

Кажися до меня доходит. У меня эта строчка будет

server_advertise_condition = ${if match{$sender_host_address}{\N^127\.0\.0\.1\N}{0}{1}}
Это значит, что если sender_host_address 127.0.0.1, то server_advertise_condition принимает значение «0», что значит не производить аутентификацию, в любом другом случае принимет значение «1» и производит аутентификацию.

Но таки что означает \N ?

Camel ★★★★★
() автор топика
Ответ на: комментарий от sdio

Being expanded.

You can prevent part of a string from being expanded by enclosing it between two occurrences of «\N».

Что это означает на практике, не придётся слеши удваивать?

Camel ★★★★★
() автор топика
Ответ на: \N от Camel

zless /usr/share/doc/exim4-base/filter.txt.gz

см. также и др. файлы в этой директории

sdio ★★★★★
()
Ответ на: Being expanded. от Camel

if $message_body contains \N$$$$\N then ...

tests for a run of four dollar characters.

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.