<body id=bd><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d7145547\x26blogName\x3dESZhang+blog\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dSILVER\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://zenac.blogspot.com/search\x26blogLocale\x3den_US\x26v\x3d2\x26homepageUrl\x3dhttp://zenac.blogspot.com/\x26vt\x3d3767548654419712195', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

 ESZhang blog

บันทึก ความทรงจำ บ่น ระบาย เหตุบ้านการเมือง ไปๆมาๆ กล้องกับการถ่ายรูป กับงานสุดรัก คอมพิวเตอร์งัย

LDAP Howto Generate userPassword

หายไปเป็นชาติกับการติดตั้ง LDAP Server ของผมตอนนี้กลับมาแล้วครับอย่างด่วน
เพราพี่ท่านเจ้านายสุดที่รัก สั่งมาว่า "...จะปีนึงแล้วนะน้อง จะได้ใช้หรือยังเนี่ยหา..." T_T
Project ข้ามชาติจริงๆผม เอ้ามาดูความคืบหน้าของวันนี้กัน

คือว่าเจ้า LDAP Server เนี่ยมันเป็นส่วนทำงานเบื้องหลังใช่มั้ย แล้วส่วนใหญ่คนที่จะทำงานกับมัน
ก็แอดมินอย่างผมเนี่ยแหละเพราะฉะนั้น ส่วนติดต่อกับผู้ใช้ มันก็ลำบากสำหรับคนใช้งานทั่วๆไป
เอาละสิปัญหามันอยู่ที่ว่า ผู้ใช้ต้องเปลี่ยนรหัสผ่านได้ด้วยตัวเอง ทำอย่างไรดีหล่ะ มันมีตัวเลือกง่ายๆ
1. ก็สอนผู้ใช้ให้รู้จัก phpLDAPAdmin สิเปลี่ยนเองก็ได้
2. หาที่เค้ามีอยู่แล้วมาใช้
3. สร้างส่วนติดต่อขึ้นมาใหม่ให้ใช้งานได้ง่าย
ข้อแรกแหะๆ ผมว่าผ่านไปเถอะครับ ร้อยพ่อพันแม่ กันซะขนาดนั้น แถมบุญเก่า กรรมใหม่ ของแต่ละคนยังไม่เท่ากัน
ทำใหม่ยังง่ายซะกว่าจริงนะเอ้า ลองอิมพลีเมนท์ระบบใหม่ๆ กับพนักงานเก่าๆ ในโครงสร้างบริษัทขนาดกลางๆดูสิครับ
แล้วจะรู้ว่ามันยากส์จริงๆ
มาดูข้อต่อไปกัน เอ่อแบบว่าพยายามหาแล้วนะ แต่ก็เอาเถอะ หาไม่เจอจริงๆเฮ้อ
เอ้าเขียนกันขึ้นมาใหม่เลยแล้วกัน ก็ไม่มีอะไรยากมากครับ
ทำหน้าจอตรวจสอบรหัสเก่า ต่อเชื่อมกับเครื่องแม่ข่าย แล้วก็ใส่ค่าลงไป
แค่นี้เองไม่ซับซ้อน หน้าจอเดียวทำงานอย่างเดียว จบได้ในตัวมันเอง
Attribute ที่เกี่ยวข้อง
userPassword = {HASH}crypted-string
sambaLMPassword = Digest::MD4
sambaNTPassword = Digest::MD4
sambaPwdMustChange = Unix Time
การจะสร้างค่าของ userPassword เราจะใช้คำสั่ง slappasswd -h {HASH} -s secret อย่างนี้
# slappasswd -h {MD5} -s password

ส่วนค่าของ sambaLMPassword กับ sambaNTPassword นั้นเอามาจากคำสั่ง mkntpwd -L secret -N secret
# mkntpwd -L password -N password

sambaPwdMustChange เป็น Unix Time เริ่มนับกันเป็นวินาทีตั้งแต่ วันที่ 1 มกราคม 1979 เวลา 00:00:00 ครับ
เราหาค่า Unix time ได้ด้วยคำสั่งนี้ date --date="string date" +%s
# date --date="15 Jan 2007" +%s

แต่ช้าก่อนผมมีวิธีที่ง่ายกว่านั้นอิอิอิ
smbldap-passwd สิครับทำให้หมดทุกอย่าง ทั้งคำนวนวันหมดอายุและจัดการเรื่อง Policy แต่ว่ามันต้องรอให้ผู้ใช้ใส่รหัสผ่านเองสองครั้ง
ส่งรหัสผ่านเข้าไปตรงๆไม่ได้ เรามีวิธีแก้ครับง่ายๆ สร้างไฟล์คำสั่งขึ้นมาแบบนี้

#!/bin/bash
smbldap-passwd $1 << EOF
$2
$2
EOF

ผมตั้งชื่อ Shell script นี้ว่า chpwdldap.bash เวลาจะใช้ก็ง่ายๆเรียกกันตรงๆเลย
# chpwdldap.bash username password
เล่นกันซึ่งๆถึกๆแต่สะดวกนะคร้าบ
Friday, December 01, 2006 at 15:46

Blogger jane said...

ที่ทำงานผมใช้ php update ผ่าน function LDAP

แต่เดียวนี้ต้องหันมาเก็บ plain text แทน hash password แล้ว เพราะว่าต้องทำ EAP/Radius ซึ่ง Radius จำเป็นต้องดึง plain text password ไปเค้า algorithm ของ EAP เอง 02 December, 2006 01:08  

Blogger Zena said...

เอ่อ... เสี่ยงเกินไปหรือเปล่าครับเนี่ย
Attribute userPassword เนี่ยถ้าเป็น Plain text
ก็ดูกันได้ซึ่งๆหน้า เลยนะครับ
อันตรายโครตๆ อ่า
Third party ใหนมาให้ผมทำอย่างนี้นะ
บอกเจ้านายคำเดียวเลย "พี่อย่าไปใช้มันเลย..." 03 December, 2006 02:58  

Blogger jane said...

ก็ต้องเสี่ยงครับ แล้วไป hardennig ldap กันเลย ว่าให้ใครเข้าถึงได้ ซึ่งไม่ได้เปิดทั่วไป


ถ้าใช้ ้hash จริงๆ ผมมองว่าตัว user เองตั้ง password ล่ะหลวมอยู่แล้ว เอาไปสุ่มก็หลุดหมด

ส่วน password admin ยังเป็น hash อยู่ครับ 04 December, 2006 16:54  

Blogger Zena said...

ก็ยังดีครับ ที่ยังพอมีการควบคุมได้บ้าง
แหมผมก็นึกว่าเปิดหมด อันตรายตายชัก 06 December, 2006 14:22  
  Post a Comment »
 

My Profile

 My name: Zena
My Home: Klongsamwa, Bangkok, Thailand

View my complete profile


Copyright © 2005 for Blogger by Blogger Templates Inc. All rights reserved.