|
|
Mình đã cấu hình cho dịch vụ kerberos nhưng chưa bao giờ mình dùng sasl xác thực openldap qua kerberos. Bro có thể nói cho mình biết ưu điểm và khuyết điểm của sasl xác thực openldap qua kerberos được ko?
|
|
|
Mình không có dùng sasl xác thực openldap qua kerberos đâu pnco. Mình chỉ dùng loại mã hóa digest-md5 cho sasl của ldap thôi.
|
|
|
Cán ơn bro bây giờ mình đã gửi và nhận mail ở bên ngoài được rồi. Thank. Để lần khác mình thử dùng Qmail.
|
|
|
Cảm ơn bạn, bây giờ mình đã hiểu. ^_^
|
|
|
Hiện giờ mình đang làm sasl của ldap, nhưng nó bị lỗi.
Code:
[root@localhost openldap]#vi slapd.conf
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
allow bind_v2
loglevel -1
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
password-hash {CRYPT}
access to *
by * read
database bdb
suffix "dc=vt04a,dc=com"
rootdn "cn=Manager,dc=vt04a,dc=com"
rootpw {CRYPT}frZ2fNLLQyOMY
sasl-regexp uid=*,cn=mail.vt04a.com,cn=DIGEST-MD5,cn=auth uid=$1,ou=Server,dc=vt04a,dc=com
directory /var/lib/ldap
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
[root@localhost openldap]# vi ldap.conf
BASE dc=vt04a,dc=com
HOST 192.168.1.5
URI ldap://mail.vt04a.com
[root@localhost openldap]# vi base.ldif
dn: dc=vt04a,dc=com
objectClass: top
objectClass: domain
domainComponent: vt04a
dn: cn=Manager,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalRole
cn: Manager
dn: ou=Server,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Server
dn: ou=Client,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Client
dn: uid=dovecot,ou=Server,dc=vt04a,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: posixAccount
objectClass: inetOrgPerson
cn: dovecot
sn: dovecot
uid: dovecot
uidNumber: 301
gidNumber: 300
homeDirectory: /home/dovecot
userPassword: {CRYPT}frj6CQnOtzq3.
mail: <a href="mailto:dovecot@vt04a.com">dovecot@vt04a.com</a>
ou: Server
dn: uid=trang,ou=Client,dc=vt04a,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: posixAccount
objectClass: inetOrgPerson
cn: trang
sn: xuan trang
uid: trang
uidNumber: 302
gidNumber: 300
homeDirectory: /home/trang
userPassword: {CRYPT}frdadNSivpzlo
mail: <a href="mailto:trang@vt04a.com">trang@vt04a.com</a>
ou: Client
dn: uid=quynh,ou=Client,dc=vt04a,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: posixAccount
objectClass: inetOrgPerson
cn: quynh
sn: ngoc quynh
uid: quynh
uidNumber: 303
gidNumber: 300
homeDirectory: /home/quynh
userPassword: {CRYPT}frI1Fun0wizMI
mail: <a href="mailto:quynh@vt04a.com">quynh@vt04a.com</a>
ou: Client
[root@localhost openldap]# sasldblistusers2
<a href="mailto:dovecot@mail.vt04a.com">dovecot@mail.vt04a.com</a>: userPassword
[root@localhost ~]# ldapsearch -U <a href="mailto:dovecot@mail.vt04a.com">dovecot@mail.vt04a.com</a> -b 'uid=quynh,ou=Client,dc=vt04a,dc=com' '(objectClass=*)'
ldap_sasl_interactive_bind_s: No such attribute (16)
Mình ko hiểu rõ về sasl_regexp trong file sldap.conf, sasl-regexp uid=*,cn=mail.vt04a.com,cn=DIGEST-MD5,cn=auth uid=$1,ou=Server,dc=vt04a,dc=com, không biết mình ghi như vậy có đúng ko. Cấu trúc của sasl_regexp như sau: uid=<username>,cn=<realm>,cn=<mech>,cn=auth , với cn=<realm> là domain của mình phải ko?
|
|
|
nil wrote:
Ý bạn là binddn=rootdn và credentials=rootpw, bạn chắc chứ? Giả sử mình dùng một user khác rootdn có quyền ghi lên cơ sở dữ liệu LDAP thì sao? uid=trang,ou=Client,dc=vt04a,dc=com chẳng hạn?
Vậy tóm lại là credentials=rootdn_slave_password. ban đầu mình đọc tài liệu,nó chỉ nói là credentials là passwd để master truyền database cho slave, nhưng khi ấy mình đọc hoài mà ko thấy nó nói về credentials là passwd do mình tự cho hay là phải cùng passwd với rootpw master hoặc slave. Cám ơn bạn nhờ bạn mà mình đã hiểu được vấn đề. Cảm ơn vì sự nhiệt tình của mọi người.
|
|
|
Mình đã làm được rồi. Đúng như lời bạn nói, đó là do Master xác thực ko thành công với slave.
Mình đã chỉnh file slapd.conf trong master:
replica host=ldapslave.vt04a.com:389
binddn="cn=Manager,dc=vt04a,dc=com"
bindmethod=simple credentials=123456789
Ban đầu mình cứ tưởng là credentials cho thế nào cũng được nên mình cho credentials=123456, bây giờ mình đã hiểu là credentials phải có cùng password với rootpasswd. Nhưng mà credentials phải có cùng password với rootpasswd của Master hay Slave hay là cả Master và slave. Cám ơn mọi người rất nhiều. ^_^. Bây giờ mình sẽ làm sasl và tls cho ldap. Mong mọi người giúp đỡ.
|
|
|
Vậy mình phải làm sao đây, mình đã tắt iptables rồi.
|
|
|
Mình đã làm như hướng dẫn của bạn.
Đối với ldap master:
Code:
[root@mail ~]# tail -f /var/lib/ldap/replog
replica: 192.168.1.6:389
time: 1176889901
dn: cn=Manager,dc=vt04a,dc=com
changetype: delete
tail: /var/lib/ldap/replog: file truncated
replica: 192.168.1.6:389
time: 1176889916
dn: dc=vt04a,dc=com
changetype: delete
tail: /var/lib/ldap/replog: file truncated
replica: 192.168.1.6:389
time: 1176889954
dn: dc=vt04a,dc=com
changetype: add
objectClass: top
objectClass: domain
dc: vt04a
structuralObjectClass: domain
entryUUID: 46d26226-81de-102b-954c-ed3fbd031f5d
creatorsName: cn=Manager,dc=vt04a,dc=com
createTimestamp: 20070418095234Z
entryCSN: 20070418095234Z#000000#00#000000
modifiersName: cn=Manager,dc=vt04a,dc=com
modifyTimestamp: 20070418095234Z
replica: 192.168.1.6:389
time: 1176889955
dn: cn=Manager,dc=vt04a,dc=com
changetype: add
objectClass: top
objectClass: organizationalRole
cn: Manager
structuralObjectClass: organizationalRole
entryUUID: 474213a0-81de-102b-954d-ed3fbd031f5d
creatorsName: cn=Manager,dc=vt04a,dc=com
createTimestamp: 20070418095235Z
entryCSN: 20070418095235Z#000000#00#000000
modifiersName: cn=Manager,dc=vt04a,dc=com
modifyTimestamp: 20070418095235Z
tail: /var/lib/ldap/replog: file truncated
[root@mail ~]# tail -f /var/log/ldap
Apr 18 16:28:03 mail slapd[2430]: daemon: select: listen=7 active_threads=0 tvp=NULL
Apr 18 16:28:03 mail slapd[2430]: daemon: select: listen=8 active_threads=0 tvp=NULL
Apr 18 16:28:03 mail slapd[2430]: daemon: activity on 1 descriptor
Apr 18 16:28:03 mail slapd[2430]: daemon: activity on:
Apr 18 16:28:03 mail slapd[2430]:
Apr 18 16:28:03 mail slapd[2430]: daemon: select: listen=7 active_threads=0 tvp=NULL
Apr 18 16:28:03 mail slapd[2430]: daemon: select: listen=8 active_threads=0 tvp=NULL
Apr 18 16:28:03 mail slapd[2430]: conn=16 op=3 UNBIND
Apr 18 16:28:03 mail slapd[2430]: daemon: removing 12
Apr 18 16:28:03 mail slapd[2430]: conn=16 fd=12 closed
Apr 18 16:50:13 mail slapd[2430]: daemon: activity on 1 descriptor
Apr 18 16:50:13 mail slapd[2430]: daemon: activity on:
Apr 18 16:50:13 mail slapd[2430]:
Apr 18 16:50:13 mail slapd[2430]: daemon: listen=8, new connection on 12
Apr 18 16:50:14 mail slapd[2430]: daemon: added 12r
Apr 18 16:50:14 mail slapd[2430]: conn=17 fd=12 ACCEPT from IP=192.168.1.5:52239 (IP=0.0.0.0:389)
Apr 18 16:50:14 mail slapd[2430]: daemon: select: listen=7 active_threads=0 tvp=NULL
Apr 18 16:50:14 mail slapd[2430]: daemon: select: listen=8 active_threads=0 tvp=NULL
Apr 18 16:50:14 mail slapd[2430]: daemon: activity on 1 descriptor
Apr 18 16:50:14 mail slapd[2430]: daemon: activity on:
Apr 18 16:50:14 mail slapd[2430]: 12r
Apr 18 16:50:14 mail slapd[2430]:
Apr 18 16:50:14 mail slapd[2430]: daemon: read active on 12
Apr 18 16:50:14 mail slapd[2430]: daemon: select: listen=7 active_threads=0 tvp=NULL
Apr 18 16:50:14 mail slapd[2430]: daemon: select: listen=8 active_threads=0 tvp=NULL
Apr 18 16:50:14 mail slapd[2430]: conn=17 op=0 BIND dn="" method=128
Apr 18 16:50:14 mail slapd[2430]: conn=17 op=0 RESULT tag=97 err=0 text=
Apr 18 16:50:14 mail slapd[2430]: daemon: activity on 1 descriptor
Apr 18 16:50:14 mail slapd[2430]: daemon: activity on:
Apr 18 16:50:14 mail slapd[2430]: 12r
Apr 18 16:50:14 mail slapd[2430]:
[root@mail ~]# cd /var/lib/ldap/
[root@mail ldap]# ls
alock __db.003 DB_CONFIG log.0000000001 replica uid.bdb
cn.bdb __db.004 dn2id.bdb mail.bdb replog uidNumber.bdb
__db.001 __db.005 gidNumber.bdb objectClass.bdb replog.lock
__db.002 __db.006 id2entry.bdb ou.bdb sn.bdb
[root@mail ldap]# ldapsearch -x
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# vt04a.com
dn: dc=vt04a,dc=com
objectClass: top
objectClass: domain
dc: vt04a
# Manager, vt04a.com
dn: cn=Manager,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalRole
cn: Manager
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
[root@mail ldap]#
[root@mail replica]# ls
slurpd.replog slurpd.replog.lock slurpd.status slurpd.status.lock
Đối với ldap slave:
Code:
[root@ldapslave ~]# tail -f /var/log/ldap
Apr 18 13:41:07 ldapslave slapd[5969]: conn=61 fd=12 ACCEPT from IP=192.168.1.5:55225 (IP=0.0.0.0:389)
Apr 18 13:41:07 ldapslave slapd[5969]: daemon: select: listen=7 active_threads=0 tvp=NULL
Apr 18 13:41:07 ldapslave slapd[5969]: daemon: select: listen=8 active_threads=0 tvp=NULL
Apr 18 13:41:07 ldapslave slapd[5969]: daemon: activity on 1 descriptor
Apr 18 13:41:07 ldapslave slapd[5969]: daemon: activity on:
Apr 18 13:41:07 ldapslave slapd[5969]: 12r
Apr 18 13:41:07 ldapslave slapd[5969]:
Apr 18 13:41:07 ldapslave slapd[5969]: daemon: read active on 12
Apr 18 13:41:07 ldapslave slapd[5969]: connection_get(12)
Apr 18 13:41:07 ldapslave slapd[5969]: connection_get(12): got connid=61
Apr 18 13:41:07 ldapslave slapd[5969]: connection_read(12): checking for input on id=61
Apr 18 13:41:07 ldapslave slapd[5969]: ber_get_next on fd 12 failed errno=11 (Resource temporarily unavailable)
Apr 18 13:41:07 ldapslave slapd[5969]: daemon: select: listen=7 active_threads=0 tvp=NULL
Apr 18 13:41:07 ldapslave slapd[5969]: daemon: select: listen=8 active_threads=0 tvp=NULL
Apr 18 13:41:07 ldapslave slapd[5969]: do_bind
Apr 18 13:41:07 ldapslave slapd[5969]: >>> dnPrettyNormal: <cn=Manager,dc=vt04a,dc=com>
Apr 18 13:41:07 ldapslave slapd[5969]: <<< dnPrettyNormal: <cn=Manager,dc=vt04a,dc=com>, <cn=manager,dc=vt04a,dc=com>
Apr 18 13:41:07 ldapslave slapd[5969]: do_bind: version=3 dn="cn=Manager,dc=vt04a,dc=com" method=128
Apr 18 13:41:07 ldapslave slapd[5969]: conn=61 op=0 BIND dn="cn=Manager,dc=vt04a,dc=com" method=128
Apr 18 13:41:07 ldapslave slapd[5969]: ==> bdb_bind: dn: cn=Manager,dc=vt04a,dc=com
Apr 18 13:41:07 ldapslave slapd[5969]: bdb_dn2entry("cn=manager,dc=vt04a,dc=com")
Apr 18 13:41:07 ldapslave slapd[5969]: => bdb_dn2id("dc=vt04a,dc=com")
Apr 18 13:41:07 ldapslave slapd[5969]: <= bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30989)
Apr 18 13:41:07 ldapslave slapd[5969]: send_ldap_result: conn=61 op=0 p=3
Apr 18 13:41:07 ldapslave slapd[5969]: send_ldap_result: err=49 matched="" text=""
Apr 18 13:41:07 ldapslave slapd[5969]: send_ldap_response: msgid=1 tag=97 err=49
Apr 18 13:41:07 ldapslave slapd[5969]: conn=61 op=0 RESULT tag=97 err=49 text=
Apr 18 13:41:07 ldapslave slapd[5969]: daemon: activity on 1 descriptor
Apr 18 13:41:07 ldapslave slapd[5969]: daemon: activity on:
Apr 18 13:41:07 ldapslave slapd[5969]: 12r
Apr 18 13:41:07 ldapslave slapd[5969]:
[root@ldapslave ~]# cd /var/lib/ldap/
[root@ldapslave ldap]# ls
alock __db.003 DB_CONFIG log.0000000001 sn.bdb
cn.bdb __db.004 dn2id.bdb mail.bdb uid.bdb
__db.001 __db.005 gidNumber.bdb objectClass.bdb uidNumber.bdb
__db.002 __db.006 id2entry.bdb ou.bdb
[root@ldapslave ldap]# ldapsearch -x
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 32 No such object
# numResponses: 1
|
|
|
Mình đã chỉnh loglevel -1 rồi.
Code:
[root@mail log]# tail /var/log/ldap
Apr 22 17:29:06 mail slapd[2431]: daemon: activity on:
Apr 22 17:29:06 mail slapd[2431]:
Apr 22 17:29:06 mail slapd[2431]: daemon: select: listen=7 active_threads=0 tvp=NULL
Apr 22 17:29:06 mail slapd[2431]: daemon: select: listen=8 active_threads=0 tvp=NULL
Apr 22 17:29:05 mail slapd[2431]: do_unbind
Apr 22 17:29:06 mail slapd[2431]: conn=5 op=2 UNBIND
Apr 22 17:29:06 mail slapd[2431]: connection_resched: attempting closing conn=5 sd=12
Apr 22 17:29:06 mail slapd[2431]: connection_close: conn=5 sd=12
Apr 22 17:29:06 mail slapd[2431]: daemon: removing 12
Apr 22 17:29:06 mail slapd[2431]: conn=5 fd=12 closed
[root@mail ~]# cd /var/lib/ldap/
[root@mail ldap]# ll
total 1016
-rw-r--r-- 1 ldap ldap 2048 Apr 22 17:05 alock
-rw------- 1 ldap ldap 8192 Apr 22 17:06 cn.bdb
-rw------- 1 ldap ldap 24576 Apr 22 16:55 __db.001
-rw------- 1 ldap ldap 278528 Apr 22 16:55 __db.002
-rw------- 1 ldap ldap 270336 Apr 22 16:55 __db.003
-rw------- 1 ldap ldap 98304 Apr 22 16:55 __db.004
-rw------- 1 ldap ldap 352256 Apr 22 16:55 __db.005
-rw------- 1 ldap ldap 24576 Apr 22 16:55 __db.006
-rw-r----- 1 root ldap 722 Feb 13 2006 DB_CONFIG
-rw------- 1 ldap ldap 8192 Apr 22 16:55 dn2id.bdb
-rw------- 1 ldap ldap 8192 Apr 22 17:06 gidNumber.bdb
-rw------- 1 ldap ldap 32768 Apr 22 16:55 id2entry.bdb
-rw------- 1 ldap ldap 10485760 Apr 22 17:06 log.0000000001
-rw------- 1 ldap ldap 8192 Apr 22 17:06 mail.bdb
-rw------- 1 ldap ldap 8192 Apr 22 17:06 objectClass.bdb
-rw------- 1 ldap ldap 8192 Apr 22 17:06 ou.bdb
drwxr-xr-x 2 root root 4096 Apr 22 17:06 replica
-rw-r--r-- 1 ldap ldap 0 Apr 22 17:06 replog
-rw-r--r-- 1 ldap ldap 0 Apr 22 17:06 replog.lock
-rw------- 1 ldap ldap 8192 Apr 22 17:06 sn.bdb
-rw------- 1 ldap ldap 8192 Apr 22 17:06 uid.bdb
-rw------- 1 ldap ldap 8192 Apr 22 17:06 uidNumber.bdb
Ôi chán quá làm hoài mà nó cũng vậy à.
|
|
|
Mình đã làm theo hướng dẫn của bạn. Nhưng trong file replog ko có gì cả.
Code:
[root@mail ldap]# slapd -dl -h "ldap:///"
unrecognized log level "l"
[root@mail ldap]# slurpd -f /etc/openldap/slapd.conf -r /var/lib/ldap/replog
[root@mail ~]# ldapwhoami -h ldapslave.vt04a.com -x -D "cn=Manger,dc=vt04a,dc=com" -W
Enter LDAP Password:
ldap_bind: Invalid credentials (49)
Mặc dù mình đã dùng đúng password.
|
|
|
Mình đã làm theo hướng dẫn của bạn rồi. Code:
[root@mail openldap]# ldapwhoami -h ldapslave.vt04a.com -x -D "cn=Manager,dc=vt04a,dc=com" -W
Enter LDAP Password:
dn:cn=Manager,dc=vt04a,dc=com
Result: Success (0)
Mình coi file replog thì nó rỗng. nhưng nó vẫn chưa upate database cho slave :wink:
|
|
|
Mình đã khởi động slurpd luôn rồi, vậy mà ko thấy slave update database.
|
|
|
Mình đã cấu hình cho ldap master và slave, nhưng không thấy slave cập nhật database từ master. File cấu hình như sau:
Master :
Code:
# vi /etc/openldap/slapd.conf
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
replogfile /var/lib/ldap/replog
loglevel 296
password-hash {CRYPT}
access to *
by * read
database bdb
suffix "dc=vt04a,dc=com"
rootdn "cn=Manager,dc=vt04a,dc=com"
rootpw {CRYPT}frZ2fNLLQyOMY
directory /var/lib/ldap
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
replica host=ldapslave.vt04a.com:389
binddn="cn=Manager,dc=vt04a,dc=com"
bindmethod=simple credentials=123456
# vi /etc/openldap/ldap.conf
BASE dc=vt04a,dc=com
HOST 192.168.1.5
URI ldap://mail.vt04a.com
# vi base.ldif
dn: dc=vt04a,dc=com
objectClass: top
objectClass: domain
domainComponent: vt04a
dn: cn=Manager,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalRole
cn: Manager
dn: ou=Server,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Server
dn: ou=Client,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Client
dn: uid=dovecot,ou=Server,dc=vt04a,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: posixAccount
objectClass: inetOrgPerson
cn: dovecot
sn: dovecot
uid: dovecot
uidNumber: 301
gidNumber: 300
homeDirectory: /home/dovecot
userPassword: {CRYPT}frj6CQnOtzq3.
mail: <a href="mailto:dovecot@vt04a.com">dovecot@vt04a.com</a>
ou: Server
dn: uid=trang,ou=Client,dc=vt04a,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: posixAccount
objectClass: inetOrgPerson
cn: trang
sn: xuan trang
uid: trang
uidNumber: 302
gidNumber: 300
homeDirectory: /home/trang
userPassword: {CRYPT}frdadNSivpzlo
mail: <a href="mailto:trang@vt04a.com">trang@vt04a.com</a>
ou: Client
dn: uid=quynh,ou=Client,dc=vt04a,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: posixAccount
objectClass: inetOrgPerson
cn: quynh
sn: ngoc quynh
uid: quynh
uidNumber: 303
gidNumber: 300
homeDirectory: /home/quynh
userPassword: {CRYPT}frI1Fun0wizMI
mail: <a href="mailto:quynh@vt04a.com">quynh@vt04a.com</a>
ou: Client
đối với file này mình add cho cả master và slave
Slave:
Code:
# vi /etc/openldap/slapd.conf
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
password-hash {CRYPT}
access to *
by * read
database bdb
suffix "dc=vt04a,dc=com"
rootdn "cn=Manager,dc=vt04a,dc=com"
rootpw {CRYPT}frZ2fNLLQyOMY
directory /var/lib/ldap
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
updatedn cn=Manager,dc=vt04a,dc=com
updateref ldap://mail.vt04a.com:389/
# vi /etc/openldap/ldap.conf
BASE dc=vt04a,dc=com
HOST 192.168.1.6
URI ldap://ldapslave.vt04a.com
Rồi sau đó mình add vào base.ldif :
Code:
dn: uid=hoa,ou=Client,dc=vt04a,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: posixAccount
objectClass: inetOrgPerson
cn: hoa
sn: khanh hoa
uid: hoa
uidNumber: 304
gidNumber: 300
homeDirectory: /home/hoa
userPassword: {CRYPT}trO1Ii2Hx64jc
mail: <a href="mailto:hoa@vt04a.com">hoa@vt04a.com</a>
ou: Client
Sau đó mình ldapmodify trên máy master. Và mình dùng lệnh ldapsearch -s ở máy slave thì ko thấy record uid=hoa.
|
|
|
Cám ơn bạn nhiều lắm, đúng là mình đã thiếu dòng local_recipient_maps = .
|
|
|
Hiện giờ mình đã cấu hình được các dịch vụ postfix, dovecot (có cả dovecot-ldap.conf) và ldap. Nhưng khi mình telnet thì bị như sau:
Code:
[root@localhost openldap]# telnet mail.vt04a.com 25
Trying 192.168.1.5...
Connected to mail.vt04a.com (192.168.1.5).
Escape character is '^]'.
220 mail.vt04a.com ESMTP Postfix Welcome to my mail
ehlo vt04a
250-mail.vt04a.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
mail from: <a href="mailto:trang@vt04a.com">trang@vt04a.com</a>
250 Ok
rcpt to: <a href="mailto:quynh@vt04a.com">quynh@vt04a.com</a>
550 <quynh@vt04a.com>: Recipient address rejected: User unknown in local recipient table
quit
221 Bye
Connection closed by foreign host.
Mình không biết lí do tại sao lại như vậy?
|
|
|
Mình đã xác thực được rồi bạn ơi. Đó là ACL của ldap đó. Cảm ơn bạn nhiều nha. ^_^
|
|
|
Vẫn bị xác thực bị lỗi. Mình đã chỉnh lại file cấu hình như sau:
Code:
# vi /etc/postfix/main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
myhostname = mail.vt04a.com
mydomain = vt04a.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
mynetworks = 192.168.1.0/24, 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP $mail_name Welcome to my mail
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.3.6/samples
readme_directory = /usr/share/doc/postfix-2.3.6/README_FILES
accounts_server_host = localhost
accounts_search_base = dc=vt04a,dc=com
accounts_query_filter = (&(objectClass=posixAccount)(uid=%u))
accounts_result_attribute = uid
accounts_bind = no
virtual_mailbox_base = /var/mail/
virtual_mailbox_maps = ldap:accounts
virtual_alias_maps = ldap:aliases
virtual_minimum_uid = 2001
virtual_uid_maps = static:2001
virtual_gid_maps = static:200
smtpd_sasl_auth_enable = yes
smtpd_sasl_auth_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
# vi /etc/openldap/base.ldif
dn: dc=vt04a,dc=com
objectClass: top
objectClass: domain
domainComponent: vt04a
dn: cn=Manager,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalRole
cn: Manager
dn: ou=Server,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Server
dn: ou=Client,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Client
dn: uid=dovecot,ou=Server,dc=vt04a,dc=com
objectClass: top
objectClass: posixAccount
objectClass: organizationalPerson
cn: dovecot
sn: dovecot
uid: dovecot
uidNumber: 2001
gidNumber: 200
homeDirectory: /home/dovecot
userPassword: dovecot
ou: Server
dn: uid=trang,ou=Client,dc=vt04a,dc=com
objectClass: top
objectClass: posixAccount
objectClass: organizationalPerson
cn: trang
sn: xuan trang
uid: trang
uidNumber: 1001
gidNumber: 100
homeDirectory: /home/trang
userPassword: trang
ou: Client
dn: uid=quynh,ou=Client,dc=vt04a,dc=com
objectClass: top
objectClass: posixAccount
objectClass: organizationalPerson
cn: quynh
sn: ngoc quynh
uid: quynh
uidNumber: 1002
gidNumber: 100
homeDirectory: /home/quynh
userPassword: quynh
ou: Client
# vi /etc/openldap/slapd.conf
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
access to *
by dn.one="ou=Server,dc=vt04a,dc=com" read
by * search
access to attrs=userPassword
by dn.one="ou=Server,dc=vt04a,dc=com" read
by self write
by anonymous auth
by * none
password-hash {CRYPT}
database ldbm
suffix "dc=vt04a,dc=com"
rootdn "cn=Manager,dc=vt04a,dc=com"
rootpw {SSHA}tomZt4pmMXrj7fJjNud+WHzYWlDi3D8M
directory /var/lib/ldap
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
# vi /etc/openldap/ldap.conf
BASE dc=vt04a, dc=com
HOST 127.0.0.1
# vi /etc/saslauthd.conf
ldap_servers: ldap://localhost
ldap_search_base: dc=vt04a,dc=com
ldap_filter: (&(objectClass=posixAccount)(uid=%u))
Không hiểu sao, khi mình dùng lệnh ldapsearch với uid=dovecot thì ko được, nhưng với cn=Manager thì được. Không biết có phải vì vậy mà khi mình xác thực user bị failed (testsaslauthd)
Code:
# ldapsearch -x -W -D "uid=dovecot,ou=Server,dc=vt04a,dc=com" -b "uid=trang,ou=Client,dc=vt04a,dc=com"
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <uid=trang,ou=Client,dc=vt04a,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 0 Success
# numResponses: 1
[root@mail ~]# ldapsearch -x -W -D "cn=Manager,dc=vt04a,dc=com" -b "uid=trang,ou=Client,dc=vt04a,dc=com"
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <uid=trang,ou=Client,dc=vt04a,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# trang, Client, vt04a.com
dn: uid=trang,ou=Client,dc=vt04a,dc=com
objectClass: top
objectClass: posixAccount
objectClass: organizationalPerson
cn: trang
sn: xuan trang
uid: trang
uidNumber: 1001
gidNumber: 100
homeDirectory: /home/trang
userPassword:: dHJhbmc=
ou: Client
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
Sau đó mình vào /var/log/secure thì thấy như sau:
Code:
# tail /var/log/secure
Apr 11 22:21:35 mail saslauthd[2884]: ipc_init : listening on socket: /var/run/saslauthd/mux
Apr 11 22:21:41 mail saslauthd[2887]: Entry not found ((&(objectClass=posixAccount)(uid=trang))).
Apr 11 22:21:41 mail saslauthd[2887]: Authentication failed for trang: User not found (-6)
Apr 11 22:21:41 mail saslauthd[2887]: do_auth : auth failure: [user=trang] [service=imap] [realm=] [mech=ldap] [reason=Unknown]
|
|
|
Mình đã khởi động được dovecot rồi. Cảm ơn bạn rất nhiều. Nhưng hiện giờ mình đang gặp khó khăn với saslauthd.
Code:
[root@mail ~]# testsaslauthd -u trang -p trang
0: NO "authentication failed"
[root@mail ~]# tail /var/log/messages
Apr 6 21:18:59 mail saslauthd[2213]: do_auth : auth failure: [user=trang] [service=login] [realm=] [mech=ldap] [reason=Unknown]
[root@mail ~]# vi /etc/saslauthd.conf
ldap_servers: ldap://127.0.0.1
ldap_search_base: dc=vt04a,dc=com
ldap_filter: (&(objectClass=JammMailAccount)(mail=%u)(accountActive=TRUE)(delete=FALSE))
[root@mail ~]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = vt04a.com
myhostname = mail.vt04a.com
mynetworks = 192.168.1.0/24, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.3.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP $mail_name Welcome to my mail
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
unknown_local_recipient_reject_code = 550
virtual_alias_maps = ldap:aliases
virtual_gid_maps = static:100
virtual_mailbox_base = /home/vmail/domains/
virtual_mailbox_domains = ldap:domains
virtual_mailbox_maps = ldap:accounts
virtual_minimum_uid = 100
virtual_transport = virtual
virtual_uid_maps = static:100
~
[root@mail ~]# cat /etc/openldap/base.ldif
dn: dc=vt04a,dc=com
objectClass: top
objectClass: domain
domainComponent: vt04a
dn: cn=Manager,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalRole
cn: Manager
dn: ou=Server,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Server
dn: ou=Client,dc=vt04a,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Client
dn: cn=dovecot,ou=Server,dc=vt04a,dc=com
objectClass: organizationalPerson
cn: dovecot
sn: dovecot
userPassword: dovecot
ou: Server
dn: cn=postfix,ou=Server,dc=vt04a,dc=com
objectClass: organizationalPerson
cn: postfix
sn: postfix
userPassword: postfix
ou: Server
dn: cn=trang,ou=Client,dc=vt04a,dc=com
objectClass: organizationalPerson
cn: trang
sn: xuan trang
userPassword: trang
ou: Client
dn: cn=quynh,ou=Client,dc=vt04a,dc=com
objectClass: organizationalPerson
cn: quynh
sn: ngoc quynh
userPassword: quynh
ou: Client
Mình không hiểu lí do tại sao nó lại bị như vậy nữa.
|
|
|
Đây là file dovecot-ldap-example.conf ban đầu :
Code:
# This file is opened as root, so it should be owned by root and mode 0600.
#
# http://wiki.dovecot.org/AuthDatabase/LDAP
#
# NOTE: If you're not using authentication binds, you'll need to give
# dovecot-auth read access to userPassword field in the LDAP server.
# With OpenLDAP this is done by modifying /etc/ldap/slapd.conf. There should
# already be something like this:
# access to attribute=userPassword
# by dn="<dovecot's dn>" read # add this
# by anonymous auth
# by self write
# by * none
# Space separated list of LDAP hosts to use. host:port is allowed too.
#hosts =
# LDAP URIs to use. You can use this instead of hosts list. Note that this
# setting isn't supported by all LDAP libraries.
#uris =
Đây là file cấu hình của mình:
Code:
# Space separated list of LDAP hosts to use. host:port is allowed too.
hosts = 127.0.0.1
# LDAP URIs to use. You can use this instead of hosts list. Note that this
# setting isn't supported by all LDAP libraries.
#uris =
# Distinguished Name - the username used to login to the LDAP server
dn = cn=Manager,dc=vt04a,dc=com
# Password for LDAP server
dnpass = 123456789
# LDAP protocol version to use. Likely 2 or 3.
ldap_version = 3
# LDAP base. %variables can be used here.
base = dc=vt04a,dc=com
# Dereference: never, searching, finding, always
deref = never
# Search scope: base, onelevel, subtree
scope = subtree
Còn đây là slap.conf :
Code:
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
# Allow LDAPv2 client connections. This is NOT the default.
allow bind_v2
access to attr=userPassword
by dn.one="ou=Server,dc=vt04a,dc=com" read
by self write
by anonymous auth
by * none
access to *
by dn.one="ou=Server,dc=vt04a,dc=com" read
by * search
database bdb
suffix "dc=vt04a,dc=com"
rootdn "cn=Manager,dc=vt04a,dc=com"
rootpw {SSHA}tomZt4pmMXrj7fJjNud+WHzYWlDi3D8Mdirectory /var/lib/ldap
# Indices to maintain for this database
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
|
|
|
Mình đang xây dựng hệ thống mail server với postfix+dovecot+ldap đều là gói rpm cả. Hiện giờ mình đang dùng FC 5. Với:
Code:
[root@mail dovecot]# dovecot -c /etc/dovecot-ldap.conf
Error: Error in configuration file /etc/dovecot-ldap.conf line 13: Unknown setting: hosts
[root@mail ~]# postconf -m
btree
cidr
environ
hash
ldap
nis
pcre
proxy
regexp
static
unix
[root@mail ~]# dovecot --build-options
Build options: ioloop=poll inotify ipv6 openssl mysql postgresql
Passdb: checkpassword ldap pam passwd passwd-file shadow sql
Userdb: checkpassword ldap passwd passwd-file sql static
Khi mình khởi động dịch vụ dovecot thì dịch vụ này bị lỗi. Mình không biết tại sao nó lại bị như vậy? Các bạn giúp mình với (càng nhanh càng tốt) . Thanks
|
|
|
Bạn có thể nói chi tiết được ko? Bạn nói chung chung quá làm mình khó hình dung. File cấu hình postfix của mình đã đúng chưa, nó có sai gì ko?
|
|
|
File cấu hình postfix của mình như sau:
Code:
[root@vt04a ~]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = vt04a.dyndns.org
myhostname = vt04a.dyndns.org
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.2.8/README_FILES
sample_directory = /usr/share/doc/postfix-2.2.8/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
Khi mình gửi mail từ nội bộ ra ngoài internet thì được, nhưng lại không thể nhận mail từ bên ngoài internet vào nội bộ. Mặc dù mình đã nat port 25 rồi . Khi mình telnet vào máy mail server là vt04a.dyndns.org ở 1 máy có địa chỉ IP khác thì postfix vẫn không hoạt động:Code:
telnet vt04a.dyndns.org 25
Nhưng khi telnet vào địa chỉ local của mail server :Code:
telnet 192.168.1.5 25
S: 220 vt04a.dyndns.org ESMTP Postfix Welcome to my mail
C: EHLO vt04a.dyndns.org
S: 250-vt04a.dyndns.org
S: 250-PIPELINING
S: 250-SIZE 10240000
S: 250-VRFY
S: 250-ETRN
S: 250-XVERP
S: 250 8BITMIME
C: QUIT
S: 221 Bye
Các bạn có thể cho mình biết lí do tại sao bị như vậy ko?
|
|
|
IMAP ServeIMAP Serverr
●Internet Message Access Protocol
●Provides temporary and longterm
storage and
retrieval of mail
●More sophisticated than POP3
●Provides folders for organizing and archiving
●Supported by most mail clients
●Examples: Qmail, Courier IMAP
●RFC 3501 defines IMAP4rev1
Mình đọc từ tài liệu đó, nó là file power point. Thanks pnco và conmale rất nhiều.
|
|
|
Tại vì mình đọc 1 số tài liệu nó nói qmail không phải là MTA, nên mình mới hỏi cho chắc ăn đó mà.
|
|
|
Mình cám ơn conmale rất nhiều. Mục đích của mình là xây dựng 1 hệ thống mail (linux) cho công ty. Theo một số tài liệu mà mình đọc được về mail cho linux, mình được biết như sau:
sendmail, postfix và exim cùng 1 loại với nhau và là MTA ( Mail Transfer Agent), còn qmail thì nó là 1 IMAP Server, và procmail là MDA (Mail Delivery Agent, nó là 1 bộ lọc mail) . Nhưng hiện nay tài liệu nói về exim rất ít, bạn có thể cho mình biết ưu điểm và khuyết điểm exim được không? Với lại mình muốn hỏi là hiện nay đa phần điều dùng POP3 rất ít khi dùng IMAP, vậy theo bạn thì mình nên dùng POP3 hay IMAP, mặc dù IMAP hay hơn POP3 rất nhiều. Thanks
|
|
|
Hiện giờ mình đang tìm hiểu về mail cho linux. Cho mình hỏi : qmail, postfix, sendmail, cái nào được sử dụng nhiều nhất trong thực tế hiện nay, đồng thời ưu và nhược điểm của từng loại đó?
|
|
|
Hiện giờ mình đang nghiên cứu về cơ chế xác thực Ldap kết hợp với Kerberos V ở hệ điều hành Linux. Nhưng mình làm hoài mà không được. Nếu chỉ dùng Ldap xác thực theo kiểm đơn giản thì mình xác thực được. Nhưng khi kết hợp Ldap và Kerberos V, mình khởi động dịch vụ ldap bằng lệnh service ldap start --> Fail. Bạn nào đã từng làm thành công Ldap + Kerberos, thì hãy giúp mình với. Thanks
|
|
|
LDAP thích hợp với những cơ sở dữ liệu vừa và lớn. Nó tối ưu cho việc truy cập dữ liệu (đọc và tìm kiếm) hơn là update dữ liệu (viết). Nhưng nói đòi hỏi người quản trị phải biết nhiều chương trình khác. Nó rất phức tạp bạn à. Nó có thể dùng cho Windown và Linux nữa.
|
|
|
Trường Hoa Sen dạy rất chất lượng nhưng học phí mắc lắm bạn ơi!
|
|
|
|
|
|
|