pkg_add -r cvsup-without-gui
/usr/share/examples/cvsup から ports-supfile をコピーし、適宜編集。余計なportsは更新しないように設定し、cvsup を実行。
cvsup -g -L 2 ports-supfile
openldap-server-2.3.43 のインストール
cd /usr/ports/net/openldap23-server
make
make install
OpenSSL 0.9.8h のインストール
cd /usr/ports/security/openssl
make
make install
OpenSSH portable 5.0.P1 のインストール
cd /usr/ports/security/openssh-portable
make
make install
libiconv 1.11のインストール
デフォルトだとCP932からEUCJP-MSへのコード変換ができないので,ビルド時にEXTRA_PATCHESをあてるようにオプション指定。
cd /usr/ports/converters/libiconv
make
Options for libiconv 1.11_1
[X] EXTRA_ENCODINGS Include extra character sets
[X] EXTRA_PATCHES Apply patches to fix CP932 add EUCJP-MS
make install
Samba 3.0.30 のインストール
/var/db/ports/samba3/options で、WITH_LDAP=true とする(makeで選択メニューが表示される)。
cd /usr/ports/net/samba3
make
make install
Sambaの認証をLDAPで行うためのツール、smbldap-tools-0.9.5 をインストール
cd /usr/ports/net/smbldap-tools
make
make install
nss_ldap と pam_ldap は packages からインストール
pkg_add -r nss_ldap
pkg_add -r pam_ldap
/etc/rc.conf
slapd_owner="DEFAULT"を設定しないと、boot 時にハングするので要注意。
slapd_enable="YES"
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
slapd_sockets="/var/run/openldap/ldapi"
slapd_owner="DEFAULT"
samba_enable="YES"
/usr/local/etc/smb.conf
ドメインは使わない設定。
charset = CP932
unix charset = EUCJP-MS
display charset = EUCJP-MS
workgroup = LDAP
server string = samba %v
socket options = TCP_NODELAY SO_RCVBUF=8760 SO_SNDBUF=8760
passdb backend = ldapsam:ldap://localhost
ldapsam:trusted = yes
security = user
admin users = admin
log file = /var/log/samba/log.%m
load printers = no
disable spoolss = yes
os level = 35
preferred master = Yes
domain master = Yes
domain logons = no
ldap suffix = dc=example,dc=com
ldap machine suffix = ou=Computers
ldap user suffix = ou=Users
ldap idmap suffix = ou=Users
ldap group suffix = ou=Groups
ldap admin dn = cn=Manager,dc=example,dc=com
ldap ssl = no
ldap passwd sync = yes
/usr/local/etc/nss_ldap.conf
host 127.0.0.1
base dc=example,dc=com
pam_filter objectclass=posixAccount
smbldap-populate でLDAPにsambaの認証に必要なエントリを追加。
Populating LDAP directory for domain LDAP (S-1-5-21-4022882558-1189897452-XXXXXXXXXX)
(using builtin directory structure)
entry dc=example,dc=com
entry ou=Users,dc=example,dc=com
entry ou=Groups,dc=example,dc=com
entry ou=Computers,dc=example,dc=com
entry ou=Users,dc=example,dc=com
entry uid=root,ou=Users,dc=example,dc=com
entry uid=nobody,ou=Users,dc=example,dc=com
entry cn=Domain Admins,ou=Groups,dc=example,dc=com
entry cn=Domain Users,ou=Groups,dc=example,dc=com
entry cn=Domain Guests,ou=Groups,dc=example,dc=com
entry cn=Domain Computers,ou=Groups,dc=example,dc=com
entry cn=Administrators,ou=Groups,dc=example,dc=com
entry cn=Account Operators,ou=Groups,dc=example,dc=com
entry cn=Print Operators,ou=Groups,dc=example,dc=com
entry cn=Backup Operators,ou=Groups,dc=example,dc=com
entry cn=Replicators,ou=Groups,dc=example,dc=com
entry sambaDomainName=LDAP,dc=example,dc=com Updating it...
Please provide a password for the domain root:
Changing UNIX and samba passwords for root
New password:
Retype new password:
UNIX/Linuxのパスワードファイルを migrate。-aオプションは sambaSamAccount objectClassを追加する。
smbldap-migrate-unix-accounts -P passwd -a
smbpasswd を importするのは、自前の ruby-net-ldap を利用したスクリプトで行った。
注記
smbcllient //server//foo password を試したとき NT_STATUS_UNSUCCESSFUL が発生して samba に foo ユーザで接続できなかったが、
auth/auth.c:check_ntlm_password(319)
check_ntlm_password: Authentication for user [foo] -> [foo] FAILED with error NT_STATUS_UNSUCCESSFUL
LDAP で ou=Groups に foo ユーザのグループのエントリを定義していなかったことが原因だった。数時間もはまった。
skapcat で dump したときに,
bdb_db_open: Warning - No DB_CONFIG file found in directory /var/db/openldap-data: (2)
Expect poor performance for suffix dc=example,dc=com.
という warning メッセージが表示された。
/usr/local/etc/openldap/DB_CONFIG.example から /var/db/openldap-data/DB_CONFIG にサンプル設定ファイルをコピーしておいた。
0 件のコメント:
コメントを投稿