OpenLDAP, Samba и срок действия пароля

Я думаю существенно, при попытке защитить от кого-то проходящего/dev/sd? с dd или hexdump и восстановлением удаленных файлов нет очень, можно гарантировать в любой современной файловой системе. Лучшее, которое Вы могли сделать, должно будет периодически заполнять диск фиктивным файлом так, чтобы все неиспользуемое место было перезаписано, и конечно можно использовать любую из доступных схем шифрования раздела Linux. Шифрование главным образом защитит от офлайновых нападений, хотя, кто-то крадущий диск и проходящий его, данные очевидно читаемы, в то время как система работает.

13
задан 5 November 2010 в 12:12
4 ответа

(работа в процессе, подробности добавлю позже)

Всем хорошие новости! У меня все это работает, более или менее ... в тестовой среде ...:

  1. Политика паролей (как по качеству, так и по времени) применяется на уровне OpenLDAP (благодаря ppolicy , not24get и passwdqc )
  2. Пароли синхронизируются между Samba и POSIX обоими способами (спасибо smbk5pwd ). Примечание. Проверка качества с помощью Samba и ppolicy не очевидна: сценарий проверки пароля ( pwqcheck -1 из passwdqc ) должен выполнять те же проверки, что и LDAP. или пользователь получит сообщение Permission Denied вместо «Слишком простой пароль, попробуйте другой».
  3. И PAM, и Samba предупреждают пользователя о том, что срок действия пароля скоро истечет.
  4. Пользовательские каталоги созданы с использованием pam_mkhomedir
  5. GOsa² реализация RFC2307bis (и связанная схема) вставляет uid для группировки записей, поэтому приложения, ожидающие либо NIS (большая часть «UNIXy»), либо схемы RFC2307bis (большинство приложений, «разработанных для AD») работают нормально.

Единственная проблема заключается в том, что для отключения учетной записи требуется использование инструментов CLI (или написания GOsa postmodify скрипт), иначе учетная запись не будет заблокирована на уровне LDAP, только для PAM и Samba. Срок действия пароля по-прежнему будет принудительным, поэтому это не большая проблема.

1
ответ дан 2 December 2019 в 21:28

Я записал свое собственное названное наложение OpenLDAP shadowlastchange обновить shadowLastChange припишите каждый раз, когда изменение пароля EXOP происходит. В этом активируют slapd.conf:

moduleload smbk5pwd
moduleload shadowlastchange
...

database bdb
...
overlay smbk5pwd
overlay shadowlastchange

Я настроил smb.conf изменить пароли через EXOP:

ldap passwd sync = Only

Затем для каждой учетной записи, набора shadowMax к количеству дней пароль действителен. Модули OpenLDAP заботятся об остальных!

1
ответ дан 2 December 2019 в 21:28
  • 1
    руководства пальца GNU, Вы попытались выполнить его вместе с политикой? –  Hubert Kario 6 November 2010 в 00:49
  • 2
    попробуйте его и сообщите мне, как это идет. –  200_success 10 November 2010 в 00:44

Как временная мера я создал сценарий для Samba, который обновит shadowLastChange на изменении пароля:

#!/bin/sh
# script to update shadowLastChange when samba updates passwords
# it's not needed when using 'passwd', it does update the field,
# even if pam_ldap is using LDAP Extented Operation to change password

LDAP_MODIFY="/usr/bin/ldapmodify"
LDAP_SEARCH="/usr/bin/ldapsearch"
LDAP_USER="uid=shadow-update,ou=Services,dc=example,dc=com"
LDAP_PASSWORD="change-me"
LDAP_HOST="localhost"

# get date
SLC=$((`date '+%s'` / 24 / 3600))

# get user login name
user=$1

# find user's DN
dn=$($LDAP_SEARCH -x -h $LDAP_HOST -LLL -b dc=example,dc=com "(uid=$user)" dn)
dn=${dn#dn:}

# check if DN is not base64 encoded
if [ "${dn:0:1}" = ":" ]; then
        # update password change date
        echo "dn:$dn
changetype: modify
replace: shadowLastChange
shadowLastChange: $SLC" | cat | $LDAP_MODIFY -x -h "$LDAP_HOST" \
 -D "$LDAP_USER" -w "$LDAP_PASSWORD" > /dev/null 2>&1
else
        # update password change date
        echo "dn: $dn
changetype: modify
replace: shadowLastChange
shadowLastChange: $SLC" | cat | $LDAP_MODIFY -x -h "$LDAP_HOST" \
 -D "$LDAP_USER" -w "$LDAP_PASSWORD" > /dev/null 2>&1
fi

err=$?

if [ ! $err -eq 0 ]; then
   echo "error: can't update shadowLastChange: $err"
   echo "`date`: shadow.sh: can't update shadowLastChange: $err"\
       >> /var/log/shadow-update.log
   exit;
fi

echo OK

В конфигурации Samba этому нужно unix password sync набор к yes, passwd chat набор к *OK* и passwd program к вышеупомянутому сценарию с "%u" как параметрический усилитель.

Учетная запись, указанная в LDAP_USER потребности, которые будут созданы в LDAP и даны полномочия продолжать читать uid из всех пользователей Samba и права записать shadowLastChange.

1
ответ дан 2 December 2019 в 21:28

У меня есть ответ от одного из разработчиков GOsa. В это время GOsa не поддерживает наложение политики всегда.

0
ответ дан 2 December 2019 в 21:28

Теги

Похожие вопросы