banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Xác thực tập trung với OpenLDAP  XML
  [Question]   Xác thực tập trung với OpenLDAP 25/06/2007 13:46:46 (+0700) | #1 | 66840
pataya
Member

[Minus]    0    [Plus]
Joined: 09/12/2004 20:35:40
Messages: 7
Offline
[Profile] [PM]
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!
[Up] [Print Copy]
  [Question]   LDAP 25/06/2007 17:52:45 (+0700) | #2 | 66849
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

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.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   LDAP 25/06/2007 22:11:00 (+0700) | #3 | 66864
[Avatar]
tphong
Member

[Minus]    0    [Plus]
Joined: 07/03/2005 22:16:25
Messages: 10
Location: Núi
Offline
[Profile] [PM]

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 smilie

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 smilie
[Up] [Print Copy]
  [Question]   Re: LDAP 25/06/2007 23:12:08 (+0700) | #4 | 66878
pataya
Member

[Minus]    0    [Plus]
Joined: 09/12/2004 20:35:40
Messages: 7
Offline
[Profile] [PM]
Thank các bro!
Hiện tại mình đã làm authen được với qmail và freeradius! Ý mình muốn là anh em nào đã làm được phần nào rồi thì mình trao đổi với nhau. Như thế sẽ nhanh hơn và đỡ mất thời gian hơn smilie!
mail của mình: hieudc@gmail.com. Anh em nào cần cái quy trình làm authen cho qmail và freeradius thì nói mình gởi cho smilie
[Up] [Print Copy]
  [Question]   Re: LDAP 24/10/2008 08:02:36 (+0700) | #5 | 156369
alodemnay
Member

[Minus]    0    [Plus]
Joined: 15/07/2008 23:41:17
Messages: 28
Offline
[Profile] [PM]
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!
[Up] [Print Copy]
  [Question]   Re: LDAP 24/10/2008 09:36:12 (+0700) | #6 | 156376
ShinichiKuto
Member

[Minus]    0    [Plus]
Joined: 13/06/2008 17:56:52
Messages: 75
Offline
[Profile] [PM]

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 smilie
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á smilie
[Up] [Print Copy]
  [Discussion]   LDAP 28/08/2009 22:07:21 (+0700) | #7 | 191399
Nowhereman
Elite Member

[Minus]    0    [Plus]
Joined: 19/11/2003 06:25:42
Messages: 108
Offline
[Profile] [PM] [Email]

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 đó .

lang thang vẫn mãi không nhà
đôi chân lê bước thê lương tháng ngày
càng đi càng thấy đắm say
tình thương con Chúa lòng này chẳng phai
thời gian cứ mãi miệt mài
lang thang đi tiếp ....rồi bay lên z ời
cúi đầu con lạy Ông Trời
xin thươn
[Up] [Print Copy]
  [Question]   Xác thực tập trung với OpenLDAP 20/11/2010 17:48:54 (+0700) | #8 | 225246
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Mình xin phép kéo topic này lên để ghi lại cấu hình cho FTP servers + OpenLDAP.

File cấu hình slapd.conf:
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: <a href="mailto:quanta@hvaonline.net">quanta@hvaonline.net</a>
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.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Xác thực tập trung với OpenLDAP 05/12/2013 13:26:30 (+0700) | #9 | 279162
ducquang92
Member

[Minus]    0    [Plus]
Joined: 18/07/2008 18:08:51
Messages: 2
Offline
[Profile] [PM]
Hi @quanta
Mình đang tìm hiểu về vấn đề này, gặp vấn đề như bạn và may mắn vừa tìm được câu trả lời.
Do user được lưu trên LDAP và không tồn tại trên máy nên FTP báo "cannot locate entry". Mình có thể giải quyết vấn đề này bằng việc chỉ định user của máy nằm trên LDAP, thông qua việc cấu hình NSS.
- Cài đặt nss_ldap_pamld (trên CentOS 6.4).
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.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|