aboutsummaryrefslogtreecommitdiff
path: root/security/teleport
diff options
context:
space:
mode:
authorSean Chittenden <seanc@FreeBSD.org>2018-04-26 17:32:28 +0000
committerSean Chittenden <seanc@FreeBSD.org>2018-04-26 17:32:28 +0000
commit1dacbd7b182bb3bd86c5a0173737becd44a885c6 (patch)
tree7451823dd94b4101e0c7d30afc0199b30c419b83 /security/teleport
parent02285f7d994218481207fa75c50d367a2df8da98 (diff)
downloadports-1dacbd7b182bb3bd86c5a0173737becd44a885c6.tar.gz
ports-1dacbd7b182bb3bd86c5a0173737becd44a885c6.zip
Add new port: security/teleport
Gravitational Teleport ("Teleport") is a modern SSH server for remotely accessing clusters of FreeBSD or Linux servers via SSH or HTTPS. It is intended to be used instead of sshd. Teleport enables teams to easily adopt the best SSH practices like: - Integrated SSH credentials with your organization Google Apps identities or other OAuth identitiy providers. - Teleport uses certificate-based access with automatic expiration time - Enforcement of 2nd factor authentication - Cluster introspection: every Teleport node becomes a part of a cluster and is visible on the Web UI - Record and replay SSH sessions for knowledge sharing and auditing purposes - Collaboratively troubleshoot issues through session sharing - Connect to clusters located behind firewalls without direct Internet access via SSH bastions Teleport is built on top of the high-quality Golang SSH implementation and it is compatible with OpenSSH. Initially submitted by: staticwizard@hotmail.com in ports/219332 PR: ports/219332 Approved by: swills (mentor) Reviewed by: yuri, swills, pi Differential Revision: https://reviews.freebsd.org/D14576
Notes
Notes: svn path=/head/; revision=468360
Diffstat (limited to 'security/teleport')
-rw-r--r--security/teleport/Makefile61
-rw-r--r--security/teleport/distinfo3
-rw-r--r--security/teleport/files/pkg-message.in22
-rw-r--r--security/teleport/files/teleport.in40
-rw-r--r--security/teleport/pkg-descr18
5 files changed, 144 insertions, 0 deletions
diff --git a/security/teleport/Makefile b/security/teleport/Makefile
new file mode 100644
index 000000000000..4e5df12cb77f
--- /dev/null
+++ b/security/teleport/Makefile
@@ -0,0 +1,61 @@
+# $FreeBSD$
+
+PORTNAME= teleport
+DISTVERSIONPREFIX= v
+DISTVERSION= 2.5.6
+CATEGORIES= security
+
+MAINTAINER= seanc@FreeBSD.org
+COMMENT= Gravitational Telport SSH
+
+LICENSE= APACHE20
+
+BUILD_DEPENDS= ${LOCALBASE}/bin/go:lang/go \
+ ${LOCALBASE}/bin/zip:archivers/zip
+
+USES= compiler gmake
+
+USE_GITHUB= yes
+GH_ACCOUNT= gravitational
+GH_TAGNAME= v${DISTVERSION}${DISTVERSIONSUFFIX}
+
+USE_RC_SUBR= teleport
+
+SUB_FILES= pkg-message
+
+PLIST_FILES= bin/teleport \
+ bin/tctl \
+ bin/tsh \
+ etc/teleport.yaml.sample
+
+STRIP=
+
+GO_TELEPORT_SRC_DIR= src/github.com/gravitational/teleport
+PRE_GOPATH_DIR= ${PORTNAME}-${DISTVERSION}${DISTVERSIONSUFFIX}
+
+post-extract:
+ @${MKDIR} ${WRKDIR}/${GO_TELEPORT_SRC_DIR}
+ @${CP} -rp ${WRKDIR}/${PRE_GOPATH_DIR}/vendor/* ${WRKDIR}/src/
+ @${CP} -rp ${WRKDIR}/${PRE_GOPATH_DIR}/* ${WRKDIR}/${GO_TELEPORT_SRC_DIR}/
+
+do-build:
+ @cd ${WRKDIR}/${GO_TELEPORT_SRC_DIR} && \
+ ${SETENV} ${MAKE_ENV} ${BUILD_ENV} \
+ CGO_ENABLED=1 GOPATH=${WRKDIR} \
+ ${GMAKE} full
+
+do-install:
+ ${WRKDIR}/${GO_TELEPORT_SRC_DIR}/build/teleport configure > ${STAGEDIR}${PREFIX}/etc/teleport.yaml.sample
+ ${INSTALL_PROGRAM} ${WRKDIR}/${GO_TELEPORT_SRC_DIR}/build/teleport ${STAGEDIR}${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${WRKDIR}/${GO_TELEPORT_SRC_DIR}/build/tsh ${STAGEDIR}${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${WRKDIR}/${GO_TELEPORT_SRC_DIR}/build/tctl ${STAGEDIR}${PREFIX}/bin
+
+.include <bsd.port.pre.mk>
+
+# golang assumes that if clang is in use, it is called "clang" and not "cc". If
+# it's called "cc", go fails.
+.if ${COMPILER_TYPE} == clang
+BUILD_ENV= CC=clang
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/security/teleport/distinfo b/security/teleport/distinfo
new file mode 100644
index 000000000000..afa9b81a61d7
--- /dev/null
+++ b/security/teleport/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1524207284
+SHA256 (gravitational-teleport-v2.5.6_GH0.tar.gz) = 7a7168df106b1d4ea3b81b5078eaf6ea8f6063b11c7171202d2e2b9bfbdcfe2c
+SIZE (gravitational-teleport-v2.5.6_GH0.tar.gz) = 16216649
diff --git a/security/teleport/files/pkg-message.in b/security/teleport/files/pkg-message.in
new file mode 100644
index 000000000000..fef94af6d618
--- /dev/null
+++ b/security/teleport/files/pkg-message.in
@@ -0,0 +1,22 @@
+====
+Quick getting started guide:
+
+1. Read through the Quick Start Guide (see below).
+2. Start teleport: su -c 'sysrc teleport_enable=YES'
+3. Start teleport: su -c 'service teleport start'
+3. Add yourself as a user: su -c "tctl users add $USER"
+4. Create a password and 2FA code using the URL emitted during
+ the previous step.
+
+To add a new node to the cluster, on the auth server:
+
+ $ tctl nodes add --ttl=5m --roles=node,proxy
+
+See the docs for additional details:
+
+Quick start: https://gravitational.com/teleport/docs/quickstart/
+Admin Manual: https://gravitational.com/teleport/docs/admin-guide/
+User Manual: https://gravitational.com/teleport/docs/user-manual/
+Architecture: https://gravitational.com/teleport/docs/architecture/
+FAQ: https://gravitational.com/teleport/docs/faq/
+====
diff --git a/security/teleport/files/teleport.in b/security/teleport/files/teleport.in
new file mode 100644
index 000000000000..5d9777f35dda
--- /dev/null
+++ b/security/teleport/files/teleport.in
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+# $FreeBSD$
+#
+# PROVIDE: teleport
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# teleport_enable (bool): Set to NO by default.
+# Set it to YES to enable teleport.
+# teleport_config (str): Configuration file.
+# Default is "${LOCALBASE}/etc/teleport.yaml"
+# teleport_dir (dir): Set dir to run teleport in.
+# Default is "/var/lib/teleport".
+# teleport_roles (dir): Set roles to run teleport in.
+# Default is "node".
+
+. /etc/rc.subr
+
+name=teleport
+rcvar=teleport_enable
+
+load_rc_config $name
+
+: ${teleport_enable:="NO"}
+: ${teleport_config:="%%PREFIX%%/etc/teleport.yaml"}
+: ${teleport_args:="--config=${teleport_config}"
+: ${teleport_dir:="/var/lib/teleport"}
+: ${teleport_roles:="node"}
+
+pidfile=/var/run/teleport.pid
+required_files="${teleport_config}"
+procname="%%PREFIX%%/bin/teleport"
+command="/usr/sbin/daemon"
+command_args="-S -T teleport -s info -m 3 -p ${pidfile} /usr/bin/env ${teleport_env} ${procname} start --roles=${teleport_roles} ${teleport_args}"
+
+run_rc_command "$1"
diff --git a/security/teleport/pkg-descr b/security/teleport/pkg-descr
new file mode 100644
index 000000000000..34f891dc7c47
--- /dev/null
+++ b/security/teleport/pkg-descr
@@ -0,0 +1,18 @@
+What is Teleport?
+=================
+Gravitational Teleport ("Teleport") is a modern SSH server for remotely
+accessing clusters of Linux servers via SSH or HTTPS. It is intended to be used
+instead of sshd. Teleport enables teams to easily adopt the best SSH practices
+like:
+
+Integrated SSH credentials with your organization Google Apps identities or
+other OAuth identitiy providers. No need to distribute keys: Teleport uses
+certificate-based access with automatic expiration time. Enforcement of 2nd
+factor authentication. Cluster introspection: every Teleport node becomes a part
+of a cluster and is visible on the Web UI. Record and replay SSH sessions for
+knowledge sharing and auditing purposes. Collaboratively troubleshoot issues
+through session sharing. Connect to clusters located behind firewalls without
+direct Internet access via SSH bastions. Teleport is built on top of the
+high-quality Golang SSH implementation and it is compatible with OpenSSH.
+
+WWW: http://gravitational.com/teleport/