[samba] что нужно, чтобы поднять самбу как контроллер домена?

Вадим Илларионов master на posylt.org
Вт Май 12 18:28:09 MSD 2009


Playnet wrote:
> Собсно, создание ключей:
> # openssl genrsa -des3 -out ca.key 2048
> # openssl req -new -x509 -days 1825 -utf8 -key ca.key -out ca.cert
> in Common Name (eg, YOUR name) []: ldap.domain.ru
> 
> usercert:
> # openssl genrsa -out user.key 1024
> # openssl req -new -key user.key -out user.csr -utf8
> # openssl x509 -req -in user.csr -out user.cert \
>             -CA ca.cert -CAkey ca.key -CAcreateserial -days 1095
> 
> # vi /usr/local/etc/openldap/slapd.conf
> added:
> 
> disallow tls_authc
> ;Почему?
> 
> TLSCertificateFile    /usr/local/etc/openldap/ssl/user.cert
> TLSCertificateKeyFile /usr/local/etc/openldap/ssl/user.key
> TLSCACertificateFile  /usr/local/etc/openldap/ssl/ca.cert
> 
> 
> 
> При старте samba in /var/log/messages:
> Jan  7 19:28:29 sstand slapd[53000]: OTP unavailable because can't
> read/write key database /etc/opiekeys: Permission denied файл на рута, а
> кого ставить?
> 
> 3) on ldapsearch in /var/log/messages:
> Jan  7 19:28:30 sstand ldapsearch: GSSAPI Error:  Miscellaneous failure
> (see text) (open(/tmp/krb5cc_0): No such file or directory) Зачем лдапу
> вдруг керберос понадобился? Это при компиляции с sasl

Мой инит-скрипт - внимание на ajust(){} :
# egrep -v "^$|^#" slapd
=====================================
WITHOUT_RC_COMPAT=1                                             # Do not
load RH compatibility interface.
. /etc/init.d/functions                                 # Source function
library.
. cert-sh-functions
SourceIfNotEmpty /etc/sysconfig/network && is_yes "$NETWORKING" || exit
SourceIfNotEmpty /etc/sysconfig/ldap
DAEMON=slapd
RunDir=/var/lib/ldap
RunAs=ldap
DAEMONTEST=/usr/sbin/slaptest
CONFIG=/etc/openldap/$DAEMON.conf
LOCKFILE=/var/lock/subsys/$DAEMON
PIDFILE=$RunDir/var/run/$DAEMON.pid
RETVAL=0
SSLCONFIG=/etc/openldap/$DAEMON-openssl.cnf
SSLCERT=/var/lib/ssl/certs/$DAEMON.cert
SSLKEY=/var/lib/ssl/private/$DAEMON.key
CERT=/etc/openldap/ssl/$DAEMON.pem
check(){
        action "Checking $DAEMON configuration" $DAEMONTEST -u || exit
}
adjust(){
        [ -s "$CERT" ] || {
                ssl_generate "$DAEMON" "$SSLCONFIG" &&
                        cat "$SSLKEY" "$SSLCERT" > "$CERT" &&
                        chmod 0640 "$CERT" &&
                        chgrp $RunAs "$CERT"
                action "Adjusting environment for
$DAEMON:" /etc/chroot.d/ldap.all || exit
        }
}
start(){
        adjust
        start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --
$DAEMON -u $RunAs -r $RunDir -h "$SLAPDURLLIST" "$SLAPD_OPTIONS"
        RETVAL=$?
        return $RETVAL
}
stop(){
       
stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user
$RunAs $DAEMON
        RETVAL=$?
        return $RETVAL
}
restart(){
        check
        stop
        sleep 3
        start
}
case "$1" in # See how we were called.
        start|stop|restart|check) $1 ;;
        condstop)               [ -e "$LOCKFILE" ] && stop              ;;
        condrestart)    [ -e "$LOCKFILE" ] && restart   ;;
        status) status --pidfile "$PIDFILE" --expect-user $RunAs $DAEMON;
RETVAL=$? ;;
        *)      msg_usage "${0##*/} {start|stop|status|check|restart
condstop|condrestart}"
                RETVAL=1
esac
exit $RETVAL
=====================================
Именно процедурой ajust() в случае отсутствия создаётся сертификат и
назначаются допуски к нему.

Само собой, $SSLCONFIG следует отрихтовать под себя.
______________________________
С уважением,
Вадим Илларионов.
JID, mailto: master на posylt.org
UIN: 7899517
Телефоны:
 дом. +7 39543 67-300
 моб. +7 964 103-6567



Подробная информация о списке рассылки Samba