freebsd-dev/usr.sbin/sliplogin/sliplogin.8

312 lines
9.0 KiB
Groff

.\" Copyright (c) 1990, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)sliplogin.8 8.2 (Berkeley) 1/5/94
.\" $FreeBSD$
.\"
.Dd January 5, 1994
.Dt SLIPLOGIN 8
.Os
.Sh NAME
.Nm sliplogin
.Nd attach a serial line network interface
.Sh SYNOPSIS
.Nm
.Op Ar loginname Op Ar device
.Sh DESCRIPTION
.Nm Sliplogin
is used to turn the terminal line on standard input (or
.Ar device )
into a Serial Line IP
.Pq Tn SLIP
link to a remote host. To do this, the program
searches the file
.Pa /etc/sliphome/slip.hosts
for an entry matching
.Ar loginname
(which defaults to the current login name if omitted).
If a matching entry is found, the line is configured appropriately
for slip (8-bit transparent i/o) and converted to
.Tn SLIP
line discipline using the optional line discipline parameters.
.Pp
The optional line discipline parameters consist of one or more of
the following;
.Sq normal ,
.Sq compress ,
.Sq noicmp ,
or
.Sq autocomp
which correspond respectively to
.Sq use normal line discipline
(no header compression),
.Sq enable VJ header compression ,
.Sq throw away ICMP packets ,
and
.Sq auto enable VJ header compression
(only if the remote end of the link also supports it).
.Pp
Then a shell script is invoked to initialize the slip
interface with the appropriate local and remote
.Tn IP
address,
netmask, etc.
.Pp
The usual initialization script is
.Pa /etc/sliphome/slip.login
but, if particular hosts need special initialization, the file
.Pa /etc/sliphome/slip.login. Ns Ar loginname
will be executed instead if it exists.
The script is invoked with the parameters
.Bl -tag -width slipunit
.It Em slipunit
The unit number of the slip interface assigned to this line. E.g.,
.Sy 0
for
.Sy sl0 .
.It Em speed
The speed of the line.
.It Em args
The arguments from the
.Pa /etc/sliphome/slip.hosts
entry, in order starting with
.Ar loginname .
.El
.Pp
Only the super-user may attach a network interface. The interface is
automatically detached when the other end hangs up or the
.Nm
process dies. If the kernel slip
module has been configured for it, all routes through that interface will
also disappear at the same time. If there is other processing a site
would like done on hangup, the file
.Pa /etc/sliphome/slip.logout
or
.Pa /etc/sliphome/slip.logout. Ns Ar loginname
is executed if it exists. It is given the same arguments as the login script.
.Ss Format of /etc/sliphome/slip.hosts
Comments (lines starting with a `#') and blank lines (or started
with space) are ignored.
Other lines must start with a
.Ar loginname
but the remaining arguments can be whatever is appropriate for the
.Pa slip.login
file that will be executed for that name.
Arguments are separated by white space and follow normal
.Xr sh 1
quoting conventions (however,
.Ar loginname
cannot be quoted).
Usually, lines have the form
.Bd -literal -offset indent
loginname local-address remote-address netmask opt-args
.Ed
.Pp
where
.Em local-address
and
.Em remote-address
are the IP host names or addresses of the local and remote ends of the
slip line and
.Em netmask
is the appropriate IP netmask. These arguments are passed
directly to
.Xr ifconfig 8 .
.Em Opt-args
are optional arguments used to configure the line.
.Sh FreeBSD Additions
An additional SLIP configuration file (if present) is
.Pa /etc/sliphome/slip.slparms .
If particular hosts need different configurations, the file
.Pa /etc/sliphome/slip.slparms. Ns Ar loginname
will be parsed instead if it exists.
.Ss Format of /etc/sliphome/slip.slparms*
Comments (lines starting with a `#') and blank lines (or started with
space) are ignored.
This file contains from one to three numeric parameters separated with spaces,
in order:
.Ar keepalive ,
.Ar outfill
and
.Ar slunit .
.Bl -tag -width keepalive
.It Ar keepalive
Set SLIP "keep alive" timeout in seconds.
If FRAME_END is not received in
this amount of time,
.Nm
closes the line and exits.
The default value is no timeout (zero).
.It Ar outfill
Set SLIP "out fill" timeout in seconds.
It forces at least one FRAME_END
to be sent during this time period, which is necessary for the "keep alive"
timeout on the remote side.
The default value is no timeout (zero).
.It Ar slunit
Set the SLIP unit number directly.
Use with caution, because no check is made
for two interfaces with same number.
By default sliplogin dynamically assigns the unit number.
.El
.Pp
If latter two parameters are omitted, they will not affect the
corresponding SLIP configuration.
If any of first two parameters is equal to zero, it will not affect
the corresponding SLIP configuration.
.Sh EXAMPLES
The normal use of
.Nm
is to create a
.Pa /etc/passwd
entry for each legal, remote slip site with
.Nm
as the shell for that entry. E.g.,
.Bd -literal
Sfoo:ikhuy6:2010:1:slip line to foo:/tmp:/usr/sbin/sliplogin
.Ed
.Pp
(Our convention is to name the account used by remote host
.Ar hostname
as
.Em Shostname . )
Then an entry is added to
.Pa slip.hosts
that looks like:
.Pp
.Bd -literal -offset indent -compact
Sfoo `hostname` foo netmask
.Ed
.Pp
where
.Em `hostname`
will be evaluated by
.Xr sh
to the local host name and
.Em netmask
is the local host IP netmask.
.Pp
Note that
.Nm
must be setuid to root and, while not a security hole, moral defectives
can use it to place terminal lines in an unusable state and/or deny
access to legitimate users of a remote slip line. To prevent this,
.Nm
is installed as user
.Em root ,
group
.Em network
and mode 4550 so that only members of group
.Em network
may run
.Nm .
The system administrator should make sure that all legitimate users
are a member of the correct group.
.Sh DIAGNOSTICS
.Nm Sliplogin
logs various information to the system log daemon,
.Xr syslogd 8 ,
with a facility code of
.Em daemon .
The messages are listed here, grouped by severity level.
.Pp
.Sy Error Severity
.Bl -tag -width Ds -compact
.It Sy ioctl (TCGETS): Em reason
A
.Dv TCGETS
.Fn ioctl
to get the line parameters failed.
.Pp
.It Sy ioctl (TCSETS): Em reason
A
.Dv TCSETS
.Fn ioctl
to set the line parameters failed.
.Pp
.It Sy /etc/sliphome/slip.hosts: Em reason
The
.Pa /etc/sliphome/slip.hosts
file could not be opened.
.Pp
.It Sy access denied for Em user
No entry for
.Em user
was found in
.Pa /etc/sliphome/slip.hosts .
.El
.Pp
.Sy Notice Severity
.Bl -tag -width Ds -compact
.It Sy "attaching slip unit" Em unit Sy for Ar loginname
.Tn SLIP
unit
.Em unit
was successfully attached.
.El
.Sh FILES
.Bl -tag -width indent
.It Pa /etc/sliphome/slip.hosts
list of host login names and parameters.
.It Pa /etc/sliphome/slip.login
script executed when a connection is made.
.It Pa /etc/sliphome/slip.login. Ns Ar loginname
script executed when a connection is made by
.Ar loginname .
.It Pa /etc/sliphome/slip.logout
script executed when a connection is lost.
.It Pa /etc/sliphome/slip.logout. Ns Ar loginname
script executed when a connection is lost by
.Ar loginname .
.It Pa /etc/sliphome/slip.slparms
extra parameters file.
.It Pa /etc/sliphome/slip.slparms. Ns Ar loginname
extra parameters file for
.Ar loginname .
.It Pa /var/run/ Ns Ar ttyXn Ns Pa .if
contains the name of the network interface used by the sliplogin process on
.Ar ttyXn .
.It Pa /var/run/ Ns Ar slX Ns Pa .pid
contains the PID of the sliplogin process which is using interface
.Ar slX .
.El
.Sh SEE ALSO
.Xr slattach 8 ,
.Xr syslogd 8
.Pp
.Pa /usr/share/examples/sliplogin
.Sh HISTORY
The
.Nm
command
appeared in
.Bx 4.3 Reno .