public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Georgy Yakovlev" <gyakovlev@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: net-misc/endlessh/files/, net-misc/endlessh/
Date: Mon, 25 Mar 2019 21:57:47 +0000 (UTC)	[thread overview]
Message-ID: <1553551042.d838e64623453aa3ec106d76b34509327d583066.gyakovlev@gentoo> (raw)

commit:     d838e64623453aa3ec106d76b34509327d583066
Author:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 25 21:56:38 2019 +0000
Commit:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Mon Mar 25 21:57:22 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d838e646

net-misc/endlessh: new package, ssh tarpit service

Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>

 net-misc/endlessh/Manifest             |  1 +
 net-misc/endlessh/endlessh-0.1.ebuild  | 70 ++++++++++++++++++++++++++++++++++
 net-misc/endlessh/endlessh-9999.ebuild | 70 ++++++++++++++++++++++++++++++++++
 net-misc/endlessh/files/endlessh.confd | 22 +++++++++++
 net-misc/endlessh/files/endlessh.initd | 22 +++++++++++
 net-misc/endlessh/files/logrotated     |  7 ++++
 net-misc/endlessh/metadata.xml         | 23 +++++++++++
 7 files changed, 215 insertions(+)

diff --git a/net-misc/endlessh/Manifest b/net-misc/endlessh/Manifest
new file mode 100644
index 00000000000..997e300902a
--- /dev/null
+++ b/net-misc/endlessh/Manifest
@@ -0,0 +1 @@
+DIST endlessh-0.1.tar.gz 8566 BLAKE2B e8fefd6ef80d26c25f57ffe1cef502af05322e348d63ca17c0bb626e35d5c1d35cb98384b35c86c579f2876573f4c13468605c3f44325a48d19e27c499657853 SHA512 0d11c82a708a26bd77ca85f7f3bd0eda2807ded9de88e3e518da09a38b3e94fc2658ea6f210e4f1493d38ca5948968c5488c8f2f09ff2adf22b799622b4952b8

diff --git a/net-misc/endlessh/endlessh-0.1.ebuild b/net-misc/endlessh/endlessh-0.1.ebuild
new file mode 100644
index 00000000000..105c786b101
--- /dev/null
+++ b/net-misc/endlessh/endlessh-0.1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_6 )
+
+inherit python-single-r1 systemd toolchain-funcs
+
+DESCRIPTION="SSH tarpit that slowly sends and endless banner"
+HOMEPAGE="https://github.com/skeeto/endlessh"
+
+if [ ${PV} == "9999" ] ; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/skeeto/${PN}.git"
+else
+	SRC_URI="https://github.com/skeeto/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="Unlicense"
+SLOT="0"
+IUSE="tools"
+REQUIRED_USE="tools? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND=""
+
+RDEPEND="${DEPEND}
+	tools? (
+		${PYTHON_DEPS}
+		dev-db/sqlite
+		dev-python/pyrfc3339[${PYTHON_USEDEP}]
+	)
+"
+
+BDEPEND=""
+
+pkg_setup() {
+	use tools && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	tc-export CC
+
+	sed -i \
+		-e 's/^CC/CC?/' \
+		-e 's/^CFLAGS  =/CFLAGS  +=/' \
+		-e 's/ -Os//' \
+		-e 's/^LDFLAGS/LDFLAGS?/' \
+		Makefile || die
+
+	sed -i -e "/^ExecStart=/ s:=/opt/endlessh:=${EPREFIX}/usr/bin:" \
+		util/endlessh.service || die
+}
+
+src_install() {
+	dobin endlessh
+
+	newinitd "${FILESDIR}"/endlessh.initd endlessh
+	newconfd "${FILESDIR}"/endlessh.confd endlessh
+
+	systemd_dounit util/endlessh.service
+
+	insinto /etc/logrotate.d
+	newins "${FILESDIR}/logrotated" endlessh
+
+	einstalldocs
+}

diff --git a/net-misc/endlessh/endlessh-9999.ebuild b/net-misc/endlessh/endlessh-9999.ebuild
new file mode 100644
index 00000000000..105c786b101
--- /dev/null
+++ b/net-misc/endlessh/endlessh-9999.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_6 )
+
+inherit python-single-r1 systemd toolchain-funcs
+
+DESCRIPTION="SSH tarpit that slowly sends and endless banner"
+HOMEPAGE="https://github.com/skeeto/endlessh"
+
+if [ ${PV} == "9999" ] ; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/skeeto/${PN}.git"
+else
+	SRC_URI="https://github.com/skeeto/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="Unlicense"
+SLOT="0"
+IUSE="tools"
+REQUIRED_USE="tools? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND=""
+
+RDEPEND="${DEPEND}
+	tools? (
+		${PYTHON_DEPS}
+		dev-db/sqlite
+		dev-python/pyrfc3339[${PYTHON_USEDEP}]
+	)
+"
+
+BDEPEND=""
+
+pkg_setup() {
+	use tools && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	tc-export CC
+
+	sed -i \
+		-e 's/^CC/CC?/' \
+		-e 's/^CFLAGS  =/CFLAGS  +=/' \
+		-e 's/ -Os//' \
+		-e 's/^LDFLAGS/LDFLAGS?/' \
+		Makefile || die
+
+	sed -i -e "/^ExecStart=/ s:=/opt/endlessh:=${EPREFIX}/usr/bin:" \
+		util/endlessh.service || die
+}
+
+src_install() {
+	dobin endlessh
+
+	newinitd "${FILESDIR}"/endlessh.initd endlessh
+	newconfd "${FILESDIR}"/endlessh.confd endlessh
+
+	systemd_dounit util/endlessh.service
+
+	insinto /etc/logrotate.d
+	newins "${FILESDIR}/logrotated" endlessh
+
+	einstalldocs
+}

