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> |