<![CDATA[Latest posts for the topic "Xác thực tập trung với OpenLDAP"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Xác thực tập trung với OpenLDAP /hvaonline/posts/list/11570.html#66840 /hvaonline/posts/list/11570.html#66840 GMT LDAP

pataya wrote:
Hi all, Mình đang tìm hiểu LDAP! Hiện tại mình muốn xây dựng 1 hệ thống trong đó tất cả các dịch vụ như: mail, web, fpt, radius, squid, ... dùng chung 1 user LDAP (Single Sign On)! Anh em nào đã từng làm hay có kinh nghiệm về nó thì chia sẽ cho mình với. Thanks! 
Mỗi dịch vụ mail, ftp (không phải fpt), squid.... nếu có hỗ trợ LDAP authentication thì đều có hướng dẫn đi kèm với tài liệu của mỗi chương trình đó. Nên bắt tay vào làm và nếu gặp trở ngại gì thì hỏi cụ thể, đừng hỏi một cách tổng quát và quá rộng như thế. Không có ai có thể có thời gian và kiên nhẫn để viết tất cả các tute như bồ muốn được. Làm việc trên *nix và nhất là táy máy với đồ open source thì nên tự trang bị cho mình cái tính chịu khó trước tiên.]]>
/hvaonline/posts/list/11570.html#66849 /hvaonline/posts/list/11570.html#66849 GMT
LDAP

conmale wrote:
Làm việc trên *nix và nhất là táy máy với đồ open source thì nên tự trang bị cho mình cái tính chịu khó trước tiên. 
Chính xác :mrgreen: tip: Mỗi ftp, mail ... server đều có module LDAP, plug nó vào rồi xài. Hoặc thích thì xài user hệ thống rồi cho cái PAM nó authen qua LDAP :mrgreen: ]]>
/hvaonline/posts/list/11570.html#66864 /hvaonline/posts/list/11570.html#66864 GMT
Re: LDAP /hvaonline/posts/list/11570.html#66878 /hvaonline/posts/list/11570.html#66878 GMT Re: LDAP /hvaonline/posts/list/11570.html#156369 /hvaonline/posts/list/11570.html#156369 GMT Re: LDAP

alodemnay wrote:
hi mọi người! Mình cũng đang học về LDAP. Mình muốn hỏi có thể tìm thông tin chính xác về LDAP ở đâu? thanks all! 
Nó đây :D http://www.google.com.vn/search?hl=vi&q=LDAP+how+to&btnG=T%C3%ACm+v%E1%BB%9Bi+Google&meta= Trời ơi, trước đây mình cứ nghĩ LDAP là Linux Databases Apache PHP, search cái đống trên vào xem thử thì LDAP = Lightweight Directory Access Protocol. Choáng quá #:S ]]>
/hvaonline/posts/list/11570.html#156376 /hvaonline/posts/list/11570.html#156376 GMT
LDAP

pataya wrote:
Hi all, Mình đang tìm hiểu LDAP! Hiện tại mình muốn xây dựng 1 hệ thống trong đó tất cả các dịch vụ như: mail, web, fpt, radius, squid, ... dùng chung 1 user LDAP (Single Sign On)! Anh em nào đã từng làm hay có kinh nghiệm về nó thì chia sẽ cho mình với. Thanks! 
bạn thử sài thằng SSO ( Single Sigh On ) của CA xem nó làm đầy đủ những thứ bạn yêu cầu đó . ]]>
/hvaonline/posts/list/11570.html#191399 /hvaonline/posts/list/11570.html#191399 GMT
Xác thực tập trung với OpenLDAP Code:
database	bdb
suffix		"dc=hvaonline,dc=net"
rootdn		"cn=Manager,dc=hvaonline,dc=net"
rootpw		{SSHA}mbQZyRGDvbpRV4IxDebBNfV/gWIG0rAd
File base.ldif: Code:
dn: dc=hvaonline,dc=net
dc: hvaonline
objectClass: top
objectClass: domain
File ou.ldif: Code:
dn: ou=member,dc=hvaonline,dc=net
ou: member
objectClass: top
objectClass: organizationalUnit
ldif cho một member: Code:
dn: cn=quanta,ou=member,dc=hvaonline,dc=net
cn: quanta
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
mail: quanta@hvaonline.net
givenName: Quan
initials: Anh
sn: Tong
userPassword: {SSHA}FgKaU49miUnskmndm0TIRl9UM7rvCzJZ
Giá trị userPassword có được bằng cách: Code:
# slappasswd -s secret
Các file ldif này được import vào bằng lệnh sau: Code:
# ldapadd -W -x -D "cn=Manager,dc=hvaonline,dc=net" -f <file.ldif>
Thêm phần cấu hình ACL vào cho OpenLDAP: Code:
access to attrs=userPassword,shadowLastChange
	by self write
	by anonymous read
	by dn.base="cn=Manager,dc=hvaonline,dc=net" write
	by * none

access to *
	by self write
	by dn.base="cn=Manager,dc=hvaonline,dc=net" write
	by * read
