New port: net/tacacs
tac_plus is a TACACS+ daemon. It provides Cisco Systems routers and access servers with authentication, authorisation and accounting services. This version is a major rewrite of the original Cisco source code. Key features include: - NAS specific host keys, prompts, enable passwords - NAS- and ACL-dependent group memberships - Flexible external backends for user profiles (e.g. via PERL scripts or C; LDAP (including ActiveDirectory), RADIUS and others are included ) - Connection multiplexing (multiple concurrent NAS clients per process) - Session multiplexing - Scalable, no limit on users, clients or servers - CLI context aware. At the time of writing this, no other TACACS+ daemon is. - Both IPv4 and IPv6 are fully supported. - Compliant to latest TACACS+ protocol specification (draft 1.78) WWW: http://www.pro-bono-publico.de/projects/tac_plus.html PR: 239755 Submitted by: akuz84@gmail.com
This commit is contained in:
parent
058c01c4b6
commit
6c6c1c441b
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=508845
7 changed files with 311 additions and 0 deletions
|
@ -1407,6 +1407,7 @@
|
|||
SUBDIR += syncthing
|
||||
SUBDIR += tableutil
|
||||
SUBDIR += tac_plus4
|
||||
SUBDIR += tacacs
|
||||
SUBDIR += tapidbus
|
||||
SUBDIR += tayga
|
||||
SUBDIR += tclsoap
|
||||
|
|
65
net/tacacs/Makefile
Normal file
65
net/tacacs/Makefile
Normal file
|
@ -0,0 +1,65 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= tacacs
|
||||
PORTVERSION= 201906100936
|
||||
CATEGORIES= net
|
||||
MASTER_SITES= http://www.pro-bono-publico.de/projects/src/
|
||||
|
||||
MAINTAINER= akuz84@gmail.com
|
||||
COMMENT= This is a TACACS+ daemon from pro-bono
|
||||
|
||||
LICENSE= BSD3CLAUSE
|
||||
|
||||
USES= gmake perl5 ssl shebangfix
|
||||
|
||||
WRKSRC= ${WRKDIR}/PROJECTS
|
||||
|
||||
CONFLICTS= tac_plus4
|
||||
|
||||
HAS_CONFIGURE= yes
|
||||
|
||||
CONFIGURE_ARGS= --with-ssl \
|
||||
--with-zlib \
|
||||
--libdir=${LOCALBASE}/lib \
|
||||
--installroot=${STAGEDIR} mavis spawnd mavisd tac_plus
|
||||
|
||||
USE_LDCONFIG= yes
|
||||
|
||||
OPTIONS_DEFINE= CURL FREERADIUS SCTP PCRE
|
||||
OPTIONS_DEFAULT= SCTP
|
||||
|
||||
MAKE_JOBS_UNSAFE=yes
|
||||
|
||||
SCTP_DESC= SCTP support
|
||||
SCTP_CONFIGURE_WITH= sctp
|
||||
|
||||
PCRE_DESC= PCRE support
|
||||
PCRE_LIB_DEPENDS= libpcre.so:devel/pcre
|
||||
PCRE_CONFIGURE_ON= --with-pcre-lib=${LOCALBASE}/lib
|
||||
PCRE_CONFIGURE_OFF=
|
||||
|
||||
CURL_DESC= Curl support
|
||||
CURL_LIB_DEPENDS= libcurl.so:ftp/curl
|
||||
CURL_CONFIGURE_ON= --with-curl-lib=${LOCALBASE}/lib
|
||||
CURL_CONFIGURE_OFF=
|
||||
|
||||
FREERADIUS_DESC= Freeradius support
|
||||
FREERADIUS_LIB_DEPENDS= libfreeradius-radius.so:net/freeradius3
|
||||
FREERADIUS_CONFIGURE_ON= --with-pcre-lib=${LOCALBASE}/lib
|
||||
FREERADIUS_CONFIGURE_OFF=
|
||||
|
||||
USERS= tacacs
|
||||
GROUPS= tacacs
|
||||
|
||||
WRKSRC= ${WRKDIR}/PROJECTS
|
||||
|
||||
SHEBANG_FILES= tac_plus/sample/tac_plus.cfg
|
||||
|
||||
USE_RC_SUBR?= tac_plus
|
||||
|
||||
post-build:
|
||||
@${REINPLACE_CMD} -e '1d' ${WRKSRC}/tac_plus/sample/tac_plus.cfg
|
||||
|
||||
post-install:
|
||||
|
||||
.include <bsd.port.mk>
|
3
net/tacacs/distinfo
Normal file
3
net/tacacs/distinfo
Normal file
|
@ -0,0 +1,3 @@
|
|||
TIMESTAMP = 1563548166
|
||||
SHA256 (tacacs-201906100936.tar.gz) = 5d0d6a12b84ec40d4b53e798076fcef338eecc8495e459146966dc34d0ea2d3b
|
||||
SIZE (tacacs-201906100936.tar.gz) = 3107300
|
83
net/tacacs/files/tac_plus.in
Normal file
83
net/tacacs/files/tac_plus.in
Normal file
|
@ -0,0 +1,83 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# PROVIDE: tac_plus
|
||||
# REQUIRE: DAEMON
|
||||
#
|
||||
# Add the following line to /etc/rc.conf to enable the TACACS+ daemon:
|
||||
#
|
||||
# tac_plus_enable (bool): Set to "NO" by default
|
||||
# Set it to "YES" to enable tac_plus
|
||||
# tac_plus_flags (str): Set to "" by default
|
||||
# Extra flags to be passed to start command
|
||||
# tac_plus_configfile (str): Set to "/usr/local/etc/tac_plus.conf" by default
|
||||
# Allows you to specify a different config file for
|
||||
# the tac_plus daemon
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name=tac_plus
|
||||
rcvar=tac_plus_enable
|
||||
|
||||
command="/usr/local/sbin/tac_plus"
|
||||
pidfile="/var/run/${name}.pid"
|
||||
tac_plus_enable=${tac_plus_enable:-"NO"}
|
||||
tac_plus_flags=${tac_plus_flags:-"-b"}
|
||||
tac_plus_configfile=${tac_plus_configfile:-"/usr/local/etc/tac_plus.conf"}
|
||||
|
||||
load_rc_config ${name}
|
||||
|
||||
if [ -n "$2" ]; then
|
||||
profile="$2"
|
||||
if [ "x${tac_plus_profiles}" != "x" ]; then
|
||||
eval tac_plus_configfile="\${tac_plus_${profile}_configfile:-}"
|
||||
if [ "x${tac_plus_configfile}" = "x" ]; then
|
||||
echo "You must define a configuration file (tac_plus_${profile}_configfile)"
|
||||
exit 1
|
||||
fi
|
||||
required_files="${tac_plus_configfile}"
|
||||
eval tac_plus_enable="\${tac_plus_${profile}_enable:-${tac_plus_enable}}"
|
||||
eval tac_plus_flags="\${tac_plus_${profile}_flags:-${tac_plus_flags}}"
|
||||
eval tac_plus_port="\${tac_plus_${profile}_port:-}"
|
||||
eval tac_plus_ip="\${tac_plus_${profile}_ip:-}"
|
||||
else
|
||||
echo "$0: extra argument ignored"
|
||||
fi
|
||||
else
|
||||
if [ "x${tac_plus_profiles}" != "x" -a "x$1" != "x" ]; then
|
||||
for profile in ${tac_plus_profiles}; do
|
||||
eval _enable="\${tac_plus_${profile}_enable}"
|
||||
case "x${_enable:-${tac_plus_enable}}" in
|
||||
x|x[Nn][Oo]|x[Nn][Oo][Nn][Ee])
|
||||
continue
|
||||
;;
|
||||
x[Yy][Ee][Ss])
|
||||
|
||||
;;
|
||||
*)
|
||||
if test -z "$_enable"; then
|
||||
_var=tac_plus_enable
|
||||
else
|
||||
_var=tac_plus_"${profile}"_enable
|
||||
fi
|
||||
echo "Bad value "\
|
||||
"'${_enable:-${tac_plus_enable}}' "\
|
||||
"for ${_var}. "\
|
||||
"Profile ${profile} skipped."
|
||||
continue
|
||||
esac
|
||||
echo "====> tac_plus profile: ${profile}"
|
||||
/usr/local/etc/rc.d/tac_plus $1 ${profile}
|
||||
retcode="$?"
|
||||
if [ "0${retcode}" -ne 0 ]; then
|
||||
failed="${profile} (${retcode}) ${failed:-}"
|
||||
else
|
||||
success="${profile} ${success:-}"
|
||||
fi
|
||||
done
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
tac_plus_flags="${tac_plus_flags} -p ${pidfile} ${tac_plus_configfile}"
|
||||
|
||||
run_rc_command "$1"
|
17
net/tacacs/pkg-descr
Normal file
17
net/tacacs/pkg-descr
Normal file
|
@ -0,0 +1,17 @@
|
|||
tac_plus is a TACACS+ daemon. It provides Cisco Systems routers and
|
||||
access servers with authentication, authorisation and accounting services.
|
||||
|
||||
This version is a major rewrite of the original Cisco source code.
|
||||
Key features include:
|
||||
- NAS specific host keys, prompts, enable passwords
|
||||
- NAS- and ACL-dependent group memberships
|
||||
- Flexible external backends for user profiles (e.g. via PERL scripts or C;
|
||||
LDAP (including ActiveDirectory), RADIUS and others are included )
|
||||
- Connection multiplexing (multiple concurrent NAS clients per process)
|
||||
- Session multiplexing
|
||||
- Scalable, no limit on users, clients or servers
|
||||
- CLI context aware. At the time of writing this, no other TACACS+ daemon is.
|
||||
- Both IPv4 and IPv6 are fully supported.
|
||||
- Compliant to latest TACACS+ protocol specification (draft 1.78)
|
||||
|
||||
WWW: http://www.pro-bono-publico.de/projects/tac_plus.html
|
13
net/tacacs/pkg-message
Normal file
13
net/tacacs/pkg-message
Normal file
|
@ -0,0 +1,13 @@
|
|||
To run tac_plus at startup, add the following line to rc.conf:
|
||||
|
||||
tac_plus_enable="YES"
|
||||
|
||||
Extra options can be foud in the startup script.
|
||||
|
||||
The code written by Marc Huber is distributed under the following license:
|
||||
Copyright (C) 1999-2015 Marc Huber (<Marc.Huber@web.de>). All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
- The end-user documentation included with the redistribution, if any, must include the following acknowledgment:
|
||||
This product includes software developed by Marc Huber (<Marc.Huber@web.de>).
|
129
net/tacacs/pkg-plist
Normal file
129
net/tacacs/pkg-plist
Normal file
|
@ -0,0 +1,129 @@
|
|||
@dir etc/mavis
|
||||
@dir etc/mavis/sample
|
||||
@dir lib/mavis
|
||||
@dir lib/mavis/extra
|
||||
@dir share/mavis
|
||||
@dir share/mavis/railroad
|
||||
@dir share/mavis/railroad/mavis
|
||||
@dir share/mavis/railroad/tac_plus
|
||||
@dir share/mavis/railroad/spawnd
|
||||
@dir share/mavis/railroad/mavisd
|
||||
etc/mavis/sample/tac_plus.cfg
|
||||
bin/mavistest
|
||||
lib/libmavis.so.0.1
|
||||
lib/libmavis.so.0
|
||||
lib/libmavis.so
|
||||
lib/mavis/libmavis_userdb.so
|
||||
lib/mavis/libmavis_remote.so
|
||||
lib/mavis/libmavis_system.so
|
||||
lib/mavis/mavis_tacplus_ldap.pl
|
||||
lib/mavis/mavis_tacplus_ldap_authonly.pl
|
||||
lib/mavis/Mavis.pm
|
||||
lib/mavis/mavis_tacplus_sms.pl
|
||||
lib/mavis/mavis_tacplus_radius.pl
|
||||
lib/mavis/mavis_tacplus_opie.pl
|
||||
lib/mavis/libmavis_asciiftp.so
|
||||
lib/mavis/libmavis_pam.so
|
||||
lib/mavis/libmavis_auth.so
|
||||
lib/mavis/libmavis_tee.so
|
||||
lib/mavis/libmavis_groups.so
|
||||
lib/mavis/libmavis_external.so
|
||||
lib/mavis/libmavis_anonftp.so
|
||||
lib/mavis/extra/tacacs.schema
|
||||
lib/mavis/extra/tacacs_schema.ldif
|
||||
lib/mavis/extra/tacacs.schema-fedora-ds
|
||||
lib/mavis/libmavis_null.so
|
||||
lib/mavis/libmavis_limit.so
|
||||
lib/mavis/mavis_tacplus_shadow.pl
|
||||
lib/mavis/libmavis_cache.so
|
||||
lib/mavis/mavis_ldap_authonly.pl
|
||||
lib/mavis/libmavis_log.so
|
||||
lib/mavis/mavis_tacplus_ads.pl
|
||||
lib/mavis/mavis_tacplus_passwd.pl
|
||||
lib/mavis/mavis_ftp_passwd.pl
|
||||
sbin/mavisd
|
||||
sbin/spawnd
|
||||
sbin/tac_plus
|
||||
sbin/pammavis
|
||||
share/mavis/ftpd.txt
|
||||
share/mavis/tac_plus.pdf
|
||||
share/mavis/tac_plus.html
|
||||
share/mavis/railroad/mavis/TimespecDecl.gif
|
||||
share/mavis/railroad/mavis/AuthConf.gif
|
||||
share/mavis/railroad/mavis/LimitConf.gif
|
||||
share/mavis/railroad/mavis/ASCIIftpConf.gif
|
||||
share/mavis/railroad/mavis/UserDBConf.gif
|
||||
share/mavis/railroad/mavis/CIDR.gif
|
||||
share/mavis/railroad/mavis/CacheConf.gif
|
||||
share/mavis/railroad/mavis/PAMConf.gif
|
||||
share/mavis/railroad/mavis/SystemConf.gif
|
||||
share/mavis/railroad/mavis/AnonftpConf.gif
|
||||
share/mavis/railroad/mavis/MavisScript.gif
|
||||
share/mavis/railroad/mavis/MavisDecl.gif
|
||||
share/mavis/railroad/mavis/MavisAction.gif
|
||||
share/mavis/railroad/mavis/ExternalConf.gif
|
||||
share/mavis/railroad/mavis/TeeConf.gif
|
||||
share/mavis/railroad/mavis/MavisCond.gif
|
||||
share/mavis/railroad/mavis/RemoteConf.gif
|
||||
share/mavis/railroad/tac_plus/GroupAttr.gif
|
||||
share/mavis/railroad/tac_plus/TacAction.gif
|
||||
share/mavis/railroad/tac_plus/ShellCommandDecl.gif
|
||||
share/mavis/railroad/tac_plus/TacScript.gif
|
||||
share/mavis/railroad/tac_plus/PasswordExpr.gif
|
||||
share/mavis/railroad/tac_plus/PasswordExprHash.gif
|
||||
share/mavis/railroad/tac_plus/TacCond.gif
|
||||
share/mavis/railroad/tac_plus/GroupOnlyAttr.gif
|
||||
share/mavis/railroad/tac_plus/Acl.gif
|
||||
share/mavis/railroad/tac_plus/ACLDecl.gif
|
||||
share/mavis/railroad/tac_plus/TimespecDecl.gif
|
||||
share/mavis/railroad/tac_plus/GroupDecl.gif
|
||||
share/mavis/railroad/tac_plus/Debug.gif
|
||||
share/mavis/railroad/tac_plus/ACLExpr.gif
|
||||
share/mavis/railroad/tac_plus/UserMessage.gif
|
||||
share/mavis/railroad/tac_plus/AVPair.gif
|
||||
share/mavis/railroad/tac_plus/GlobalDecl.gif
|
||||
share/mavis/railroad/tac_plus/ProtoDefault.gif
|
||||
share/mavis/railroad/tac_plus/ServiceDecl.gif
|
||||
share/mavis/railroad/tac_plus/ShellDecl.gif
|
||||
share/mavis/railroad/tac_plus/HostAttr.gif
|
||||
share/mavis/railroad/tac_plus/UserAttr.gif
|
||||
share/mavis/railroad/tac_plus/CmdDefault.gif
|
||||
share/mavis/railroad/tac_plus/RealmAttr.gif
|
||||
share/mavis/railroad/tac_plus/UserDecl.gif
|
||||
share/mavis/railroad/tac_plus/AttrDefault.gif
|
||||
share/mavis/railroad/tac_plus/RealmAttrAuthen.gif
|
||||
share/mavis/railroad/tac_plus/EnableExpr.gif
|
||||
share/mavis/railroad/tac_plus/RealmDecl.gif
|
||||
share/mavis/railroad/tac_plus/CIDR.gif
|
||||
share/mavis/railroad/tac_plus/ShellAttr.gif
|
||||
share/mavis/railroad/tac_plus/ServiceAttr.gif
|
||||
share/mavis/railroad/tac_plus/ProtoDecl.gif
|
||||
share/mavis/railroad/tac_plus/TacplusConfig.gif
|
||||
share/mavis/railroad/tac_plus/HostDecl.gif
|
||||
share/mavis/railroad/spawnd/AclDecl.gif
|
||||
share/mavis/railroad/spawnd/Debug.gif
|
||||
share/mavis/railroad/spawnd/MiscDecl.gif
|
||||
share/mavis/railroad/spawnd/ChildDecl.gif
|
||||
share/mavis/railroad/spawnd/ListenDecl.gif
|
||||
share/mavis/railroad/spawnd/Config.gif
|
||||
share/mavis/railroad/spawnd/SpawndConfig.gif
|
||||
share/mavis/railroad/spawnd/CIDR.gif
|
||||
share/mavis/railroad/spawnd/SyslogDecl.gif
|
||||
share/mavis/railroad/mavisd/SyslogDecl.gif
|
||||
share/mavis/railroad/mavisd/CIDR.gif
|
||||
share/mavis/railroad/mavisd/Config.gif
|
||||
share/mavis/spawnd.pdf
|
||||
share/mavis/tcprelay.html
|
||||
share/mavis/spawnd.html
|
||||
share/mavis/tcprelay.pdf
|
||||
share/mavis/mavis.html
|
||||
share/mavis/ftpd.html
|
||||
share/mavis/mavisd.txt
|
||||
share/mavis/mavis.pdf
|
||||
share/mavis/tac_plus.txt
|
||||
share/mavis/ftpd.pdf
|
||||
share/mavis/spawnd.txt
|
||||
share/mavis/tcprelay.txt
|
||||
share/mavis/mavisd.html
|
||||
share/mavis/mavisd.pdf
|
||||
share/mavis/mavis.txt
|
Loading…
Reference in a new issue