จากบทความ ติดตั้ง smbldap-tools บน Fedora 9 นั้นเป็นการคอนฟิกให้ Samba ทำหน้าที่เป็น file sharing อย่างเดียว โดยผู้ใช้งานสามารถ map drive เข้ามาแล้ว authenticate จาก LDAP ได้
ในบทความนี้จะคอนฟิกเพิ่มเติมเพื่อให้ Samba ทำหน้าที่เป็น Domain Controller ของ Windows client ได้
แก้ไขไฟล์ /etc/samba/smb.conf
ต้องแก้ไขไฟล์ smb.conf เพิ่มเติมโดยในที่นี้จะแสดงคอนฟิกทั้งหมดของไฟล์นี้เลย เพื่อคอนฟิกให้ Samba ทำหน้าที่เป็น Domain Controller
[global] workgroup = SMBLDAP server string = Samba Server Version %v
passdb backend = ldapsam:ldap://127.0.0.1/ passwd program = /usr/sbin/smbldap-passwd -u "%u" passwd chat = "Changing *\nNew password*" %n\n "*Retype new password*" %n\n" unix password sync = Yes log file = /var/log/samba/log.%U max log size = 50 time server = Yes socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
add user script = /usr/sbin/smbldap-useradd -m "%u" delete user script = /usr/sbin/smbldap-userdel "%u" add group script = /usr/sbin/smbldap-groupadd -p "%g" delete group script = /usr/sbin/smbldap-groupdel "%g" add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u' add machine script = /usr/sbin/smbldap-useradd -t 0 -w "%u"
logon script = logon.bat logon path = \\%L\profiles\%u logon drive = H: domain logons = Yes os level = 65 preferred master = Yes domain master = Yes wins support = Yes
ldap admin dn = uid=root,ou=People,dc=test-ldap,dc=com ldap group suffix = ou=Group ldap idmap suffix = ou=Idmap ldap machine suffix = ou=Computers ldap suffix = dc=test-ldap,dc=com ldap user suffix = ou=People cups options = raw
[homes] comment = Home Directories read only = No browseable = No
[profiles] path = /home/profiles read only = No guest ok = Yes browseable = No
คำแนะนำ รันคำสั่ง testparm ทุกครั้งเพื่อตรวจสอบความถูกต้องของคอนฟิกไฟล์ หลังการแก้ไขไฟล์ /etc/samba/smb.conf
สร้างไดเร็คทอรีสำหรับเก็บ profiles ของ user
เพื่อให้ user สามารถล็อกอินจาก Windows หลายๆ เครื่องแล้วมี profiles เหมือนกัน เช่น desktop ต้องสร้างไดเร็คทอรี่บนลีนุกซ์ที่รัน Samba สำหรับเก็บ profiles ของ user
ตัวอย่างการสร้างไดเร็คทอรี สำหรับเก็บ profiles ของ user
[root@fc9-min ~]# cd /home [root@fc9-min home]# mkdir profiles [root@fc9-min home]# chgrp "Domain Users" profiles [root@fc9-min home]# chmod 770 profiles [root@fc9-min home]# ls -ld profiles drwxrwx--- 2 root Domain Users 4096 2008-10-19 00:27 profiles
รันเซอร์วิส Samba
เพื่อให้ Samba ทำหน้าที่เป็น Domain Controller ได้นั้น จำเป็นต้องรัน 2 เซอร์วิสคือ smb และ nmb ตามตัวอย่าง
[root@fc9-min ~]# service smb start Starting SMB services: [ OK ]
[root@fc9-min ~]# service nmb start Starting NMB services: [ OK ]
คอนฟิก Windows ให้ join Domain
ล็อกอินเป็น Administrator บนเครื่องไคลเอนต์ Windows ที่จะ join Domain คลิ้กขวาที่ My Computer แล้วเลือก Properties คลิ้กที่ Computer Name แล้วกดปุ่ม Change ใส่ชื่อ Domain ที่ต้องการ join ในที่นี้คือ SMBLDAP
หน้าจอ “Computer Name Changes” จะให้ใส่ User Name และ Password ที่จะใช้ join domain ให้ใส่ User Name เป็น root และใส่ password ตามที่ระบุใน rootpw
ถ้าถูกต้องจะมีหน้าจอขึ้นข้อความ “Welcome to the SMBLDAP domain.” กดปุ่ม Ok แล้วก็รีสตาร์ตเครื่อง
หลังจากบู๊ตเครื่องเสร็จ หน้าจอ Log On to Windows จะสามารถเลือก Log on to เป็น SMBLDAP ได้ ใส่ user ที่เพิ่มจากคำสั่ง smbldap-useradd ในตัวอย่างคือ user01
เมื่อล๊อกออก (Log Off) จาก user01 จะมีการเก็บ profiles ของ user เข้าไปในไดเร็คทอรี บนลีนุกซ์ที่ตั้งไว้ด้วย
ตัวอย่างไฟล์ profiles ที่ถูกสร้างขึ้น ของ user01
[root@fc9-min ~]# ls -l /home/profiles/user01/ total 568 drwx--x--x+ 4 user01 Domain Users 4096 2008-10-18 17:48 Application Data drwx--x--x+ 2 user01 Domain Users 4096 2008-05-03 16:20 Cookies drwx------+ 2 user01 Domain Users 4096 2008-05-03 23:12 Desktop drwx--x--x+ 3 user01 Domain Users 4096 2008-10-18 17:49 Favorites drwx--x--x+ 4 user01 Domain Users 4096 2008-10-18 17:49 My Documents drwx--x--x+ 2 user01 Domain Users 4096 2008-05-03 23:12 NetHood -rwx------ 1 user01 Domain Users 524288 2008-10-18 17:54 NTUSER.DAT -rwx------ 1 user01 Domain Users 1024 2008-10-18 17:54 NTUSER.DAT.LOG -rw------- 1 user01 Domain Users 268 2008-10-19 00:55 ntuser.ini drwx--x--x+ 2 user01 Domain Users 4096 2008-05-03 23:12 PrintHood drwx--x--x+ 2 user01 Domain Users 4096 2008-10-18 17:49 Recent drwx--x--x+ 2 user01 Domain Users 4096 2008-10-18 17:48 SendTo drwx--x--x+ 3 user01 Domain Users 4096 2008-05-03 23:12 Start Menu drwx--x--x+ 2 user01 Domain Users 4096 2008-05-03 16:17 Templates
ตอนนี้ผมกำลังทดสอบใช้งาน Linux มาสมมุติเป็น PDC ให้บริษัทย่อยๆอยู่ครับ
ได้ลองทำตามบทความในเวปนี้ประมาณนี้ครับ
1. Samba as Domain Controller
2. ใช้ ldap authentication โดย smbldap-tools
จากนั้นลอง ใช้ XP Join Domain บทความเขียนดีครับเข้าใจง่ายดี ปรับนิดหน่อยก็เอาไปใช้จริงได้แล้วครับ ขอบคุณมากครับ
ไม่ทราบว่ามีบทความเกี่ยวกับ VPN ที่สามารถ authen ผ่าน samba แล้วสามารถ เข้ามาใช้ไฟล์กลาง คล้ายๆกับ join domain เข้ามาหรือไม่ครับ
ตอนนี้ทดลองใช้ poptop pptpd ลองทำ VPN อยู่ครับ แต่ยังติดปัญหาไม่รู้ว่ามันแปลกหรือป่าว
แบบที่ไม่สำเร็จ
Samba PDC + poptop vpn server
authen ด้วย plugin winbind.so ntlm_auth ใช้ domain samba ทั้งที่ใช้ ldap และแบบ smbpasswd
account ของ samba ซึ่งทดสอบ join domain ด้วย client xp work แล้ว แต่ลอง vpn ไม่ได้
แบบนี้ใช้ได้
Windows AD <= Samba Join AD <= poptop vpn server
authen ด้วย plugin winbind.so ntlm_auth ใช้ domain window account windows vpn ได้
อ่านเวปนอก ก็เหมือนจะใช้ join windows AD กันซะส่วนมาก ไม่ทราบมีอ่ะไรพอจะแนะนำได้บ้างครับ
ขอบคุณล่วงหน้าครับ
มันมี error คับไม่ทราบว่าแก้ยังไง
The domain name sss might be a NetBIOS domain name. If this is the case, verify that the domain name is properly registered with WINS.
If you are certain that the name is not a NetBIOS domain name, then the following information can help you troubleshoot your DNS configuration.
The following error occurred when DNS was queried for the service location (SRV) resource record used to locate a domain controller for domain sss:
The error was: “DNS name does not exist.”
(error code 0x0000232B RCODE_NAME_ERROR)
The query was for the SRV record for _ldap._tcp.dc._msdcs.sss
Common causes of this error include the following:
– The DNS SRV record is not registered in DNS.
– One or more of the following zones do not include delegation to its child zone:
sss
. (the root zone)