Date: 8 Nov 2005 17:33:47 -0200 From: Jean Milanez Melo <jmelo@freebsdbrasil.com.br> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/88684: New port: mail/qmail-activedir Programs to allow qmail to authenticate users through a MS AD Message-ID: <20051108193347.46585.qmail@capeta.freebsdbrasil.com.br> Resent-Message-ID: <200511081940.jA8JeEm7083364@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 88684 >Category: ports >Synopsis: New port: mail/qmail-activedir Programs to allow qmail to authenticate users through a MS AD >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Nov 08 19:40:13 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Jean Milanez Melo >Release: FreeBSD 5.3-STABLE i386 >Organization: >Environment: System: FreeBSD capeta.freebsdbrasil.com.br 5.3-STABLE FreeBSD 5.3-STABLE #5: Wed Mar 2 15:03:19 BRT 2005 eksffa@capeta.freebsdbrasil.com.br:/usr/obj/usr/src/sys/CAPETA i386 >Description: - New port with few programs to allow qmail to authenticate users through a Microsoft Active Directory. >How-To-Repeat: >Fix: --- qmail-activedir.shar begins here --- # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # qmail-activedir # qmail-activedir/pkg-descr # qmail-activedir/Makefile # qmail-activedir/distinfo # qmail-activedir/files # qmail-activedir/files/patch-ad_func.h # qmail-activedir/files/pkg-message.in # echo c - qmail-activedir mkdir -p qmail-activedir > /dev/null 2>&1 echo x - qmail-activedir/pkg-descr sed 's/^X//' >qmail-activedir/pkg-descr << 'END-of-qmail-activedir/pkg-descr' XA few programs to allow qmail to authenticate users through a Microsoft XActive Directory. X XAuthor: Leslie VanExel <prok@fo2k.com> XWWW: http://fo2k.com/qmail-activedir/ END-of-qmail-activedir/pkg-descr echo x - qmail-activedir/Makefile sed 's/^X//' >qmail-activedir/Makefile << 'END-of-qmail-activedir/Makefile' X# New ports collection makefile for: qmail-activedir X# Date created: 2005-11-08 X# Whom: Jean Milanez Melo <jmelo@freebsdbrasil.com.br> X# X# $FreeBSD$ X# X XPORTNAME= qmail-activedir XPORTVERSION= 0.15 XCATEGORIES= mail XMASTER_SITES= http://fo2k.com/qmail-activedir/ X XMAINTAINER= jmelo@freebsdbrasil.com.br XCOMMENT= Programs to allow qmail to authenticate users through a MS ad X XNO_BUILD= yes XSUB_FILES= pkg-message XSUB_LIST= PREFIX=${PREFIX} \ X QMAIL_PREFIX=${QMAIL_PREFIX} \ X DOCSDIR=${DOCSDIR} XUSE_OPENLDAP= yes XMAKE_ENV+= QMAIL_PREFIX=${QMAIL_PREFIX} XQMAIL_PREFIX?= /var/qmail X XCC?= gcc XCFLAGS+= -I${LOCALBASE}/include -L${LOCALBASE}/lib -Wall -O2 -lldap X XPLIST_FILES= bin/checkadpassword \ X bin/create_alias_files \ X bin/qmail-adgetpw X X.if !defined(NOPORTDOCS) XPORTDOCS= INSTALL README X.endif X X.if defined(WITH_OPENLDAP_VER) XWANT_OPENLDAP_VER= ${WITH_OPENLDAP_VER} X.endif X X.include <bsd.port.pre.mk> X Xpre-install: X ${CC} ${CFLAGS} ${WRKSRC}/checkadpassword.c ${WRKSRC}/ad_func.c -o \ X ${WRKSRC}/checkadpassword X ${CC} ${CFLAGS} ${WRKSRC}/qmail-adgetpw.c ${WRKSRC}/ad_func.c -o \ X ${WRKSRC}/qmail-adgetpw X ${CC} ${CFLAGS} ${WRKSRC}/create_alias_files.c ${WRKSRC}/ad_func.c -o \ X ${WRKSRC}/create_alias_files X Xdo-install: X ${INSTALL_PROGRAM} ${WRKSRC}/checkadpassword ${PREFIX}/bin/ X ${INSTALL_PROGRAM} ${WRKSRC}/qmail-adgetpw ${PREFIX}/bin/ X ${INSTALL_PROGRAM} ${WRKSRC}/create_alias_files ${PREFIX}/bin/ X ${CHMOD} 700 ${PREFIX}/bin/checkadpassword X ${CHMOD} 711 ${PREFIX}/bin/qmail-adgetpw X ${CHMOD} 700 ${PREFIX}/bin/create_alias_files X ${CHOWN} root:qmail ${PREFIX}/bin/qmail-adgetpw X ${CHOWN} root:wheel ${PREFIX}/bin/create_alias_files X.if !defined(NOPORTDOCS) X ${MKDIR} ${DOCSDIR} X.for i in ${PORTDOCS} X ${INSTALL_DATA} ${WRKSRC}/${i} ${DOCSDIR} X.endfor X.endif X ${CAT} ${PKGMESSAGE} X X.include <bsd.port.post.mk> END-of-qmail-activedir/Makefile echo x - qmail-activedir/distinfo sed 's/^X//' >qmail-activedir/distinfo << 'END-of-qmail-activedir/distinfo' XMD5 (qmail-activedir-0.15.tar.gz) = f0e839132db948f047dee61fb701ff38 XSIZE (qmail-activedir-0.15.tar.gz) = 12005 END-of-qmail-activedir/distinfo echo c - qmail-activedir/files mkdir -p qmail-activedir/files > /dev/null 2>&1 echo x - qmail-activedir/files/patch-ad_func.h sed 's/^X//' >qmail-activedir/files/patch-ad_func.h << 'END-of-qmail-activedir/files/patch-ad_func.h' X--- ad_func.h.old Tue Nov 8 13:30:17 2005 X+++ ad_func.h Tue Nov 8 13:31:22 2005 X@@ -3,11 +3,11 @@ X X /*set to 1 to use the global catalog, 0 to use LDAP. X * LDAP is fine, except to span multiple subdomains*/ X-#define AD_USE_GC 1 X+#define AD_USE_GC 0 X X /* Set to 1 to only allow SSL type active directory connections X * 0 to use no encryption*/ X-#define AD_ONLY_USE_SSL 1 X+#define AD_ONLY_USE_SSL 0 X X /* Change to wherever you want to log to X * i.e. LOG_AUTH, LOG_MAIL, LOG_SYSLOG, etc.*/ X@@ -24,19 +24,19 @@ X #define ALIAS_NAME "alias" X #define ALIAS_UID 1001 X #define ALIAS_GID 101 X-#define ALIAS_DIR_HEADER "/var/qmail/alias" X+#define ALIAS_DIR_HEADER "$(QMAIL_PREFIX)/alias" X X /* Creates the home directory if it doesn't exist*/ X #define CREATE_HOME_DIR 1 X X /* Also create the maildir within the homedir when creating the home dir*/ X #define CREATE_MAILDIR 1 X-#define QMAIL_MAILDIRMAKE "/var/qmail/bin/maildirmake" X+#define QMAIL_MAILDIRMAKE "$(QMAIL_PREFIX)/bin/maildirmake" X X /* Convert the mailusername to lowercase for the delivery directory*/ X #define CONVERT_MAILNAME_TO_LOWERCASE 1 X X-#define CONTROL "/var/qmail/control/" X+#define CONTROL "$(QMAIL_PREFIX)/control/" X #define AD_DEFAULTUID_LOC CONTROL "ad_uid" X #define AD_DEFAULTGID_LOC CONTROL "ad_gid" X #define AD_DEFAULTMAILROOT_LOC CONTROL "ad_mailroot" END-of-qmail-activedir/files/patch-ad_func.h echo x - qmail-activedir/files/pkg-message.in sed 's/^X//' >qmail-activedir/files/pkg-message.in << 'END-of-qmail-activedir/files/pkg-message.in' X***************************************************************************** XYou have installed the qmail-activedir. X XNow you need follow this steps: X X1) create the control files. X X2.a) Test X X# %%QMAIL_PREFIX%%/bin/qmail-popup blah %%PREFIX%%/bin/checkadpassword id X XPut in a valid username and password and it should give you the results of id. XDo the same with pwd to make sure that the user, group and directory are Xcorrect. X XDo it again with an invalid username and password to verify that it will Xactually reject failures. X XCheck the auth log to verify that the failure occurred. X X2.b) Test some more X XNext test the ad_getpw: X X# %%PREFIX%%/bin/ad_getpw user XIt should return the user, uid, gid, homedir, separated by NULL character X X2.c) Just using create_alias_files will let you know if it works... XDo %%PREFIX%%/bin/create_alias_files -h for more info. X X3) Copy the original someplace and rename: X# mv %%QMAIL_PREFIX%%/bin/qmail-getpw %%QMAIL_PREFIX%%/bin/qmail-getpw_old X# cp %%PREFIX%%/bin/qmail-adgetpw %%QMAIL_PREFIX%%/bin/qmail-getpw X X4) Update your qmail pop scripts (run file) like this: X... X%%QMAIL_PREFIX%%/bin/qmail-popup "${POPUPHOST-`sed 1q %%QMAIL_PREFIX%%/control/me`}" \ X%%PREFIX%%/checkadpassword \ X%%QMAIL_PREFIX%%/bin/qmail-pop3d "${MAILDIRNAME-Maildir}" X... X Xand restart. Run some trial tests. X XFor more information you should read %%DOCSDIR%%/README. X END-of-qmail-activedir/files/pkg-message.in exit --- qmail-activedir.shar ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051108193347.46585.qmail>