Update docs
Some checks are pending
C/C++ CI Linux / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Waiting to run
C/C++ CI Linux / ${{ matrix.target }} (ubuntu-latest) (push) Waiting to run
C/C++ CI MacOS / ${{ matrix.target }} (macos-15) (push) Waiting to run
C/C++ CI Windows / ${{ matrix.target }} (windows-2022) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (macos-15) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (ubuntu-latest) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (windows-2022) (push) Waiting to run
C/C++ CI cmake / ubuntu-latest (wolfSSL) (push) Waiting to run

This commit is contained in:
Vladimir Dubrovin 2026-07-22 18:47:11 +03:00
parent c94766dff7
commit 305f9932ac
7 changed files with 391 additions and 32 deletions

View File

@ -8,6 +8,7 @@
<br><A HREF="man8/3proxy_crypt.8.html">3proxy_crypt.8</A>
<br><A HREF="man8/3proxy.8.html">3proxy.8</A>
<br><A HREF="man8/ftppr.8.html">ftppr.8</A>
<br><A HREF="man8/imapp.8.html">imapp.8</A>
<br><A HREF="man8/pop3p.8.html">pop3p.8</A>
<br><A HREF="man8/proxy.8.html">proxy.8</A>
<br><A HREF="man8/smtpp.8.html">smtpp.8</A>

View File

@ -87,6 +87,7 @@ start gateway services:</p>
[options] <b><br>
socks</b> [options] <b><br>
pop3p</b> [options] <b><br>
imapp</b> [options] <b><br>
smtpp</b> [options] <b><br>
ftppr</b> [options] <b><br>
admin</b> [options] <b><br>
@ -104,6 +105,7 @@ handshake), may be used to redirect any TLS-based traffic
auto</b> Proxy with protocol autoselection between proxy /
socks / tlspr <b><br>
pop3p</b> POP3 proxy (default port 110) <b><br>
imapp</b> IMAPv4 proxy (default port 143) <b><br>
smtpp</b> SMTP proxy (default port 25) <b><br>
ftppr</b> FTP proxy (default port 21) <b><br>
admin</b> Web interface (default port 80) <b><br>
@ -220,8 +222,8 @@ information reported) <b><br>
-a2</b> (for proxy) generate Via: and X-Forwarded-For:
instead of Forwarded: <br>
Also, all options mentioned for <b>proxy</b>(8)
<b>socks</b>(8) <b>pop3p</b>(8) <b>tcppm</b>(8)
<b>udppm</b>(8) <b>ftppr</b>(8) <br>
<b>socks</b>(8) <b>pop3p</b>(8) <b>imapp</b>(8)
<b>tcppm</b>(8) <b>udppm</b>(8) <b>ftppr</b>(8) <br>
are also supported. <br>
Portmapping services listen at SRCPORT and connect to
DSTADDR:DSTPORT HTTP and SOCKS proxies are standard. <br>
@ -779,8 +781,9 @@ special case of local redirection, it works only with
<b>socks</b> proxy. In case of local redirection request is
redirected to different service, <b>ftp</b> locally
redirects to <b>ftppr pop3</b> locally redirects to <b>pop3p
http</b> locally redirects to <b>proxy admin</b> locally
redirects to the admin -s service. <br>
imap</b> locally redirects to <b>imapp http</b> locally
redirects to <b>proxy admin</b> locally redirects to the
admin -s service. <br>
Unix domain sockets can be used instead of IP address with
the syntax <i>unix:/path/to/socket</i> (e.g., parent 1000
socks5 unix:/var/run/parent.sock 1080). On Linux, abstract
@ -1294,7 +1297,8 @@ to <b>3proxy@3proxy.org</b></p>
<p style="margin-left:6%; margin-top: 1em">3proxy(8),
3proxy_crypt(8), proxy(8), ftppr(8), socks(8), pop3p(8),
smtpp(8), tlspr(8), tcppm(8), udppm(8), syslogd(8), <br>
imapp(8), smtpp(8), tlspr(8), tcppm(8), udppm(8),
syslogd(8), <br>
https://3proxy.org/</p>
<h2>AUTHORS

View File