diff --git a/net-misc/endlessh/files/endlessh.confd b/net-misc/endlessh/files/endlessh.confd
new file mode 100644
index 00000000000..a114889c8ca
--- /dev/null
+++ b/net-misc/endlessh/files/endlessh.confd
@@ -0,0 +1,22 @@
+# /etc/conf.d/endlessh: config file for /etc/init.d/endlessh
+#
+#ENDLESSH_ARGS=""
+#
+#  -d INT    Message millisecond delay [10000]
+#  -f        Set and load config file [/etc/endlessh/config]
+#  -l INT    Maximum banner line length (3-255) [32]
+#  -m INT    Maximum number of clients [4096]
+#  -p INT    Listening port [2222]
+#  -v        Print diagnostics to standard output (repeatable)
+
+# EXAMPLE: listen on port 22, log all queries and errors in very verbose mode
+
+#ENDLESSH_ARGS="-p 22 -vv"
+
+# plain file (preferred), change logrotate file as well if you change this.
+#output_log=/var/log/"${RC_SVCNAME}.log"
+#error_log=/var/log/"${RC_SVCNAME}.error.log"
+
+# syslog support via LOGGER(1). Note this spawns logger processes per io stream
+#output_logger="logger -p daemon.none --"
+#error_logger="logger -p daemon.err --"

diff --git a/net-misc/endlessh/files/endlessh.initd b/net-misc/endlessh/files/endlessh.initd
new file mode 100755
index 00000000000..a88fd9c34c9
--- /dev/null
+++ b/net-misc/endlessh/files/endlessh.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+	need localmount
+	use net
+}
+
+description="Starts endlessh tarpit"
+
+command="/usr/bin/endlessh"
+command_args="${ENDLESSH_ARGS}"
+command_background="true"
+extra_started_commands="reload"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+reload() {
+	ebegin "Reloading ${RC_SVCNAME} configuration"
+	start-stop-daemon --exec $command --signal HUP
+	eend $?
+}

diff --git a/net-misc/endlessh/files/logrotated b/net-misc/endlessh/files/logrotated
new file mode 100644
index 00000000000..53c9efbfe87
--- /dev/null
+++ b/net-misc/endlessh/files/logrotated
@@ -0,0 +1,7 @@
+/var/log/endlessh.log /var/log/endlessh.error.log {
+	missingok
+	notifempty
+	postrotate
+		/etc/init.d/endlessh -q reload
+	endscript
+}

diff --git a/net-misc/endlessh/metadata.xml b/net-misc/endlessh/metadata.xml
new file mode 100644
index 00000000000..10db1a22fbf
--- /dev/null
+++ b/net-misc/endlessh/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>gyakovlev@gentoo.org</email>
+		<name>Georgy Yakovlev</name>
+	</maintainer>
+	<longdescription lang="en">
+		Endlessh is an SSH tarpit that very slowly sends an endless, random SSH banner.
+		It keeps SSH clients locked up for hours or even days at a time.
+		The purpose is to put your real SSH server on another port and then let the script kiddies get stuck in this tarpit instead of bothering a real server.
+
+		Since the tarpit is in the banner before any cryptographic exchange occurs, this program doesn't depend on any cryptographic libraries.
+		It's a simple, single-threaded, standalone C program.
+		It uses poll() to trap multiple clients at a time.
+	</longdescription>
+	<upstream>
+		<remote-id type="github">skeeto/endlessh</remote-id>
+	</upstream>
+	<use>
+		<flag name="tools">Install additional python script which can be used to parse logs and save summary to sqlite database</flag>
+	</use>
+</pkgmetadata>


             reply	other threads:[~2019-03-25 21:57 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-25 21:57 Georgy Yakovlev [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-04-21  8:23 [gentoo-commits] repo/gentoo:master commit in: net-misc/endlessh/files/, net-misc/endlessh/ Georgy Yakovlev
2020-06-21 20:08 Georgy Yakovlev
2020-06-21 20:08 Georgy Yakovlev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1553551042.d838e64623453aa3ec106d76b34509327d583066.gyakovlev@gentoo \
    --to=gyakovlev@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox