Working Debian package!
This commit is contained in:
parent
e5273708ea
commit
b093177248
15
example/Vagrantfile
vendored
15
example/Vagrantfile
vendored
|
@ -64,24 +64,21 @@ Vagrant.configure("2") do |config|
|
||||||
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
|
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
|
||||||
# documentation for more information about their specific syntax and use.
|
# documentation for more information about their specific syntax and use.
|
||||||
|
|
||||||
config.vm.provision "file", source: "../torch.conf", destination: "~/torch/"
|
config.vm.provision "file", source: "torch-agent_0.0.1-1_all.deb", destination: "~/"
|
||||||
config.vm.provision "file", source: "../torch-agent.py", destination: "~/torch/"
|
|
||||||
config.vm.provision "file", source: "../torch.service", destination: "~/torch/"
|
|
||||||
config.vm.provision "file", source: "../install-ubuntu2004.sh", destination: "~/torch/"
|
|
||||||
|
|
||||||
config.vm.provision "file", source: "agent-config", destination: "~/torch-conf"
|
config.vm.provision "file", source: "agent-config", destination: "~/torch-conf"
|
||||||
|
|
||||||
config.vm.provision "shell", inline: <<-SHELL
|
config.vm.provision "shell", inline: <<-SHELL
|
||||||
|
|
||||||
sudo -- sh -c "echo '10.0.2.2 mqtt.example.com' >> /etc/hosts"
|
sudo -- sh -c "echo '10.0.2.2 mqtt.example.com' >> /etc/hosts"
|
||||||
|
|
||||||
cd torch
|
sudo apt update
|
||||||
sudo ./install-ubuntu2004.sh
|
sudo apt install -y ./torch-agent_0.0.1-1_all.deb
|
||||||
|
|
||||||
sudo cp -f ../torch-conf/* /etc/torch/
|
sudo cp -f torch-conf/* /etc/torch/
|
||||||
sudo chown -R torch /etc/torch
|
sudo chown -R torch /etc/torch
|
||||||
|
|
||||||
sudo systemctl restart torch
|
sudo systemctl enable torch-agent
|
||||||
|
sudo systemctl start torch-agent
|
||||||
|
|
||||||
SHELL
|
SHELL
|
||||||
end
|
end
|
||||||
|
|
BIN
example/torch-agent_0.0.1-1_all.deb
Normal file
BIN
example/torch-agent_0.0.1-1_all.deb
Normal file
Binary file not shown.
|
@ -0,0 +1,2 @@
|
||||||
|
./debian/src/usr/share/torch-agent
|
||||||
|
./debian/src/etc/torch
|
|
@ -0,0 +1,27 @@
|
||||||
|
# Automatically added by dh_installsystemd/12.10ubuntu1
|
||||||
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
||||||
|
if deb-systemd-helper debian-installed 'torch-agent.service'; then
|
||||||
|
# This will only remove masks created by d-s-h on package removal.
|
||||||
|
deb-systemd-helper unmask 'torch-agent.service' >/dev/null || true
|
||||||
|
|
||||||
|
if deb-systemd-helper --quiet was-enabled 'torch-agent.service'; then
|
||||||
|
# Create new symlinks, if any.
|
||||||
|
deb-systemd-helper enable 'torch-agent.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update the statefile to add new symlinks (if any), which need to be cleaned
|
||||||
|
# up on purge. Also remove old symlinks.
|
||||||
|
deb-systemd-helper update-state 'torch-agent.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
# End automatically added section
|
||||||
|
# Automatically added by dh_installsystemd/12.10ubuntu1
|
||||||
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
||||||
|
if [ -d /run/systemd/system ]; then
|
||||||
|
systemctl --system daemon-reload >/dev/null || true
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
deb-systemd-invoke try-restart 'torch-agent.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# End automatically added section
|
|
@ -0,0 +1,5 @@
|
||||||
|
# Automatically added by dh_installsystemd/12.10ubuntu1
|
||||||
|
if [ -d /run/systemd/system ] && [ "$1" = remove ]; then
|
||||||
|
deb-systemd-invoke stop 'torch-agent.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
# End automatically added section
|
6
torch-agent-0.0.1/debian/README.Debian
Normal file
6
torch-agent-0.0.1/debian/README.Debian
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
torch-agent for Debian
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
<possible notes regarding this package - if none, delete this file>
|
||||||
|
|
||||||
|
-- Benjamin Dweck <bjdweck@gmail.com> Tue, 06 Oct 2020 15:53:02 +0200
|
10
torch-agent-0.0.1/debian/README.source
Normal file
10
torch-agent-0.0.1/debian/README.source
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
torch-agent for Debian
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
<this file describes information about the source package, see Debian policy
|
||||||
|
manual section 4.14. You WILL either need to modify or delete this file>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Benjamin Dweck <bjdweck@gmail.com> Tue, 06 Oct 2020 15:53:02 +0200
|
||||||
|
|
5
torch-agent-0.0.1/debian/changelog
Normal file
5
torch-agent-0.0.1/debian/changelog
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
torch-agent (0.0.1-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Initial release
|
||||||
|
|
||||||
|
-- Benjamin Dweck <bjdweck@gmail.com> Tue, 06 Oct 2020 15:53:02 +0200
|
16
torch-agent-0.0.1/debian/control
Normal file
16
torch-agent-0.0.1/debian/control
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
Source: torch-agent
|
||||||
|
Section: net
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Benjamin Dweck <bjdweck@gmail.com>
|
||||||
|
Build-Depends: debhelper-compat (= 12)
|
||||||
|
Standards-Version: 4.4.1
|
||||||
|
Homepage: https://rudefox.io
|
||||||
|
#Vcs-Browser: https://salsa.debian.org/debian/torch-agent
|
||||||
|
#Vcs-Git: https://salsa.debian.org/debian/torch-agent.git
|
||||||
|
|
||||||
|
Package: torch-agent
|
||||||
|
Architecture: all
|
||||||
|
Depends: ssh, tor, python3-pip, ${misc:Depends}
|
||||||
|
Description: TORch is a solution for creating an SSH-via-Tor
|
||||||
|
backdoor on a remote device as a means of fallback remote
|
||||||
|
management and initial headless device configuration.
|
23
torch-agent-0.0.1/debian/copyright
Normal file
23
torch-agent-0.0.1/debian/copyright
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Upstream-Name: torch-agent
|
||||||
|
Upstream-Contact: bjdweck@gmail.com
|
||||||
|
Source: https://rudefox.io
|
||||||
|
|
||||||
|
Files: debian/*
|
||||||
|
Copyright: 2020 Benjamin Dweck <bjdweck@gmail.com>
|
||||||
|
License: GPL-2+
|
||||||
|
This package is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
.
|
||||||
|
This package is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>
|
||||||
|
.
|
||||||
|
On Debian systems, the complete text of the GNU General
|
||||||
|
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
|
1
torch-agent-0.0.1/debian/debhelper-build-stamp
Normal file
1
torch-agent-0.0.1/debian/debhelper-build-stamp
Normal file
|
@ -0,0 +1 @@
|
||||||
|
torch-agent
|
2
torch-agent-0.0.1/debian/files
Normal file
2
torch-agent-0.0.1/debian/files
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
torch-agent_0.0.1-1_all.deb net optional
|
||||||
|
torch-agent_0.0.1-1_amd64.buildinfo net optional
|
56
torch-agent-0.0.1/debian/manpage.1.ex
Normal file
56
torch-agent-0.0.1/debian/manpage.1.ex
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
.\" Hey, EMACS: -*- nroff -*-
|
||||||
|
.\" (C) Copyright 2020 Benjamin Dweck <bjdweck@gmail.com>,
|
||||||
|
.\"
|
||||||
|
.\" First parameter, NAME, should be all caps
|
||||||
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
|
.\" other parameters are allowed: see man(7), man(1)
|
||||||
|
.TH Torch-agent SECTION "October 6 2020"
|
||||||
|
.\" Please adjust this date whenever revising the manpage.
|
||||||
|
.\"
|
||||||
|
.\" Some roff macros, for reference:
|
||||||
|
.\" .nh disable hyphenation
|
||||||
|
.\" .hy enable hyphenation
|
||||||
|
.\" .ad l left justify
|
||||||
|
.\" .ad b justify to both left and right margins
|
||||||
|
.\" .nf disable filling
|
||||||
|
.\" .fi enable filling
|
||||||
|
.\" .br insert line break
|
||||||
|
.\" .sp <n> insert n+1 empty lines
|
||||||
|
.\" for manpage-specific macros, see man(7)
|
||||||
|
.SH NAME
|
||||||
|
torch-agent \- program to do something
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B torch-agent
|
||||||
|
.RI [ options ] " files" ...
|
||||||
|
.br
|
||||||
|
.B bar
|
||||||
|
.RI [ options ] " files" ...
|
||||||
|
.SH DESCRIPTION
|
||||||
|
This manual page documents briefly the
|
||||||
|
.B torch-agent
|
||||||
|
and
|
||||||
|
.B bar
|
||||||
|
commands.
|
||||||
|
.PP
|
||||||
|
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||||
|
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||||
|
.\" respectively.
|
||||||
|
\fBtorch-agent\fP is a program that...
|
||||||
|
.SH OPTIONS
|
||||||
|
These programs follow the usual GNU command line syntax, with long
|
||||||
|
options starting with two dashes (`-').
|
||||||
|
A summary of options is included below.
|
||||||
|
For a complete description, see the Info files.
|
||||||
|
.TP
|
||||||
|
.B \-h, \-\-help
|
||||||
|
Show summary of options.
|
||||||
|
.TP
|
||||||
|
.B \-v, \-\-version
|
||||||
|
Show version of program.
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR bar (1),
|
||||||
|
.BR baz (1).
|
||||||
|
.br
|
||||||
|
The programs are documented fully by
|
||||||
|
.IR "The Rise and Fall of a Fooish Bar" ,
|
||||||
|
available via the Info system.
|
154
torch-agent-0.0.1/debian/manpage.sgml.ex
Normal file
154
torch-agent-0.0.1/debian/manpage.sgml.ex
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
|
||||||
|
|
||||||
|
<!-- Process this file with docbook-to-man to generate an nroff manual
|
||||||
|
page: `docbook-to-man manpage.sgml > manpage.1'. You may view
|
||||||
|
the manual page with: `docbook-to-man manpage.sgml | nroff -man |
|
||||||
|
less'. A typical entry in a Makefile or Makefile.am is:
|
||||||
|
|
||||||
|
manpage.1: manpage.sgml
|
||||||
|
docbook-to-man $< > $@
|
||||||
|
|
||||||
|
|
||||||
|
The docbook-to-man binary is found in the docbook-to-man package.
|
||||||
|
Please remember that if you create the nroff version in one of the
|
||||||
|
debian/rules file targets (such as build), you will need to include
|
||||||
|
docbook-to-man in your Build-Depends control field.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Fill in your name for FIRSTNAME and SURNAME. -->
|
||||||
|
<!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
|
||||||
|
<!ENTITY dhsurname "<surname>SURNAME</surname>">
|
||||||
|
<!-- Please adjust the date whenever revising the manpage. -->
|
||||||
|
<!ENTITY dhdate "<date>October 6 2020</date>">
|
||||||
|
<!-- SECTION should be 1-8, maybe w/ subsection other parameters are
|
||||||
|
allowed: see man(7), man(1). -->
|
||||||
|
<!ENTITY dhsection "<manvolnum>SECTION</manvolnum>">
|
||||||
|
<!ENTITY dhemail "<email>bjdweck@gmail.com</email>">
|
||||||
|
<!ENTITY dhusername "Benjamin Dweck">
|
||||||
|
<!ENTITY dhucpackage "<refentrytitle>Torch-agent</refentrytitle>">
|
||||||
|
<!ENTITY dhpackage "torch-agent">
|
||||||
|
|
||||||
|
<!ENTITY debian "<productname>Debian</productname>">
|
||||||
|
<!ENTITY gnu "<acronym>GNU</acronym>">
|
||||||
|
<!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
|
||||||
|
]>
|
||||||
|
|
||||||
|
<refentry>
|
||||||
|
<refentryinfo>
|
||||||
|
<address>
|
||||||
|
&dhemail;
|
||||||
|
</address>
|
||||||
|
<author>
|
||||||
|
&dhfirstname;
|
||||||
|
&dhsurname;
|
||||||
|
</author>
|
||||||
|
<copyright>
|
||||||
|
<year>2003</year>
|
||||||
|
<holder>&dhusername;</holder>
|
||||||
|
</copyright>
|
||||||
|
&dhdate;
|
||||||
|
</refentryinfo>
|
||||||
|
<refmeta>
|
||||||
|
&dhucpackage;
|
||||||
|
|
||||||
|
&dhsection;
|
||||||
|
</refmeta>
|
||||||
|
<refnamediv>
|
||||||
|
<refname>&dhpackage;</refname>
|
||||||
|
|
||||||
|
<refpurpose>program to do something</refpurpose>
|
||||||
|
</refnamediv>
|
||||||
|
<refsynopsisdiv>
|
||||||
|
<cmdsynopsis>
|
||||||
|
<command>&dhpackage;</command>
|
||||||
|
|
||||||
|
<arg><option>-e <replaceable>this</replaceable></option></arg>
|
||||||
|
|
||||||
|
<arg><option>--example <replaceable>that</replaceable></option></arg>
|
||||||
|
</cmdsynopsis>
|
||||||
|
</refsynopsisdiv>
|
||||||
|
<refsect1>
|
||||||
|
<title>DESCRIPTION</title>
|
||||||
|
|
||||||
|
<para>This manual page documents briefly the
|
||||||
|
<command>&dhpackage;</command> and <command>bar</command>
|
||||||
|
commands.</para>
|
||||||
|
|
||||||
|
<para>This manual page was written for the &debian; distribution
|
||||||
|
because the original program does not have a manual page.
|
||||||
|
Instead, it has documentation in the &gnu;
|
||||||
|
<application>Info</application> format; see below.</para>
|
||||||
|
|
||||||
|
<para><command>&dhpackage;</command> is a program that...</para>
|
||||||
|
|
||||||
|
</refsect1>
|
||||||
|
<refsect1>
|
||||||
|
<title>OPTIONS</title>
|
||||||
|
|
||||||
|
<para>These programs follow the usual &gnu; command line syntax,
|
||||||
|
with long options starting with two dashes (`-'). A summary of
|
||||||
|
options is included below. For a complete description, see the
|
||||||
|
<application>Info</application> files.</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-h</option>
|
||||||
|
<option>--help</option>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Show summary of options.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-v</option>
|
||||||
|
<option>--version</option>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Show version of program.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</refsect1>
|
||||||
|
<refsect1>
|
||||||
|
<title>SEE ALSO</title>
|
||||||
|
|
||||||
|
<para>bar (1), baz (1).</para>
|
||||||
|
|
||||||
|
<para>The programs are documented fully by <citetitle>The Rise and
|
||||||
|
Fall of a Fooish Bar</citetitle> available via the
|
||||||
|
<application>Info</application> system.</para>
|
||||||
|
</refsect1>
|
||||||
|
<refsect1>
|
||||||
|
<title>AUTHOR</title>
|
||||||
|
|
||||||
|
<para>This manual page was written by &dhusername; &dhemail; for
|
||||||
|
the &debian; system (and may be used by others). Permission is
|
||||||
|
granted to copy, distribute and/or modify this document under
|
||||||
|
the terms of the &gnu; General Public License, Version 2 any
|
||||||
|
later version published by the Free Software Foundation.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
On Debian systems, the complete text of the GNU General Public
|
||||||
|
License can be found in /usr/share/common-licenses/GPL.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</refsect1>
|
||||||
|
</refentry>
|
||||||
|
|
||||||
|
<!-- Keep this comment at the end of the file
|
||||||
|
Local variables:
|
||||||
|
mode: sgml
|
||||||
|
sgml-omittag:t
|
||||||
|
sgml-shorttag:t
|
||||||
|
sgml-minimize-attributes:nil
|
||||||
|
sgml-always-quote-attributes:t
|
||||||
|
sgml-indent-step:2
|
||||||
|
sgml-indent-data:t
|
||||||
|
sgml-parent-document:nil
|
||||||
|
sgml-default-dtd-file:nil
|
||||||
|
sgml-exposed-tags:nil
|
||||||
|
sgml-local-catalogs:nil
|
||||||
|
sgml-local-ecat-files:nil
|
||||||
|
End:
|
||||||
|
-->
|
291
torch-agent-0.0.1/debian/manpage.xml.ex
Normal file
291
torch-agent-0.0.1/debian/manpage.xml.ex
Normal file
|
@ -0,0 +1,291 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||||
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
`xsltproc -''-nonet \
|
||||||
|
-''-param man.charmap.use.subset "0" \
|
||||||
|
-''-param make.year.ranges "1" \
|
||||||
|
-''-param make.single.year.ranges "1" \
|
||||||
|
/usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl \
|
||||||
|
manpage.xml'
|
||||||
|
|
||||||
|
A manual page <package>.<section> will be generated. You may view the
|
||||||
|
manual page with: nroff -man <package>.<section> | less'. A typical entry
|
||||||
|
in a Makefile or Makefile.am is:
|
||||||
|
|
||||||
|
DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/docbook-xsl/manpages/docbook.xsl
|
||||||
|
XP = xsltproc -''-nonet -''-param man.charmap.use.subset "0"
|
||||||
|
|
||||||
|
manpage.1: manpage.xml
|
||||||
|
$(XP) $(DB2MAN) $<
|
||||||
|
|
||||||
|
The xsltproc binary is found in the xsltproc package. The XSL files are in
|
||||||
|
docbook-xsl. A description of the parameters you can use can be found in the
|
||||||
|
docbook-xsl-doc-* packages. Please remember that if you create the nroff
|
||||||
|
version in one of the debian/rules file targets (such as build), you will need
|
||||||
|
to include xsltproc and docbook-xsl in your Build-Depends control field.
|
||||||
|
Alternatively use the xmlto command/package. That will also automatically
|
||||||
|
pull in xsltproc and docbook-xsl.
|
||||||
|
|
||||||
|
Notes for using docbook2x: docbook2x-man does not automatically create the
|
||||||
|
AUTHOR(S) and COPYRIGHT sections. In this case, please add them manually as
|
||||||
|
<refsect1> ... </refsect1>.
|
||||||
|
|
||||||
|
To disable the automatic creation of the AUTHOR(S) and COPYRIGHT sections
|
||||||
|
read /usr/share/doc/docbook-xsl/doc/manpages/authors.html. This file can be
|
||||||
|
found in the docbook-xsl-doc-html package.
|
||||||
|
|
||||||
|
Validation can be done using: `xmllint -''-noout -''-valid manpage.xml`
|
||||||
|
|
||||||
|
General documentation about man-pages and man-page-formatting:
|
||||||
|
man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Fill in your name for FIRSTNAME and SURNAME. -->
|
||||||
|
<!ENTITY dhfirstname "FIRSTNAME">
|
||||||
|
<!ENTITY dhsurname "SURNAME">
|
||||||
|
<!-- dhusername could also be set to "&dhfirstname; &dhsurname;". -->
|
||||||
|
<!ENTITY dhusername "Benjamin Dweck">
|
||||||
|
<!ENTITY dhemail "bjdweck@gmail.com">
|
||||||
|
<!-- SECTION should be 1-8, maybe w/ subsection other parameters are
|
||||||
|
allowed: see man(7), man(1) and
|
||||||
|
http://www.tldp.org/HOWTO/Man-Page/q2.html. -->
|
||||||
|
<!ENTITY dhsection "SECTION">
|
||||||
|
<!-- TITLE should be something like "User commands" or similar (see
|
||||||
|
http://www.tldp.org/HOWTO/Man-Page/q2.html). -->
|
||||||
|
<!ENTITY dhtitle "torch-agent User Manual">
|
||||||
|
<!ENTITY dhucpackage "Torch-agent">
|
||||||
|
<!ENTITY dhpackage "torch-agent">
|
||||||
|
]>
|
||||||
|
|
||||||
|
<refentry>
|
||||||
|
<refentryinfo>
|
||||||
|
<title>&dhtitle;</title>
|
||||||
|
<productname>&dhpackage;</productname>
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>&dhfirstname;</firstname>
|
||||||
|
<surname>&dhsurname;</surname>
|
||||||
|
<contrib>Wrote this manpage for the Debian system.</contrib>
|
||||||
|
<address>
|
||||||
|
<email>&dhemail;</email>
|
||||||
|
</address>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
<copyright>
|
||||||
|
<year>2007</year>
|
||||||
|
<holder>&dhusername;</holder>
|
||||||
|
</copyright>
|
||||||
|
<legalnotice>
|
||||||
|
<para>This manual page was written for the Debian system
|
||||||
|
(and may be used by others).</para>
|
||||||
|
<para>Permission is granted to copy, distribute and/or modify this
|
||||||
|
document under the terms of the GNU General Public License,
|
||||||
|
Version 2 or (at your option) any later version published by
|
||||||
|
the Free Software Foundation.</para>
|
||||||
|
<para>On Debian systems, the complete text of the GNU General Public
|
||||||
|
License can be found in
|
||||||
|
<filename>/usr/share/common-licenses/GPL</filename>.</para>
|
||||||
|
</legalnotice>
|
||||||
|
</refentryinfo>
|
||||||
|
<refmeta>
|
||||||
|
<refentrytitle>&dhucpackage;</refentrytitle>
|
||||||
|
<manvolnum>&dhsection;</manvolnum>
|
||||||
|
</refmeta>
|
||||||
|
<refnamediv>
|
||||||
|
<refname>&dhpackage;</refname>
|
||||||
|
<refpurpose>program to do something</refpurpose>
|
||||||
|
</refnamediv>
|
||||||
|
<refsynopsisdiv>
|
||||||
|
<cmdsynopsis>
|
||||||
|
<command>&dhpackage;</command>
|
||||||
|
<!-- These are several examples, how syntaxes could look -->
|
||||||
|
<arg choice="plain"><option>-e <replaceable>this</replaceable></option></arg>
|
||||||
|
<arg choice="opt"><option>--example=<parameter>that</parameter></option></arg>
|
||||||
|
<arg choice="opt">
|
||||||
|
<group choice="req">
|
||||||
|
<arg choice="plain"><option>-e</option></arg>
|
||||||
|
<arg choice="plain"><option>--example</option></arg>
|
||||||
|
</group>
|
||||||
|
<replaceable class="option">this</replaceable>
|
||||||
|
</arg>
|
||||||
|
<arg choice="opt">
|
||||||
|
<group choice="req">
|
||||||
|
<arg choice="plain"><option>-e</option></arg>
|
||||||
|
<arg choice="plain"><option>--example</option></arg>
|
||||||
|
</group>
|
||||||
|
<group choice="req">
|
||||||
|
<arg choice="plain"><replaceable>this</replaceable></arg>
|
||||||
|
<arg choice="plain"><replaceable>that</replaceable></arg>
|
||||||
|
</group>
|
||||||
|
</arg>
|
||||||
|
</cmdsynopsis>
|
||||||
|
<cmdsynopsis>
|
||||||
|
<command>&dhpackage;</command>
|
||||||
|
<!-- Normally the help and version options make the programs stop
|
||||||
|
right after outputting the requested information. -->
|
||||||
|
<group choice="opt">
|
||||||
|
<arg choice="plain">
|
||||||
|
<group choice="req">
|
||||||
|
<arg choice="plain"><option>-h</option></arg>
|
||||||
|
<arg choice="plain"><option>--help</option></arg>
|
||||||
|
</group>
|
||||||
|
</arg>
|
||||||
|
<arg choice="plain">
|
||||||
|
<group choice="req">
|
||||||
|
<arg choice="plain"><option>-v</option></arg>
|
||||||
|
<arg choice="plain"><option>--version</option></arg>
|
||||||
|
</group>
|
||||||
|
</arg>
|
||||||
|
</group>
|
||||||
|
</cmdsynopsis>
|
||||||
|
</refsynopsisdiv>
|
||||||
|
<refsect1 id="description">
|
||||||
|
<title>DESCRIPTION</title>
|
||||||
|
<para>This manual page documents briefly the
|
||||||
|
<command>&dhpackage;</command> and <command>bar</command>
|
||||||
|
commands.</para>
|
||||||
|
<para>This manual page was written for the Debian distribution
|
||||||
|
because the original program does not have a manual page.
|
||||||
|
Instead, it has documentation in the GNU <citerefentry>
|
||||||
|
<refentrytitle>info</refentrytitle>
|
||||||
|
<manvolnum>1</manvolnum>
|
||||||
|
</citerefentry> format; see below.</para>
|
||||||
|
<para><command>&dhpackage;</command> is a program that...</para>
|
||||||
|
</refsect1>
|
||||||
|
<refsect1 id="options">
|
||||||
|
<title>OPTIONS</title>
|
||||||
|
<para>The program follows the usual GNU command line syntax,
|
||||||
|
with long options starting with two dashes (`-'). A summary of
|
||||||
|
options is included below. For a complete description, see the
|
||||||
|
<citerefentry>
|
||||||
|
<refentrytitle>info</refentrytitle>
|
||||||
|
<manvolnum>1</manvolnum>
|
||||||
|
</citerefentry> files.</para>
|
||||||
|
<variablelist>
|
||||||
|
<!-- Use the variablelist.term.separator and the
|
||||||
|
variablelist.term.break.after parameters to
|
||||||
|
control the term elements. -->
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-e <replaceable>this</replaceable></option></term>
|
||||||
|
<term><option>--example=<replaceable>that</replaceable></option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>Does this and that.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-h</option></term>
|
||||||
|
<term><option>--help</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>Show summary of options.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-v</option></term>
|
||||||
|
<term><option>--version</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>Show version of program.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</refsect1>
|
||||||
|
<refsect1 id="files">
|
||||||
|
<title>FILES</title>
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><filename>/etc/foo.conf</filename></term>
|
||||||
|
<listitem>
|
||||||
|
<para>The system-wide configuration file to control the
|
||||||
|
behaviour of <application>&dhpackage;</application>. See
|
||||||
|
<citerefentry>
|
||||||
|
<refentrytitle>foo.conf</refentrytitle>
|
||||||
|
<manvolnum>5</manvolnum>
|
||||||
|
</citerefentry> for further details.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><filename>${HOME}/.foo.conf</filename></term>
|
||||||
|
<listitem>
|
||||||
|
<para>The per-user configuration file to control the
|
||||||
|
behaviour of <application>&dhpackage;</application>. See
|
||||||
|
<citerefentry>
|
||||||
|
<refentrytitle>foo.conf</refentrytitle>
|
||||||
|
<manvolnum>5</manvolnum>
|
||||||
|
</citerefentry> for further details.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</refsect1>
|
||||||
|
<refsect1 id="environment">
|
||||||
|
<title>ENVIRONMENT</title>
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><envar>FOO_CONF</envar></term>
|
||||||
|
<listitem>
|
||||||
|
<para>If used, the defined file is used as configuration
|
||||||
|
file (see also <xref linkend="files"/>).</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</refsect1>
|
||||||
|
<refsect1 id="diagnostics">
|
||||||
|
<title>DIAGNOSTICS</title>
|
||||||
|
<para>The following diagnostics may be issued
|
||||||
|
on <filename class="devicefile">stderr</filename>:</para>
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><errortext>Bad configuration file. Exiting.</errortext></term>
|
||||||
|
<listitem>
|
||||||
|
<para>The configuration file seems to contain a broken configuration
|
||||||
|
line. Use the <option>--verbose</option> option, to get more info.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
<para><command>&dhpackage;</command> provides some return codes, that can
|
||||||
|
be used in scripts:</para>
|
||||||
|
<segmentedlist>
|
||||||
|
<segtitle>Code</segtitle>
|
||||||
|
<segtitle>Diagnostic</segtitle>
|
||||||
|
<seglistitem>
|
||||||
|
<seg><errorcode>0</errorcode></seg>
|
||||||
|
<seg>Program exited successfully.</seg>
|
||||||
|
</seglistitem>
|
||||||
|
<seglistitem>
|
||||||
|
<seg><errorcode>1</errorcode></seg>
|
||||||
|
<seg>The configuration file seems to be broken.</seg>
|
||||||
|
</seglistitem>
|
||||||
|
</segmentedlist>
|
||||||
|
</refsect1>
|
||||||
|
<refsect1 id="bugs">
|
||||||
|
<!-- Or use this section to tell about upstream BTS. -->
|
||||||
|
<title>BUGS</title>
|
||||||
|
<para>The program is currently limited to only work
|
||||||
|
with the <package>foobar</package> library.</para>
|
||||||
|
<para>The upstreams <acronym>BTS</acronym> can be found
|
||||||
|
at <ulink url="http://bugzilla.foo.tld"/>.</para>
|
||||||
|
</refsect1>
|
||||||
|
<refsect1 id="see_also">
|
||||||
|
<title>SEE ALSO</title>
|
||||||
|
<!-- In alpabetical order. -->
|
||||||
|
<para><citerefentry>
|
||||||
|
<refentrytitle>bar</refentrytitle>
|
||||||
|
<manvolnum>1</manvolnum>
|
||||||
|
</citerefentry>, <citerefentry>
|
||||||
|
<refentrytitle>baz</refentrytitle>
|
||||||
|
<manvolnum>1</manvolnum>
|
||||||
|
</citerefentry>, <citerefentry>
|
||||||
|
<refentrytitle>foo.conf</refentrytitle>
|
||||||
|
<manvolnum>5</manvolnum>
|
||||||
|
</citerefentry></para>
|
||||||
|
<para>The programs are documented fully by <citetitle>The Rise and
|
||||||
|
Fall of a Fooish Bar</citetitle> available via the <citerefentry>
|
||||||
|
<refentrytitle>info</refentrytitle>
|
||||||
|
<manvolnum>1</manvolnum>
|
||||||
|
</citerefentry> system.</para>
|
||||||
|
</refsect1>
|
||||||
|
</refentry>
|
||||||
|
|
77
torch-agent-0.0.1/debian/postinst
Normal file
77
torch-agent-0.0.1/debian/postinst
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# postinst script for torch-agent
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# summary of how this script can be called:
|
||||||
|
# * <postinst> `configure' <most-recently-configured-version>
|
||||||
|
# * <old-postinst> `abort-upgrade' <new version>
|
||||||
|
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||||
|
# <new-version>
|
||||||
|
# * <postinst> `abort-remove'
|
||||||
|
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||||
|
# <failed-install-package> <version> `removing'
|
||||||
|
# <conflicting-package> <version>
|
||||||
|
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||||
|
# the debian-policy package
|
||||||
|
|
||||||
|
USER="torch"
|
||||||
|
GROUP="debian-tor"
|
||||||
|
|
||||||
|
TORRC="/etc/tor/torrc"
|
||||||
|
|
||||||
|
configure_tor_controller() {
|
||||||
|
|
||||||
|
TORRC_CHANGED=0
|
||||||
|
|
||||||
|
if ! grep -q "^ControlPort [0-9]\+" $TORRC; then
|
||||||
|
sed -i '/^#ControlPort 9051/s/^#//' $TORRC
|
||||||
|
TORRC_CHANGED=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! grep -q "^CookieAuthentication 1" $TORRC; then
|
||||||
|
sed -i '/^#CookieAuthentication 1/s/^#//' $TORRC
|
||||||
|
TORRC_CHANGED=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! grep -q "^CookieAuthFileGroupReadable 1" $TORRC; then
|
||||||
|
echo "CookieAuthFileGroupReadable 1" >> $TORRC
|
||||||
|
TORRC_CHANGED=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $TORRC_CHANGED -eq 1 ]; then
|
||||||
|
systemctl reload tor
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
configure)
|
||||||
|
|
||||||
|
if ! getent passwd $USER >/dev/null ; then
|
||||||
|
useradd -r -g $GROUP $USER
|
||||||
|
fi
|
||||||
|
|
||||||
|
chown $USER /etc/torch
|
||||||
|
chown $USER /etc/torch/torch.conf
|
||||||
|
chown $USER /usr/share/torch-agent/torch-agent.py
|
||||||
|
|
||||||
|
configure_tor_controller
|
||||||
|
;;
|
||||||
|
|
||||||
|
abort-upgrade|abort-remove|abort-deconfigure)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "postinst called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# dh_installdeb will replace this with shell code automatically
|
||||||
|
# generated by other debhelper scripts.
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
49
torch-agent-0.0.1/debian/postrm
Normal file
49
torch-agent-0.0.1/debian/postrm
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# postrm script for torch-agent
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# summary of how this script can be called:
|
||||||
|
# * <postrm> `remove'
|
||||||
|
# * <postrm> `purge'
|
||||||
|
# * <old-postrm> `upgrade' <new-version>
|
||||||
|
# * <new-postrm> `failed-upgrade' <old-version>
|
||||||
|
# * <new-postrm> `abort-install'
|
||||||
|
# * <new-postrm> `abort-install' <old-version>
|
||||||
|
# * <new-postrm> `abort-upgrade' <old-version>
|
||||||
|
# * <disappearer's-postrm> `disappear' <overwriter>
|
||||||
|
# <overwriter-version>
|
||||||
|
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||||
|
# the debian-policy package
|
||||||
|
|
||||||
|
USER="torch"
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
purge|abort-install)
|
||||||
|
rm -rf /etc/torch
|
||||||
|
rm -f /usr/share/torch-agent/torch-agent.py
|
||||||
|
if [ -x "$(command -v deluser)" ]; then
|
||||||
|
deluser --quiet --system $USER > /dev/null || true
|
||||||
|
else
|
||||||
|
echo >&2 "not removing $USER system account because deluser command was not found"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
remove)
|
||||||
|
;;
|
||||||
|
upgrade|failed-upgrade|abort-upgrade|disappear)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "postrm called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# dh_installdeb will replace this with shell code automatically
|
||||||
|
# generated by other debhelper scripts.
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
39
torch-agent-0.0.1/debian/preinst
Executable file
39
torch-agent-0.0.1/debian/preinst
Executable file
|
@ -0,0 +1,39 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# preinst script for torch-agent
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# summary of how this script can be called:
|
||||||
|
# * <new-preinst> `install'
|
||||||
|
# * <new-preinst> `install' <old-version>
|
||||||
|
# * <new-preinst> `upgrade' <old-version>
|
||||||
|
# * <old-preinst> `abort-upgrade' <new-version>
|
||||||
|
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||||
|
# the debian-policy package
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
install|upgrade)
|
||||||
|
|
||||||
|
sudo -H pip3 install stem paho-mqtt PySocks
|
||||||
|
|
||||||
|
mkdir -p /etc/torch
|
||||||
|
mkdir -p /usr/share/torch-agent
|
||||||
|
;;
|
||||||
|
|
||||||
|
abort-upgrade)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "preinst called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# dh_installdeb will replace this with shell code automatically
|
||||||
|
# generated by other debhelper scripts.
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
38
torch-agent-0.0.1/debian/prerm.ex
Normal file
38
torch-agent-0.0.1/debian/prerm.ex
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# prerm script for torch-agent
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# summary of how this script can be called:
|
||||||
|
# * <prerm> `remove'
|
||||||
|
# * <old-prerm> `upgrade' <new-version>
|
||||||
|
# * <new-prerm> `failed-upgrade' <old-version>
|
||||||
|
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
|
||||||
|
# * <deconfigured's-prerm> `deconfigure' `in-favour'
|
||||||
|
# <package-being-installed> <version> `removing'
|
||||||
|
# <conflicting-package> <version>
|
||||||
|
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||||
|
# the debian-policy package
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
remove|upgrade|deconfigure)
|
||||||
|
;;
|
||||||
|
|
||||||
|
failed-upgrade)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "prerm called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# dh_installdeb will replace this with shell code automatically
|
||||||
|
# generated by other debhelper scripts.
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
32
torch-agent-0.0.1/debian/rules
Executable file
32
torch-agent-0.0.1/debian/rules
Executable file
|
@ -0,0 +1,32 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
# See debhelper(7) (uncomment to enable)
|
||||||
|
# output every command that modifies files on the build system.
|
||||||
|
#export DH_VERBOSE = 1
|
||||||
|
|
||||||
|
|
||||||
|
# see FEATURE AREAS in dpkg-buildflags(1)
|
||||||
|
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||||
|
|
||||||
|
# see ENVIRONMENT in dpkg-buildflags(1)
|
||||||
|
# package maintainers to append CFLAGS
|
||||||
|
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
|
||||||
|
# package maintainers to append LDFLAGS
|
||||||
|
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||||
|
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@
|
||||||
|
|
||||||
|
override_dh_installsystemd:
|
||||||
|
dh_installsystemd --no-start --no-enable
|
||||||
|
|
||||||
|
override_dh_installinit:
|
||||||
|
# --no-enable only on init-system-helpers (>= 1.51)
|
||||||
|
#dh_installinit --no-start --no-enable
|
||||||
|
dh_installinit --no-start --no-enable
|
||||||
|
|
||||||
|
# dh_make generated override targets
|
||||||
|
# This is example for Cmake (See https://bugs.debian.org/641051 )
|
||||||
|
#override_dh_auto_configure:
|
||||||
|
# dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
|
||||||
|
|
11
torch-agent-0.0.1/debian/salsa-ci.yml.ex
Normal file
11
torch-agent-0.0.1/debian/salsa-ci.yml.ex
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# For more information on what jobs are run see:
|
||||||
|
# https://salsa.debian.org/salsa-ci-team/pipeline
|
||||||
|
#
|
||||||
|
# To enable the jobs, go to your repository (at salsa.debian.org)
|
||||||
|
# and click over Settings > CI/CD > Expand (in General pipelines).
|
||||||
|
# In "Custom CI config path" write debian/salsa-ci.yml and click
|
||||||
|
# in "Save Changes". The CI tests will run after the next commit.
|
||||||
|
---
|
||||||
|
include:
|
||||||
|
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
|
||||||
|
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
|
1
torch-agent-0.0.1/debian/source/format
Normal file
1
torch-agent-0.0.1/debian/source/format
Normal file
|
@ -0,0 +1 @@
|
||||||
|
3.0 (quilt)
|
2
torch-agent-0.0.1/debian/source/include-binaries
Executable file
2
torch-agent-0.0.1/debian/source/include-binaries
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
debian/src/usr/share/torch-agent/torch-agent.py
|
||||||
|
debian/src/etc/torch/torch.conf
|
19
torch-agent-0.0.1/debian/src/etc/torch/torch.conf
Executable file
19
torch-agent-0.0.1/debian/src/etc/torch/torch.conf
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
[tor]
|
||||||
|
ProxyPort = 9050
|
||||||
|
ControllerPort = 9051
|
||||||
|
|
||||||
|
[ssh]
|
||||||
|
Port = 22
|
||||||
|
|
||||||
|
[mqtt]
|
||||||
|
BrokerHost = mqtt.example.com # OR example1i3uyrbfoi3fi.onion
|
||||||
|
BrokerPort = 1883
|
||||||
|
ClientID = my-client
|
||||||
|
Topic = example/topic
|
||||||
|
|
||||||
|
### Options for Using TLS
|
||||||
|
|
||||||
|
#RequireCertificate = true
|
||||||
|
#CaFile = ca.crt
|
||||||
|
#CertFile = client.crt
|
||||||
|
#KeyFile = client.key
|
98
torch-agent-0.0.1/debian/src/usr/share/torch-agent/torch-agent.py
Executable file
98
torch-agent-0.0.1/debian/src/usr/share/torch-agent/torch-agent.py
Executable file
|
@ -0,0 +1,98 @@
|
||||||
|
from stem.control import Controller
|
||||||
|
import stem.connection
|
||||||
|
import paho.mqtt.client as mqtt
|
||||||
|
import ssl
|
||||||
|
import socks
|
||||||
|
import socket
|
||||||
|
import json
|
||||||
|
import configparser
|
||||||
|
import argparse
|
||||||
|
from datetime import datetime
|
||||||
|
from os import environ
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description='Broadcast SSH hidden service hostname via MQTT')
|
||||||
|
|
||||||
|
parser.add_argument('--config-dir', nargs='?', dest='configPath', default='/etc/torch',
|
||||||
|
help='configuration directory (default: /etc/torch)')
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
configPath = args.configPath
|
||||||
|
|
||||||
|
if "TORCH_CONFIG_DIR" in environ:
|
||||||
|
configPath = environ.get("TORCH_CONFIG_DIR")
|
||||||
|
|
||||||
|
if not configPath.endswith("/"):
|
||||||
|
configPath = configPath + "/"
|
||||||
|
|
||||||
|
print("Using torch configuration path: " + configPath)
|
||||||
|
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read(configPath + "torch.conf")
|
||||||
|
|
||||||
|
torProxyPort = config['tor'].getint('ProxyPort', fallback = 9050)
|
||||||
|
torControllerPort = config['tor'].getint('ControllerPort', fallback = 9051)
|
||||||
|
|
||||||
|
sshPort = config['ssh'].getint('Port', fallback = 22)
|
||||||
|
|
||||||
|
mqttConfig = config['mqtt']
|
||||||
|
mqttBrokerHost = mqttConfig.get('BrokerHost', fallback = "localhost")
|
||||||
|
mqttBrokerPort = mqttConfig.getint('BrokerPort', fallback = 1883)
|
||||||
|
clientID = mqttConfig.get('ClientID', fallback = socket.gethostname())
|
||||||
|
mqttTopic = mqttConfig.get('Topic', fallback = "torch/%s/onion_url" % (clientID))
|
||||||
|
|
||||||
|
mqttRequireCertificate = mqttConfig.getboolean(
|
||||||
|
'RequireCertificate',
|
||||||
|
fallback = False)
|
||||||
|
|
||||||
|
mqttCaFile = configPath + mqttConfig.get('CaFile')
|
||||||
|
mqttCertFile = configPath + mqttConfig.get('CertFile')
|
||||||
|
mqttKeyFile = configPath + mqttConfig.get('KeyFile')
|
||||||
|
|
||||||
|
with Controller.from_port(port = torControllerPort) as controller:
|
||||||
|
|
||||||
|
protocolInfo = stem.connection.get_protocolinfo(controller)
|
||||||
|
|
||||||
|
stem.connection.authenticate_safecookie(
|
||||||
|
controller,
|
||||||
|
protocolInfo.cookie_path)
|
||||||
|
|
||||||
|
print("Connected to Tor on port %s" % (torControllerPort))
|
||||||
|
|
||||||
|
service = controller.create_ephemeral_hidden_service(
|
||||||
|
sshPort,
|
||||||
|
detached = True)
|
||||||
|
|
||||||
|
onionAddress = "%s.onion" % (service.service_id)
|
||||||
|
|
||||||
|
print("Created Tor Hidden Service for local port %s at %s" % (sshPort, onionAddress))
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
'clientId': clientID,
|
||||||
|
'timestamp': datetime.now().strftime("%d-%b-%Y (%H:%M:%S.%f)"),
|
||||||
|
'onionAddress': onionAddress,
|
||||||
|
'sshPort': sshPort
|
||||||
|
}
|
||||||
|
|
||||||
|
client = mqtt.Client()
|
||||||
|
protocol = "mqtt"
|
||||||
|
|
||||||
|
if mqttRequireCertificate:
|
||||||
|
client.tls_set(
|
||||||
|
ca_certs = mqttCaFile,
|
||||||
|
certfile = mqttCertFile,
|
||||||
|
keyfile = mqttKeyFile,
|
||||||
|
cert_reqs=ssl.CERT_REQUIRED)
|
||||||
|
protocol = "mqtts"
|
||||||
|
|
||||||
|
if mqttBrokerHost.endswith(".onion"):
|
||||||
|
client.proxy_set(proxy_type=socks.SOCKS5, proxy_addr="localhost", proxy_port=torProxyPort)
|
||||||
|
client.tls_insecure_set(True)
|
||||||
|
|
||||||
|
client.connect(mqttBrokerHost, mqttBrokerPort, 60)
|
||||||
|
client.publish(mqttTopic, json.dumps(payload))
|
||||||
|
print("Connected to MQTT Broker at %s://%s:%s/%s" % (protocol, mqttBrokerHost, mqttBrokerPort, mqttTopic))
|
||||||
|
print("Published payload: " + json.dumps(payload))
|
||||||
|
|
||||||
|
client.disconnect()
|
||||||
|
print("Disconnected from MQTT Broker")
|
2
torch-agent-0.0.1/debian/torch-agent-docs.docs
Normal file
2
torch-agent-0.0.1/debian/torch-agent-docs.docs
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
README.Debian
|
||||||
|
README.source
|
4
torch-agent-0.0.1/debian/torch-agent.cron.d.ex
Normal file
4
torch-agent-0.0.1/debian/torch-agent.cron.d.ex
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
#
|
||||||
|
# Regular cron jobs for the torch-agent package
|
||||||
|
#
|
||||||
|
0 4 * * * root [ -x /usr/bin/torch-agent_maintenance ] && /usr/bin/torch-agent_maintenance
|
1
torch-agent-0.0.1/debian/torch-agent.debhelper.log
Normal file
1
torch-agent-0.0.1/debian/torch-agent.debhelper.log
Normal file
|
@ -0,0 +1 @@
|
||||||
|
dh_installsystemd
|
20
torch-agent-0.0.1/debian/torch-agent.doc-base.EX
Normal file
20
torch-agent-0.0.1/debian/torch-agent.doc-base.EX
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
Document: torch-agent
|
||||||
|
Title: Debian torch-agent Manual
|
||||||
|
Author: <insert document author here>
|
||||||
|
Abstract: This manual describes what torch-agent is
|
||||||
|
and how it can be used to
|
||||||
|
manage online manuals on Debian systems.
|
||||||
|
Section: unknown
|
||||||
|
|
||||||
|
Format: debiandoc-sgml
|
||||||
|
Files: /usr/share/doc/torch-agent/torch-agent.sgml.gz
|
||||||
|
|
||||||
|
Format: postscript
|
||||||
|
Files: /usr/share/doc/torch-agent/torch-agent.ps.gz
|
||||||
|
|
||||||
|
Format: text
|
||||||
|
Files: /usr/share/doc/torch-agent/torch-agent.text.gz
|
||||||
|
|
||||||
|
Format: HTML
|
||||||
|
Index: /usr/share/doc/torch-agent/html/index.html
|
||||||
|
Files: /usr/share/doc/torch-agent/html/*.html
|
2
torch-agent-0.0.1/debian/torch-agent.install
Normal file
2
torch-agent-0.0.1/debian/torch-agent.install
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
debian/src/usr/share/torch-agent /usr/share/
|
||||||
|
debian/src/etc/torch /etc/
|
19
torch-agent-0.0.1/debian/torch-agent.postrm.debhelper
Normal file
19
torch-agent-0.0.1/debian/torch-agent.postrm.debhelper
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# Automatically added by dh_installsystemd/12.10ubuntu1
|
||||||
|
if [ -d /run/systemd/system ]; then
|
||||||
|
systemctl --system daemon-reload >/dev/null || true
|
||||||
|
fi
|
||||||
|
# End automatically added section
|
||||||
|
# Automatically added by dh_installsystemd/12.10ubuntu1
|
||||||
|
if [ "$1" = "remove" ]; then
|
||||||
|
if [ -x "/usr/bin/deb-systemd-helper" ]; then
|
||||||
|
deb-systemd-helper mask 'torch-agent.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" = "purge" ]; then
|
||||||
|
if [ -x "/usr/bin/deb-systemd-helper" ]; then
|
||||||
|
deb-systemd-helper purge 'torch-agent.service' >/dev/null || true
|
||||||
|
deb-systemd-helper unmask 'torch-agent.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# End automatically added section
|
13
torch-agent-0.0.1/debian/torch-agent.service
Normal file
13
torch-agent-0.0.1/debian/torch-agent.service
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
[Unit]
|
||||||
|
Description=TORch Agent: MQTT Publisher for Tor Hidden SSH Service URL
|
||||||
|
After=tor.service ssh.service
|
||||||
|
Requires=tor.service ssh.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=PYTHONUNBUFFERED=1
|
||||||
|
ExecStart=/usr/bin/python3 /usr/share/torch-agent/torch-agent.py
|
||||||
|
User=torch
|
||||||
|
Group=debian-tor
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target ssh.service tor.service
|
2
torch-agent-0.0.1/debian/torch-agent.substvars
Normal file
2
torch-agent-0.0.1/debian/torch-agent.substvars
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
misc:Depends=
|
||||||
|
misc:Pre-Depends=
|
1
torch-agent-0.0.1/debian/torch-agent/DEBIAN/conffiles
Normal file
1
torch-agent-0.0.1/debian/torch-agent/DEBIAN/conffiles
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/etc/torch/torch.conf
|
12
torch-agent-0.0.1/debian/torch-agent/DEBIAN/control
Normal file
12
torch-agent-0.0.1/debian/torch-agent/DEBIAN/control
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
Package: torch-agent
|
||||||
|
Version: 0.0.1-1
|
||||||
|
Architecture: all
|
||||||
|
Maintainer: Benjamin Dweck <bjdweck@gmail.com>
|
||||||
|
Installed-Size: 29
|
||||||
|
Depends: ssh, tor, python3-pip
|
||||||
|
Section: net
|
||||||
|
Priority: optional
|
||||||
|
Homepage: https://rudefox.io
|
||||||
|
Description: TORch is a solution for creating an SSH-via-Tor
|
||||||
|
backdoor on a remote device as a means of fallback remote
|
||||||
|
management and initial headless device configuration.
|
5
torch-agent-0.0.1/debian/torch-agent/DEBIAN/md5sums
Normal file
5
torch-agent-0.0.1/debian/torch-agent/DEBIAN/md5sums
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
1e2c6dfcdaab533fa279eef51cdaa500 lib/systemd/system/torch-agent.service
|
||||||
|
de899b3b2dbb67f357d153425a8421cd usr/share/doc/torch-agent/README.Debian
|
||||||
|
507827efdf54541d719f3a27e1a1db5f usr/share/doc/torch-agent/changelog.Debian.gz
|
||||||
|
7d50b1cef77999609862e52053d3ed74 usr/share/doc/torch-agent/copyright
|
||||||
|
94f2830be2c7420e0f1c4556fc08f1ec usr/share/torch-agent/torch-agent.py
|
104
torch-agent-0.0.1/debian/torch-agent/DEBIAN/postinst
Executable file
104
torch-agent-0.0.1/debian/torch-agent/DEBIAN/postinst
Executable file
|
@ -0,0 +1,104 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# postinst script for torch-agent
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# summary of how this script can be called:
|
||||||
|
# * <postinst> `configure' <most-recently-configured-version>
|
||||||
|
# * <old-postinst> `abort-upgrade' <new version>
|
||||||
|
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||||
|
# <new-version>
|
||||||
|
# * <postinst> `abort-remove'
|
||||||
|
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||||
|
# <failed-install-package> <version> `removing'
|
||||||
|
# <conflicting-package> <version>
|
||||||
|
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||||
|
# the debian-policy package
|
||||||
|
|
||||||
|
USER="torch"
|
||||||
|
GROUP="debian-tor"
|
||||||
|
|
||||||
|
TORRC="/etc/tor/torrc"
|
||||||
|
|
||||||
|
configure_tor_controller() {
|
||||||
|
|
||||||
|
TORRC_CHANGED=0
|
||||||
|
|
||||||
|
if ! grep -q "^ControlPort [0-9]\+" $TORRC; then
|
||||||
|
sed -i '/^#ControlPort 9051/s/^#//' $TORRC
|
||||||
|
TORRC_CHANGED=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! grep -q "^CookieAuthentication 1" $TORRC; then
|
||||||
|
sed -i '/^#CookieAuthentication 1/s/^#//' $TORRC
|
||||||
|
TORRC_CHANGED=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! grep -q "^CookieAuthFileGroupReadable 1" $TORRC; then
|
||||||
|
echo "CookieAuthFileGroupReadable 1" >> $TORRC
|
||||||
|
TORRC_CHANGED=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $TORRC_CHANGED -eq 1 ]; then
|
||||||
|
systemctl reload tor
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
configure)
|
||||||
|
|
||||||
|
if ! getent passwd $USER >/dev/null ; then
|
||||||
|
useradd -r -g $GROUP $USER
|
||||||
|
fi
|
||||||
|
|
||||||
|
chown $USER /etc/torch
|
||||||
|
chown $USER /etc/torch/torch.conf
|
||||||
|
chown $USER /usr/share/torch-agent/torch-agent.py
|
||||||
|
|
||||||
|
configure_tor_controller
|
||||||
|
;;
|
||||||
|
|
||||||
|
abort-upgrade|abort-remove|abort-deconfigure)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "postinst called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# dh_installdeb will replace this with shell code automatically
|
||||||
|
# generated by other debhelper scripts.
|
||||||
|
|
||||||
|
# Automatically added by dh_installsystemd/12.10ubuntu1
|
||||||
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
||||||
|
if deb-systemd-helper debian-installed 'torch-agent.service'; then
|
||||||
|
# This will only remove masks created by d-s-h on package removal.
|
||||||
|
deb-systemd-helper unmask 'torch-agent.service' >/dev/null || true
|
||||||
|
|
||||||
|
if deb-systemd-helper --quiet was-enabled 'torch-agent.service'; then
|
||||||
|
# Create new symlinks, if any.
|
||||||
|
deb-systemd-helper enable 'torch-agent.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update the statefile to add new symlinks (if any), which need to be cleaned
|
||||||
|
# up on purge. Also remove old symlinks.
|
||||||
|
deb-systemd-helper update-state 'torch-agent.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
# End automatically added section
|
||||||
|
# Automatically added by dh_installsystemd/12.10ubuntu1
|
||||||
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
||||||
|
if [ -d /run/systemd/system ]; then
|
||||||
|
systemctl --system daemon-reload >/dev/null || true
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
deb-systemd-invoke try-restart 'torch-agent.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# End automatically added section
|
||||||
|
|
||||||
|
|
||||||
|
exit 0
|
68
torch-agent-0.0.1/debian/torch-agent/DEBIAN/postrm
Executable file
68
torch-agent-0.0.1/debian/torch-agent/DEBIAN/postrm
Executable file
|
@ -0,0 +1,68 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# postrm script for torch-agent
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# summary of how this script can be called:
|
||||||
|
# * <postrm> `remove'
|
||||||
|
# * <postrm> `purge'
|
||||||
|
# * <old-postrm> `upgrade' <new-version>
|
||||||
|
# * <new-postrm> `failed-upgrade' <old-version>
|
||||||
|
# * <new-postrm> `abort-install'
|
||||||
|
# * <new-postrm> `abort-install' <old-version>
|
||||||
|
# * <new-postrm> `abort-upgrade' <old-version>
|
||||||
|
# * <disappearer's-postrm> `disappear' <overwriter>
|
||||||
|
# <overwriter-version>
|
||||||
|
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||||
|
# the debian-policy package
|
||||||
|
|
||||||
|
USER="torch"
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
purge|abort-install)
|
||||||
|
rm -rf /etc/torch
|
||||||
|
rm -f /usr/share/torch-agent/torch-agent.py
|
||||||
|
if [ -x "$(command -v deluser)" ]; then
|
||||||
|
deluser --quiet --system $USER > /dev/null || true
|
||||||
|
else
|
||||||
|
echo >&2 "not removing $USER system account because deluser command was not found"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
remove)
|
||||||
|
;;
|
||||||
|
upgrade|failed-upgrade|abort-upgrade|disappear)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "postrm called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# dh_installdeb will replace this with shell code automatically
|
||||||
|
# generated by other debhelper scripts.
|
||||||
|
|
||||||
|
# Automatically added by dh_installsystemd/12.10ubuntu1
|
||||||
|
if [ -d /run/systemd/system ]; then
|
||||||
|
systemctl --system daemon-reload >/dev/null || true
|
||||||
|
fi
|
||||||
|
# End automatically added section
|
||||||
|
# Automatically added by dh_installsystemd/12.10ubuntu1
|
||||||
|
if [ "$1" = "remove" ]; then
|
||||||
|
if [ -x "/usr/bin/deb-systemd-helper" ]; then
|
||||||
|
deb-systemd-helper mask 'torch-agent.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" = "purge" ]; then
|
||||||
|
if [ -x "/usr/bin/deb-systemd-helper" ]; then
|
||||||
|
deb-systemd-helper purge 'torch-agent.service' >/dev/null || true
|
||||||
|
deb-systemd-helper unmask 'torch-agent.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# End automatically added section
|
||||||
|
|
||||||
|
|
||||||
|
exit 0
|
39
torch-agent-0.0.1/debian/torch-agent/DEBIAN/preinst
Executable file
39
torch-agent-0.0.1/debian/torch-agent/DEBIAN/preinst
Executable file
|
@ -0,0 +1,39 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# preinst script for torch-agent
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# summary of how this script can be called:
|
||||||
|
# * <new-preinst> `install'
|
||||||
|
# * <new-preinst> `install' <old-version>
|
||||||
|
# * <new-preinst> `upgrade' <old-version>
|
||||||
|
# * <old-preinst> `abort-upgrade' <new-version>
|
||||||
|
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||||
|
# the debian-policy package
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
install|upgrade)
|
||||||
|
|
||||||
|
sudo -H pip3 install stem paho-mqtt PySocks
|
||||||
|
|
||||||
|
mkdir -p /etc/torch
|
||||||
|
mkdir -p /usr/share/torch-agent
|
||||||
|
;;
|
||||||
|
|
||||||
|
abort-upgrade)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "preinst called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# dh_installdeb will replace this with shell code automatically
|
||||||
|
# generated by other debhelper scripts.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
exit 0
|
7
torch-agent-0.0.1/debian/torch-agent/DEBIAN/prerm
Executable file
7
torch-agent-0.0.1/debian/torch-agent/DEBIAN/prerm
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
# Automatically added by dh_installsystemd/12.10ubuntu1
|
||||||
|
if [ -d /run/systemd/system ] && [ "$1" = remove ]; then
|
||||||
|
deb-systemd-invoke stop 'torch-agent.service' >/dev/null || true
|
||||||
|
fi
|
||||||
|
# End automatically added section
|
19
torch-agent-0.0.1/debian/torch-agent/etc/torch/torch.conf
Executable file
19
torch-agent-0.0.1/debian/torch-agent/etc/torch/torch.conf
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
[tor]
|
||||||
|
ProxyPort = 9050
|
||||||
|
ControllerPort = 9051
|
||||||
|
|
||||||
|
[ssh]
|
||||||
|
Port = 22
|
||||||
|
|
||||||
|
[mqtt]
|
||||||
|
BrokerHost = mqtt.example.com # OR example1i3uyrbfoi3fi.onion
|
||||||
|
BrokerPort = 1883
|
||||||
|
ClientID = my-client
|
||||||
|
Topic = example/topic
|
||||||
|
|
||||||
|
### Options for Using TLS
|
||||||
|
|
||||||
|
#RequireCertificate = true
|
||||||
|
#CaFile = ca.crt
|
||||||
|
#CertFile = client.crt
|
||||||
|
#KeyFile = client.key
|
|
@ -0,0 +1,13 @@
|
||||||
|
[Unit]
|
||||||
|
Description=TORch Agent: MQTT Publisher for Tor Hidden SSH Service URL
|
||||||
|
After=tor.service ssh.service
|
||||||
|
Requires=tor.service ssh.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=PYTHONUNBUFFERED=1
|
||||||
|
ExecStart=/usr/bin/python3 /usr/share/torch-agent/torch-agent.py
|
||||||
|
User=torch
|
||||||
|
Group=debian-tor
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target ssh.service tor.service
|
|
@ -0,0 +1,6 @@
|
||||||
|
torch-agent for Debian
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
<possible notes regarding this package - if none, delete this file>
|
||||||
|
|
||||||
|
-- Benjamin Dweck <bjdweck@gmail.com> Tue, 06 Oct 2020 15:53:02 +0200
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Upstream-Name: torch-agent
|
||||||
|
Upstream-Contact: bjdweck@gmail.com
|
||||||
|
Source: https://rudefox.io
|
||||||
|
|
||||||
|
Files: debian/*
|
||||||
|
Copyright: 2020 Benjamin Dweck <bjdweck@gmail.com>
|
||||||
|
License: GPL-2+
|
||||||
|
This package is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
.
|
||||||
|
This package is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>
|
||||||
|
.
|
||||||
|
On Debian systems, the complete text of the GNU General
|
||||||
|
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
|
98
torch-agent-0.0.1/debian/torch-agent/usr/share/torch-agent/torch-agent.py
Executable file
98
torch-agent-0.0.1/debian/torch-agent/usr/share/torch-agent/torch-agent.py
Executable file
|
@ -0,0 +1,98 @@
|
||||||
|
from stem.control import Controller
|
||||||
|
import stem.connection
|
||||||
|
import paho.mqtt.client as mqtt
|
||||||
|
import ssl
|
||||||
|
import socks
|
||||||
|
import socket
|
||||||
|
import json
|
||||||
|
import configparser
|
||||||
|
import argparse
|
||||||
|
from datetime import datetime
|
||||||
|
from os import environ
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description='Broadcast SSH hidden service hostname via MQTT')
|
||||||
|
|
||||||
|
parser.add_argument('--config-dir', nargs='?', dest='configPath', default='/etc/torch',
|
||||||
|
help='configuration directory (default: /etc/torch)')
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
configPath = args.configPath
|
||||||
|
|
||||||
|
if "TORCH_CONFIG_DIR" in environ:
|
||||||
|
configPath = environ.get("TORCH_CONFIG_DIR")
|
||||||
|
|
||||||
|
if not configPath.endswith("/"):
|
||||||
|
configPath = configPath + "/"
|
||||||
|
|
||||||
|
print("Using torch configuration path: " + configPath)
|
||||||
|
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read(configPath + "torch.conf")
|
||||||
|
|
||||||
|
torProxyPort = config['tor'].getint('ProxyPort', fallback = 9050)
|
||||||
|
torControllerPort = config['tor'].getint('ControllerPort', fallback = 9051)
|
||||||
|
|
||||||
|
sshPort = config['ssh'].getint('Port', fallback = 22)
|
||||||
|
|
||||||
|
mqttConfig = config['mqtt']
|
||||||
|
mqttBrokerHost = mqttConfig.get('BrokerHost', fallback = "localhost")
|
||||||
|
mqttBrokerPort = mqttConfig.getint('BrokerPort', fallback = 1883)
|
||||||
|
clientID = mqttConfig.get('ClientID', fallback = socket.gethostname())
|
||||||
|
mqttTopic = mqttConfig.get('Topic', fallback = "torch/%s/onion_url" % (clientID))
|
||||||
|
|
||||||
|
mqttRequireCertificate = mqttConfig.getboolean(
|
||||||
|
'RequireCertificate',
|
||||||
|
fallback = False)
|
||||||
|
|
||||||
|
mqttCaFile = configPath + mqttConfig.get('CaFile')
|
||||||
|
mqttCertFile = configPath + mqttConfig.get('CertFile')
|
||||||
|
mqttKeyFile = configPath + mqttConfig.get('KeyFile')
|
||||||
|
|
||||||
|
with Controller.from_port(port = torControllerPort) as controller:
|
||||||
|
|
||||||
|
protocolInfo = stem.connection.get_protocolinfo(controller)
|
||||||
|
|
||||||
|
stem.connection.authenticate_safecookie(
|
||||||
|
controller,
|
||||||
|
protocolInfo.cookie_path)
|
||||||
|
|
||||||
|
print("Connected to Tor on port %s" % (torControllerPort))
|
||||||
|
|
||||||
|
service = controller.create_ephemeral_hidden_service(
|
||||||
|
sshPort,
|
||||||
|
detached = True)
|
||||||
|
|
||||||
|
onionAddress = "%s.onion" % (service.service_id)
|
||||||
|
|
||||||
|
print("Created Tor Hidden Service for local port %s at %s" % (sshPort, onionAddress))
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
'clientId': clientID,
|
||||||
|
'timestamp': datetime.now().strftime("%d-%b-%Y (%H:%M:%S.%f)"),
|
||||||
|
'onionAddress': onionAddress,
|
||||||
|
'sshPort': sshPort
|
||||||
|
}
|
||||||
|
|
||||||
|
client = mqtt.Client()
|
||||||
|
protocol = "mqtt"
|
||||||
|
|
||||||
|
if mqttRequireCertificate:
|
||||||
|
client.tls_set(
|
||||||
|
ca_certs = mqttCaFile,
|
||||||
|
certfile = mqttCertFile,
|
||||||
|
keyfile = mqttKeyFile,
|
||||||
|
cert_reqs=ssl.CERT_REQUIRED)
|
||||||
|
protocol = "mqtts"
|
||||||
|
|
||||||
|
if mqttBrokerHost.endswith(".onion"):
|
||||||
|
client.proxy_set(proxy_type=socks.SOCKS5, proxy_addr="localhost", proxy_port=torProxyPort)
|
||||||
|
client.tls_insecure_set(True)
|
||||||
|
|
||||||
|
client.connect(mqttBrokerHost, mqttBrokerPort, 60)
|
||||||
|
client.publish(mqttTopic, json.dumps(payload))
|
||||||
|
print("Connected to MQTT Broker at %s://%s:%s/%s" % (protocol, mqttBrokerHost, mqttBrokerPort, mqttTopic))
|
||||||
|
print("Published payload: " + json.dumps(payload))
|
||||||
|
|
||||||
|
client.disconnect()
|
||||||
|
print("Disconnected from MQTT Broker")
|
38
torch-agent-0.0.1/debian/watch.ex
Normal file
38
torch-agent-0.0.1/debian/watch.ex
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
# Example watch control file for uscan
|
||||||
|
# Rename this file to "watch" and then you can run the "uscan" command
|
||||||
|
# to check for upstream updates and more.
|
||||||
|
# See uscan(1) for format
|
||||||
|
|
||||||
|
# Compulsory line, this is a version 4 file
|
||||||
|
version=4
|
||||||
|
|
||||||
|
# PGP signature mangle, so foo.tar.gz has foo.tar.gz.sig
|
||||||
|
#opts="pgpsigurlmangle=s%$%.sig%"
|
||||||
|
|
||||||
|
# HTTP site (basic)
|
||||||
|
#http://example.com/downloads.html \
|
||||||
|
# files/torch-agent-([\d\.]+)\.tar\.gz debian uupdate
|
||||||
|
|
||||||
|
# Uncomment to examine an FTP server
|
||||||
|
#ftp://ftp.example.com/pub/torch-agent-(.*)\.tar\.gz debian uupdate
|
||||||
|
|
||||||
|
# SourceForge hosted projects
|
||||||
|
# http://sf.net/torch-agent/ torch-agent-(.*)\.tar\.gz debian uupdate
|
||||||
|
|
||||||
|
# GitHub hosted projects
|
||||||
|
#opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%<project>-$1.tar.gz%" \
|
||||||
|
# https://github.com/<user>/torch-agent/tags \
|
||||||
|
# (?:.*?/)?v?(\d[\d.]*)\.tar\.gz debian uupdate
|
||||||
|
|
||||||
|
# PyPI
|
||||||
|
# https://pypi.debian.net/torch-agent/torch-agent-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))
|
||||||
|
|
||||||
|
# Direct Git
|
||||||
|
# opts="mode=git" http://git.example.com/torch-agent.git \
|
||||||
|
# refs/tags/v([\d\.]+) debian uupdate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Uncomment to find new files on GooglePages
|
||||||
|
# http://example.googlepages.com/foo.html torch-agent-(.*)\.tar\.gz
|
BIN
torch-agent_0.0.1-1.debian.tar.xz
Normal file
BIN
torch-agent_0.0.1-1.debian.tar.xz
Normal file
Binary file not shown.
35
torch-agent_0.0.1-1.dsc
Normal file
35
torch-agent_0.0.1-1.dsc
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
-----BEGIN PGP SIGNED MESSAGE-----
|
||||||
|
Hash: SHA512
|
||||||
|
|
||||||
|
Format: 3.0 (quilt)
|
||||||
|
Source: torch-agent
|
||||||
|
Binary: torch-agent
|
||||||
|
Architecture: all
|
||||||
|
Version: 0.0.1-1
|
||||||
|
Maintainer: Benjamin Dweck <bjdweck@gmail.com>
|
||||||
|
Homepage: https://rudefox.io
|
||||||
|
Standards-Version: 4.4.1
|
||||||
|
Build-Depends: debhelper-compat (= 12)
|
||||||
|
Package-List:
|
||||||
|
torch-agent deb net optional arch=all
|
||||||
|
Checksums-Sha1:
|
||||||
|
75a6ce9e0ad9f4ed0d2d31348c9db1238bd4f39d 9788 torch-agent_0.0.1.orig.tar.xz
|
||||||
|
4b3e734647e0e62bbb17c1ed5dbbd853462613f9 9636 torch-agent_0.0.1-1.debian.tar.xz
|
||||||
|
Checksums-Sha256:
|
||||||
|
30c630f9fdbaea2337a3e8701e753ef45a094b9403e77f9a42b2bd2ca63e8dc5 9788 torch-agent_0.0.1.orig.tar.xz
|
||||||
|
0ffd62a08673dfc3d0a7544eb62398b8fd3bd0aa71bfd19c1a8dd816c430ec1b 9636 torch-agent_0.0.1-1.debian.tar.xz
|
||||||
|
Files:
|
||||||
|
267a824b2a18ef73dcda05da7e99a4b5 9788 torch-agent_0.0.1.orig.tar.xz
|
||||||
|
ee6afe9f8ff5b6cade07a66f9075c505 9636 torch-agent_0.0.1-1.debian.tar.xz
|
||||||
|
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQFGBAEBCgAwFiEEFNiF9i0uBB0TW5u+27VgOYC/OIMFAl988dMSHGJqZHdlY2tA
|
||||||
|
Z21haWwuY29tAAoJENu1YDmAvziDfVkIAIKkS0PLQsDNUu3cJ+3UY1PboECjQdSb
|
||||||
|
0SpNuS61gRFJED9yoRg9XO5DMnpfp1qhVoZF0/wJSfel4Mbvyf8KPTpDYja9ZAkH
|
||||||
|
sjFwfqmvB2Po2VAE64ym/j7HCOGSMle6+f+NrcpDiEi592UzHR6iFi6iy8YwjhDa
|
||||||
|
xFmUJp4tPu62IUqOtASOMuQHGsY2c0j18Ev5Su0Z303MmfEp+bc/Y99lISU8cwHs
|
||||||
|
xPxOhsPCVj55E1wEi6hFeCy7sxh28W796fqOuCWKLYjIbIk2VRZC7clZ/dLn3hHk
|
||||||
|
RoXsSsBM5eFTK7uGKAOXCe1+AHZgsdnOU8XxnbvDMMbHYaaz7rnTNrw=
|
||||||
|
=pqDg
|
||||||
|
-----END PGP SIGNATURE-----
|
BIN
torch-agent_0.0.1-1_all.deb
Normal file
BIN
torch-agent_0.0.1-1_all.deb
Normal file
Binary file not shown.
195
torch-agent_0.0.1-1_amd64.buildinfo
Normal file
195
torch-agent_0.0.1-1_amd64.buildinfo
Normal file
|
@ -0,0 +1,195 @@
|
||||||
|
-----BEGIN PGP SIGNED MESSAGE-----
|
||||||
|
Hash: SHA512
|
||||||
|
|
||||||
|
Format: 1.0
|
||||||
|
Source: torch-agent
|
||||||
|
Binary: torch-agent
|
||||||
|
Architecture: all source
|
||||||
|
Version: 0.0.1-1
|
||||||
|
Checksums-Md5:
|
||||||
|
0abbdb3e83d948e0076ba9298c5f5502 1397 torch-agent_0.0.1-1.dsc
|
||||||
|
526fa2edc26efa17ce067b6b8b7780b5 5200 torch-agent_0.0.1-1_all.deb
|
||||||
|
Checksums-Sha1:
|
||||||
|
e88b32f193b3a57dd8717d02c643b6096b11e468 1397 torch-agent_0.0.1-1.dsc
|
||||||
|
816e7a65d14e02df230346565496a2bfb4ace2ad 5200 torch-agent_0.0.1-1_all.deb
|
||||||
|
Checksums-Sha256:
|
||||||
|
9b9a4486d39a88c09e1bd648560cd0c70cbba0e40bed9305e540e551db31d55e 1397 torch-agent_0.0.1-1.dsc
|
||||||
|
1560cd30b4944162d0ea4f2e4c5402527d06587c98a907820c36ec455633aede 5200 torch-agent_0.0.1-1_all.deb
|
||||||
|
Build-Origin: Ubuntu
|
||||||
|
Build-Architecture: amd64
|
||||||
|
Build-Date: Wed, 07 Oct 2020 00:38:11 +0200
|
||||||
|
Build-Tainted-By:
|
||||||
|
merged-usr-via-symlinks
|
||||||
|
usr-local-has-libraries
|
||||||
|
usr-local-has-programs
|
||||||
|
Installed-Build-Depends:
|
||||||
|
autoconf (= 2.69-11.1),
|
||||||
|
automake (= 1:1.16.1-4ubuntu6),
|
||||||
|
autopoint (= 0.19.8.1-10build1),
|
||||||
|
autotools-dev (= 20180224.1),
|
||||||
|
base-files (= 11ubuntu5.1),
|
||||||
|
base-passwd (= 3.5.47),
|
||||||
|
bash (= 5.0-6ubuntu1.1),
|
||||||
|
binutils (= 2.34-6ubuntu1),
|
||||||
|
binutils-common (= 2.34-6ubuntu1),
|
||||||
|
binutils-x86-64-linux-gnu (= 2.34-6ubuntu1),
|
||||||
|
bsdmainutils (= 11.1.2ubuntu3),
|
||||||
|
bsdutils (= 1:2.34-0.1ubuntu9),
|
||||||
|
build-essential (= 12.8ubuntu1),
|
||||||
|
bzip2 (= 1.0.8-2),
|
||||||
|
coreutils (= 8.30-3ubuntu2),
|
||||||
|
cpp (= 4:9.3.0-1ubuntu2),
|
||||||
|
cpp-9 (= 9.3.0-10ubuntu2),
|
||||||
|
dash (= 0.5.10.2-6),
|
||||||
|
debconf (= 1.5.73),
|
||||||
|
debhelper (= 12.10ubuntu1),
|
||||||
|
debianutils (= 4.9.1),
|
||||||
|
dh-autoreconf (= 19),
|
||||||
|
dh-strip-nondeterminism (= 1.7.0-1),
|
||||||
|
diffutils (= 1:3.7-3),
|
||||||
|
dpkg (= 1.19.7ubuntu3),
|
||||||
|
dpkg-dev (= 1.19.7ubuntu3),
|
||||||
|
dwz (= 0.13-5),
|
||||||
|
file (= 1:5.38-4),
|
||||||
|
findutils (= 4.7.0-1ubuntu1),
|
||||||
|
g++ (= 4:9.3.0-1ubuntu2),
|
||||||
|
g++-9 (= 9.3.0-10ubuntu2),
|
||||||
|
gawk (= 1:5.0.1+dfsg-1),
|
||||||
|
gcc (= 4:9.3.0-1ubuntu2),
|
||||||
|
gcc-10-base (= 10-20200411-0ubuntu1),
|
||||||
|
gcc-9 (= 9.3.0-10ubuntu2),
|
||||||
|
gcc-9-base (= 9.3.0-10ubuntu2),
|
||||||
|
gettext (= 0.19.8.1-10build1),
|
||||||
|
gettext-base (= 0.19.8.1-10build1),
|
||||||
|
grep (= 3.4-1),
|
||||||
|
groff-base (= 1.22.4-4build1),
|
||||||
|
gzip (= 1.10-0ubuntu4),
|
||||||
|
hostname (= 3.23),
|
||||||
|
init-system-helpers (= 1.57),
|
||||||
|
install-info (= 6.7.0.dfsg.2-5),
|
||||||
|
intltool-debian (= 0.35.0+20060710.5),
|
||||||
|
libacl1 (= 2.2.53-6),
|
||||||
|
libarchive-zip-perl (= 1.67-2),
|
||||||
|
libasan5 (= 9.3.0-10ubuntu2),
|
||||||
|
libatomic1 (= 10-20200411-0ubuntu1),
|
||||||
|
libattr1 (= 1:2.4.48-5),
|
||||||
|
libaudit-common (= 1:2.8.5-2ubuntu6),
|
||||||
|
libaudit1 (= 1:2.8.5-2ubuntu6),
|
||||||
|
libbinutils (= 2.34-6ubuntu1),
|
||||||
|
libblkid1 (= 2.34-0.1ubuntu9),
|
||||||
|
libbsd0 (= 0.10.0-1),
|
||||||
|
libbz2-1.0 (= 1.0.8-2),
|
||||||
|
libc-bin (= 2.31-0ubuntu9),
|
||||||
|
libc-dev-bin (= 2.31-0ubuntu9),
|
||||||
|
libc6 (= 2.31-0ubuntu9),
|
||||||
|
libc6-dev (= 2.31-0ubuntu9),
|
||||||
|
libcap-ng0 (= 0.7.9-2.1build1),
|
||||||
|
libcc1-0 (= 10-20200411-0ubuntu1),
|
||||||
|
libcroco3 (= 0.6.13-1),
|
||||||
|
libcrypt-dev (= 1:4.4.10-10ubuntu4),
|
||||||
|
libcrypt1 (= 1:4.4.10-10ubuntu4),
|
||||||
|
libctf-nobfd0 (= 2.34-6ubuntu1),
|
||||||
|
libctf0 (= 2.34-6ubuntu1),
|
||||||
|
libdb5.3 (= 5.3.28+dfsg1-0.6ubuntu2),
|
||||||
|
libdebconfclient0 (= 0.251ubuntu1),
|
||||||
|
libdebhelper-perl (= 12.10ubuntu1),
|
||||||
|
libdpkg-perl (= 1.19.7ubuntu3),
|
||||||
|
libelf1 (= 0.176-1.1build1),
|
||||||
|
libffi7 (= 3.3-4),
|
||||||
|
libfile-stripnondeterminism-perl (= 1.7.0-1),
|
||||||
|
libgcc-9-dev (= 9.3.0-10ubuntu2),
|
||||||
|
libgcc-s1 (= 10-20200411-0ubuntu1),
|
||||||
|
libgcrypt20 (= 1.8.5-5ubuntu1),
|
||||||
|
libgdbm-compat4 (= 1.18.1-5),
|
||||||
|
libgdbm6 (= 1.18.1-5),
|
||||||
|
libglib2.0-0 (= 2.64.3-1~ubuntu20.04.1),
|
||||||
|
libgmp10 (= 2:6.2.0+dfsg-4),
|
||||||
|
libgomp1 (= 10-20200411-0ubuntu1),
|
||||||
|
libgpg-error0 (= 1.37-1),
|
||||||
|
libicu66 (= 66.1-2ubuntu2),
|
||||||
|
libisl22 (= 0.22.1-1),
|
||||||
|
libitm1 (= 10-20200411-0ubuntu1),
|
||||||
|
liblsan0 (= 10-20200411-0ubuntu1),
|
||||||
|
liblz4-1 (= 1.9.2-2),
|
||||||
|
liblzma5 (= 5.2.4-1ubuntu1),
|
||||||
|
libmagic-mgc (= 1:5.38-4),
|
||||||
|
libmagic1 (= 1:5.38-4),
|
||||||
|
libmount1 (= 2.34-0.1ubuntu9),
|
||||||
|
libmpc3 (= 1.1.0-1),
|
||||||
|
libmpfr6 (= 4.0.2-1),
|
||||||
|
libpam-modules (= 1.3.1-5ubuntu4),
|
||||||
|
libpam-modules-bin (= 1.3.1-5ubuntu4),
|
||||||
|
libpam-runtime (= 1.3.1-5ubuntu4),
|
||||||
|
libpam0g (= 1.3.1-5ubuntu4),
|
||||||
|
libpcre2-8-0 (= 10.34-7),
|
||||||
|
libpcre3 (= 2:8.39-12build1),
|
||||||
|
libperl5.30 (= 5.30.0-9build1),
|
||||||
|
libpipeline1 (= 1.5.2-2build1),
|
||||||
|
libquadmath0 (= 10-20200411-0ubuntu1),
|
||||||
|
libreadline8 (= 8.0-4),
|
||||||
|
libseccomp2 (= 2.4.3-1ubuntu3.20.04.3),
|
||||||
|
libselinux1 (= 3.0-1build2),
|
||||||
|
libsigsegv2 (= 2.12-2),
|
||||||
|
libsmartcols1 (= 2.34-0.1ubuntu9),
|
||||||
|
libstdc++-9-dev (= 9.3.0-10ubuntu2),
|
||||||
|
libstdc++6 (= 10-20200411-0ubuntu1),
|
||||||
|
libsub-override-perl (= 0.09-2),
|
||||||
|
libsystemd0 (= 245.4-4ubuntu3.2),
|
||||||
|
libtinfo6 (= 6.2-0ubuntu2),
|
||||||
|
libtool (= 2.4.6-14),
|
||||||
|
libtsan0 (= 10-20200411-0ubuntu1),
|
||||||
|
libubsan1 (= 10-20200411-0ubuntu1),
|
||||||
|
libuchardet0 (= 0.0.6-3build1),
|
||||||
|
libudev1 (= 245.4-4ubuntu3.2),
|
||||||
|
libunistring2 (= 0.9.10-2),
|
||||||
|
libuuid1 (= 2.34-0.1ubuntu9),
|
||||||
|
libxml2 (= 2.9.10+dfsg-5),
|
||||||
|
libzstd1 (= 1.4.4+dfsg-3),
|
||||||
|
linux-libc-dev (= 5.4.0-47.51),
|
||||||
|
login (= 1:4.8.1-1ubuntu5.20.04),
|
||||||
|
lsb-base (= 11.1.0ubuntu2),
|
||||||
|
m4 (= 1.4.18-4),
|
||||||
|
make (= 4.2.1-1.2),
|
||||||
|
man-db (= 2.9.1-1),
|
||||||
|
mawk (= 1.3.4.20200120-2),
|
||||||
|
ncurses-base (= 6.2-0ubuntu2),
|
||||||
|
ncurses-bin (= 6.2-0ubuntu2),
|
||||||
|
patch (= 2.7.6-6),
|
||||||
|
perl (= 5.30.0-9build1),
|
||||||
|
perl-base (= 5.30.0-9build1),
|
||||||
|
perl-modules-5.30 (= 5.30.0-9build1),
|
||||||
|
po-debconf (= 1.0.21),
|
||||||
|
readline-common (= 8.0-4),
|
||||||
|
sed (= 4.7-1),
|
||||||
|
sensible-utils (= 0.0.12+nmu1),
|
||||||
|
sysvinit-utils (= 2.96-2.1ubuntu1),
|
||||||
|
tar (= 1.30+dfsg-7),
|
||||||
|
tzdata (= 2020a-0ubuntu0.20.04),
|
||||||
|
util-linux (= 2.34-0.1ubuntu9),
|
||||||
|
xz-utils (= 5.2.4-1ubuntu1),
|
||||||
|
zlib1g (= 1:1.2.11.dfsg-2ubuntu1)
|
||||||
|
Environment:
|
||||||
|
DEB_BUILD_OPTIONS="parallel=4"
|
||||||
|
LANG="en_US.UTF-8"
|
||||||
|
LC_ADDRESS="en_US.UTF-8"
|
||||||
|
LC_IDENTIFICATION="en_US.UTF-8"
|
||||||
|
LC_MEASUREMENT="en_US.UTF-8"
|
||||||
|
LC_MONETARY="en_US.UTF-8"
|
||||||
|
LC_NAME="en_US.UTF-8"
|
||||||
|
LC_NUMERIC="en_US.UTF-8"
|
||||||
|
LC_PAPER="en_US.UTF-8"
|
||||||
|
LC_TELEPHONE="en_US.UTF-8"
|
||||||
|
LC_TIME="en_US.UTF-8"
|
||||||
|
SOURCE_DATE_EPOCH="1601992382"
|
||||||
|
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQFGBAEBCgAwFiEEFNiF9i0uBB0TW5u+27VgOYC/OIMFAl988dQSHGJqZHdlY2tA
|
||||||
|
Z21haWwuY29tAAoJENu1YDmAvziDbhIH/RLtAHLasxrim/3qkhGJAUApkzoIhxEZ
|
||||||
|
feWBwQ5nncKnt9vNRaQVOuQ4GWVRcpNtEQGWc+6/XE9U28XcOMZ/DMlvt8laFOCp
|
||||||
|
w4mmTpzFUnskXaNHqNEP3en85Opb7eeQCOJjuvEvUmo8lk5jtASXcxT7pNcDlb3X
|
||||||
|
NAXUyO22s81SHB1TnnwXOfIKLV5duo0pSJxZ+QwKoQtfYIuyHNvilvr8DaoKiltp
|
||||||
|
a2EjwyBWPfdJHHnKcv2Zyye65eQOr3VE8dP6k5OQWcuC2bHh84YgwyN6cmgWaELt
|
||||||
|
XlCu5sA5TPzNbO0gyVOtMBnyZ3B9tQ80Yzu/UWIiVTfTUzyMF8nugNI=
|
||||||
|
=l2RV
|
||||||
|
-----END PGP SIGNATURE-----
|
49
torch-agent_0.0.1-1_amd64.changes
Normal file
49
torch-agent_0.0.1-1_amd64.changes
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
-----BEGIN PGP SIGNED MESSAGE-----
|
||||||
|
Hash: SHA512
|
||||||
|
|
||||||
|
Format: 1.8
|
||||||
|
Date: Tue, 06 Oct 2020 15:53:02 +0200
|
||||||
|
Source: torch-agent
|
||||||
|
Binary: torch-agent
|
||||||
|
Architecture: source all
|
||||||
|
Version: 0.0.1-1
|
||||||
|
Distribution: unstable
|
||||||
|
Urgency: medium
|
||||||
|
Maintainer: Benjamin Dweck <bjdweck@gmail.com>
|
||||||
|
Changed-By: Benjamin Dweck <bjdweck@gmail.com>
|
||||||
|
Description:
|
||||||
|
torch-agent - TORch is a solution for creating an SSH-via-Tor
|
||||||
|
Changes:
|
||||||
|
torch-agent (0.0.1-1) unstable; urgency=medium
|
||||||
|
.
|
||||||
|
* Initial release
|
||||||
|
Checksums-Sha1:
|
||||||
|
e88b32f193b3a57dd8717d02c643b6096b11e468 1397 torch-agent_0.0.1-1.dsc
|
||||||
|
75a6ce9e0ad9f4ed0d2d31348c9db1238bd4f39d 9788 torch-agent_0.0.1.orig.tar.xz
|
||||||
|
4b3e734647e0e62bbb17c1ed5dbbd853462613f9 9636 torch-agent_0.0.1-1.debian.tar.xz
|
||||||
|
816e7a65d14e02df230346565496a2bfb4ace2ad 5200 torch-agent_0.0.1-1_all.deb
|
||||||
|
d6de1f688aefa348cbcb38513c0418731a32be6c 6115 torch-agent_0.0.1-1_amd64.buildinfo
|
||||||
|
Checksums-Sha256:
|
||||||
|
9b9a4486d39a88c09e1bd648560cd0c70cbba0e40bed9305e540e551db31d55e 1397 torch-agent_0.0.1-1.dsc
|
||||||
|
30c630f9fdbaea2337a3e8701e753ef45a094b9403e77f9a42b2bd2ca63e8dc5 9788 torch-agent_0.0.1.orig.tar.xz
|
||||||
|
0ffd62a08673dfc3d0a7544eb62398b8fd3bd0aa71bfd19c1a8dd816c430ec1b 9636 torch-agent_0.0.1-1.debian.tar.xz
|
||||||
|
1560cd30b4944162d0ea4f2e4c5402527d06587c98a907820c36ec455633aede 5200 torch-agent_0.0.1-1_all.deb
|
||||||
|
98ac5666f20bfc2c3a7f803db6ac769df8be8f7f9a65742651c988e7104e5c34 6115 torch-agent_0.0.1-1_amd64.buildinfo
|
||||||
|
Files:
|
||||||
|
0abbdb3e83d948e0076ba9298c5f5502 1397 net optional torch-agent_0.0.1-1.dsc
|
||||||
|
267a824b2a18ef73dcda05da7e99a4b5 9788 net optional torch-agent_0.0.1.orig.tar.xz
|
||||||
|
ee6afe9f8ff5b6cade07a66f9075c505 9636 net optional torch-agent_0.0.1-1.debian.tar.xz
|
||||||
|
526fa2edc26efa17ce067b6b8b7780b5 5200 net optional torch-agent_0.0.1-1_all.deb
|
||||||
|
22b4edf1ac9a92dd878357a8ea5ba939 6115 net optional torch-agent_0.0.1-1_amd64.buildinfo
|
||||||
|
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQFGBAEBCgAwFiEEFNiF9i0uBB0TW5u+27VgOYC/OIMFAl988dQSHGJqZHdlY2tA
|
||||||
|
Z21haWwuY29tAAoJENu1YDmAvziDZJEH/0jFrjHV/crXnpwtzLt81CBJPTs84Uhp
|
||||||
|
crgNc1Dh6cul4a78mIlNMr/aTTAHUqV0PuOAuNsrsNZA0LBPH9Fa/sFuQAQVp8UC
|
||||||
|
TFffl9gt+s8UnR+JyYVW29PU/bLyrFeZPYYOrH/4xJ1houxgtAFgUh3B40cbX/26
|
||||||
|
CKyR4xMOFdtccSsZVJkPewrTHKDF1hibh4isK53/mHeCUnrlzosoZn873ZallEFD
|
||||||
|
tgbnmfMfx+ILlraz5L5UqghMZp+v8UqGuFV8D2EOC0XyRcpCpqlkioflUmL1AHML
|
||||||
|
KBqLg28oKmF56wyGfZgygzTUt/5tWTehjNwn36Ro+ZKbDMy1topS6aw=
|
||||||
|
=ufxl
|
||||||
|
-----END PGP SIGNATURE-----
|
BIN
torch-agent_0.0.1.orig.tar.xz
Normal file
BIN
torch-agent_0.0.1.orig.tar.xz
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user