* [devel] PAM-политики (модуль sss и служба sssd)
@ 2017-06-17 8:22 Evgeny Sinelnikov
2017-06-17 10:38 ` Evgeny Sinelnikov
0 siblings, 1 reply; 3+ messages in thread
From: Evgeny Sinelnikov @ 2017-06-17 8:22 UTC (permalink / raw)
To: ALT Linux Team development discussions
Здравствуйте,
хочу продолжить тему PAM-политик на примере модуля sss и службы sssd.
Общий взгляд на эту тему я уже приводил:
https://lists.altlinux.org/pipermail/devel/2017-June/202807.html
Теперь хотелось бы оттолкнуться от задачи и решить её в частном случае
для sssd. Вот, что мы имеем сейчас:
#%PAM-1.0
auth required pam_env.so
auth [success=ignore default=1] pam_localuser.so
auth [success=done default=ignore] pam_tcb.so shadow fork
prefix=$2y$ count=8 nullok
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_sss.so
account [success=ignore default=1] pam_localuser.so
account [success=done default=ignore] pam_tcb.so shadow fork
account requisite pam_succeed_if.so uid >= 500 quiet
account required pam_sss.so
password [success=ignore default=2] pam_localuser.so
password required pam_passwdqc.so config=/etc/passwdqc.conf
password [success=done default=ignore] pam_tcb.so use_authtok
shadow fork prefix=$2y$ count=8 nullok write_to=tcb
password requisite pam_succeed_if.so uid >= 500 quiet
password required pam_sss.so
session [success=ignore default=1] pam_localuser.so
session [success=2 default=ignore] pam_tcb.so
session requisite pam_succeed_if.so uid >= 500 quiet
session required pam_sss.so
session required pam_mktemp.so
session required pam_mkhomedir.so silent
session required pam_limits.so
Вот, что я предложил, в первом приближении:
#%PAM-1.0
auth required pam_env.so
auth [success=ignore default=1] pam_localuser.so
auth [success=done default=ignore] pam_tcb.so shadow fork
prefix=$2y$ count=8 nullok
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_sss.so
account [success=ignore default=1] pam_localuser.so
account [success=done default=ignore] pam_tcb.so shadow fork
account requisite pam_succeed_if.so uid >= 500 quiet
account required pam_sss.so
password [success=ignore default=2] pam_localuser.so
password required pam_passwdqc.so config=/etc/passwdqc.conf
password [success=done default=ignore] pam_tcb.so use_authtok
shadow fork prefix=$2y$ count=8 nullok write_to=tcb
password requisite pam_succeed_if.so uid >= 500 quiet
password required pam_sss.so
session [success=ignore default=1] pam_localuser.so
session [success=2 default=ignore] pam_tcb.so
session requisite pam_succeed_if.so uid >= 500 quiet
session required pam_sss.so
session required pam_mktemp.so
session required pam_mkhomedir.so silent
session required pam_limits.so
А вот как это устроено в CentOS 7.3
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth [default=1 success=ok] pam_localuser.so
auth [success=done ignore=ignore default=die] pam_unix.so
nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth sufficient pam_sss.so forward_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
password requisite pam_pwquality.so try_first_pass
local_users_only retry=3 authtok_type=
password sufficient pam_unix.so sha512 shadow nullok
try_first_pass use_authtok
password sufficient pam_sss.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session optional pam_oddjob_mkhomedir.so umask=0077
session [success=1 default=ignore] pam_succeed_if.so service in
crond quiet use_uid
session required pam_unix.so
session optional pam_sss.so
Давайте разбираться. Что мы можем, чего хотим и какие политики для этого строим.
1) Во-первых, мы не хотим путаться меджу локальными и глобальными
пользователями. Для этого мы применяем модуль pam_localuser.so. Если
пользователь имеется в /etc/passwd, то он считается локальным. Для
негибридного домена (о гибридном домене см. следующий разбор
PAM-политики krb5) этого достаточно.
Но как быть в случае конфликта? А никак. Или, точнее, как в NT -
обращаться по тому или иному допустимому полному имени пользователя
включающего имя домена.
Но вот, что меня смутило (и это надо проверить). В CentOS, в отличии
от моего варианта локальные политики учётных записей применяются
(секция account, модуль pam_unix.so) применяются для всех
пользователей, без разбора. И в этом есть своя логика. Здесб нужно
разобраться что у нас c tcb на этот счёт? Также делаем?
Ещё один момент PAM-политики учётных записей (account) - это
применение политик глобальных учётных записей только для несистемных
локальных пользователей, даже если их uid'ы забиты в LDAP. Это
интересный, не очевидный момент. Думаю стоит перенять.
2) Во-вторых, политика смены пароля у них (то есть в CentOS) к
путанице приводит. Это видно из логики настроек секции password и на
практике подтверждается. Если пользователь локальный вводит
неправильный текущий пароль, то ему предлагается ввести глобальный
пароль:
[mastersin@server ~]$ passwd
Changing password for user mastersin.
Changing password for mastersin.
(current) UNIX password:
Current Password:
passwd: Authentication token manipulation error
[mastersin@server ~]$ id
uid=1000(mastersin) gid=1000(mastersin) groups=1000(mastersin)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Очевидно, что это не логично и так мы делать не будем.
3) Во-третьих, настройка сессии. в CentOS она в включает в себя
дополнительные модули. Думаю у нас keyutils стоит включить вот так
(ну, так же, как systemd - если имеется в наличии):
-session optional pam_keyinit.so revoke
В CentOS имеется также весьма неожиданное правило, по которому для
службы crond, пропускается установка pam_unix сеанса, но не сеанса
pam_sss:
session [success=1 default=ignore] pam_succeed_if.so service in
crond quiet use_uid
session required pam_unix.so
session optional pam_sss.so
Получается вот такой гибрид, который я попытался с ходу проверить и отладить:
#%PAM-1.0
auth required pam_env.so
auth [success=ignore default=1] pam_localuser.so
auth sufficient pam_tcb.so shadow fork prefix=$2y$
count=8 nullok
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_sss.so
account required pam_tcb.so shadow fork
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
password [success=ignore default=2] pam_localuser.so
password required pam_passwdqc.so config=/etc/passwdqc.conf
password [success=done default=bad] pam_tcb.so use_authtok
shadow fork prefix=$2y$ count=8 nullok write_to=tcb
password requisite pam_succeed_if.so uid >= 500 quiet
password required pam_sss.so
-session optional pam_keyinit.so revoke
-session optional pam_systemd.so
session [success=ignore default=1] pam_localuser.so
session [success=2 default=ignore] pam_tcb.so
session requisite pam_succeed_if.so uid >= 500 quiet
session required pam_sss.so
session required pam_mktemp.so
session required pam_mkhomedir.so silent
session required pam_limits.so
Выяснилось, что tcb модуль для глобальных пользователей не отрабатывает:
[vagrant@client ~]$ su - administrator
Password:
su: Insufficient credentials to access authentication data
Также выяснилось, что сеанс tcb всё равно вытается применится для
глобального пользователя:
WARNING: could not close session
Permission denied
Итого, исправленный вариант, который я сейчас отлаживаю выглдядит
следующим образом:
#%PAM-1.0
auth required pam_env.so
auth [success=ignore default=1] pam_localuser.so
auth [success=done default=bad] pam_tcb.so shadow fork
prefix=$2y$ count=8 nullok
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_sss.so
account [success=ignore default=1] pam_localuser.so
account [success=done default=bad] pam_tcb.so shadow fork
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
password [success=ignore default=2] pam_localuser.so
password required pam_passwdqc.so config=/etc/passwdqc.conf
password [success=done default=bad] pam_tcb.so use_authtok
shadow fork prefix=$2y$ count=8 nullok write_to=tcb
password requisite pam_succeed_if.so uid >= 500 quiet
password required pam_sss.so
-session optional pam_keyinit.so revoke
-session optional pam_systemd.so
session [success=1 default=ignore] pam_localuser.so
session [success=1 default=1] pam_sss.so
session optional pam_tcb.so
session required pam_mktemp.so
session required pam_mkhomedir.so silent
session required pam_limits.so
Логин работает, смена пароля отрабатывает, глобальные и локальные
политики не смешиваются. В таком же виде нужно обработать
system-auth-use_first_pass-sss для не интерактивных приложений.
Например, sshd сам принимает по сети пароль и программно передаёт его
в стек PAM.
--
Sin (Sinelnikov Evgeny)
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [devel] PAM-политики (модуль sss и служба sssd)
2017-06-17 8:22 [devel] PAM-политики (модуль sss и служба sssd) Evgeny Sinelnikov
@ 2017-06-17 10:38 ` Evgeny Sinelnikov
2017-06-19 10:00 ` Evgeny Sinelnikov
0 siblings, 1 reply; 3+ messages in thread
From: Evgeny Sinelnikov @ 2017-06-17 10:38 UTC (permalink / raw)
To: ALT Linux Team development discussions
Cc: Андрей
Черепанов
17 июня 2017 г., 12:22 пользователь Evgeny Sinelnikov
<sin@altlinux.org> написал:
> Здравствуйте,
>
> хочу продолжить тему PAM-политик на примере модуля sss и службы sssd.
> Общий взгляд на эту тему я уже приводил:
> https://lists.altlinux.org/pipermail/devel/2017-June/202807.html
>
> Теперь хотелось бы оттолкнуться от задачи и решить её в частном случае
> для sssd. Вот, что мы имеем сейчас:
>
> #%PAM-1.0
> auth required pam_env.so
> auth [success=ignore default=1] pam_localuser.so
> auth [success=done default=ignore] pam_tcb.so shadow fork
> prefix=$2y$ count=8 nullok
> auth requisite pam_succeed_if.so uid >= 500 quiet
> auth required pam_sss.so
>
> account [success=ignore default=1] pam_localuser.so
> account [success=done default=ignore] pam_tcb.so shadow fork
> account requisite pam_succeed_if.so uid >= 500 quiet
> account required pam_sss.so
>
> password [success=ignore default=2] pam_localuser.so
> password required pam_passwdqc.so config=/etc/passwdqc.conf
> password [success=done default=ignore] pam_tcb.so use_authtok
> shadow fork prefix=$2y$ count=8 nullok write_to=tcb
> password requisite pam_succeed_if.so uid >= 500 quiet
> password required pam_sss.so
>
> session [success=ignore default=1] pam_localuser.so
> session [success=2 default=ignore] pam_tcb.so
> session requisite pam_succeed_if.so uid >= 500 quiet
> session required pam_sss.so
> session required pam_mktemp.so
> session required pam_mkhomedir.so silent
> session required pam_limits.so
>
> Вот, что я предложил, в первом приближении:
>
> #%PAM-1.0
> auth required pam_env.so
> auth [success=ignore default=1] pam_localuser.so
> auth [success=done default=ignore] pam_tcb.so shadow fork
> prefix=$2y$ count=8 nullok
> auth requisite pam_succeed_if.so uid >= 500 quiet
> auth required pam_sss.so
>
> account [success=ignore default=1] pam_localuser.so
> account [success=done default=ignore] pam_tcb.so shadow fork
> account requisite pam_succeed_if.so uid >= 500 quiet
> account required pam_sss.so
>
> password [success=ignore default=2] pam_localuser.so
> password required pam_passwdqc.so config=/etc/passwdqc.conf
> password [success=done default=ignore] pam_tcb.so use_authtok
> shadow fork prefix=$2y$ count=8 nullok write_to=tcb
> password requisite pam_succeed_if.so uid >= 500 quiet
> password required pam_sss.so
>
> session [success=ignore default=1] pam_localuser.so
> session [success=2 default=ignore] pam_tcb.so
> session requisite pam_succeed_if.so uid >= 500 quiet
> session required pam_sss.so
> session required pam_mktemp.so
> session required pam_mkhomedir.so silent
> session required pam_limits.so
>
> А вот как это устроено в CentOS 7.3
>
> #%PAM-1.0
> # This file is auto-generated.
> # User changes will be destroyed the next time authconfig is run.
> auth required pam_env.so
> auth [default=1 success=ok] pam_localuser.so
> auth [success=done ignore=ignore default=die] pam_unix.so
> nullok try_first_pass
> auth requisite pam_succeed_if.so uid >= 1000 quiet_success
> auth sufficient pam_sss.so forward_pass
> auth required pam_deny.so
>
> account required pam_unix.so
> account sufficient pam_localuser.so
> account sufficient pam_succeed_if.so uid < 1000 quiet
> account [default=bad success=ok user_unknown=ignore] pam_sss.so
> account required pam_permit.so
>
> password requisite pam_pwquality.so try_first_pass
> local_users_only retry=3 authtok_type=
> password sufficient pam_unix.so sha512 shadow nullok
> try_first_pass use_authtok
> password sufficient pam_sss.so use_authtok
> password required pam_deny.so
>
> session optional pam_keyinit.so revoke
> session required pam_limits.so
> -session optional pam_systemd.so
> session optional pam_oddjob_mkhomedir.so umask=0077
> session [success=1 default=ignore] pam_succeed_if.so service in
> crond quiet use_uid
> session required pam_unix.so
> session optional pam_sss.so
>
> Давайте разбираться. Что мы можем, чего хотим и какие политики для этого строим.
>
> 1) Во-первых, мы не хотим путаться меджу локальными и глобальными
> пользователями. Для этого мы применяем модуль pam_localuser.so. Если
> пользователь имеется в /etc/passwd, то он считается локальным. Для
> негибридного домена (о гибридном домене см. следующий разбор
> PAM-политики krb5) этого достаточно.
>
> Но как быть в случае конфликта? А никак. Или, точнее, как в NT -
> обращаться по тому или иному допустимому полному имени пользователя
> включающего имя домена.
>
> Но вот, что меня смутило (и это надо проверить). В CentOS, в отличии
> от моего варианта локальные политики учётных записей применяются
> (секция account, модуль pam_unix.so) применяются для всех
> пользователей, без разбора. И в этом есть своя логика. Здесб нужно
> разобраться что у нас c tcb на этот счёт? Также делаем?
>
> Ещё один момент PAM-политики учётных записей (account) - это
> применение политик глобальных учётных записей только для несистемных
> локальных пользователей, даже если их uid'ы забиты в LDAP. Это
> интересный, не очевидный момент. Думаю стоит перенять.
>
> 2) Во-вторых, политика смены пароля у них (то есть в CentOS) к
> путанице приводит. Это видно из логики настроек секции password и на
> практике подтверждается. Если пользователь локальный вводит
> неправильный текущий пароль, то ему предлагается ввести глобальный
> пароль:
> [mastersin@server ~]$ passwd
> Changing password for user mastersin.
> Changing password for mastersin.
> (current) UNIX password:
> Current Password:
> passwd: Authentication token manipulation error
> [mastersin@server ~]$ id
> uid=1000(mastersin) gid=1000(mastersin) groups=1000(mastersin)
> context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
>
> Очевидно, что это не логично и так мы делать не будем.
>
> 3) Во-третьих, настройка сессии. в CentOS она в включает в себя
> дополнительные модули. Думаю у нас keyutils стоит включить вот так
> (ну, так же, как systemd - если имеется в наличии):
> -session optional pam_keyinit.so revoke
>
> В CentOS имеется также весьма неожиданное правило, по которому для
> службы crond, пропускается установка pam_unix сеанса, но не сеанса
> pam_sss:
> session [success=1 default=ignore] pam_succeed_if.so service in
> crond quiet use_uid
> session required pam_unix.so
> session optional pam_sss.so
>
> Получается вот такой гибрид, который я попытался с ходу проверить и отладить:
>
> #%PAM-1.0
> auth required pam_env.so
> auth [success=ignore default=1] pam_localuser.so
> auth sufficient pam_tcb.so shadow fork prefix=$2y$
> count=8 nullok
> auth requisite pam_succeed_if.so uid >= 500 quiet
> auth required pam_sss.so
>
> account required pam_tcb.so shadow fork
> account sufficient pam_localuser.so
> account sufficient pam_succeed_if.so uid < 500 quiet
> account [default=bad success=ok user_unknown=ignore] pam_sss.so
> account required pam_permit.so
>
> password [success=ignore default=2] pam_localuser.so
> password required pam_passwdqc.so config=/etc/passwdqc.conf
> password [success=done default=bad] pam_tcb.so use_authtok
> shadow fork prefix=$2y$ count=8 nullok write_to=tcb
> password requisite pam_succeed_if.so uid >= 500 quiet
> password required pam_sss.so
>
> -session optional pam_keyinit.so revoke
> -session optional pam_systemd.so
> session [success=ignore default=1] pam_localuser.so
> session [success=2 default=ignore] pam_tcb.so
> session requisite pam_succeed_if.so uid >= 500 quiet
> session required pam_sss.so
> session required pam_mktemp.so
> session required pam_mkhomedir.so silent
> session required pam_limits.so
>
> Выяснилось, что tcb модуль для глобальных пользователей не отрабатывает:
> [vagrant@client ~]$ su - administrator
> Password:
> su: Insufficient credentials to access authentication data
>
> Также выяснилось, что сеанс tcb всё равно вытается применится для
> глобального пользователя:
> WARNING: could not close session
> Permission denied
>
> Итого, исправленный вариант, который я сейчас отлаживаю выглдядит
> следующим образом:
>
> #%PAM-1.0
> auth required pam_env.so
> auth [success=ignore default=1] pam_localuser.so
> auth [success=done default=bad] pam_tcb.so shadow fork
> prefix=$2y$ count=8 nullok
> auth requisite pam_succeed_if.so uid >= 500 quiet
> auth required pam_sss.so
>
> account [success=ignore default=1] pam_localuser.so
> account [success=done default=bad] pam_tcb.so shadow fork
> account sufficient pam_succeed_if.so uid < 500 quiet
> account [default=bad success=ok user_unknown=ignore] pam_sss.so
> account required pam_permit.so
>
> password [success=ignore default=2] pam_localuser.so
> password required pam_passwdqc.so config=/etc/passwdqc.conf
> password [success=done default=bad] pam_tcb.so use_authtok
> shadow fork prefix=$2y$ count=8 nullok write_to=tcb
> password requisite pam_succeed_if.so uid >= 500 quiet
> password required pam_sss.so
>
> -session optional pam_keyinit.so revoke
> -session optional pam_systemd.so
> session [success=1 default=ignore] pam_localuser.so
> session [success=1 default=1] pam_sss.so
> session optional pam_tcb.so
> session required pam_mktemp.so
> session required pam_mkhomedir.so silent
> session required pam_limits.so
>
> Логин работает, смена пароля отрабатывает, глобальные и локальные
> политики не смешиваются. В таком же виде нужно обработать
> system-auth-use_first_pass-sss для не интерактивных приложений.
> Например, sshd сам принимает по сети пароль и программно передаёт его
> в стек PAM.
>
Тестовая сборка с новым вариантом подготовлена в сизиф и в p8:
#184006 FAILED #2 [test-only] p8 sssd.git=1.15.2-alt6%ubt
#184005 TESTED #2 [test-only] sisyphus sssd.git=1.15.2-alt6%ubt
Сегодня я проведу ещё ряд тестовых проверок, выкачу новый вариант в
сизиф и буду просить все заинтересованных проверить её на своих
конфигурациях в p8.
--
Sin (Sinelnikov Evgeny)
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [devel] PAM-политики (модуль sss и служба sssd)
2017-06-17 10:38 ` Evgeny Sinelnikov
@ 2017-06-19 10:00 ` Evgeny Sinelnikov
0 siblings, 0 replies; 3+ messages in thread
From: Evgeny Sinelnikov @ 2017-06-19 10:00 UTC (permalink / raw)
To: ALT Linux Team development discussions
Cc: Андрей
Черепанов
17 июня 2017 г., 14:38 пользователь Evgeny Sinelnikov
<sin@altlinux.org> написал:
> 17 июня 2017 г., 12:22 пользователь Evgeny Sinelnikov
[...]
>> Итого, исправленный вариант, который я сейчас отлаживаю выглдядит
>> следующим образом:
>>
>> #%PAM-1.0
>> auth required pam_env.so
>> auth [success=ignore default=1] pam_localuser.so
>> auth [success=done default=bad] pam_tcb.so shadow fork
>> prefix=$2y$ count=8 nullok
>> auth requisite pam_succeed_if.so uid >= 500 quiet
>> auth required pam_sss.so
>>
>> account [success=ignore default=1] pam_localuser.so
>> account [success=done default=bad] pam_tcb.so shadow fork
>> account sufficient pam_succeed_if.so uid < 500 quiet
>> account [default=bad success=ok user_unknown=ignore] pam_sss.so
>> account required pam_permit.so
>>
>> password [success=ignore default=2] pam_localuser.so
>> password required pam_passwdqc.so config=/etc/passwdqc.conf
>> password [success=done default=bad] pam_tcb.so use_authtok
>> shadow fork prefix=$2y$ count=8 nullok write_to=tcb
>> password requisite pam_succeed_if.so uid >= 500 quiet
>> password required pam_sss.so
>>
>> -session optional pam_keyinit.so revoke
>> -session optional pam_systemd.so
>> session [success=1 default=ignore] pam_localuser.so
>> session [success=1 default=1] pam_sss.so
>> session optional pam_tcb.so
>> session required pam_mktemp.so
>> session required pam_mkhomedir.so silent
>> session required pam_limits.so
>>
>> Логин работает, смена пароля отрабатывает, глобальные и локальные
>> политики не смешиваются. В таком же виде нужно обработать
>> system-auth-use_first_pass-sss для не интерактивных приложений.
>> Например, sshd сам принимает по сети пароль и программно передаёт его
>> в стек PAM.
>>
>
> Тестовая сборка с новым вариантом подготовлена в сизиф и в p8:
> #184006 FAILED #2 [test-only] p8 sssd.git=1.15.2-alt6%ubt
> #184005 TESTED #2 [test-only] sisyphus sssd.git=1.15.2-alt6%ubt
>
> Сегодня я проведу ещё ряд тестовых проверок, выкачу новый вариант в
> сизиф и буду просить все заинтересованных проверить её на своих
> конфигурациях в p8.
>
sssd.git-1.15.2-alt6%ubt предварительно протеcтирован и отправлен в сизиф.
Для использования модуля pam_keyinit потребуется новая сборка linux-pam (
https://bugzilla.altlinux.org/show_bug.cgi?id=33558):
#184408 EPERM #1 [test-only] sisyphus linux-pam.git=1.3.0-alt2
Остаётся включить в userpasswd всевозможные варианты проверок, иначе
его вывод об ошибках смены пароля абсолютно не информативен. Но это
родовая травма. Тут нужно широкое вмешательство. Как только новый sssd
приедет в сизиф, я заново запущу таску:
#184006 FAILED #2 [test-only] p8 sssd.git=1.15.2-alt6%ubt
Когда она пересобирётся, можно будет всё попробовать на боевых клиентах.
--
Sin (Sinelnikov Evgeny)
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-06-19 10:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-17 8:22 [devel] PAM-политики (модуль sss и служба sssd) Evgeny Sinelnikov
2017-06-17 10:38 ` Evgeny Sinelnikov
2017-06-19 10:00 ` Evgeny Sinelnikov
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git