summaryrefslogtreecommitdiff
path: root/doc/index.html
blob: 479a595f859317eeee1282f64f2369c6519149cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Language" content="en" />
    <title>s6-networking - small networking utilities</title>
    <meta name="Description" content="s6-networking - small networking utilities" />
    <meta name="Keywords" content="s6-networking network utilities tcpclient tcpserver s6 ucspi unix linux laurent bercot ska skarnet" />
    <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> -->
  </head>
<body>

<p>
<a href="//skarnet.org/software/">Software</a><br />
<a href="//skarnet.org/">www.skarnet.org</a>
</p>

<h1> s6-networking </h1>

<h2> What is it&nbsp;? </h2>

<p>
 s6-networking is a suite of small networking utilities for Unix systems.
It includes command-line client and server management, TCP access
control, privilege escalation across UNIX domain sockets, IDENT
protocol management and clock synchronization.
Optionally, it also includes command-line TLS/SSL tools for
secure communications.
</p>

<p>
 If the underlying
<a href="//skarnet.org/software/skalibs/">skalibs</a> has been
compiled with IPv6 support, s6-networking is IPv6-ready.
</p>

<p>
  The <tt>s6-</tt> prefix is slightly misleading, and probably a naming
mistake. This package is not, stricto sensu, a part of the
<em>s6 ecosystem</em>, and it is nowhere near a requirement for a
<a href="//skarnet.org/software/s6/">s6</a>-based installation.
However, it provides useful networking utilities often used with s6,
so keeping the prefix makes some kind of sense; you can see s6-networking,
as well as its dependency <a href="//skarnet.org/software/s6-dns/">s6-dns</a>,
as extensions to the s6 ecosystem.
</p>

<hr />

<h2> Installation </h2>

<h3> Requirements </h3>

<ul>
 <li> A POSIX-compliant system with a standard C development environment </li>
 <li> GNU make, version 3.81 or later </li>
 <li> <a href="//skarnet.org/software/skalibs/">skalibs</a> version
2.14.2.0 or later. It's a build-time requirement. It's also a run-time
requirement if you link against the shared version of the skalibs
library. </li>
 <li> (Optional, but recommended) <a href="//skarnet.org/software/execline/">execline</a> version
2.9.5.1 or later. It's a build-time and run-time requirement. </li>
 <li> <a href="//skarnet.org/software/s6/">s6</a> version
2.12.0.5 or later. It's a build-time and run-time requirement. </li>
 <li> <a href="//skarnet.org/software/s6-dns/">s6-dns</a> version
2.3.7.2 or later. It's a build-time requirement. It's also a run-time
requirement if you link against the shared version of the s6-dns
libraries. </li>
 <li> If you want to build the secure communication tools:
  <ul>
   <li> Either <a href="https://bearssl.org/">BearSSL</a> version 0.6
or later. </li>
   <li> Or <a href="https://libressl.org/">LibreSSL</a> version 3.9.1
or later. </li>
   <li> Or <a href="https://openssl.org/">OpenSSL</a> version 3.3.0
or later <em>and</em>
<a href="https://git.causal.agency/libretls/about/">LibreTLS</a>
version 3.8.1 or later. </li>
  </ul> The chosen library is a build-time requirement, and also a
run-time requirement if you link against its shared version. </li>
</ul>

<h3> Licensing </h3>

<p>
 s6-networking is free software. It is available under the
<a href="https://opensource.org/licenses/ISC">ISC license</a>.
</p>

<h3> Download </h3>

<ul>
 <li> The current released version of s6-networking is
<a href="s6-networking-2.7.0.3.tar.gz">2.7.0.3</a>. </li>
 <li> Alternatively, you can checkout a copy of the
<a href="//git.skarnet.org/cgi-bin/cgit.cgi/s6-networking/">s6-networking
git repository</a>:
<pre> git clone git://git.skarnet.org/s6-networking </pre> </li>
 <li> There's also a
<a href="https://github.com/skarnet/s6-networking">GitHub mirror</a>
of the s6-networking git repository. </li>
</ul>

<h3> Compilation </h3>

<ul>
 <li> See the enclosed INSTALL file for installation details. </li>
</ul>

<h3> Upgrade notes </h3>

<ul>
 <li> <a href="upgrade.html">This page</a> lists the differences to be aware of between
the previous versions of s6-networking and the current one. </li>
</ul>

<hr />

<h2> Reference </h2>

<h3> Commands </h3>

<p>
 All these commands exit 111 if they encounter a temporary error or
hardware error, and
100 if they encounter a permanent error - such as a misuse. Short-lived
commands exit 0 on success. Other exit codes are documented in the
relevant page.
</p>

<h4> System clock synchronization </h4>

<ul>
<li><a href="s6-clockadd.html">The <tt>s6-clockadd</tt> program</a></li>
<li><a href="s6-clockview.html">The <tt>s6-clockview</tt> program</a></li>
<li><a href="s6-sntpclock.html">The <tt>s6-sntpclock</tt> program</a> </li>
<li><a href="s6-taiclock.html">The <tt>s6-taiclock</tt> program</a></li>
<li><a href="s6-taiclockd.html">The <tt>s6-taiclockd</tt> program</a></li>
</ul>

<h4> UCSPI TCP implementation </h4>

<ul>
<li><a href="s6-tcpclient.html">The <tt>s6-tcpclient</tt> program</a></li>
<li><a href="s6-tcpserver.html">The <tt>s6-tcpserver</tt> program</a></li>
<li><a href="s6-tcpserver-socketbinder.html">The <tt>s6-tcpserver-socketbinder</tt> program</a></li>
<li><a href="s6-tcpserverd.html">The <tt>s6-tcpserverd</tt> program</a></li>
</ul>

<h4> UCSPI tools for secure communication (TLS protocol) over TCP </h4>

<ul>
<li> An <a href="tls-overview.html">overview</a> of the TLS-related programs </li>
<li><a href="s6-tlsclient.html">The <tt>s6-tlsclient</tt> program</a></li>
<li><a href="s6-tlsserver.html">The <tt>s6-tlsserver</tt> program</a></li>
<li><a href="s6-tlsc.html">The <tt>s6-tlsc</tt> program</a></li>
<li><a href="s6-tlsd.html">The <tt>s6-tlsd</tt> program</a></li>
<li><a href="s6-ucspitlsc.html">The <tt>s6-ucspitlsc</tt> program</a></li>
<li><a href="s6-ucspitlsd.html">The <tt>s6-ucspitlsd</tt> program</a></li>
<li><a href="s6-tlsc-io.html">The <tt>s6-tlsc-io</tt> program</a></li>
<li><a href="s6-tlsd-io.html">The <tt>s6-tlsd-io</tt> program</a></li>
</ul>

<h4> TCP access control </h4>

<ul>
<li><a href="s6-tcpserver-access.html">The <tt>s6-tcpserver-access</tt> program</a></li>
</ul>

<h4> IDENT protocol implementation </h4>

<ul>
<li><a href="s6-ident-client.html">The <tt>s6-ident-client</tt> program</a></li>
</ul>

<h4> Miscellaneous utilities </h4>

<ul>
<li><a href="s6-getservbyname.html">The <tt>s6-getservbyname</tt> program</a></li>
</ul>

<h3> Libraries </h3>

<ul>
<li> The <a href="libstls/">stls</a> library </li>
<li> The <a href="libsbearssl/">sbearssl</a> library </li>
<li> The <a href="libs6net/">s6net</a> library, containing:
 <ul>
  <li> <a href="libs6net/ident.html">The <tt>ident</tt> library interface</a> </li>
 </ul> </li>
</ul>

<hr />

<a name="related">
<h2> Related resources </h2>
</a>

<h3> s6-networking manual pages </h3>

<ul>
 <li> <a href="https://github.com/flexibeast">flexibeast</a> is providing
the s6-networking documentation as a
<a href="https://github.com/flexibeast/s6-networking-man-pages">set of man pages</a>. </li>
</ul>

<h3> s6-networking discussion </h3>

<ul>
 <li> <tt>s6-networking</tt> is discussed on the
<a href="//skarnet.org/lists/#skaware">skaware</a> mailing-list. </li>
</ul>

<h3> Similar work </h3>

<ul>
 <li> <a href="https://cr.yp.to/ucspi-tcp.html">ucspi-tcp</a> is the
original inspiration for s6-networking.
It works, but is unfortunately unmaintained by the author. s6-networking
follows <a href="//skarnet.org/software/skalibs/djblegacy.html">the
same design principles</a>. </li>
 <li> <a href="http://smarden.org/ipsvd/">ipsvd</a> is a similar program
suite. </li>
</ul>

</body>
</html>