2008-08-04

Fedora上的wireless over openldap

原來,一開始只是自己的想法問題…

其實,網路上的做法,也沒不對,只是自己死都不想這樣做…

LDAP用yum載下安裝openldap/openldap-clients/openldap-devel/openldap-servers
然後,先到/var/lib/ldap中去看看是否有檔案,若有,請刪掉

接著,到/etc/openldap下修改ldap.conf與sladp.conf
在ldap.conf中請加上
HOST 127.0.0.1
BASE (sladp中的suffix)
URI ldap://127.0.0.1

sladp.conf中請修改
database bdb
suffix "dc=your,dc=domain,dc=name"
rootdn "uid=root,ou=People,dc=your,dc=domain,dc=name"
rootpw {sha}xxxxxxxxx

ou可以想做一個節點的起頭名稱
uid就是ou下的其他子節點的名稱
想法就是tree node
rootpw可以是明碼,但也可用slappasswd來做加密暗碼

以上ldap.conf與slapd.conf修改好後


請上網找MigrationTools下來解壓縮
先請修改migrate_common.ph
if ($NETINFOBRIDGE) {
$NAMINGCONTEXT{'aliases'} = "cn=aliases";
$NAMINGCONTEXT{'fstab'} = "cn=mounts";
$NAMINGCONTEXT{'passwd'} = "cn=People";
$NAMINGCONTEXT{'netgroup_byuser'} = "cn=netgroup.byuser";
$NAMINGCONTEXT{'netgroup_byhost'} = "cn=netgroup.byhost";
$NAMINGCONTEXT{'group'} = "cn=Group";
$NAMINGCONTEXT{'netgroup'} = "cn=netgroup";
$NAMINGCONTEXT{'hosts'} = "cn=machines";
$NAMINGCONTEXT{'networks'} = "cn=networks";
$NAMINGCONTEXT{'protocols'} = "cn=protocols";
$NAMINGCONTEXT{'rpc'} = "cn=rpcs";
$NAMINGCONTEXT{'services'} = "cn=services";
} else {
$NAMINGCONTEXT{'aliases'} = "ou=Aliases";
$NAMINGCONTEXT{'fstab'} = "ou=Mounts";
$NAMINGCONTEXT{'passwd'} = "ou=People";
$NAMINGCONTEXT{'netgroup_byuser'} = "nisMapName=netgroup.byuser";
$NAMINGCONTEXT{'netgroup_byhost'} = "nisMapName=netgroup.byhost";
$NAMINGCONTEXT{'group'} = "ou=Group";
$NAMINGCONTEXT{'netgroup'} = "ou=Netgroup";
$NAMINGCONTEXT{'hosts'} = "ou=Hosts";
$NAMINGCONTEXT{'networks'} = "ou=Networks";
$NAMINGCONTEXT{'protocols'} = "ou=Protocols";
$NAMINGCONTEXT{'rpc'} = "ou=Rpc";
$NAMINGCONTEXT{'services'} = "ou=Services";
}

然後可以用./migrate_group.pl /etc/group group.ldif與./migrate_passwd.pl /etc/passwd user.ldif來新增使用者與群組名單…當然,在哪台linux上所成檔的就是那台的使用者與群組了

接著,可以自己做base.ldif與container.ldif
base的意義很好了解,就是tree node的底,也就是基點
大至可以如下:
base.ldif
dn: dc=your,dc=domain,dc=name
objectClass: top
objectClass: domain
dc: your
dn是定名
objectClass就是scheme…有很多,所以要查詳細可以打發無聊時間
dc不知道

container.ldif是定基點後的群分點
dn: ou=People,dc=your,dc=domain,dc=name
objectClass: top
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=your,dc=domain,dc=name
objectClass: top
objectClass: organizationalUnit
ou: Group

dn一樣是定名,但別忘了最後都要用base的dn來做結尾
ou前面就有說過了…

ok,四個檔案,base/container/group/user
接著,請到/etc/openldap中找找看是否有DB_CONFIG.EXAMPLE
若有,請改成DB_CONFIG然後移存到/var/ldap下
請得最好chown成ldap:ldap
然後,請啟動ldap(service ldap start),若很正常,就不會到看什麼奇怪的錯誤

再來利用ldapadd把上述四個檔案加入,順序是base/container/group/user
完整語法是ldapadd -x -f base.ldif -D "uid=root,ou=People,dc=your,dc=domain,dc=name" -W
輸入執行後,會叫你輸入ldap的rootpw
接著,若檔案中的東西沒寫錯的話,就會看到add new entry等字樣…
依序add其他三個檔案吧…

接著,請chkconfig ldap on bootup,然後重啟機器,看看重啟後是否有異…

再來,就是wireless的設定了
學校這是用iaVista...
進入admin的網頁,然後看到功能選單的認証方法
點選LDAP,然後新增…
server ip: 你知道的那台
port: ldap預設是389
server name: 就用domain-name吧
Base dn:ou=People,dc=your,dc=domain,dc=name
(Base dn,我一開始是以為像ldap.conf的BASE一樣,但後面發現,在設定wireless中有一個username field,若設定成BASE的話,以上述的設定會找不到,因為我們的username是在People節點之後,所以,Base dn要從ou=People找起)
username field: uid(因為name就放在uid嘛)
然後選Anonymous bind,因為並無特殊限定
ok,按下確定

再來到認証方法中新增出LDAP即可…

以上,接著來就是做openwebmail、pop3、ftp的結合了

沒有留言: