Bug 47656 - proftpd: unknown configuration directive 'IdentLookups'
Summary: proftpd: unknown configuration directive 'IdentLookups'
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: proftpd (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Konstantin A Lepikhov (L.A. Kostis)
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-09-20 21:46 MSK by Evgeny Ivanitskiy
Modified: 2023-09-26 12:21 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Evgeny Ivanitskiy 2023-09-20 21:46:15 MSK
После обновления до версии 1.3.8-alt0.1.ga3489a6c8 proftpd перестал запускаться с уже имеющимся конфигурационным файлом.

В journalctl выводится следующая ошибка:

fatal: unknown configuration directive 'IdentLookups' on line 15 of '/etc/proftpd.conf'

На предыдущей версии 1.3.6-alt0.4.ga73dbfe3b, при наличии той же строки в конфигурационном файле, подобной ошибки не возникало, proftpd исправно запускался.


Версия пакета:
1.3.8-alt0.1.ga3489a6c8

Проверялось в виртуальной машине на workstation и workstation K обновленных до Sisyphus

Шаги для воспроизведения:
1. Установить proftpd:
    # apt-get install proftpd -y

2. Убедиться в наличии строки IdentLookups в файле /etc/proftpd.conf, а также заменить используемый для подключения порт и изменить тип сервера:
    # cat /etc/proftpd.conf | grep IdentLookups && sed -i "s/inetd/standalone/" /etc/proftpd.conf && sed -i "s/21/7777/" /etc/proftpd.conf

3. Запустить proftpd:
    # systemctl start proftpd

Ожидаемый результат:
Сервис успешно запущен

Фактический результат:
Сервис не запускается выдавая сообщение об ошибке:
fatal: unknown configuration directive 'IdentLookups' on line 15 of '/etc/proftpd.conf'
Comment 1 Konstantin A Lepikhov (L.A. Kostis) 2023-09-20 22:49:32 MSK
(In reply to Evgeny Ivanitskiy from comment #0)
> После обновления до версии 1.3.8-alt0.1.ga3489a6c8 proftpd перестал
> запускаться с уже имеющимся конфигурационным файлом.
> 
> В journalctl выводится следующая ошибка:
> 
> fatal: unknown configuration directive 'IdentLookups' on line 15 of
> '/etc/proftpd.conf'
> 
> На предыдущей версии 1.3.6-alt0.4.ga73dbfe3b, при наличии той же строки в
> конфигурационном файле, подобной ошибки не возникало, proftpd исправно
> запускался.
предыдущая версия в сизифе была 1.3.7, та версия, что вы имеете в виду, это из p10.

А по вашей директиве см. http://www.proftpd.org/docs/RELEASE_NOTES-1.3.7a

+ The mod_ident module is no longer automatically built by default.
    To include the mod_ident module in the build, it must be explicitly
    requested via --enable-ident or --with-shared=mod_ident.

    This means that configuration files using the IdentLookups directive
    will now want to using an enclosing <IfModule> section, like so:

      <IfModule mod_ident.c>
        IdentLookups off
      </IfModule>

Я включу этот модуль снова в новой сборке.
Comment 2 Konstantin A Lepikhov (L.A. Kostis) 2023-09-21 00:35:43 MSK
Кстати, а что именно все-таки хочется добиться с этой переменной?

- Я могу убрать эту опцию из конфигурации по умолчанию и не собирать модуль ident
- Я могу обновить эту опцию в конфигурации по умолчанию и собрать модуль ident.
Comment 3 Alexander Makeenkov 2023-09-21 08:54:31 MSK
(Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #2)
> Кстати, а что именно все-таки хочется добиться с этой переменной?

Не сломать уже существующие установки при обновлении пакета в стабильных бранчах.
Comment 4 Konstantin A Lepikhov (L.A. Kostis) 2023-09-23 23:24:35 MSK
(In reply to Alexander Makeenkov from comment #3)
> (Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #2)
> > Кстати, а что именно все-таки хочется добиться с этой переменной?
> 
> Не сломать уже существующие установки при обновлении пакета в стабильных
> бранчах.

Я собрал исправление в таске #330015, прошу проверить. Насчет обновления и "не сломать" не получится:
- в апстриме это breaking change, и логика тут есть - выкинуть код, который потенциально опасный и не нужен в большинстве случаев. Поэтому тащить эту функциональность включенной по умолчанию нет смысла (т.к. в 100% она отключена на уровне конфигурации "из коробки").
- в сборке для sisyphus я тоже это изменение сделал в виде триггера с предупреждением, что либо эту опцию нужно убрать либо поставить модуль.
- в сборке для дистрибутива это на усмотрение выпускающего, либо поддерживать свою сборку, либо тоже написать это в замечаниях по обновлению, либо переписать триггер, чтобы он опцию выкусывал из конфига (не очень надежно).
Comment 5 Evgeny Ivanitskiy 2023-09-25 17:09:46 MSK
(Ответ для Konstantin A Lepikhov (L.A. Kostis) на комментарий #4)
> Я собрал исправление в таске #330015, прошу проверить.

Проверил воспроизводимость ошибки в sisyphus с заданием.

Если устанавливать proftpd сразу из задания, то никаких проблем не возникает, сервис успешно запускается. Но если обновляться с версии из репозитория, то после обновления до задания ошибка не пропадает. Сервис отказывается запускаться сообщая об ошибке "fatal: unknown configuration directive 'IdentLookups'".

Однако с новой версией добавляется новый конфигурационный файл, который записывается в "/etc/proftpd.conf.rpmnew". Он отличается от стандартного конфигурационного файла тем, что там вместо 

> IdentLookups off

Используется 

> <IfModule mod_ident.c>
>         IdentLookups off
> </IfModule>

Если добавить эти две строки в старый конфигурационный файл, то сервис успешно с ним запускается. Следовательно, в любом случае, требуется правка конфигурационного файла для дальнейшей работы
Comment 6 Alexander Makeenkov 2023-09-25 17:28:46 MSK
(Ответ для Evgeny Ivanitskiy на комментарий #5)
> Если добавить эти две строки в старый конфигурационный файл, то сервис
> успешно с ним запускается. Следовательно, в любом случае, требуется правка
> конфигурационного файла для дальнейшей работы

Если при обновлении выводится сообщение о необходимости это сделать, то думаю, что этого достаточно в данном случае.
Comment 7 Evgeny Ivanitskiy 2023-09-25 17:46:28 MSK
(Ответ для Alexander Makeenkov на комментарий #6)
> Если при обновлении выводится сообщение о необходимости это сделать, то
> думаю, что этого достаточно в данном случае.

Единственное предупреждающее сообщение выводится apt-get при обновлении:

Обновление / установка...
1: proftpd-1.3.8-alt0.2.ga3489a6c8                                 предупреждение: /etc/proftpd.conf создан как /etc/proftpd.conf.rpmnew

Больше никаких сообщений нет
Comment 8 Konstantin A Lepikhov (L.A. Kostis) 2023-09-25 18:20:25 MSK
(In reply to Evgeny Ivanitskiy from comment #7)
> (Ответ для Alexander Makeenkov на комментарий #6)
> > Если при обновлении выводится сообщение о необходимости это сделать, то
> > думаю, что этого достаточно в данном случае.
> 
> Единственное предупреждающее сообщение выводится apt-get при обновлении:
> 
> Обновление / установка...
> 1: proftpd-1.3.8-alt0.2.ga3489a6c8                                
> предупреждение: /etc/proftpd.conf создан как /etc/proftpd.conf.rpmnew
> 
> Больше никаких сообщений нет

триггер добавлен для обновления с версии 1.3.6, которая в p10, если обновляться с нее то предупреждение будет выводится.

%triggerun -- proftpd < 1.3.7                                                                                                                                                                                                                                                             
if grep -q IdentLookups /etc/proftpd.conf; then                                                                                                                                                                                                                                           
    echo 'WARNING! WARNING! Outdated config detected!'                                                                                                                                                                                                                                    
    echo 'Manual intervention needed:'                                                                                                                                                                                                                                                    
    echo 'Please remove IdentLookups directive from config or'                                                                                                                                                                                                                            
    echo 'install proftpd-mod_indent package if you still need'                                                                                                                                                                                                                           
    echo 'IDENT lookups support.'                                                                                                                                                                                                                                                         
fi
Comment 9 Alexander Makeenkov 2023-09-25 19:59:14 MSK
Предупреждение выводится:

WARNING! WARNING! Outdated config detected!
Manual intervention needed:
Please remove IdentLookups directive from config or
install proftpd-mod_indent package if you still need
IDENT lookups support.
356: proftpd-1.3.6-alt0.4.ga73dbfe3b

Вот только пакета proftpd-mod_indent, который в нём указан нету:

# apt-get install proftpd-mod_indent
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
E: Невозможно найти пакет proftpd-mod_indent

# apt-repo list 330015 | grep -c indent
0

Потому что в сообщении опечатка, и пакет называется proftpd-mod_ident:

# apt-repo list 330015 | grep ident
proftpd-mod_ident

Нужно поправить сообщение, и думаю, что можно отправлять в сизиф.
Comment 10 Repository Robot 2023-09-26 12:21:40 MSK
proftpd-1.3.8-alt0.2.ga3489a6c8 -> sisyphus:

 Thu Sep 21 2023 L.A. Kostis <lakostis@altlinux.ru> 1.3.8-alt0.2.ga3489a6c8
 - enable mod_ident and make trigger with warning if unsupported
   configuration detected (closes #47656).
 - adjust default configuration for IdentLookups changes.