@ -58,11 +58,11 @@ multiple gateways with HTTP and HTTPS proxy with FTP over
HTTP support, SOCKS v4, v4.5 and v5, POP3 proxy, UDP and TCP
portmappers. Each gateway is started from the configuration
file like an independent service <b>proxy</b>(8)
<b>socks</b>(8) <b>pop3p</b>(8) <b>tcppm</b>(8)
<b>udppm</b>(8) <b>ftppr</b>(8) <b>dnspr</b> but
<b>3proxy</b> is not a kind of wrapper or superserver for
these daemons. It just has the same code compiled in, but
provides much more functionality. SOCKSv5 implementation
<b>socks</b>(8) <b>pop3p</b>(8) <b>imapp</b>(8)
<b>tcppm</b>(8) <b>udppm</b>(8) <b>ftppr</b>(8) <b>dnspr</b>
but <b>3proxy</b> is not a kind of wrapper or superserver
for these daemons. It just has the same code compiled in,
but provides much more functionality. SOCKSv5 implementation
allows you to use 3proxy with any UDP or TCP based client
applications designed without proxy support (with
<i>SocksCAP</i>, <i>FreeCAP</i> or another client-side
@ -195,8 +195,8 @@ to <b>3proxy@3proxy.org</b></p>
<p style="margin-left:6%; margin-top: 1em">3proxy.cfg(5),
proxy(8), ftppr(8), socks(8), pop3p(8), tcppm(8), udppm(8),
kill(1), syslogd(8), <br>
proxy(8), ftppr(8), socks(8), pop3p(8), imapp(8), tcppm(8),
udppm(8), kill(1), syslogd(8), <br>
https://3proxy.org/</p>
<h2>AUTHORS

287
doc/html/man8/imapp.8.html Normal file
View File

@ -0,0 +1,287 @@
<!-- Creator : groff version 1.24.1 -->
<html>
<head>
</head>
<body>
<h1 align="center">imapp</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#CLIENTS">CLIENTS</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>
<a href="#AUTHORS">AUTHORS</a><br>
<hr>
<h2>NAME
<a name="NAME"></a>
</h2>
<p style="margin-left:6%; margin-top: 1em"><b>imapp</b> -
IMAPv4 proxy gateway service</p>
<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>
<p style="margin-left:6%; margin-top: 1em"><b>imapp</b>
[<b>-d</b>] [<b>-l</b>[[<i>@</i>]<i>logfile</i>]]
[<b>-p</b><i>port</i>] [<b>-i</b><i>internal_ip</i>]
[<b>-e</b><i>external_ip</i>]
[<b>-h</b><i>default_ip[:port]</i>] [<b>-x</b><i>]</i></p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:6%; margin-top: 1em"><i><b>imapp</b></i>
is IMAPv4 (IMAP4rev1) gateway service to allow internal
users to access external IMAP servers.</p>
<h2>OPTIONS
<a name="OPTIONS"></a>
</h2>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p style="margin-top: 1em"><b>-I</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">Inetd mode. Standalone service
only.</p> </td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p style="margin-top: 1em"><b>-d</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">Daemonize. Detach service from
console and run in the background.</p></td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p style="margin-top: 1em"><b>-t</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">Be silenT. Do not log
start/stop/accept error records.</p></td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p style="margin-top: 1em"><b>-u</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">Never look for username
authentication.</p> </td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p style="margin-top: 1em"><b>-e</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">External address. IP address of
the interface the proxy should initiate connections from. By
default, the system will decide which address to use in
accordance with the routing table.</p></td></tr>
</table>
<p style="margin-left:6%;"><b>-ni</b><i>PATH</i></p>
<p style="margin-left:15%;">(Linux only) Switch to the
network namespace identified by <i>PATH</i> before opening
the listening socket. The current namespace is saved and
restored immediately after binding, so outgoing connections
run in the original namespace unless <b>-ne</b> is also
given.</p>
<p style="margin-left:6%;"><b>-ne</b><i>PATH</i></p>
<p style="margin-left:15%;">(Linux only) Switch to the
network namespace identified by <i>PATH</i> after the
listening socket has been bound (and after restoring from
<b>-ni</b> if applicable). Both options accept any namespace
file path (e.g. <i>/var/run/netns/myns</i> or
<i>/proc/PID/ns/net</i>) and require
<b>CAP_SYS_ADMIN</b>.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p><b>-i</b></p></td>
<td width="6%"></td>
<td width="85%">
<p>Internal address. IP address the proxy accepts
connections to. By default, connections to any interface are
accepted. It&acute;s usually unsafe. Unix domain sockets can
be specified with <i>-iunix:/path/to/socket</i> syntax
(e.g., -iunix:/var/run/imapp.sock). On Linux, abstract
sockets use <i>-iunix:@socketname</i> syntax.</p></td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p style="margin-top: 1em"><b>-p</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">Port. Port proxy listens for
incoming connections. Default is 143.</p></td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p style="margin-top: 1em"><b>-h</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">Default destination. It&rsquo;s
used if the target address is not specified by the user.</p></td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p style="margin-top: 1em"><b>-x</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">Disable STARTTLS support.
STARTTLS is not announced in the CAPABILITY response and the
STARTTLS command is not accepted.</p></td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p style="margin-top: 1em"><b>-l</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">Log. By default logging is to
stdout. If <i>logfile</i> is specified logging is to file.
Under Unix, if &acute;<i>@</i>&acute; precedes
<i>logfile</i>, syslog is used for logging.</p></td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p style="margin-top: 1em"><b>-S</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">Increase or decrease stack size.
You may want to try something like -S8192 if you experience
3proxy crashes.</p></td></tr>
</table>
<h2>CLIENTS
<a name="CLIENTS"></a>
</h2>
<p style="margin-left:6%; margin-top: 1em">You can use any
MUA (Mail User Agent) with IMAPv4 support. Set the client to
use <i>internal_ip</i> and <i>port</i> as an IMAP server.
The address of the real IMAP server must be configured as a
part of the IMAP username. The format for the username is
<i>username</i>@<i>server</i>, where <i>server</i> is the
address of the IMAP server and <i>username</i> is the
user&acute;s login on this IMAP server. The login itself may
contain an &acute;@&acute; sign. Supported client
authentication methods are the LOGIN command, AUTHENTICATE
PLAIN and AUTHENTICATE LOGIN. With the server, the proxy
authenticates using the method chosen by the client if the
server supports it (as advertised in the CAPABILITY
response); otherwise it falls back to AUTHENTICATE LOGIN,
AUTHENTICATE PLAIN or the LOGIN command, in this order of
preference. Challenge-response authentication (CRAM-MD5,
etc.) is not supported, because it requires a challenge from
the server before we know which server to connect to. When
running as a 3proxy service (not as a standalone binary),
STARTTLS is supported and announced in the CAPABILITY
response unless disabled with <b>-x</b>. After the client
issues STARTTLS, the connection is handled by
<b>tlspr</b>(8): the destination host is taken from the SNI
of the client TLS handshake (or from the -h option), the
proxy performs STARTTLS negotiation with the destination
server, and then transparently passes TLS traffic between
the client and the server. If the destination server does
not support STARTTLS, the TLS handshake with the client
fails.</p>
<h2>BUGS
<a name="BUGS"></a>
</h2>
<p style="margin-left:6%; margin-top: 1em">Report all bugs
to <b>3proxy@3proxy.org</b></p>
<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>
<p style="margin-left:6%; margin-top: 1em">3proxy(8),
ftppr(8), pop3p(8), proxy(8), smtpp(8), socks(8), tcppm(8),
tlspr(8), udppm(8), syslogd(8), <br>
https://3proxy.org/</p>
<h2>AUTHORS
<a name="AUTHORS"></a>
</h2>
<p style="margin-left:6%; margin-top: 1em">3proxy is
designed by Vladimir Dubrovin &lt;vlad@3proxy.org&gt;</p>
<hr>
</body>
</html>

View File

@ -36,15 +36,16 @@ POP3 proxy gateway service</p>
[<b>-d</b>] [<b>-l</b>[[<i>@</i>]<i>logfile</i>]]
[<b>-p</b><i>port</i>] [<b>-i</b><i>internal_ip</i>]
[<b>-e</b><i>external_ip</i>]
[<b>-h</b><i>default_ip[:port]</i>]</p>
[<b>-h</b><i>default_ip[:port]</i>] [<b>-x</b><i>]</i></p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:6%; margin-top: 1em"><b>pop3p</b> is
POP3 gateway service to allow internal users to access
<p style="margin-left:6%; margin-top: 1em"><i><b>pop3p</b></i>
is POP3 gateway service to allow internal users to access
external POP3 servers.</p>
<h2>OPTIONS
@ -184,6 +185,19 @@ used if the target address is not specified by the user.</p></td></tr>
<td width="3%">
<p style="margin-top: 1em"><b>-x</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">Disable STARTTLS (STLS) support.
STLS is not announced in the CAPA response and the STLS
command is not accepted.</p></td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p style="margin-top: 1em"><b>-l</b></p></td>
<td width="6%"></td>
<td width="85%">
@ -224,8 +238,17 @@ user&acute;s login on this POP3 server. The login itself may
contain an &acute;@&acute; sign. Only cleartext
authentication is supported, because challenge-response
authentication (APOP, CRAM-MD5, etc.) requires a challenge
from the server before we know which server to connect
to.</p>
from the server before we know which server to connect to.
When running as a 3proxy service (not as a standalone
binary), STLS is supported and announced in the CAPA
response unless disabled with <b>-x</b>. After the client
issues STLS, the connection is handled by <b>tlspr</b>(8):
the destination host is taken from the SNI of the client TLS
handshake (or from the -h option), the proxy performs STLS
negotiation with the destination server, and then
transparently passes TLS traffic between the client and the
server. If the destination server does not support STLS, the
TLS handshake with the client fails.</p>
<h2>BUGS
<a name="BUGS"></a>

View File

@ -36,15 +36,16 @@ SMTP proxy gateway service</p>
[<b>-d</b>] [<b>-l</b>[[<i>@</i>]<i>logfile</i>]]
[<b>-p</b><i>port</i>] [<b>-i</b><i>internal_ip</i>]
[<b>-e</b><i>external_ip</i>]
[<b>-h</b><i>default_ip[:port]</i>]</p>
[<b>-h</b><i>default_ip[:port]</i>] [<b>-x</b><i>]</i></p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:6%; margin-top: 1em"><b>smtpp</b> is
SMTP gateway service to allow internal users to access
<p style="margin-left:6%; margin-top: 1em"><i><b>smtpp</b></i>
is SMTP gateway service to allow internal users to access
external SMTP servers.</p>
<h2>OPTIONS
@ -166,7 +167,7 @@ sockets use <i>-iunix:@socketname</i> syntax.</p></td></tr>
<p style="margin-top: 1em">Port. Port proxy listens for
incoming connections. Default is 25.</p></td></tr>
incoming connections. Default is 587.</p></td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
@ -184,6 +185,19 @@ used if the target address is not specified by the user.</p></td></tr>
<td width="3%">
<p style="margin-top: 1em"><b>-x</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">Disable STARTTLS support.
STARTTLS is not announced in the EHLO response and the
STARTTLS command is not accepted.</p></td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="3%">
<p style="margin-top: 1em"><b>-l</b></p></td>
<td width="6%"></td>
<td width="85%">
@ -225,7 +239,17 @@ server. The login itself may contain an &acute;@&acute;
sign. Only cleartext authentication is supported, because
challenge-response authentication (CRAM-MD5, SPA, etc.)
requires a challenge from the server before we know which
server to connect to.</p>
server to connect to. When running as a 3proxy service (not
as a standalone binary), STARTTLS is supported and announced
in the EHLO response unless disabled with <b>-x</b>. After
the client issues STARTTLS, the connection is handled by
<b>tlspr</b>(8): the destination host is taken from the SNI
of the client TLS handshake (or from the -h option), the
proxy performs STARTTLS negotiation with the destination
server, and then transparently passes TLS traffic between
the client and the server. If the destination server does
not support STARTTLS, the TLS handshake with the client
fails.</p>
<h2>BUGS
<a name="BUGS"></a>

View File

@ -49,7 +49,9 @@ SNI proxy gateway service</p>
an SNI gateway service (destination host is taken from TLS
handshake). The destination port must be specified via the
-P option (or it may be detected with the Transparent
plugin).</p>
plugin). tlspr does not support user authentication; use
ACLs by client IP or a parent proxy with authentication if
access control is required.</p>
<h2>OPTIONS
<a name="OPTIONS"></a>
@ -241,27 +243,45 @@ with TLS 1.3)</p></td></tr>
packet across multiple TCP segments to make SNI-based DPI
detection harder. An optional numeric value can follow (e.g.
<b>-s1</b>) to control the splitting behaviour.</p></td></tr>
</table>
<p style="margin-left:6%;"><b>-Ximap | -Xpop3 |
-Xsmtp</b></p>
<p style="margin-left:15%;">STARTTLS mode for the given
protocol. The proxy speaks the plaintext protocol with the
client (greeting, capability advertisement with STARTTLS
only, STARTTLS command), then, after the client issues
STARTTLS and sends a TLS Client HELLO, connects to the
destination taken from SNI (default port 143/110/587),
performs STARTTLS negotiation with the destination server
and transparently passes TLS traffic. If the destination
server does not support STARTTLS, the TLS handshake with the
client fails.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="6%"></td>
<td width="4%">
<td width="3%">
<p style="margin-top: 1em"><b>-l</b></p></td>
<td width="5%"></td>
<p><b>-l</b></p></td>
<td width="6%"></td>
<td width="85%">
<p style="margin-top: 1em">Log. By default logging is to
stdout. If <i>logfile</i> is specified logging is to file.
Under Unix, if &acute;<i>@</i>&acute; precedes
<i>logfile</i>, syslog is used for logging.</p></td></tr>
<p>Log. By default logging is to stdout. If <i>logfile</i>
is specified logging is to file. Under Unix, if
&acute;<i>@</i>&acute; precedes <i>logfile</i>, syslog is
used for logging.</p></td></tr>
<tr valign="top" align="left">
<td width="6%"></td>
<td width="4%">
<td width="3%">
<p style="margin-top: 1em"><b>-S</b></p></td>
<td width="5%"></td>
<td width="6%"></td>
<td width="85%">