Я думаю существенно, при попытке защитить от кого-то проходящего/dev/sd? с dd или hexdump и восстановлением удаленных файлов нет очень, можно гарантировать в любой современной файловой системе. Лучшее, которое Вы могли сделать, должно будет периодически заполнять диск фиктивным файлом так, чтобы все неиспользуемое место было перезаписано, и конечно можно использовать любую из доступных схем шифрования раздела Linux. Шифрование главным образом защитит от офлайновых нападений, хотя, кто-то крадущий диск и проходящий его, данные очевидно читаемы, в то время как система работает.
(работа в процессе, подробности добавлю позже)
Всем хорошие новости! У меня все это работает, более или менее ... в тестовой среде ...:
ppolicy
, not24get
и passwdqc
) smbk5pwd
). Примечание. Проверка качества с помощью Samba и ppolicy не очевидна: сценарий проверки пароля
( pwqcheck -1
из passwdqc
) должен выполнять те же проверки, что и LDAP. или пользователь получит сообщение Permission Denied вместо «Слишком простой пароль, попробуйте другой». pam_mkhomedir
uid
для группировки записей, поэтому приложения, ожидающие либо NIS (большая часть «UNIXy»), либо схемы RFC2307bis (большинство приложений, «разработанных для AD») работают нормально. Единственная проблема заключается в том, что для отключения учетной записи требуется использование инструментов CLI (или написания GOsa postmodify скрипт), иначе учетная запись не будет заблокирована на уровне LDAP, только для PAM и Samba. Срок действия пароля по-прежнему будет принудительным, поэтому это не большая проблема.
Я записал свое собственное названное наложение 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 заботятся об остальных!
Как временная мера я создал сценарий для 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
.
У меня есть ответ от одного из разработчиков GOsa. В это время GOsa не поддерживает наложение политики всегда.