Date: Thu, 26 Apr 2018 17:32:28 +0000 (UTC) From: Sean Chittenden <seanc@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r468360 - in head/security: . teleport teleport/files Message-ID: <201804261732.w3QHWSaQ099619@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: seanc Date: Thu Apr 26 17:32:28 2018 New Revision: 468360 URL: https://svnweb.freebsd.org/changeset/ports/468360 Log: 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 Added: head/security/teleport/ head/security/teleport/Makefile (contents, props changed) head/security/teleport/distinfo (contents, props changed) head/security/teleport/files/ head/security/teleport/files/pkg-message.in (contents, props changed) head/security/teleport/files/teleport.in (contents, props changed) head/security/teleport/pkg-descr (contents, props changed) Modified: head/security/Makefile Modified: head/security/Makefile ============================================================================== --- head/security/Makefile Thu Apr 26 16:41:23 2018 (r468359) +++ head/security/Makefile Thu Apr 26 17:32:28 2018 (r468360) @@ -1269,6 +1269,7 @@ SUBDIR += symbion-sslproxy SUBDIR += tclsasl SUBDIR += tcpcrypt + SUBDIR += teleport SUBDIR += testssl.sh SUBDIR += tinc SUBDIR += tinc-devel Added: head/security/teleport/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/security/teleport/Makefile Thu Apr 26 17:32:28 2018 (r468360) @@ -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> Added: head/security/teleport/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/security/teleport/distinfo Thu Apr 26 17:32:28 2018 (r468360) @@ -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 Added: head/security/teleport/files/pkg-message.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/security/teleport/files/pkg-message.in Thu Apr 26 17:32:28 2018 (r468360) @@ -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/ +==== Added: head/security/teleport/files/teleport.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/security/teleport/files/teleport.in Thu Apr 26 17:32:28 2018 (r468360) @@ -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" Added: head/security/teleport/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/security/teleport/pkg-descr Thu Apr 26 17:32:28 2018 (r468360) @@ -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/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201804261732.w3QHWSaQ099619>