Start ldap và test với ldapsearch: Code:
# ldapsearch -W -x -D "cn=Manager,dc=hvaonline,dc=net" "cn=quanta"
Cài đặt vsftpd, và cấu hình như sau: Code:
anonymous_enable=NO
chroot_local_user=YES
hide_ids=YES
listen=YES
tcp_wrappers=YES

listen_port=21
local_enable=YES
#nopriv_user=vsftp
#ftp_username=nobody
pam_service_name=vsftpd

use_localtime=YES
user_config_dir=/etc/vsftpd/users
userlist_enable=YES
userlist_file=/etc/vsftpd/ftpusers
virtual_use_local_privs=YES
xferlog_std_format=NO
log_ftp_protocol=YES
dual_log_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd-xfer.log
vsftpd_log_file=/var/log/vsftpd.log
syslog_enable=NO
async_abor_enable=YES
#connect_from_port_20=YES
nopriv_user=vsftp
local_umask=0022

session_support=YES

#user_sub_token=$USER
#local_root=/home/vsftp/$USER

write_enable=YES
File cấu hình PAM cho vsftpd: Code:
#%PAM-1.0
auth 	   sufficient   pam_ldap.so		
account    sufficient   pam_ldap.so
password   sufficient   pam_ldap.so 	
session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0022
File cấu hình /etc/ldap.conf: Code:
base ou=member,dc=hvaonline,dc=net
uri ldap://127.0.0.1/
ldap_version 3
binddn cn=Manager,dc=hvaonline,dc=net
bindpw secret
Thử login xem nào: Code:
$ ftp localhost
Connected to hvaonline.net
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): quanta
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp>
Ngó qua audit.log:
type=USER_AUTH msg=audit(1290249147.685:1668963): user pid=15496 uid=0 auid=0 msg='PAM: authentication acct="quanta" : exe="/usr/sbin/vsftpd" (hostname=hvaonline.net, addr=127.0.0.1, terminal=ftp res=failed)'  
vsftpd.log cũng không có gì khả quan hơn: Code:
Sat Nov 20 17:32:23 2010 [pid 15497] FTP response: Client "127.0.0.1", "530 Please login with USER and PASS."
Sat Nov 20 17:32:25 2010 [pid 15497] FTP command: Client "127.0.0.1", "USER quanta"
Sat Nov 20 17:32:25 2010 [pid 15497] [quanta] FTP response: Client "127.0.0.1", "331 Please specify the password."
Sat Nov 20 17:32:27 2010 [pid 15497] [quanta] FTP command: Client "127.0.0.1", "PASS <password>"
Sat Nov 20 17:32:27 2010 [pid 15496] [quanta] FAIL LOGIN: Client "127.0.0.1"
Sat Nov 20 17:32:28 2010 [pid 15497] [quanta] FTP response: Client "127.0.0.1", "530 Login incorrect."
À, còn log của LDAP nằm ở đâu nhỉ? Code:
# cat /etc/sysconfig/ldap 
SLAPD_OPTIONS="-l local4"
Code:
# cat /etc/syslog.conf 
# OpenLDAP log
local4.*						/var/log/ldap.log
Nov 20 17:38:28 SVR040-763 slapd[13104]: conn=18 op=1 SRCH base="ou=member,dc=hvaonline,dc=net" scope=2 deref=0 filter="(uid=quanta)" 
Làm sao để xác thực với cn thay vì uid nhỉ? Code:
# grep uid /etc/ldap.conf
# The user ID attribute (defaults to uid)
# pam_login_attribute uid
Sửa thành cn và thử lại: Code:
$ ftp localhost
Connected to SVR040-763.localdomain.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): quanta
331 Please specify the password.
Password:
500 OOPS: cannot locate user entry:quanta
Login failed.
ldap log có gì:
Nov 20 18:18:06 SVR040-763 slapd[13104]: conn=80 op=1 SRCH base="ou=member,dc=hvaonline,dc=net" scope=2 deref=0 filter="(cn=quanta)" Nov 20 18:18:06 SVR040-763 slapd[13104]: conn=80 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=  
OK, vậy là đã tìm thấy (nentries=1). audit.log thì sao?
type=USER_AUTH msg=audit(1290252247.771:1669769): user pid=20068 uid=0 auid=0 msg='PAM: authentication acct="quanta" : exe="/usr/sbin/vsftpd" (hostname=SVR040-763.localdomain, addr=127.0.0.1, terminal=ftp res=success)' type=USER_ACCT msg=audit(1290252247.771:1669770): user pid=20068 uid=0 auid=0 msg='PAM: accounting acct="quanta" : exe="/usr/sbin/vsftpd" (hostname=SVR040-763.localdomain, addr=127.0.0.1, terminal=ftp res=success)' type=CRED_ACQ msg=audit(1290252247.771:1669771): user pid=20068 uid=0 auid=0 msg='PAM: setcred acct="quanta" : exe="/usr/sbin/vsftpd" (hostname=SVR040-763.localdomain, addr=127.0.0.1, terminal=ftp res=success)' type=USER_START msg=audit(1290252247.771:1669772): user pid=20068 uid=0 auid=0 msg='PAM: session open acct="quanta" : exe="/usr/sbin/vsftpd" (hostname=SVR040-763.localdomain, addr=127.0.0.1, terminal=ftp res=failed)' type=CRED_DISP msg=audit(1290252247.775:1669773): user pid=20068 uid=0 auid=0 msg='PAM: setcred acct="quanta" : exe="/usr/sbin/vsftpd" (hostname=SVR040-763.localdomain, addr=127.0.0.1, terminal=ftp res=success)' 
authentication, accounting, ... success hết, sao session lại failed nhỉ? Thử trỏ session đến pam_ldap xem nào: Code:
auth 	   sufficient   pam_ldap.so		
account    sufficient   pam_ldap.so
password   sufficient   pam_ldap.so 	
session	   sufficient   pam_ldap.so 	
session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0022
type=USER_AUTH msg=audit(1290252530.740:1669834): user pid=23322 uid=0 auid=0 msg='PAM: authentication acct="quanta" : exe="/ usr/sbin/vsftpd" (hostname=SVR040-763.localdomain, addr=127.0.0.1, terminal=ftp res=success)' type=USER_ACCT msg=audit(1290252530.741:1669835): user pid=23322 uid=0 auid=0 msg='PAM: accounting acct="quanta" : exe="/usr/ sbin/vsftpd" (hostname=SVR040-763.localdomain, addr=127.0.0.1, terminal=ftp res=success)' type=CRED_ACQ msg=audit(1290252530.742:1669836): user pid=23322 uid=0 auid=0 msg='PAM: setcred acct="quanta" : exe="/usr/sbin/vsftpd" (hostname=SVR040-763.localdomain, addr=127.0.0.1, terminal=ftp res=success)' type=USER_START msg=audit(1290252530.765:1669837): user pid=23322 uid=0 auid=0 msg='PAM: session open acct="quanta" : exe="/usr/sbin/vsftpd" (hostname=SVR040-763.localdomain, addr=127.0.0.1, terminal=ftp res=success)' type=USER_END msg=audit(1290252530.779:1669838): user pid=23322 uid=0 auid=0 msg='PAM: session close acct="quanta" : exe="/usr/sbin/vsftpd" (hostname=SVR040-763.localdomain, addr=127.0.0.1, terminal=ftp res=success)'  
Vậy là đã success, nhưng sao nó vẫn báo "500 OOPS: cannot locate user entry:quanta" nhỉ? Hay là user quanta phải tồn tại trên hệ thống trước. Code:
# useradd -d /home/vsftpd/quanta -s /sbin/nologin quanta
Creating mailbox file: File exists
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Code:
$ ftp localhost
Connected to SVR040-763.localdomain.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): quanta
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/vsftpd/quanta
Login failed.
ftp>
Hay là thằng pam_mkhomedir.so có vấn đề gì nhỉ? Ngoài thằng này còn thằng nào khác để tự động tạo home folder khi login không? Search thử thì thấy có autodir nữa. Code:
# cat /etc/sysconfig/autohome 
# Where home directories are supposed to be?
# Usually it is /home on most systems.
AUTOHOME_HOME=/home/vsftpd
Code:
# service autohome start
Starting autohome:                                         [  OK  ]
Xóa user quanta đi và add lại với -M để không tạo home folder: Code:
# useradd -M -d /home/vsftp/quanta -s /sbin/nologin quanta
Creating mailbox file: File exists
Code:
# service autohome start
Starting autohome:                                         [  OK  ]
Code:
$ ftp localhost
Connected to SVR040-763.localdomain.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): quanta
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
OK, xong. Mình vẫn thắc mắc một điều: liệu user có cần phải tồn tại trên hệ thống (/etc/passwd) trước thì vsftpd mới login được với LDAP account không? Hay là có cái module nào của PAM đang ép buộc việc này mà mình chưa biết nhỉ. Bạn nào biết giúp mình với. ]]>
/hvaonline/posts/list/11570.html#225246 /hvaonline/posts/list/11570.html#225246 GMT
Xác thực tập trung với OpenLDAP Code:
yum install nss-pam-ldapd
- Chỉnh sửa file /etc/nsswitch.conf. Sửa 3 dòng passwd và shadow như sau (sẽ cho phép hệ điều hành sử dụng cả dữ liệu local và từ ldap) Code:
passwd files ldap
shadow files ldap
group files ldap
- Chỉnh sửa file /etc/nslcd.conf. Code:
uri=ldap://127.0.0.1 (bỏ dấu chú thích đầu dòng)
base dc=mydomain,dc=com (chỉnh lại thành suffix của bạn)
- Khởi động lại dịch vụ Code:
service nslcd.conf restart
- Kiểm tra bằng cách dùng lệnh su ldapuser (với ldapuser là user có ở LDAP nhưng không có trên máy). Nếu không trả về lỗi thì cấu hình đúng. - Kiểm tra FTP. ]]>
/hvaonline/posts/list/11570.html#279162 /hvaonline/posts/list/11570.html#279162 GMT