Gentoo Archives: gentoo-commits

From: Georgy Yakovlev <gyakovlev@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-misc/endlessh/files/, net-misc/endlessh/
Date: Mon, 25 Mar 2019 21:57:52
Message-Id: 1553551042.d838e64623453aa3ec106d76b34509327d583066.gyakovlev@gentoo
1 commit: d838e64623453aa3ec106d76b34509327d583066
2 Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
3 AuthorDate: Mon Mar 25 21:56:38 2019 +0000
4 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
5 CommitDate: Mon Mar 25 21:57:22 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d838e646
7
8 net-misc/endlessh: new package, ssh tarpit service
9
10 Package-Manager: Portage-2.3.62, Repoman-2.3.12
11 Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
12
13 net-misc/endlessh/Manifest | 1 +
14 net-misc/endlessh/endlessh-0.1.ebuild | 70 ++++++++++++++++++++++++++++++++++
15 net-misc/endlessh/endlessh-9999.ebuild | 70 ++++++++++++++++++++++++++++++++++
16 net-misc/endlessh/files/endlessh.confd | 22 +++++++++++
17 net-misc/endlessh/files/endlessh.initd | 22 +++++++++++
18 net-misc/endlessh/files/logrotated | 7 ++++
19 net-misc/endlessh/metadata.xml | 23 +++++++++++
20 7 files changed, 215 insertions(+)
21
22 diff --git a/net-misc/endlessh/Manifest b/net-misc/endlessh/Manifest
23 new file mode 100644
24 index 00000000000..997e300902a
25 --- /dev/null
26 +++ b/net-misc/endlessh/Manifest
27 @@ -0,0 +1 @@
28 +DIST endlessh-0.1.tar.gz 8566 BLAKE2B e8fefd6ef80d26c25f57ffe1cef502af05322e348d63ca17c0bb626e35d5c1d35cb98384b35c86c579f2876573f4c13468605c3f44325a48d19e27c499657853 SHA512 0d11c82a708a26bd77ca85f7f3bd0eda2807ded9de88e3e518da09a38b3e94fc2658ea6f210e4f1493d38ca5948968c5488c8f2f09ff2adf22b799622b4952b8
29
30 diff --git a/net-misc/endlessh/endlessh-0.1.ebuild b/net-misc/endlessh/endlessh-0.1.ebuild
31 new file mode 100644
32 index 00000000000..105c786b101
33 --- /dev/null
34 +++ b/net-misc/endlessh/endlessh-0.1.ebuild
35 @@ -0,0 +1,70 @@
36 +# Copyright 2019 Gentoo Authors
37 +# Distributed under the terms of the GNU General Public License v2
38 +
39 +EAPI=7
40 +
41 +PYTHON_COMPAT=( python3_6 )
42 +
43 +inherit python-single-r1 systemd toolchain-funcs
44 +
45 +DESCRIPTION="SSH tarpit that slowly sends and endless banner"
46 +HOMEPAGE="https://github.com/skeeto/endlessh"
47 +
48 +if [ ${PV} == "9999" ] ; then
49 + inherit git-r3
50 + EGIT_REPO_URI="https://github.com/skeeto/${PN}.git"
51 +else
52 + SRC_URI="https://github.com/skeeto/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
53 + KEYWORDS="~amd64 ~x86"
54 +fi
55 +
56 +LICENSE="Unlicense"
57 +SLOT="0"
58 +IUSE="tools"
59 +REQUIRED_USE="tools? ( ${PYTHON_REQUIRED_USE} )"
60 +
61 +DEPEND=""
62 +
63 +RDEPEND="${DEPEND}
64 + tools? (
65 + ${PYTHON_DEPS}
66 + dev-db/sqlite
67 + dev-python/pyrfc3339[${PYTHON_USEDEP}]
68 + )
69 +"
70 +
71 +BDEPEND=""
72 +
73 +pkg_setup() {
74 + use tools && python-single-r1_pkg_setup
75 +}
76 +
77 +src_prepare() {
78 + default
79 +
80 + tc-export CC
81 +
82 + sed -i \
83 + -e 's/^CC/CC?/' \
84 + -e 's/^CFLAGS =/CFLAGS +=/' \
85 + -e 's/ -Os//' \
86 + -e 's/^LDFLAGS/LDFLAGS?/' \
87 + Makefile || die
88 +
89 + sed -i -e "/^ExecStart=/ s:=/opt/endlessh:=${EPREFIX}/usr/bin:" \
90 + util/endlessh.service || die
91 +}
92 +
93 +src_install() {
94 + dobin endlessh
95 +
96 + newinitd "${FILESDIR}"/endlessh.initd endlessh
97 + newconfd "${FILESDIR}"/endlessh.confd endlessh
98 +
99 + systemd_dounit util/endlessh.service
100 +
101 + insinto /etc/logrotate.d
102 + newins "${FILESDIR}/logrotated" endlessh
103 +
104 + einstalldocs
105 +}
106
107 diff --git a/net-misc/endlessh/endlessh-9999.ebuild b/net-misc/endlessh/endlessh-9999.ebuild
108 new file mode 100644
109 index 00000000000..105c786b101
110 --- /dev/null
111 +++ b/net-misc/endlessh/endlessh-9999.ebuild
112 @@ -0,0 +1,70 @@
113 +# Copyright 2019 Gentoo Authors
114 +# Distributed under the terms of the GNU General Public License v2
115 +
116 +EAPI=7
117 +
118 +PYTHON_COMPAT=( python3_6 )
119 +
120 +inherit python-single-r1 systemd toolchain-funcs
121 +
122 +DESCRIPTION="SSH tarpit that slowly sends and endless banner"
123 +HOMEPAGE="https://github.com/skeeto/endlessh"
124 +
125 +if [ ${PV} == "9999" ] ; then
126 + inherit git-r3
127 + EGIT_REPO_URI="https://github.com/skeeto/${PN}.git"
128 +else
129 + SRC_URI="https://github.com/skeeto/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
130 + KEYWORDS="~amd64 ~x86"
131 +fi
132 +
133 +LICENSE="Unlicense"
134 +SLOT="0"
135 +IUSE="tools"
136 +REQUIRED_USE="tools? ( ${PYTHON_REQUIRED_USE} )"
137 +
138 +DEPEND=""
139 +
140 +RDEPEND="${DEPEND}
141 + tools? (
142 + ${PYTHON_DEPS}
143 + dev-db/sqlite
144 + dev-python/pyrfc3339[${PYTHON_USEDEP}]
145 + )
146 +"
147 +
148 +BDEPEND=""
149 +
150 +pkg_setup() {
151 + use tools && python-single-r1_pkg_setup
152 +}
153 +
154 +src_prepare() {
155 + default
156 +
157 + tc-export CC
158 +
159 + sed -i \
160 + -e 's/^CC/CC?/' \
161 + -e 's/^CFLAGS =/CFLAGS +=/' \
162 + -e 's/ -Os//' \
163 + -e 's/^LDFLAGS/LDFLAGS?/' \
164 + Makefile || die
165 +
166 + sed -i -e "/^ExecStart=/ s:=/opt/endlessh:=${EPREFIX}/usr/bin:" \
167 + util/endlessh.service || die
168 +}
169 +
170 +src_install() {
171 + dobin endlessh
172 +
173 + newinitd "${FILESDIR}"/endlessh.initd endlessh
174 + newconfd "${FILESDIR}"/endlessh.confd endlessh
175 +
176 + systemd_dounit util/endlessh.service
177 +
178 + insinto /etc/logrotate.d
179 + newins "${FILESDIR}/logrotated" endlessh
180 +
181 + einstalldocs
182 +}
183
184 diff --git a/net-misc/endlessh/files/endlessh.confd b/net-misc/endlessh/files/endlessh.confd
185 new file mode 100644
186 index 00000000000..a114889c8ca
187 --- /dev/null
188 +++ b/net-misc/endlessh/files/endlessh.confd
189 @@ -0,0 +1,22 @@
190 +# /etc/conf.d/endlessh: config file for /etc/init.d/endlessh
191 +#
192 +#ENDLESSH_ARGS=""
193 +#
194 +# -d INT Message millisecond delay [10000]
195 +# -f Set and load config file [/etc/endlessh/config]
196 +# -l INT Maximum banner line length (3-255) [32]
197 +# -m INT Maximum number of clients [4096]
198 +# -p INT Listening port [2222]
199 +# -v Print diagnostics to standard output (repeatable)
200 +
201 +# EXAMPLE: listen on port 22, log all queries and errors in very verbose mode
202 +
203 +#ENDLESSH_ARGS="-p 22 -vv"
204 +
205 +# plain file (preferred), change logrotate file as well if you change this.
206 +#output_log=/var/log/"${RC_SVCNAME}.log"
207 +#error_log=/var/log/"${RC_SVCNAME}.error.log"
208 +
209 +# syslog support via LOGGER(1). Note this spawns logger processes per io stream
210 +#output_logger="logger -p daemon.none --"
211 +#error_logger="logger -p daemon.err --"
212
213 diff --git a/net-misc/endlessh/files/endlessh.initd b/net-misc/endlessh/files/endlessh.initd
214 new file mode 100755
215 index 00000000000..a88fd9c34c9
216 --- /dev/null
217 +++ b/net-misc/endlessh/files/endlessh.initd
218 @@ -0,0 +1,22 @@
219 +#!/sbin/openrc-run
220 +# Copyright 2019 Gentoo Authors
221 +# Distributed under the terms of the GNU General Public License v2
222 +
223 +depend() {
224 + need localmount
225 + use net
226 +}
227 +
228 +description="Starts endlessh tarpit"
229 +
230 +command="/usr/bin/endlessh"
231 +command_args="${ENDLESSH_ARGS}"
232 +command_background="true"
233 +extra_started_commands="reload"
234 +pidfile="/run/${RC_SVCNAME}.pid"
235 +
236 +reload() {
237 + ebegin "Reloading ${RC_SVCNAME} configuration"
238 + start-stop-daemon --exec $command --signal HUP
239 + eend $?
240 +}
241
242 diff --git a/net-misc/endlessh/files/logrotated b/net-misc/endlessh/files/logrotated
243 new file mode 100644
244 index 00000000000..53c9efbfe87
245 --- /dev/null
246 +++ b/net-misc/endlessh/files/logrotated
247 @@ -0,0 +1,7 @@
248 +/var/log/endlessh.log /var/log/endlessh.error.log {
249 + missingok
250 + notifempty
251 + postrotate
252 + /etc/init.d/endlessh -q reload
253 + endscript
254 +}
255
256 diff --git a/net-misc/endlessh/metadata.xml b/net-misc/endlessh/metadata.xml
257 new file mode 100644
258 index 00000000000..10db1a22fbf
259 --- /dev/null
260 +++ b/net-misc/endlessh/metadata.xml
261 @@ -0,0 +1,23 @@
262 +<?xml version="1.0" encoding="UTF-8"?>
263 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
264 +<pkgmetadata>
265 + <maintainer type="person">
266 + <email>gyakovlev@g.o</email>
267 + <name>Georgy Yakovlev</name>
268 + </maintainer>
269 + <longdescription lang="en">
270 + Endlessh is an SSH tarpit that very slowly sends an endless, random SSH banner.
271 + It keeps SSH clients locked up for hours or even days at a time.
272 + 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.
273 +
274 + Since the tarpit is in the banner before any cryptographic exchange occurs, this program doesn't depend on any cryptographic libraries.
275 + It's a simple, single-threaded, standalone C program.
276 + It uses poll() to trap multiple clients at a time.
277 + </longdescription>
278 + <upstream>
279 + <remote-id type="github">skeeto/endlessh</remote-id>
280 + </upstream>
281 + <use>
282 + <flag name="tools">Install additional python script which can be used to parse logs and save summary to sqlite database</flag>
283 + </use>
284 +</pkgmetadata>