167 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.TH SERV.ACCESS 5
 | 
						|
.SH NAME
 | 
						|
serv.access \- Internet service access list
 | 
						|
.SH SYNOPSIS
 | 
						|
.B /etc/serv.access
 | 
						|
.SH DESCRIPTION
 | 
						|
.de SP
 | 
						|
.if t .sp 0.4
 | 
						|
.if n .sp
 | 
						|
..
 | 
						|
The
 | 
						|
.B serv.access
 | 
						|
file contains a list of rules that guide the access checks made by the
 | 
						|
.BR servxcheck (3)
 | 
						|
function.  The file is a text file containing entries that look as follows:
 | 
						|
.PP
 | 
						|
.RS
 | 
						|
.I service1 service2
 | 
						|
.RB ... :
 | 
						|
.I check1 check2
 | 
						|
.RB ... ;
 | 
						|
.RE
 | 
						|
.PP
 | 
						|
Each of the service names is a service name from the
 | 
						|
.B /etc/services
 | 
						|
file.  The same names are used in the
 | 
						|
.B /etc/inetd.conf
 | 
						|
configuration file that guides
 | 
						|
.BR inetd (8).
 | 
						|
.PP
 | 
						|
The checks may look as follows:
 | 
						|
.PP
 | 
						|
.BI +
 | 
						|
.br
 | 
						|
.BI -
 | 
						|
.RS
 | 
						|
Allow all, or allow none.  Used to explicitly set the initial state.
 | 
						|
.RE
 | 
						|
.PP
 | 
						|
.BI + name
 | 
						|
.RS
 | 
						|
Grant access to one of the services if the host name of the remote system
 | 
						|
matches
 | 
						|
.BR name .
 | 
						|
.RE
 | 
						|
.SP
 | 
						|
.BI \- name
 | 
						|
.RS
 | 
						|
Deny access to one of the services if the host name of the remote system
 | 
						|
matches
 | 
						|
.BR name .
 | 
						|
.RE
 | 
						|
.PP
 | 
						|
.BI + ipaddr
 | 
						|
.br
 | 
						|
.BI \- ipaddr
 | 
						|
.br
 | 
						|
.BI + netaddr / len
 | 
						|
.br
 | 
						|
.BI \- netaddr / len
 | 
						|
.RS
 | 
						|
Grants or denies access to a remote host with IP address
 | 
						|
.IR ipaddr ,
 | 
						|
or the remote host whose IP address is within the network
 | 
						|
.IR netaddr .
 | 
						|
.I Len
 | 
						|
tells the number of bits used for the network address, i.e. the top
 | 
						|
.I len
 | 
						|
bits of the network address must equal the host address.
 | 
						|
.RE
 | 
						|
.PP
 | 
						|
.BR log
 | 
						|
.RS
 | 
						|
This is not a check, but a flag that instruct
 | 
						|
.B servxcheck()
 | 
						|
to log the result of the access check whether it succeeds or not to
 | 
						|
.BR /usr/adm/log .
 | 
						|
By default only failure is logged.
 | 
						|
.RE
 | 
						|
.PP
 | 
						|
The first "+" or "\-" access check sets the tone.  Read it as "access denied
 | 
						|
unless +...", or "access granted unless \-...".  An access check will
 | 
						|
therefore almost always start with a "+" check.  To make the initial state
 | 
						|
clear you can start with a lone "+" or "\-".  Checks are done from left
 | 
						|
to right.  A check that doesn't match does not change the outcome.  A check
 | 
						|
that can't change the outcome is skipped.
 | 
						|
.PP
 | 
						|
Both the service and the host names may contain the
 | 
						|
.B "\(**"
 | 
						|
wildcard that matches any number of characters including none.  Letters are
 | 
						|
compared ignoring case.  A service name may appear in more than one rule,
 | 
						|
but a service mentioned explicitly is not matched by wildcard patterns in
 | 
						|
later rules.
 | 
						|
.PP
 | 
						|
A check for a hostname causes
 | 
						|
.B servxcheck()
 | 
						|
to do a reverse lookup on the IP address of the remote host to find its
 | 
						|
name.  This name is then looked up to find the host's IP address(es).
 | 
						|
If those lookups fail then all
 | 
						|
.BI \- name
 | 
						|
checks cause access to be denied, and no
 | 
						|
.BI + name
 | 
						|
check grants access.
 | 
						|
The DNS lookup failures may be a
 | 
						|
misconfiguration, but could indicate a break-in attempt from a badly
 | 
						|
maintained host.  You can use a simple "+*" in an otherwise empty list to
 | 
						|
just deny misconfigured hosts.
 | 
						|
.PP
 | 
						|
An IP or network address check is simply done on the remote hosts IP
 | 
						|
address.  Such a check has no overhead, but a
 | 
						|
.B log
 | 
						|
flag will cause a reverse lookup anyway.
 | 
						|
.PP
 | 
						|
Comments start with "#" and continue until end of line.
 | 
						|
.SH EXAMPLES
 | 
						|
Example access file on a machine that offers most services only to hosts within
 | 
						|
the cs.vu.nl domain, and news (nntp) only to two machines and a specific
 | 
						|
network.
 | 
						|
.PP
 | 
						|
.RS
 | 
						|
.nf
 | 
						|
.ta +2.2i +.4i
 | 
						|
# Service	# Access list
 | 
						|
login shell:	+*.cs.vu.nl log;
 | 
						|
telnet pop smtp finger:	+ log;
 | 
						|
nntp:	+flotsam.cs.vu.nl +jetsam.cs.vu.nl
 | 
						|
		+172.16.102.0/24 log;
 | 
						|
*:	+*.cs.vu.nl;
 | 
						|
.fi
 | 
						|
.RE
 | 
						|
.PP
 | 
						|
More paranoid example that limits all services by default, but allows ftp and
 | 
						|
http to the world:
 | 
						|
.PP
 | 
						|
.RS
 | 
						|
.nf
 | 
						|
.ta +2.2i +.4i
 | 
						|
# Service	# Access list
 | 
						|
ftp http:	+;
 | 
						|
smtp finger:	+ log;
 | 
						|
nntp:	+flotsam.cs.vu.nl +jetsam.cs.vu.nl
 | 
						|
		+172.16.102.0/24 log;
 | 
						|
*:	+*.cs.vu.nl log;
 | 
						|
.fi
 | 
						|
.RE
 | 
						|
.PP
 | 
						|
(Note that the last rule doesn't match any of the services mentioned
 | 
						|
explicitly earlier.)
 | 
						|
.SH FILES
 | 
						|
.TP 25n
 | 
						|
.B /etc/serv.access
 | 
						|
The service access check file.
 | 
						|
.SH "SEE ALSO"
 | 
						|
.BR servxcheck (3),
 | 
						|
.BR services (5),
 | 
						|
.BR inetd.conf (5).
 | 
						|
.SH NOTES
 | 
						|
It may be wise not to put checks on telnet.  It is reasonably secure, since
 | 
						|
it always requires a password, and your only way in if things are seriously
 | 
						|
hosed.
 | 
						|
.SH BUGS
 | 
						|
IP and DNS based access checks will stop most crackers, but not the really
 | 
						|
determined ones.  Luckily MINIX 3 is sufficiently strange to thwart the well
 | 
						|
known cracking schemes.  But don't ever allow yourself to feel secure.
 | 
						|
.SH AUTHOR
 | 
						|
Kees J. Bot <kjb@cs.vu.nl>
 |