- Update to 2.3
- New version has IPv6 support, thus add to ipv6 sub category - Provide rcNG script - Install config file PR: 91547 Submitted by: Yoshihiko Sarumaru <mistral@imasy.or.jp> (maintainer)
This commit is contained in:
parent
74e8265462
commit
f7277520e4
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=153135
7 changed files with 1017 additions and 32 deletions
|
@ -6,48 +6,44 @@
|
|||
#
|
||||
|
||||
PORTNAME= stone
|
||||
PORTVERSION= 2.2c
|
||||
CATEGORIES= net
|
||||
PORTVERSION= 2.3
|
||||
CATEGORIES= net ipv6
|
||||
MASTER_SITES= http://www.gcd.org/sengoku/stone/
|
||||
|
||||
MAINTAINER= mistral@imasy.or.jp
|
||||
COMMENT= Stone is a TCP/IP packet repeater in the application layer
|
||||
|
||||
MAN1= ${PORTNAME}.1
|
||||
MAN1= stone.1
|
||||
MANLANG= "" ja
|
||||
PLIST_FILES= bin/stone
|
||||
|
||||
USE_REINPLACE= yes
|
||||
USE_RC_SUBR= stone.sh
|
||||
USE_OPENSSL= yes
|
||||
USE_REINPLACE= yes
|
||||
|
||||
.if exists(${PREFIX}/lib/libssl.so)
|
||||
ALL_TARGET= bsd-ssl
|
||||
MAKE_ARGS= -e SSL_FLAGS="-DUSE_SSL -I${PREFIX}/include" SSL_LIBS="-L${PREFIX}/lib -lssl -lcrypto"
|
||||
.elif exists(/usr/lib/libssl.so)
|
||||
ALL_TARGET= bsd-ssl
|
||||
MAKE_ARGS= -e SSL_FLAGS="-DUSE_SSL" SSL_LIBS="-lssl -lcrypto"
|
||||
.else
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if defined(WITHOUT_SSL)
|
||||
.undef USE_OPENSSL
|
||||
ALL_TARGET= bsd-pop
|
||||
MAKE_ARGS= -e POP_LIBS="-lmd"
|
||||
NEED_GLOBAL_H= yes
|
||||
.endif
|
||||
|
||||
pre-everything::
|
||||
.if ${ALL_TARGET} != bsd-ssl
|
||||
@${ECHO_CMD} "You can build stone with SSL support by installing OpenSSL."
|
||||
.endif
|
||||
|
||||
pre-patch:
|
||||
${REINPLACE_CMD} -e "s/-D_THREAD_SAFE/${PTHREAD_CFLAGS}/g;s/-pthread/${PTHREAD_LIBS}/g" ${WRKSRC}/Makefile
|
||||
|
||||
pre-build:
|
||||
.if defined(NEED_GLOBAL_H)
|
||||
MAKE_ARGS= POP_LIBS="-lmd" LIBS="-DUNIX_DAEMON"
|
||||
post-extract:
|
||||
${TOUCH} ${WRKSRC}/global.h
|
||||
.else
|
||||
ALL_TARGET= bsd-ssl
|
||||
MAKE_ARGS= SSL_FLAGS="-DUSE_SSL -I${OPENSSLINC}" \
|
||||
SSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" LIBS="-DUNIX_DAEMON"
|
||||
.endif
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e '/^CFLAGS/d' ${WRKSRC}/${MAKEFILE}
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/stone ${PREFIX}/bin/stone
|
||||
${INSTALL_MAN} ${WRKSRC}/stone.1 ${PREFIX}/man/man1/stone.1
|
||||
${INSTALL_MAN} ${WRKSRC}/stone.1.ja ${PREFIX}/man/ja/man1/stone.1
|
||||
${INSTALL_MAN} ${FILESDIR}/stone.1 ${PREFIX}/man/man1/stone.1
|
||||
${INSTALL_MAN} ${FILESDIR}/stone.1.ja ${PREFIX}/man/ja/man1/stone.1
|
||||
${INSTALL_DATA} ${FILESDIR}/stone.cnf ${PREFIX}/etc/stone.cnf.sample
|
||||
.if !exists(${PREFIX}/etc/stone.cnf)
|
||||
${INSTALL_DATA} ${FILESDIR}/stone.cnf ${PREFIX}/etc
|
||||
.endif
|
||||
|
||||
#.include <bsd.port.post.mk>
|
||||
.include <bsd.port.mk>
|
||||
.include <bsd.port.post.mk>
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
MD5 (stone-2.2c.tar.gz) = c13a7e240f939c44a24173954e52b6eb
|
||||
SIZE (stone-2.2c.tar.gz) = 61819
|
||||
MD5 (stone-2.3.tar.gz) = 1edb56a30d3f6dd8c38f8333d67f2720
|
||||
SHA256 (stone-2.3.tar.gz) = 539cc251ee2b3eae09b33063603a419a4405ae3abdc30f3d003907b8cbcf340d
|
||||
SIZE (stone-2.3.tar.gz) = 82141
|
||||
|
|
464
net/stone/files/stone.1
Normal file
464
net/stone/files/stone.1
Normal file
|
@ -0,0 +1,464 @@
|
|||
.\" Roff format skeleton provided by Taketo Kabe <kabe@sra-tohoku.co.jp>
|
||||
.TH stone 1 "version 2.3"
|
||||
.
|
||||
.SH NAME
|
||||
stone \- Simple Repeater
|
||||
.
|
||||
.SH SYNOPSIS
|
||||
.B "stone [-C \fIfile\fP] [-P \fIcommand\fP] [-Q \fIoptions\fP] [-N] [-d] [-p] [-n]"
|
||||
.br
|
||||
.B " [-u \fImax\fP] [-f \fIn\fP] [-l] [-L \fIfile\fP] [-a \fIfile\fP] [-i \fIfile\fP]"
|
||||
.br
|
||||
.B " [-X \fIn\fP] [-T \fIn\fP] [-r]"
|
||||
.br
|
||||
.B " [-x \fIport\fP[,\fIport\fP][-\fIport\fP]... \fIxhost\fP... --]"
|
||||
.br
|
||||
.B " [-s \fIsend\fP \fIexpect\fP... --]"
|
||||
.br
|
||||
.B " [-b [\fIvar\fP=\fIval\fP]... \fIn\fP \fImaster\fP:\fIport\fP \fIbackup\fP:\fIport\fP]"
|
||||
.br
|
||||
.B " [-B \fIhost\fP:\fIport\fP \fIhost1\fP:\fIport1\fP... --]"
|
||||
.br
|
||||
.B " [-I \fIhost\fP]"
|
||||
.br
|
||||
.B " [-o \fIn\fP] [-g \fIn\fP] [-t \fIdir\fP] [-D] [-c \fIdir\fP]"
|
||||
.br
|
||||
.B " [-q \fISSL\fP] [-z \fISSL\fP]"
|
||||
.br
|
||||
.B " [-M install \fIname\fP] [-M remove \fIname\fP]"
|
||||
.br
|
||||
.B " \fIst\fP [-- \fIst\fP]..."
|
||||
.
|
||||
.SH DESCRIPTION
|
||||
\fBStone\fP is a TCP & UDP repeater in the application layer. It repeats TCP
|
||||
and UDP from inside to outside of a firewall, or from outside to inside.
|
||||
.P
|
||||
\fBStone\fP has following features:
|
||||
.
|
||||
.TP
|
||||
.B 1. Stone supports Win32.
|
||||
Formerly, UNIX machines are used as firewalls, but recently
|
||||
WindowsNT machines are used, too. You can easily run \fBstone\fP on
|
||||
WindowsNT and Windows95. Of course, available on Linux,
|
||||
FreeBSD, BSD/OS, SunOS, Solaris, HP-UX and so on.
|
||||
.
|
||||
.TP
|
||||
.B 2. Simple.
|
||||
\fBStone\fP's source code is only 8000 lines long (written in C
|
||||
language), so you can minimize the risk of security
|
||||
holes.
|
||||
.
|
||||
.TP
|
||||
.B 3. Stone supports SSL.
|
||||
Using OpenSSL (\fIhttp://www.openssl.org/\fP), \fBstone\fP can
|
||||
encrypt/decrypt. Client verifications, and server verifications
|
||||
are also supported. \fBStone\fP can send a substring of the subject
|
||||
of the certificate to the destination.
|
||||
.
|
||||
.TP
|
||||
.B 4. Stone is a http proxy.
|
||||
\fBStone\fP can also be a tiny http proxy.
|
||||
.
|
||||
.TP
|
||||
.B 5. POP -> APOP conversion.
|
||||
With \fBstone\fP and a mailer that does not support APOP, you can
|
||||
access to an APOP server.
|
||||
.
|
||||
.TP
|
||||
.B 6. Stone supports IPv6.
|
||||
\fBStone\fP can convert IP and IPv6 each other. With \fBstone\fP, you can
|
||||
use IP-only software on IPv6 network.
|
||||
.
|
||||
.SH OPTIONS
|
||||
If the \fB-C\fP \fIfile\fP flag is used, the program read these
|
||||
options and \fIst\fPs from the configuration file \fIfile\fP.
|
||||
If the \fB-P\fP \fIcommand\fP flag is used, the program executes
|
||||
specified pre-processor to read the configuration file. \fB-Q\fP \fIoptions\fP
|
||||
can be used to pass options to the pre-processor. If the \fB-N\fP
|
||||
flag is used, \fBstone\fP will terminate after parsing options
|
||||
and configuration file without opening the ports.
|
||||
.P
|
||||
If the \fB-d\fP flag is used, then increase the debug level. If
|
||||
the \fB-p\fP flag is used, data repeated by \fBstone\fP are dumped. If
|
||||
the \fB-n\fP is used, IP addresses and service port numbers are
|
||||
shown instead of host names and service names.
|
||||
.P
|
||||
If the \fB-u\fP \fImax\fP flag (\fImax\fP is integer) is used, the
|
||||
program memorize \fImax\fP UDP sources simultaneously. The default value
|
||||
is 100. If the
|
||||
\fB-f\fP \fIn\fP flag (\fIn\fP is integer) is used, the program spawn
|
||||
\fIn\fP child processes. The default behavior is not to spawn any child processes.
|
||||
.P
|
||||
If the \fB-l\fP flag is used, the program sends error messages to
|
||||
the syslog instead of stderr. If the \fB-L\fP \fIfile\fP (\fIfile\fP
|
||||
is a file name) flag is used, the program writes error messages
|
||||
to the file. If the \fB-a\fP \fIfile\fP flag is used, the program
|
||||
writes accounting to the file. If the \fB-i\fP \fIfile\fP flag is
|
||||
used, the program writes its process ID to the file.
|
||||
.P
|
||||
The \fB-X\fP \fIn\fP flag alters the buffer size of the repeater.
|
||||
The default value is 1000 bytes. If
|
||||
the \fB-T\fP \fIn\fP is used, the timeout of TCP sessions can be
|
||||
specified to \fIn\fP sec. Default: 600 (10 min). The \fB-r\fP flag is
|
||||
used, SO_REUSEADDR is set on the socket of \fIst\fP .
|
||||
.P
|
||||
Using the \fB-x\fP \fIport\fP[,\fIport\fP][-\fIport\fP]... \fIxhost\fP... \fB--\FP flag,
|
||||
the http proxy (described later) can only connect to
|
||||
\fIxhost\fP:\fIport\fP. If more than one \fB-x\fP ... \fB--\fI flags are
|
||||
designated, the posterior one whose \fIport\fP list matches the
|
||||
connecting port. If the \fB-x\fP \fB--\fP is used, prior \fB-x\fP flags
|
||||
are ignored.
|
||||
.P
|
||||
The \fB-b\fP \fIn\fP \fImaster\fP:\fIport\fP \fIbackup\fP:\fIport\fP flag designates
|
||||
the backup destination for \fImaster\fP:\fIport\fP. The program checks
|
||||
every \fIn\fP seconds whether \fImaster\fP:\fIport\fP is connectable, using
|
||||
the health check script defined by \fB-s\fP flag described below.
|
||||
If not, the backup is used instead. Alternative \fIhost\fP can be
|
||||
checked, using host=\fIhost\fP and alternative \fIport\fP, using
|
||||
port=\fIport\fP.
|
||||
.P
|
||||
The \fB-s\fP \fIsend\fP \fIexpect\fP... \fB--\fP flag defines the health check
|
||||
script. Sending \fIsend\fP, then checks whether the response match
|
||||
the regular expression \fIexpect\fP.
|
||||
.P
|
||||
The \fB-B\fP \fIhost\fP:\fIport\fP \fIhost1\fP:\fIport1\fP... \fB--\fP is for the
|
||||
destination group. If the destination of \fIst\fP is \fIhost\fP:\fIport\fP,
|
||||
the program chooses a destination randomly from the group. The
|
||||
destination \fIhost\fP:\fIport\fP that is designated by \fB-b\fP flag and
|
||||
turned out unhealthy, is excluded from the group.
|
||||
.P
|
||||
The \fB-I\fP \fIhost\fP designates the interface used as the source
|
||||
address of the connection to the desctination.
|
||||
.P
|
||||
If the \fB-o\fP \fIn\fP or \fB-g\fP \fIn\fP flag is used, the program set
|
||||
its uid or gid to \fIn\fP respectively. If the \fB-t\fP \fIdir\fP
|
||||
flag (\fIdir\fP is a directory) is used, the program change its
|
||||
root to the directory. If the \fB-D\fP flas is used, \fBstone\fP runs
|
||||
as a daemon. The \fB-c\fP \fIdir\fP flag designates the
|
||||
directory for core dump.
|
||||
.P
|
||||
The \fB-M\fP install \fIname\fP and the \fB-M\fP remove \fIname\fP flags are
|
||||
for NT service. \fIname\fP is the service name. Start the
|
||||
service using the command: net start \fIname\fP. To install \fBstone\fP
|
||||
service as the name \fIrepeater\fP, for example:
|
||||
.P
|
||||
.RS
|
||||
C:\\>\fBstone -M install \fIrepeater\fB -C \fIC:\\stone.cfg\fR
|
||||
.br
|
||||
C:\\>\fBnet start \fIrepeater\fR
|
||||
.RE
|
||||
.P
|
||||
The \fB-q\fP \FISSL\FP and the \fB-z\fP \FISSL\FP flags are for SSL
|
||||
encryption. The \fB-q\fP \FISSL\FP is for the client mode, that is,
|
||||
when \fBstone\fP connects to the other SSL server as a SSL client.
|
||||
The \fB-z\fP \FISSL\FP if for the server mode, that is, when other SSL
|
||||
clients connect to the \fBstone\fP.
|
||||
.P
|
||||
\FISSL\FP is one of the following.
|
||||
.P
|
||||
.PD 0
|
||||
.IP default 15
|
||||
reset SSL options to the default.
|
||||
Using multiple \fIst\fP, different SSL options can
|
||||
be designated for each \fIst\fP.
|
||||
.IP verbose
|
||||
verbose mode.
|
||||
.IP verify
|
||||
require SSL certificate to the peer.
|
||||
.IP verify,once
|
||||
request a client certificate on the initial TLS/SSL
|
||||
handshake. (\fB-z\fP only)
|
||||
.IP verify,ifany
|
||||
The certificate returned (if any) is checked. (\fB-z\fP only)
|
||||
.IP verify,none
|
||||
never request SSL certificate to the peer.
|
||||
.IP crl_check
|
||||
lookup CRLs.
|
||||
.IP crl_check_all
|
||||
lookup CRLs for whole chain.
|
||||
.IP uniq
|
||||
if the serial number of peer's SSL certificate
|
||||
is different from the previous session, deny it.
|
||||
.IP re\fIn\fP=\fIregex\fP
|
||||
The certificate of the peer must satisfy the
|
||||
\fIregex\fP. \fIn\fP is the depth. re0 means the subject
|
||||
of the certificate, and re1 means the issure.
|
||||
The maximum of \fIn\fP is 9.
|
||||
.IP depth=\fIn\fP
|
||||
The maximum of the certificate chain.
|
||||
If the peer's certificate exceeds \fIn\fP, the
|
||||
verification fails. The maximum of \fIn\fP is 9.
|
||||
.IP tls1
|
||||
Just use TLSv1 protocol.
|
||||
.IP ssl3
|
||||
Just use SSLv3 protocol.
|
||||
.IP ssl2
|
||||
Just use SSLv2 protocol.
|
||||
.IP no_tls1
|
||||
Turn off TLSv1 protocol.
|
||||
.IP no_ssl3
|
||||
Turn off SSLv3 protocol.
|
||||
.IP no_ssl2
|
||||
Turn off SSLv2 protocol.
|
||||
.IP bugs
|
||||
Switch on all SSL implementation bug workarounds.
|
||||
.IP serverpref
|
||||
Use server's cipher preferences (only SSLv2).
|
||||
.IP sid_ctx=\fIstr\fP
|
||||
Set session ID context.
|
||||
.IP passfile=\fIfile\fP
|
||||
The filename of the file containing password of the key
|
||||
.IP key=\fIfile\fP
|
||||
The filename of the secret key of the certificate.
|
||||
.IP cert=\fIfile\fP
|
||||
The filename of the certificate.
|
||||
.IP CAfile=\fIfile\fP
|
||||
The filename of the certificate of the CA.
|
||||
.IP CApath=\fIdir\fP
|
||||
The directory of the certificate files.
|
||||
.IP pfx=\fIfile\fP
|
||||
The filename of the PKCS#12 bag.
|
||||
.IP cipher=\fIlist\fP
|
||||
The list of ciphers.
|
||||
.IP lb\fIn\fP=\fIm\fP
|
||||
change the destination according to the
|
||||
certificate of the peer. The number calculated
|
||||
from the matched string to the \fIn\fPth ( ... ) in
|
||||
the ``regex'' of SSL options (mod \fIm\fP) is used
|
||||
to select the destination from the destination
|
||||
group defined by \fB-B\fP flag.
|
||||
.PD
|
||||
.P
|
||||
\fIst\fP is one of the following. Multiple \fIst\fP can be
|
||||
designated, separated by \fB--\fP.
|
||||
.P
|
||||
.PD 0
|
||||
.IP (1)
|
||||
\fIhost\fP:\fIport\fP \fIsport\fP [\fIxhost\fP...]
|
||||
.IP (2)
|
||||
\fIhost\fP:\fIport\fP \fIshost\fP:\fIsport\fP [\fIxhost\fP...]
|
||||
.IP (3)
|
||||
proxy \fIsport\fP [\fIxhost\fP...]
|
||||
.IP (4)
|
||||
\fIhost\fP:\fIport\fP/http \fIrequest\fP [\fIxhost\fP...]
|
||||
.IP (5)
|
||||
\fIhost\fP:\fIport\fP/proxy \fIheader\fP [\fIxhost\fP...]
|
||||
.IP (6)
|
||||
health \fIsport\fP [\fIxhost\fP...]
|
||||
.PD
|
||||
.P
|
||||
The program repeats the connection on port \fIsport\fP to the
|
||||
other machine \fIhost\fP port \fIport\fP. If the machine, on
|
||||
which the program runs, has two or more interfaces, type (2) can
|
||||
be used to repeat the connection on the specified interface
|
||||
\fIshost\fP. You can also specify path name that begins with
|
||||
``/'' or ``./'', instead of \fIhost\fP:\fIport\fP so that the
|
||||
program handles a unix domain socket.
|
||||
.P
|
||||
Type (3) is a http proxy. Specify the machine, on which the
|
||||
program runs, and port \fIsport\fP in the http proxy settings of
|
||||
your WWW browser.
|
||||
Extentions can be added to the ``proxy'' like \fIxhost\fP/\fIext\fP.
|
||||
\fIext\fP is:
|
||||
.P
|
||||
.IP v4only
|
||||
limit the destination within IP addresses.
|
||||
.IP v6only
|
||||
limit the destination within IPv6 addresses.
|
||||
.P
|
||||
Type (4) relays stream over http request. \fIrequest\fP is the
|
||||
request specified in HTTP 1.0. In the \fIrequest\fP, \ is
|
||||
the escape character, and the following substitution occurs.
|
||||
.PP
|
||||
.RS 8
|
||||
.PD 0
|
||||
.IP \\\\n 8
|
||||
newline (0x0A)
|
||||
.IP \\\\r
|
||||
return (0x0D)
|
||||
.IP \\\\t
|
||||
tab (0x09)
|
||||
.IP \\\\\\\\
|
||||
\ itself (0x5C)
|
||||
.IP \\\\a
|
||||
the IP address of the client connecting to the \fBstone\fP.
|
||||
.IP \\\\A
|
||||
\fIIP address of the client\fP:\fIport number\fP
|
||||
.IP \\\\0
|
||||
the serial number of peer's SSL certificate.
|
||||
.IP "\\\\1 - \\\\9"
|
||||
the matched string in the ``regex'' of SSL options.
|
||||
.IP \\\\?1\fIthen\fP\\\\:\fIelse\fP\\\\/
|
||||
if \1 (\2 - \9 in a similar way) is not null,
|
||||
\fIthen\fP, otherwise \fIelse\fP.
|
||||
.PD
|
||||
.RE
|
||||
.P
|
||||
Type (5) repeats http request with \fIheader\fP in the top of
|
||||
request headers. The above escapes can be also used.
|
||||
.P
|
||||
Type (6) designates the port that other programs can check
|
||||
whether the \fBstone\fP runs `healthy' or not. Following commands are
|
||||
available to check the \fBstone\fP.
|
||||
.P
|
||||
.RS 8
|
||||
.PD 0
|
||||
.IP "HELO \fIany string\fP" 24
|
||||
returns the status of the \fBstone\fP
|
||||
.IP "LIMIT \fIvar\fP \fIn\fP"
|
||||
check the value of \fIvar\fP is
|
||||
less than \fIn\fP
|
||||
.PD
|
||||
.RE
|
||||
.P
|
||||
\fIvar\fP is one of the following:
|
||||
.P
|
||||
.RS 8
|
||||
.PD 0
|
||||
.IP PAIR 16
|
||||
the number of ``pair''
|
||||
.IP CONN
|
||||
the number of ``conn''
|
||||
.IP ESTABLISHED
|
||||
seconds passed since the last conn established
|
||||
.IP READWRITE
|
||||
seconds passed since the last read/write
|
||||
.IP ASYNC
|
||||
the number of threads
|
||||
.PD
|
||||
.RE
|
||||
.P
|
||||
The response of the \fBstone\fP is 2xx when normal, or 5xx when
|
||||
abnormal on the top of line.
|
||||
.P
|
||||
If the \fIxhost\fP are used, only machines or its IP addresses
|
||||
listed in \fIxhost\fP separated by space character can
|
||||
connect to the program and to be repeated.
|
||||
.P
|
||||
Extentions can be added to the \fIxhost\fP like
|
||||
\fIxhost\fP/\fIex\fP,\fIex\fP.... \fIex\fP is:
|
||||
.IP \fIm\fP
|
||||
You can designate the length of prefix bits of the
|
||||
netmask, so that only machines on specified. In the
|
||||
case of class C network 192.168.1.0, for example, use
|
||||
``192.168.1.0/24''.
|
||||
.IP v4
|
||||
\fIxhost\fP is resolved as the IP address.
|
||||
.IP v6
|
||||
\fIxhost\fP is resolved as the IPv6 address.
|
||||
.IP p\fIm\fP
|
||||
the data repeated by the program are dumped, only if it
|
||||
was connected by the machines specified by \fIxhost\fP. \fIm\fP
|
||||
is the dump mode, equivalent to the number of \fB-p\fP
|
||||
options.
|
||||
.P
|
||||
Use ``!'' instead of ``\fIxhost\fP'', to deny machines by following
|
||||
\fIxhost\fP.
|
||||
.P
|
||||
Extentions can be added to the \fIport\fP like
|
||||
\fIport\fP/\fIext\fP,\fIext\fP.... \fIext\fP is:
|
||||
.IP udp
|
||||
repeats UDP instead of TCP.
|
||||
.IP ssl
|
||||
forwards with encryption.
|
||||
.IP v6
|
||||
connects to the destination using IPv6.
|
||||
.IP base
|
||||
forwards with MIME base64 encoding.
|
||||
.P
|
||||
Extentions can be added to the \fIsport\fP like
|
||||
\fIsport\fP/\fIext\fP,\fIext\fP.... \fIext\fP is:
|
||||
.IP udp
|
||||
repeats UDP instead of TCP.
|
||||
.IP apop
|
||||
converts POP to APOP. The conversion is derived from
|
||||
the RSA Data Security, Inc. MD5 Message-Digest Algorithm.
|
||||
.IP ssl
|
||||
forwards with decryption.
|
||||
.IP v6
|
||||
accepts connection using IPv6. If \fIshost\fP is omitted
|
||||
like (1), IP is also acceptable.
|
||||
.IP v6only
|
||||
accepts connection using IPv6 only. Even if \fIshost\fP is
|
||||
omitted like (1), IP is not acceptable.
|
||||
.IP base
|
||||
forwards with MIME base64 decoding.
|
||||
.IP http
|
||||
relays stream over http.
|
||||
.IP ident
|
||||
identifies the owner of the incoming connection
|
||||
on the peer using ident protocol (RFC1413).
|
||||
.SH EXAMPLES
|
||||
.PD 0
|
||||
.IP \fIouter\fP\^:
|
||||
a machine in the outside of the firewall
|
||||
.IP \fIinner\fP\^:
|
||||
a machine in the inside of the firewall
|
||||
.IP \fIfwall\fP\^:
|
||||
the firewall on which the \fBstone\fP is executed
|
||||
.PD
|
||||
.TP
|
||||
\fBstone \fIouter\fB:telnet 10023\fR
|
||||
Repeats the telnet protocol to \fIouter\fP.
|
||||
Run telnet fwall 10023 on \fIinner\fR.
|
||||
.TP
|
||||
\fBstone \fIouter\fB:domain/udp domain/udp\fR
|
||||
Repeats the DNS query to \fIouter\fP.
|
||||
Run \fBnslookup -\fP \fIfwall\fP on \fIinner\fP.
|
||||
.TP
|
||||
\fBstone \fIouter\fB:ntp/udp ntp/udp\fR
|
||||
Repeats the NTP to \fIouter\fP.
|
||||
Run \fBntpdate \fIfwall\fR on \fIinner\fP.
|
||||
.TP
|
||||
\fBstone localhost:http 443/ssl\fR
|
||||
Make WWW server that supports https.
|
||||
Access \fBhttps://\fIfwall\fB/\fR using a WWW browser.
|
||||
.TP
|
||||
\fBstone localhost:telnet 10023/ssl\fR
|
||||
Make telnet server that supports SSL.
|
||||
Run \fBSSLtelnet -z ssl \fIfwall\fB 10023\fR on \fIinner\fP.
|
||||
.TP
|
||||
\fBstone proxy 8080\fR
|
||||
http proxy
|
||||
.TP
|
||||
\fBstone\fP \fIouter\fB:110/apop 110\fR
|
||||
connect to \fIinner\fP:pop using a mailer that does not
|
||||
support APOP.
|
||||
.PP
|
||||
Where \fIfwall\fP is a http proxy (port 8080):
|
||||
.TP
|
||||
\fBstone \fIfwall\fB:8080/http 10023 'POST http://\fIouter\fB:8023 HTTP/1.0'\fR
|
||||
.br
|
||||
.ns
|
||||
.TP
|
||||
\fBstone localhost:telnet 8023/http
|
||||
.nf
|
||||
Run \fBstone\fPs on \fIinner\fP and \fIouter\fP respectively.
|
||||
Relays stream over http.
|
||||
.TP
|
||||
\fBstone \fIfwall\fB:8080/proxy 9080 \'Proxy-Authorization: Basic \fIc2VuZ29rdTpoaXJvYWtp\fB\'\fR
|
||||
for browser that does not support proxy authorization.
|
||||
.fi
|
||||
.
|
||||
.SH HOMEPAGE
|
||||
The official homepage of \fBstone\fP is:
|
||||
.br
|
||||
\fIhttp://www.gcd.org/sengoku/stone/\fP
|
||||
.
|
||||
.SH COPYRIGHT
|
||||
All rights about this program \fBstone\fP are reserved by the
|
||||
original author, Hiroaki Sengoku. The program is free software;
|
||||
you can redistribute it and/or modify it under the terms of the
|
||||
\fIGNU IGeneral Public License (GPL)\fP. Furthermore you can link it
|
||||
with openssl.
|
||||
.
|
||||
.SH NO WARRANTY
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY.
|
||||
.
|
||||
.SH AUTHOR
|
||||
.nf
|
||||
Hiroaki Sengoku
|
||||
sengoku@gcd.org
|
||||
http://www.gcd.org/sengoku/
|
||||
.fi
|
455
net/stone/files/stone.1.ja
Normal file
455
net/stone/files/stone.1.ja
Normal file
|
@ -0,0 +1,455 @@
|
|||
.\" Roff format skeleton provided by Taketo Kabe <kabe@sra-tohoku.co.jp>
|
||||
.TH stone 1 "version 2.3"
|
||||
.
|
||||
.SH 名称
|
||||
stone \- Simple Repeater
|
||||
.
|
||||
.SH 書式
|
||||
.B "stone [-C \fIfile\fP] [-P \fIcommand\fP] [-Q \fIoptions\fP] [-N] [-d] [-p] [-n]"
|
||||
.br
|
||||
.B " [-u \fImax\fP] [-f \fIn\fP] [-l] [-L \fIfile\fP] [-a \fIfile\fP] [-i \fIfile\fP]"
|
||||
.br
|
||||
.B " [-X \fIn\fP] [-T \fIn\fP] [-r]"
|
||||
.br
|
||||
.B " [-x \fIport\fP[,\fIport\fP][-\fIport\fP]... \fIxhost\fP... --]"
|
||||
.br
|
||||
.B " [-s \fIsend\fP \fIexpect\fP... --]"
|
||||
.br
|
||||
.B " [-b [\fIvar\fP=\fIval\fP]... \fIn\fP \fImaster\fP:\fIport\fP \fIbackup\fP:\fIport\fP]"
|
||||
.br
|
||||
.B " [-B \fIhost\fP:\fIport\fP \fIhost1\fP:\fIport1\fP... --]"
|
||||
.br
|
||||
.B " [-I \fIhost\fP]"
|
||||
.br
|
||||
.B " [-o \fIn\fP] [-g \fIn\fP] [-t \fIdir\fP] [-D] [-c \fIdir\fP]"
|
||||
.br
|
||||
.B " [-q \fISSL\fP] [-z \fISSL\fP]"
|
||||
.br
|
||||
.B " [-M install \fIname\fP] [-M remove \fIname\fP]"
|
||||
.br
|
||||
.B " \fIst\fP [-- \fIst\fP]..."
|
||||
.
|
||||
.SH 解説
|
||||
\fBstone\fPは、アプリケーションレベルの TCP & UDP リピーターです。ファイア
|
||||
ウォールの内から外へ、あるいは外から内へ、TCP あるいは UDP を中継します。
|
||||
.P
|
||||
\fBstone\fP には以下のような特徴があります。
|
||||
.
|
||||
.TP
|
||||
.B 1. Win32 に対応している
|
||||
以前は UNIX マシンで構成されることが多かったファイアウォールです
|
||||
が、最近は WindowsNT が使われるケースが増えてきました。\fBstone\fP は
|
||||
WindowsNT あるいは Windows95 上で手軽に実行することができます。
|
||||
もちろん、Linux, FreeBSD, BSD/OS, SunOS, Solaris, HP-UX などの
|
||||
UNIX マシンでも使うことができます。
|
||||
.
|
||||
.TP
|
||||
.B 2. 単純
|
||||
わずか 8000 行 (C 言語) ですので、セキュリティホールが生じる可能
|
||||
性を最小限にできます。
|
||||
.
|
||||
.TP
|
||||
.B 3. SSL 対応
|
||||
OpenSSL (\fIhttp://www.openssl.org/\fP) を使うことにより、暗号化/復号
|
||||
して中継できます。また、クライアント認証およびサーバ認証をサポー
|
||||
トしています。さらに、認証によって得られる証明書のサブジェクトの
|
||||
一部を、中継先へ送ることもできます。
|
||||
.
|
||||
.TP
|
||||
.B 4. http proxy
|
||||
簡易型 http proxy としても使うことができます。
|
||||
.
|
||||
.TP
|
||||
.B 5. POP -> APOP 変換
|
||||
APOP に対応していないメーラと \fBstone\fP を使うことで、APOP サーバへ
|
||||
アクセスできます。
|
||||
.
|
||||
.TP
|
||||
.B 6. IPv6 対応
|
||||
IP/IPv6 変換して中継することができます。IPv6 に対応していない
|
||||
ソフトウェアを手軽に IPv6 化することが可能です。
|
||||
.
|
||||
.SH オプション
|
||||
\fB-C\fP はオプションおよび \fIst\fP をコマンドラインで指定するかわりに設
|
||||
定ファイルから読み込みます。\fB-P\fP は設定ファイルを読み込む際のプリ
|
||||
プロセッサを指定します。プリプロセッサへ与える引数は \fB-Q\fP で指定で
|
||||
きます。\fB-N\fP を指定すると、コマンドラインおよび設定ファイルを読み
|
||||
込んだ後、終了します。つまりポートを開くこと無く設定ファイルの
|
||||
チェックを行なうことができます。
|
||||
.P
|
||||
オプションとして \fB-d\fP を指定すると、デバッグレベルを増加させます。
|
||||
\fB-p\fP を指定すると中継したデータをダンプします。\fB-n\fP を指定すると、ホ
|
||||
スト名やサービス名の代わりに IP アドレスやサービス番号を表示しま
|
||||
す。
|
||||
.P
|
||||
\fB-u\fP オプションは同時に記憶できる UDP の発信元の最大数を指定します。
|
||||
デフォルトは 100 です。\fB-f\fP オプションは子プロセスの数を指定します。
|
||||
デフォルトは子プロセス無しです。
|
||||
.P
|
||||
\fB-l\fP を指定すると、エラーメッセージ等を syslog へ出力します。\fB-L\fP を
|
||||
指定すると、エラーメッセージ等を \fIfile\fP へ出力します。\fB-a\fP を指定す
|
||||
ると、アクセスログを \fIfile\fP へ出力します。\fB-i\fP は \fBstone\fP のプロセス
|
||||
ID を出力するファイルを指定します。
|
||||
.P
|
||||
\fB-X\fP は中継を行なう際のバッファの大きさを指定します。デフォルトは
|
||||
1000 バイトです。\fB-T\fP を指定すると TCP セッションのタイムアウトの
|
||||
秒数を変更できます。デフォルトは 600 (10 分) です。\fB-r\fP を指定する
|
||||
と \fIst\fP のソケットに SO_REUSEADDR を設定します。
|
||||
.P
|
||||
\fB-x\fP を指定すると http proxy の接続先を制限できます。接続先のポー
|
||||
ト番号のリスト \fIport\fP[,\fIport\fP][-\fIport\fP]... および接続先ホストの
|
||||
リスト \fIxhost\fP... を指定します。\fB-x\fP を複数指定すると、最後に指定
|
||||
したものから順に、ポート番号のリストがマッチするものを検索します。
|
||||
\fB-x\fP \fB--\fP を指定すると、それ以前のものは検索対象となりません。
|
||||
.P
|
||||
\fB-b\fP は中継先 \fImaster\fP:\fIport\fP に接続できないときのバックアップとし
|
||||
て \fIbackup\fP:\fIport\fP を指定します。すなわち \fIn\fP 秒ごとに
|
||||
\fImaster\fP:\fIport\fP に対するヘルスチェック (後述する \fB-s\fP オプションで
|
||||
設定) が成功するかチェックし、もしチェックに失敗した場合は、中継
|
||||
先を \fIbackup\fP:\fIport\fP へ変更します。\fIvar\fP として「host」を指定す
|
||||
ることにより、\fImaster\fP とは異なるホストをチェックすることができ
|
||||
ます。同様に、\fIvar\fP として「port」を指定することにより、異なるポー
|
||||
トをチェックすることができます。
|
||||
.P
|
||||
\fB-s\fP はヘルスチェックのスクリプトを設定します。\fIsend\fP を送信後、レ
|
||||
スポンスが、正規表現 \fIexpect\fP にマッチするか確認します。
|
||||
.P
|
||||
\fB-B\fP は中継先グループの指定です。中継先が \fIhost\fP:\fIport\fP である場合、
|
||||
このグループの中からランダムに一つの中継先を選んで中継します。\fB-b\fP
|
||||
オプションで設定済みの中継先で、ヘルスチェックに失敗したものは、
|
||||
選択枝から除外します。
|
||||
.P
|
||||
\fB-I\fP は中継先へ接続する際に用いるインタフェースを指定します。
|
||||
.P
|
||||
\fB-o\fP と \fB-g\fP はそれぞれユーザ ID とグループ ID を指定します。ID は数
|
||||
字のみ指定可能です。\fB-t\fP を指定すると、\fIdir\fP へ chroot します。\fB-D\fP を
|
||||
指定すると、\fBstone\fP をデーモンとして起動します。\fB-c\fP はコアダンプを
|
||||
行なうディレクトリを指定します。
|
||||
.P
|
||||
\fB-M\fP は \fBstone\fP を NT サービスとして登録/削除するためのオプションで
|
||||
す。サービス名 \fIname\fP を指定します。サービスとして登録した後、
|
||||
net start \fIname\fP コマンドを実行してサービスを開始させてください。
|
||||
例:
|
||||
.P
|
||||
.RS
|
||||
C:\\>\fBstone -M install \fIrepeater\fB -C \fIC:\\stone.cfg\fR
|
||||
.br
|
||||
C:\\>\fBnet start \fIrepeater\fR
|
||||
.RE
|
||||
.P
|
||||
\fB-q\fP および \fB-z\fP は、SSL 暗号化/復号 のオプションです。\fB-q\fP は、\fBstone\fP
|
||||
が SSL クライアントとして、他の SSL サーバへ接続するとき、すなわ
|
||||
ち中継先が SSL サーバの時の、SSL オプションです。\fB-z\fP は \fBstone\fP が
|
||||
SSL サーバとして、他の SSL クライアントからの接続を受付ける時の、
|
||||
SSL オプションです。
|
||||
.P
|
||||
\fISSL\fP は SSL オプションで、次のいずれかです。
|
||||
.P
|
||||
.PD 0
|
||||
.IP default 15
|
||||
SSL オプション指定をデフォルトに戻します。
|
||||
複数の \fIst\fP を指定する際、\fIst\fP 毎に異なる SSL オ
|
||||
プションを指定することができます。
|
||||
.IP verbose
|
||||
デバッグ用文字列をログに出力します。
|
||||
.IP verify
|
||||
SSL 接続相手に、SSL 証明書を要求します。
|
||||
.IP verify,once
|
||||
セッション開始時に一度だけ、
|
||||
SSL クライアントに証明書を要求します。(\fB-z\fP 専用)
|
||||
.IP verify,ifany
|
||||
SSL クライアントから証明書が送られてきたときのみ
|
||||
認証します。送られてこない場合は認証せずに
|
||||
セッションを開始します。(\fB-z\fP 専用)
|
||||
.IP verify,none
|
||||
SSL 接続相手に SSL 証明書を要求しません。
|
||||
.IP crl_check
|
||||
CRL をチェックします。
|
||||
.IP crl_check_all
|
||||
証明書チェーンの全てにおいて CRL をチェックします。
|
||||
.IP uniq
|
||||
SSL 接続相手の SSL 証明書のシリアル番号が前回の
|
||||
接続と異なる場合、接続を拒否します。
|
||||
.IP re\fIn\fP=\fIregex\fP
|
||||
SSL 証明書のチェーンが満たすべき正規表現を指定します。
|
||||
\fIn\fP は depth です。re0 が証明書のサブジェクト、
|
||||
re1 がその発行者を意味します。
|
||||
\fIn\fP は 9 まで指定できます。
|
||||
.IP depth=\fIn\fP
|
||||
SSL 証明書チェーンの長さの最大値を指定します。
|
||||
チェーンの長さがこの値を越えると認証が失敗します。
|
||||
\fIn\fP の最大値は 9 です。
|
||||
.IP tls1
|
||||
プロトコルとして TLSv1 を用います。
|
||||
.IP ssl3
|
||||
プロトコルとして SSLv3 を用います。
|
||||
.IP ssl2
|
||||
プロトコルとして SSLv2 を用います。
|
||||
.IP no_tls1
|
||||
プロトコルの選択枝から TLSv1 を外します。
|
||||
.IP no_ssl3
|
||||
プロトコルの選択枝から SSLv3 を外します。
|
||||
.IP no_ssl2
|
||||
プロトコルの選択枝から SSLv2 を外します。
|
||||
.IP bugs
|
||||
SSL の実装にバグがある接続相手との接続を可能にします。
|
||||
.IP serverpref
|
||||
SSL サーバの指定した暗号を用います (SSLv2 のみ)。
|
||||
.IP sid_ctx=\fIstr\fP
|
||||
SSL セッション ID コンテキストを設定します。
|
||||
.IP passfile=\fIfile\fP
|
||||
秘密鍵のパスフレーズを格納したファイルを指定します。
|
||||
.IP key=\fIfile\fP
|
||||
証明書の秘密鍵ファイルを指定します。
|
||||
.IP cert=\fIfile\fP
|
||||
証明書ファイルを指定します。
|
||||
.IP CAfile=\fIfile\fP
|
||||
認証局の証明書ファイルを指定します。
|
||||
.IP CApath=\fIdir\fP
|
||||
認証局の証明書があるディレクトリを指定します。
|
||||
.IP pfx=\fIfile\fP
|
||||
PKCS#12 ファイルを指定します。
|
||||
.IP cipher=\fIlist\fP
|
||||
暗号化アルゴリズムのリストを指定します。
|
||||
.IP lb\fIn\fP=\fIm\fP
|
||||
SSL 証明書の CN に応じて中継先を切り替えます。
|
||||
SSL オプションの re\fIn\fP= で指定した正規表現中、
|
||||
\fIn\fP 番目の ( ... ) 内の正規表現にマッチした文字
|
||||
列から算出した数値の剰余 \fIm\fP に基づいて、\fB-B\fP オプ
|
||||
ションで指定した中継先グループの中から中継先を選
|
||||
びます。
|
||||
.PD
|
||||
.P
|
||||
\fIst\fP は次のいずれかです。\fIst\fP は「\fB--\fP」で区切ることにより、複数個
|
||||
指定できます。
|
||||
.P
|
||||
.PD 0
|
||||
.IP (1)
|
||||
\fIhost\fP:\fIport\fP \fIsport\fP [\fIxhost\fP...]
|
||||
.IP (2)
|
||||
\fIhost\fP:\fIport\fP \fIshost\fP:\fIsport\fP [\fIxhost\fP...]
|
||||
.IP (3)
|
||||
proxy \fIsport\fP [\fIxhost\fP...]
|
||||
.IP (4)
|
||||
\fIhost\fP:\fIport\fP/http \fIrequest\fP [\fIxhost\fP...]
|
||||
.IP (5)
|
||||
\fIhost\fP:\fIport\fP/proxy \fIheader\fP [\fIxhost\fP...]
|
||||
.IP (6)
|
||||
health \fIsport\fP [\fIxhost\fP...]
|
||||
.PD
|
||||
.P
|
||||
\fBstone\fP を実行しているマシンのポート \fIsport\fP への接続を、他のマシ
|
||||
ン \fIhost\fP のポート \fIport\fP へ中継します。インタフェースを複数持つ
|
||||
マシンでは、(2) のようにインタフェースのアドレス \fIshost\fP を指定
|
||||
することにより、特定のインタフェースへの接続のみを転送することが
|
||||
できます。\fIhost\fP:\fIport\fP の代わりに、「/」ないし「./」から始まる
|
||||
パス名を指定することにより、UNIX ドメインソケットを扱うこともで
|
||||
きます。
|
||||
.P
|
||||
(3) は、http proxy です。WWW ブラウザの http proxy の設定で、
|
||||
\fBstone\fP を実行しているマシンおよびポート \fIsport\fP を指定します。
|
||||
「proxy」には、「/」に続けて以下の拡張子を付けることができます。
|
||||
.P
|
||||
.IP v4only
|
||||
proxy の接続先を IP アドレスに限定します。
|
||||
.IP v6only
|
||||
proxy の接続先を IPv6 アドレスに限定します。
|
||||
.P
|
||||
(4) は、http リクエストにのせて中継します。\fIrequest\fP は HTTP 1.0
|
||||
で規定されるリクエストです。リクエスト文字列中、「\\」はエスケー
|
||||
プ文字であり、次のような置き換えが行なわれます。
|
||||
.PP
|
||||
.RS 8
|
||||
.PD 0
|
||||
.IP \\\\n 8
|
||||
改行 (0x0A)
|
||||
.IP \\\\r
|
||||
復帰 (0x0D)
|
||||
.IP \\\\t
|
||||
タブ (0x09)
|
||||
.IP \\\\\\\\
|
||||
\\ (0x5C)
|
||||
.IP \\\\a
|
||||
接続元の IP アドレス
|
||||
.IP \\\\A
|
||||
「接続元の IP アドレス」:「ポート番号」
|
||||
.IP \\\\0
|
||||
SSL 証明書のシリアル番号
|
||||
.IP "\\\\1 - \\\\9"
|
||||
SSL オプションの re\fIn\fP= で指定した正規表現中、
|
||||
( ... ) 内の正規表現にマッチした文字列
|
||||
.IP \\\\?1\fIthen\fP\\\\:\fIelse\fP\\\\/
|
||||
もし \\1 (\\2 - \\9 も同様) の文字列が、空文字列で
|
||||
なければ \fIthen\fP、空文字列であれば \fIelse\fP
|
||||
.PD
|
||||
.RE
|
||||
.P
|
||||
(5) は、http リクエストヘッダの先頭に \fIheader\fP を追加して中継し
|
||||
ます。(4) と同様のエスケープを使うことができます。
|
||||
.P
|
||||
(6) は、\fBstone\fP が正常に動作しているか検査するためのポートの指定で
|
||||
す。\fIsport\fP で指定したポートに接続して以下のコマンドを送信すると、
|
||||
\fBstone\fP の状態が返されます。
|
||||
.P
|
||||
.RS 8
|
||||
.PD 0
|
||||
.IP "HELO \fI任意の文字列\fP" 24
|
||||
\fBstone\fP の状態の一覧を返す
|
||||
.IP "LIMIT \fIvar\fP \fIn\fP"
|
||||
変数 \fIvar\fP の値が \fIn\fP 未満か調べる
|
||||
.PD
|
||||
.RE
|
||||
.P
|
||||
\fIvar\fP は次のうちのいずれかです。
|
||||
.P
|
||||
.RS 8
|
||||
.PD 0
|
||||
.IP PAIR 16
|
||||
pair の個数
|
||||
.IP CONN
|
||||
conn の個数
|
||||
.IP ESTABLISHED
|
||||
最後に接続確立してからの秒数
|
||||
.IP READWRITE
|
||||
最後に read or write してからの秒数
|
||||
.IP ASYNC
|
||||
スレッドの本数
|
||||
.PD
|
||||
.RE
|
||||
.P
|
||||
\fBstone\fP からの応答は、正常時は 200 番台、異常時は 500 番台の数値が
|
||||
先頭につきます。
|
||||
.P
|
||||
\fIxhost\fP を列挙することにより、\fBstone\fP へ接続可能なマシンを制限する
|
||||
ことができます。マシン名、あるいはその IP アドレスを空白で区切っ
|
||||
て指定すると、そのマシンからの接続のみを中継します。
|
||||
.P
|
||||
\fIxhost\fP には、「/」に続けて以下の拡張子を付けることができます。
|
||||
複数の拡張子を指定するときは「,」で区切ります。
|
||||
.IP \fIm\fP
|
||||
ネットワーク・マスクのビット数を指定することにより、特定
|
||||
のネットワークのマシンからの接続を許可することができます。
|
||||
例えば、クラス C のネットワーク 192.168.1.0 の場合は、
|
||||
「192.168.1.0/24」と指定します。
|
||||
.IP v4
|
||||
\fIxhost\fP を IP アドレスとして扱います。
|
||||
.IP v6
|
||||
\fIxhost\fP を IPv6 アドレスとして扱います。
|
||||
.IP p\fIm\fP
|
||||
\fIxhost\fP からの接続のみ、中継したデータをダンプします。
|
||||
\fIm\fP はダンプ方法の指定です。\fB-p\fP オプションの個数に相当し
|
||||
ます。
|
||||
.P
|
||||
\fIxhost\fP の代わりに「!」を指定すると、後続の \fIxhost\fP は接続を拒否
|
||||
するマシンの指定になります。
|
||||
.P
|
||||
\fIport\fP には、「/」に続けて以下の拡張子を付けることができます。
|
||||
複数の拡張子を指定するときは「,」で区切ります。
|
||||
.IP udp
|
||||
TCP を中継する代わりに、UDP を中継します。
|
||||
.IP ssl
|
||||
SSL で暗号化して中継します。
|
||||
.IP v6
|
||||
中継先へ IPv6 接続します。
|
||||
.IP base
|
||||
MIME base64 で符号化して中継します。
|
||||
.P
|
||||
\fIsport\fP には、「/」に続けて以下の拡張子を付けることができます。
|
||||
複数の拡張子を指定するときは「,」で区切ります。
|
||||
.IP udp
|
||||
TCP を中継する代わりに、UDP を中継します。
|
||||
.IP apop
|
||||
POP を APOP へ変換して中継します。
|
||||
変換には RSA Data Security 社の MD5 Message-Digest アル
|
||||
ゴリズムを使用します。
|
||||
.IP ssl
|
||||
SSL を復号して中継します。
|
||||
.IP v6
|
||||
IPv6 接続を受付けます。(1) のようにインタフェースの
|
||||
アドレス \fIshost\fP を指定しない場合は、IP 接続も受付けるこ
|
||||
とができます。
|
||||
.IP v6only
|
||||
IPv6 接続のみを受付けます。(1) のようにインタフェースの
|
||||
アドレス \fIshost\fP を指定しない場合も、IP 接続を受付けるこ
|
||||
とはありません。
|
||||
.IP base
|
||||
MIME base64 を復号して中継します。
|
||||
.IP http
|
||||
http リクエストヘッダを取り除いて中継します。
|
||||
.IP ident
|
||||
接続を受付けるときに接続元に対し ident プロトコル
|
||||
(RFC1413) を使ってユーザ名を照会します。
|
||||
.SH 例
|
||||
.PD 0
|
||||
.IP \fIouter\fP\^:
|
||||
ファイアウォールの外側にあるマシン
|
||||
.IP \fIinner\fP\^:
|
||||
ファイアウォールの内側にあるマシン
|
||||
.IP \fIfwall\fP\^:
|
||||
ファイアウォール. このマシン上で \fBstone\fP を実行
|
||||
.PD
|
||||
.TP
|
||||
\fBstone \fIouter\fB:telnet 10023\fR
|
||||
\fIouter\fP へ telnet プロトコルを中継
|
||||
\fIinner\fP で telnet fwall 10023 を実行
|
||||
.TP
|
||||
\fBstone \fIouter\fB:domain/udp domain/udp\fR
|
||||
DNS 問い合わせを \fIouter\fP へ中継
|
||||
\fIinner\fP で \fBnslookup -\fP \fIfwall\fP を実行
|
||||
.TP
|
||||
\fBstone \fIouter\fB:ntp/udp ntp/udp\fR
|
||||
\fIouter\fP へ NTP を中継
|
||||
\fIinner\fP で \fBntpdate \fIfwall\fR を実行
|
||||
.TP
|
||||
\fBstone localhost:http 443/ssl\fR
|
||||
WWW サーバを https 対応にする
|
||||
WWW ブラウザで \fBhttps://\fIfwall\fB/\fR をアクセス
|
||||
.TP
|
||||
\fBstone localhost:telnet 10023/ssl\fR
|
||||
telnet を SSL 化
|
||||
\fIinner\fP で \fBSSLtelnet -z ssl \fIfwall\fB 10023\fR を実行
|
||||
.TP
|
||||
\fBstone proxy 8080\fR
|
||||
http proxy
|
||||
.TP
|
||||
\fBstone\fP \fIouter\fB:110/apop 110\fR
|
||||
APOP に対応していないメーラで \fIinner\fP:pop へ接続
|
||||
.PP
|
||||
\fIfwall\fP が http proxy (port 8080) である時:
|
||||
.TP
|
||||
\fBstone \fIfwall\fB:8080/http 10023 'POST http://\fIouter\fB:8023 HTTP/1.0'\fR
|
||||
.br
|
||||
.ns
|
||||
.TP
|
||||
\fBstone localhost:telnet 8023/http
|
||||
.nf
|
||||
\fIinner\fP と \fIouter\fP でそれぞれ \fBstone\fP を実行
|
||||
http 上でパケットを中継
|
||||
.TP
|
||||
\fBstone \fIfwall\fB:8080/proxy 9080 \'Proxy-Authorization: Basic \fIc2VuZ29rdTpoaXJvYWtp\fB\'\fR
|
||||
proxy 認証に対応していないブラウザ用
|
||||
.fi
|
||||
.
|
||||
.SH ホームページ
|
||||
\fBstone\fP の公式ホームページは次の URL です。
|
||||
.br
|
||||
\fIhttp://www.gcd.org/sengoku/stone/Welcome.ja.html\fP
|
||||
.
|
||||
.SH 著作権
|
||||
この \fBstone\fP に関する全ての著作権は、原著作者である仙石浩明が所有
|
||||
します。この \fBstone\fP は、\fIGNU General Public License (GPL)\fP に準ずる
|
||||
フリーソフトウェアです。個人的に使用する場合は、改変・複製に制限
|
||||
はありません。配布する場合は GPL に従って下さい。また、openssl と
|
||||
リンクして使用することを許可します。
|
||||
.
|
||||
.SH 無保証
|
||||
この \fBstone\fP は無保証です。この \fBstone\fP を使って生じたいかなる損害に
|
||||
対しても、原著作者は責任を負いません。詳しくは \fIGPL\fP を参照して下
|
||||
さい。
|
||||
.
|
||||
.SH 著者
|
||||
.nf
|
||||
仙石 浩明
|
||||
sengoku@gcd.org
|
||||
http://www.gcd.org/sengoku/
|
||||
.fi
|
6
net/stone/files/stone.cnf
Normal file
6
net/stone/files/stone.cnf
Normal file
|
@ -0,0 +1,6 @@
|
|||
# options
|
||||
-dd
|
||||
|
||||
# args
|
||||
asaogw:23 30023 --
|
||||
localhost:10080/http "$HOST:5902" 'CONNECT localhost:5901'
|
59
net/stone/files/stone.sh.in
Normal file
59
net/stone/files/stone.sh.in
Normal file
|
@ -0,0 +1,59 @@
|
|||
#!/bin/sh
|
||||
|
||||
# PROVIDE: stone
|
||||
# REQUIRE: DAEMON
|
||||
# BEFORE: LOGIN
|
||||
# KEYWORD: shutdown
|
||||
#
|
||||
# Add the following line to /etc/rc.conf to enable stone:
|
||||
# stone_enable (bool): Set it to "YES" to enable stone.
|
||||
# Default: NO
|
||||
|
||||
# Add at least one of the followings to /etc/rc.conf to give rules to stone:
|
||||
# stone_flags (str): See stone(1).
|
||||
# Default: "" (-D will be added automatically)
|
||||
# stone_conffile (str): Stone config file
|
||||
# Default: ""
|
||||
# You can find an example in
|
||||
# %%PREFIX%%/share/examples/stone/
|
||||
#
|
||||
|
||||
. %%RC_SUBR%%
|
||||
|
||||
name="stone"
|
||||
rcvar=`set_rcvar`
|
||||
|
||||
command="%%PREFIX%%/bin/stone"
|
||||
start_precmd="stone_precmd"
|
||||
restart_precmd="stone_precmd"
|
||||
|
||||
stone_enable="NO"
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
stone_precmd()
|
||||
{
|
||||
if [ -z "${stone_flags}" -a -z "${stone_conffile}" ]; then
|
||||
warn "set at least stone_flags or stone_conffile."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# doesn't use required_files because stone accepts only one conffile
|
||||
if [ -n "${stone_conffile}" ]; then
|
||||
if [ ! -r "${stone_conffile}" ]; then
|
||||
warn "${stone_conffile} is not readable."
|
||||
if [ -n "$stone_conffile" -a -n "$rc_force" ]; then
|
||||
warn "start without ${stone_conffile} anyway."
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
rc_flags="-C ${stone_conffile} ${rc_flags}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# make sure daemonize option will be given
|
||||
rc_flags="-D ${rc_flags}"
|
||||
}
|
||||
|
||||
run_rc_command "$1"
|
4
net/stone/pkg-plist
Normal file
4
net/stone/pkg-plist
Normal file
|
@ -0,0 +1,4 @@
|
|||
@unexec if cmp -s %D/etc/stone.cnf %D/etc/stone.cnf.sample; then rm -f %D/etc/stone.cnf; fi
|
||||
etc/stone.cnf.sample
|
||||
@exec [ -f %B/stone.cnf ] || cp %B/%f %B/stone.cnf
|
||||
bin/stone
|
Loading…
Reference in a new issue