diff options
author | Ryan Steinmetz <zi@FreeBSD.org> | 2013-09-19 13:01:18 +0000 |
---|---|---|
committer | Ryan Steinmetz <zi@FreeBSD.org> | 2013-09-19 13:01:18 +0000 |
commit | efc7c62c683d00f07bc4f3f07ab078e907e90407 (patch) | |
tree | f93a4537425f0d5c3df6b2a064ce9a597d729d7f /net/freeradius2 | |
parent | da6882d208c6699a7f19624edd809d9b15029f3a (diff) | |
download | ports-efc7c62c683d00f07bc4f3f07ab078e907e90407.tar.gz ports-efc7c62c683d00f07bc4f3f07ab078e907e90407.zip |
Notes
Diffstat (limited to 'net/freeradius2')
-rw-r--r-- | net/freeradius2/Makefile | 39 | ||||
-rw-r--r-- | net/freeradius2/distinfo | 4 | ||||
-rw-r--r-- | net/freeradius2/files/extra-patch-src__modules__rlm_krb5__rlm_krb5.c | 131 | ||||
-rw-r--r-- | net/freeradius2/pkg-plist | 28 |
4 files changed, 42 insertions, 160 deletions
diff --git a/net/freeradius2/Makefile b/net/freeradius2/Makefile index 6b0ecfcd3968..bef5498e1ecf 100644 --- a/net/freeradius2/Makefile +++ b/net/freeradius2/Makefile @@ -1,14 +1,8 @@ -# New ports collection makefile for: freeradius -# Date created: May 9 2002 -# Whom: Brian Somers <brian@FreeBSD.org> -# +# Created by: Brian Somers <brian@FreeBSD.org> # $FreeBSD$ -# -# $Id$ -# PORTNAME= freeradius -DISTVERSION= 2.2.0 +DISTVERSION= 2.2.1 CATEGORIES= net MASTER_SITES= ftp://ftp.freeradius.org/pub/freeradius/%SUBDIR%/ \ ftp://ftp.ntua.gr/pub/net/radius/freeradius/%SUBDIR%/ \ @@ -42,9 +36,9 @@ MAKE_ARGS+= LDFLAGS="-L${LOCALBASE}/lib ${PTHREAD_LIBS}" CFLAGS+= -I${LOCALBASE}/include -L${LOCALBASE}/lib MAKE_JOBS_UNSAFE= yes -PLIST_SUB= PORTVERSION=${DISTVERSION} +PLIST_SUB= PORTVERSION=${DISTVERSION} LIBVER=0${PORTVERSION:C/\./0/g} -OPTIONS_DEFINE= USER KERBEROS HEIMDAL HEIMDAL_PORT HEIMDAL_PATCH LDAP MYSQL \ +OPTIONS_DEFINE= USER KERBEROS HEIMDAL HEIMDAL_PORT LDAP MYSQL \ PGSQL UNIXODBC FIREBIRD PERL PYTHON OCI8 RUBY DHCP \ EXPERIMENTAL UDPFROMTO DEVELOPER EDIR OPTIONS_DEFAULT=USER PERL PYTHON @@ -53,7 +47,6 @@ DHCP_DESC= With DHCP support (EXPERIMENTAL) USER_DESC= Run as user freeradius, group freeradius HEIMDAL_DESC= With Heimdal Kerberos support HEIMDAL_PORT_DESC= With Heimdal Kerberos from ports -HEIMDAL_PATCH_DESC= Enhanced Heimdal support (specify SPN/keytab) UNIXODBC_DESC= With unixODBC database support FIREBIRD_DESC= With Firebird database support (EXPERIMENTAL) OCI8_DESC= With Oracle support (currently experimental) @@ -83,7 +76,7 @@ GROUPS= ${RADIUS_GROUP} CONFIGURE_ARGS+=--with-system-libtool --with-system-libltdl \ --disable-ltdl-install -.if ${PORT_OPTIONS:MHEIMDAL} && empty(${PORT_OPTIONS:MKERBEROS}) +.if ${PORT_OPTIONS:MHEIMDAL} && empty(PORT_OPTIONS:MKERBEROS) ${UNIQUENAME}_SET+= KERBEROS .endif @@ -97,7 +90,7 @@ CONFIGURE_ARGS+=--enable-heimdal-krb5 LIB_DEPENDS+= krb5:${PORTSDIR}/security/krb5 .endif CONFIGURE_ARGS+=--with-rlm_krb5 -.if ${PORT_OPTIONS:MHEIMDAL} && empty(${PORT_OPTIONS:MHEIMDAL_PORT}) +.if ${PORT_OPTIONS:MHEIMDAL} && empty(PORT_OPTIONS:MHEIMDAL_PORT) CONFIGURE_ARGS+=--with-rlm-krb5-lib-dir=/usr/lib CONFIGURE_ARGS+=--with-rlm-krb5-include-dir=/usr/include CONFIGURE_ENV+= KRB5LIBS="$$(${KRB5_CONFIG})" @@ -111,15 +104,10 @@ CONFIGURE_ARGS+=--without-rlm_krb5 PLIST_SUB+= KRB5="@comment " .endif -# Patch rlm_krb5.c to add Heimdal support for specifying keytab+SPN -.if ${PORT_OPTIONS:MHEIMDAL_PATCH} -EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src__modules__rlm_krb5__rlm_krb5.c -.endif - .if ${PORT_OPTIONS:MEDIR} CONFIGURE_ARGS+=--with-edir -.if empty(${PORT_OPTIONS:MLDAP}) -PORT_OPTIONS+= LDAP +.if empty(PORT_OPTIONS:MLDAP) +PORT_OPTIONS+= LDAP .endif .endif @@ -206,7 +194,7 @@ PLIST_SUB+= RLMRUBY="@comment " .endif # rlm_ruby module is still experimental -.if ${PORT_OPTIONS:MRUBY} && empty(${PORT_OPTIONS:MEXPERIMENTAL}) +.if ${PORT_OPTIONS:MRUBY} && empty(PORT_OPTIONS:MEXPERIMENTAL) EXPM= yes .endif @@ -217,7 +205,7 @@ CONFIGURE_ARGS+=--without-dhcp .endif # DHCP is still experimental -.if ${PORT_OPTIONS:MDHCP} && empty(${PORT_OPTIONS:MEXPERIMENTAL}) +.if ${PORT_OPTIONS:MDHCP} && empty(PORT_OPTIONS:MEXPERIMENTAL) EXPM= yes .endif @@ -234,7 +222,7 @@ PLIST_SUB+= SMB="@comment " .endif # SMB module is still experimental -.if ${PORT_OPTIONS:MSMB} && empty(${PORT_OPTIONS:MSMB}) +.if ${PORT_OPTIONS:MSMB} && empty(PORT_OPTIONS:MSMB) EXPM= yes .endif @@ -284,7 +272,8 @@ CONFIGURE_ARGS+=--quiet \ --libdir=${PREFIX}/${FREERADIUS_LIBDIR} \ --localstatedir=/var \ --with-system-libtool -.ifdef(NOPORTDOCS) + +.if empty(PORT_OPTIONS:MDOCS) CONFIGURE_ARGS+=--without-docdir PLIST_SUB+= PORTDOCS="@comment " SUB_LIST+= PORTDOCS="@comment " @@ -357,7 +346,7 @@ post-patch: -regex '.*/(bootstrap|Makefile)\.(orig|bak)$$' \ -delete # If we're using Heimdal from base, alter the LIBS variable -.if ${PORT_OPTIONS:MHEIMDAL} && empty(${PORT_OPTIONS:MHEIMDAL_PORT}) +.if ${PORT_OPTIONS:MHEIMDAL} && empty(PORT_OPTIONS:MHEIMDAL_PORT) @${REINPLACE_CMD} -e 's|LIBS|KRB5LIBS|g' ${WRKSRC}/src/modules/rlm_krb5/configure @${REINPLACE_CMD} -e 's|-lkrb5|$$(${KRB5_CONFIG})|g' \ ${WRKSRC}/src/modules/rlm_krb5/configure diff --git a/net/freeradius2/distinfo b/net/freeradius2/distinfo index 1191fc80ff7c..16b4585ebd2b 100644 --- a/net/freeradius2/distinfo +++ b/net/freeradius2/distinfo @@ -1,2 +1,2 @@ -SHA256 (freeradius-server-2.2.0.tar.bz2) = ad3e58fe2a723cbaafb8ca87677382a84bfb16e81b24f0d9ded71355a0218d35 -SIZE (freeradius-server-2.2.0.tar.bz2) = 2703349 +SHA256 (freeradius-server-2.2.1.tar.bz2) = 66335e2ab621dc89a327e5d003737988614aadbccfc813384be36fdb69bf9dc7 +SIZE (freeradius-server-2.2.1.tar.bz2) = 2782030 diff --git a/net/freeradius2/files/extra-patch-src__modules__rlm_krb5__rlm_krb5.c b/net/freeradius2/files/extra-patch-src__modules__rlm_krb5__rlm_krb5.c deleted file mode 100644 index e8f5ac1c6849..000000000000 --- a/net/freeradius2/files/extra-patch-src__modules__rlm_krb5__rlm_krb5.c +++ /dev/null @@ -1,131 +0,0 @@ ---- ./src/modules/rlm_krb5/rlm_krb5.c.orig 2011-09-30 10:12:07.000000000 -0400 -+++ ./src/modules/rlm_krb5/rlm_krb5.c 2012-01-29 12:06:04.000000000 -0500 -@@ -322,16 +322,41 @@ - #else /* HEIMDAL_KRB5 */ - - /* validate user/pass, heimdal krb5 way */ --static int krb5_auth(void *instance, REQUEST *request) -+static int krb5_auth(rlm_krb5_t *instance, REQUEST *request) - { - int r; -- krb5_error_code ret; -+ krb5_error_code ret, ret2; - krb5_ccache id; - krb5_principal userP; - - krb5_context context = *((rlm_krb5_t *)instance)->context; /* copy data */ - const char *user, *pass; - -+ /* arbitrary 64-byte limit on service names; I've never seen a -+ service name this long, and hope never to. -srl */ -+ /* stolen from the above mit kerb stuff -- kula */ -+ -+ char service[64] = "host"; -+ char *servername = NULL; -+ char *princ_name; -+ -+ krb5_verify_opt krb_verify_options; -+ krb5_keytab keytab; -+ -+ if (instance->service_princ != NULL) { -+ servername = strchr(instance->service_princ, '/'); -+ if (servername != NULL) { -+ *servername = '\0'; -+ } -+ -+ strncpy(service,instance->service_princ,sizeof(service)); -+ service[sizeof(service)-1] = '\0'; -+ if (servername != NULL) { -+ *servername = '/'; -+ servername++; -+ } -+ } -+ - /* - * We can only authenticate user requests which HAVE - * a User-Name attribute. -@@ -374,26 +399,70 @@ - /* - * Heimdal krb5 verification - */ -- radlog(L_AUTH, "rlm_krb5: Parsed name is: %s@%s\n", -- *userP->name.name_string.val, -- userP->realm); -+ -+ -+ /* -+ * The following bit allows us to also log user/instance@REALM if someone -+ * logs in using an instance -+ */ -+ -+ ret = krb5_unparse_name(context, userP, &princ_name); -+ if ( ret != 0 ) { -+ radlog(L_AUTH, "rlm_krb5: krb5_unparse_name unparsable name\n"); -+ } else { -+ radlog(L_AUTH, "rlm_krb5: Parsed name is: %s\n", princ_name); -+ free(princ_name); -+ } - - krb5_cc_default(context, &id); - -- ret = krb5_verify_user(context, -- userP, -- id, -- pass, 1, "radius"); -+ /* Set up krb5_verify_user options */ -+ krb5_verify_opt_init(&krb_verify_options); - -- if (ret == 0) -- return RLM_MODULE_OK; -+ krb5_verify_opt_set_ccache(&krb_verify_options, id); - -- radlog(L_AUTH, "rlm_krb5: failed verify_user: %s (%s@%s )", -- error_message(ret), -- *userP->name.name_string.val, -- userP->realm); -+ /* -+ * Resolve keytab name. This allows us to use something other than -+ * the default system keytab -+ */ - -- return RLM_MODULE_REJECT; -+ if (instance->keytab != NULL) -+ { -+ ret = krb5_kt_resolve(context, instance->keytab, &keytab); -+ -+ if ( ret ) -+ { -+ radlog(L_AUTH, "rlm_krb: unable to resolve keytab %s: %s", -+ instance->keytab, error_message(ret)); -+ krb5_kt_close(context, keytab); -+ return RLM_MODULE_REJECT; -+ } -+ krb5_verify_opt_set_keytab(&krb_verify_options, keytab); -+ } -+ -+ /* Verify aquired credentials against the keytab */ -+ -+ krb5_verify_opt_set_secure(&krb_verify_options, 1); -+ -+ /* Allow us to use an arbitrary service name */ -+ -+ krb5_verify_opt_set_service(&krb_verify_options, service); -+ -+ /* Verify the user, using the above set options */ -+ ret = krb5_verify_user_opt(context, userP, pass, &krb_verify_options); -+ -+ /* We are done with the keytab, close it */ -+ ret2 = krb5_kt_close(context, keytab); -+ -+ if (ret == 0) -+ return RLM_MODULE_OK; -+ -+ radlog(L_AUTH, "rlm_krb5: failed verify_user: %s (%s@%s )", -+ error_message(ret), -+ *userP->name.name_string.val, -+ userP->realm); -+ -+ return RLM_MODULE_REJECT; - } - - #endif /* HEIMDAL_KRB5 */ diff --git a/net/freeradius2/pkg-plist b/net/freeradius2/pkg-plist index c2251a1eba5e..195400975539 100644 --- a/net/freeradius2/pkg-plist +++ b/net/freeradius2/pkg-plist @@ -173,11 +173,11 @@ bin/smbencrypt %%LIBDIR%%/libfreeradius-eap.a %%LIBDIR%%/libfreeradius-eap.la %%LIBDIR%%/libfreeradius-eap.so -%%LIBDIR%%/libfreeradius-radius-%%PORTVERSION%%.la -%%LIBDIR%%/libfreeradius-radius-%%PORTVERSION%%.so %%LIBDIR%%/libfreeradius-radius.a %%LIBDIR%%/libfreeradius-radius.la %%LIBDIR%%/libfreeradius-radius.so +%%LIBDIR%%/libfreeradius-radius-%%LIBVER%%.la +%%LIBDIR%%/libfreeradius-radius-%%LIBVER%%.so %%LIBDIR%%/rlm_acct_unique-%%PORTVERSION%%.la %%LIBDIR%%/rlm_acct_unique-%%PORTVERSION%%.so %%LIBDIR%%/rlm_acct_unique.a @@ -520,6 +520,7 @@ sbin/radiusd sbin/radmin sbin/radwatch include/freeradius/autoconf.h +include/freeradius/base64.h include/freeradius/conf.h include/freeradius/conffile.h include/freeradius/detail.h @@ -626,6 +627,12 @@ include/freeradius/vqp.h %%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5904.txt %%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5997.txt %%PORTDOCS%%%%DOCSDIR%%/rfc/rfc6158.txt +%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc6519.txt +%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc6572.txt +%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc6677.txt +%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc6911.txt +%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc6929.txt +%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc6930.txt %%PORTDOCS%%%%DOCSDIR%%/rlm_dbm %%PORTDOCS%%%%DOCSDIR%%/rlm_eap %%PORTDOCS%%%%DOCSDIR%%/rlm_expiration @@ -671,6 +678,7 @@ include/freeradius/vqp.h %%DATADIR%%/dictionary.3gpp2 %%DATADIR%%/dictionary.acc %%DATADIR%%/dictionary.acme +%%DATADIR%%/dictionary.aerohive %%DATADIR%%/dictionary.airespace %%DATADIR%%/dictionary.alcatel %%DATADIR%%/dictionary.alcatel.esam @@ -690,6 +698,9 @@ include/freeradius/vqp.h %%DATADIR%%/dictionary.bay %%DATADIR%%/dictionary.bintec %%DATADIR%%/dictionary.bristol +%%DATADIR%%/dictionary.broadsoft +%%DATADIR%%/dictionary.brocade +%%DATADIR%%/dictionary.bskyb %%DATADIR%%/dictionary.bt %%DATADIR%%/dictionary.cablelabs %%DATADIR%%/dictionary.cabletron @@ -704,14 +715,17 @@ include/freeradius/vqp.h %%DATADIR%%/dictionary.columbia_university %%DATADIR%%/dictionary.compat %%DATADIR%%/dictionary.cosine +%%DATADIR%%/dictionary.dante %%DATADIR%%/dictionary.dhcp %%DATADIR%%/dictionary.digium +%%DATADIR%%/dictionary.dlink %%DATADIR%%/dictionary.epygi %%DATADIR%%/dictionary.eltex %%DATADIR%%/dictionary.ericsson %%DATADIR%%/dictionary.erx %%DATADIR%%/dictionary.extreme %%DATADIR%%/dictionary.f5 +%%DATADIR%%/dictionary.fdxtended %%DATADIR%%/dictionary.fortinet %%DATADIR%%/dictionary.foundry %%DATADIR%%/dictionary.freeradius @@ -731,12 +745,14 @@ include/freeradius/vqp.h %%DATADIR%%/dictionary.jradius %%DATADIR%%/dictionary.juniper %%DATADIR%%/dictionary.karlnet +%%DATADIR%%/dictionary.kineto %%DATADIR%%/dictionary.lancom %%DATADIR%%/dictionary.livingston %%DATADIR%%/dictionary.localweb %%DATADIR%%/dictionary.lucent %%DATADIR%%/dictionary.manzara %%DATADIR%%/dictionary.merit +%%DATADIR%%/dictionary.meru %%DATADIR%%/dictionary.microsoft %%DATADIR%%/dictionary.mikrotik %%DATADIR%%/dictionary.motorola @@ -757,6 +773,7 @@ include/freeradius/vqp.h %%DATADIR%%/dictionary.patton %%DATADIR%%/dictionary.propel %%DATADIR%%/dictionary.prosoft +%%DATADIR%%/dictionary.proxim %%DATADIR%%/dictionary.purewave %%DATADIR%%/dictionary.quiconnect %%DATADIR%%/dictionary.quintum @@ -783,8 +800,14 @@ include/freeradius/vqp.h %%DATADIR%%/dictionary.rfc5580 %%DATADIR%%/dictionary.rfc5607 %%DATADIR%%/dictionary.rfc5904 +%%DATADIR%%/dictionary.rfc6519 +%%DATADIR%%/dictionary.rfc6572 +%%DATADIR%%/dictionary.rfc6677 +%%DATADIR%%/dictionary.rfc6911 +%%DATADIR%%/dictionary.rfc6930 %%DATADIR%%/dictionary.riverstone %%DATADIR%%/dictionary.roaringpenguin +%%DATADIR%%/dictionary.sg %%DATADIR%%/dictionary.shasta %%DATADIR%%/dictionary.shiva %%DATADIR%%/dictionary.siemens @@ -817,6 +840,7 @@ include/freeradius/vqp.h %%DATADIR%%/dictionary.wispr %%DATADIR%%/dictionary.xedia %%DATADIR%%/dictionary.xylan +%%DATADIR%%/dictionary.zeus %%DATADIR%%/dictionary.zyxel @dirrm %%DATADIR%% @dirrmtry share/freeradius |