📄 readme
字号:
@(#) README 1.30 97/03/21 19:27:21This is the 7.6 version of the TCP/IP daemon wrapper package.Thank you for using this program. If you like it, send me a postcard.My postal address is at the bottom of this file.Read the BLURB file for a brief summary of what is new. The CHANGESfile gives a complete account of differences with respect to previousreleases.Announcements of new releases of this software are posted to Usenet(comp.security.unix, comp.unix.admin), to the cert-tools mailing list,and to a dedicated mailing list. You can subscribe to the dedicatedmailing list by sending an email message to majordomo@wzv.win.tue.nlwith in the body (not subject): subscribe tcp-wrappers-announce.Table of contents----------------- 1 - Introduction 2 - Disclaimer 3 - Tutorials 3.1 - How it works 3.2 - Where the logging information goes 4 - Features 4.1 - Access control 4.2 - Host name spoofing 4.3 - Host address spoofing 4.4 - Client username lookups 4.5 - Language extensions 4.6 - Multiple ftp/gopher/www archives on one host 4.7 - Banner messages 4.8 - Sequence number guessing 5 - Other works 5.1 - Related documents 5.2 - Related software 6 - Limitations 6.1 - Known wrapper limitations 6.2 - Known system software bugs 7 - Configuration and installation 7.1 - Easy configuration and installation 7.2 - Advanced configuration and installation 7.3 - Daemons with arbitrary path names 7.4 - Building and testing the access control rules 7.5 - Other applications 8 - Acknowledgements1 - Introduction----------------With this package you can monitor and filter incoming requests for theSYSTAT, FINGER, FTP, TELNET, RLOGIN, RSH, EXEC, TFTP, TALK, and othernetwork services.It supports both 4.3BSD-style sockets and System V.4-style TLI. Praiseyourself lucky if you don't know what that means.The package provides tiny daemon wrapper programs that can be installedwithout any changes to existing software or to existing configurationfiles. The wrappers report the name of the client host and of therequested service; the wrappers do not exchange information with theclient or server applications, and impose no overhead on the actualconversation between the client and server applications.Optional features are: access control to restrict what systems canconnect to what network daemons; client user name lookups with the RFC931 etc. protocol; additional protection against hosts that pretend tohave someone elses host name; additional protection against hosts thatpretend to have someone elses host address.The programs are very portable. Build procedures are provided for manycommon (and not so common) environments, and guidelines are provided incase your environment is not among them.Requirements are that network daemons are spawned by a super serversuch as the inetd; a 4.3BSD-style socket programming interface and/orSystem V.4-style TLI programming interface; and the availability of asyslog(3) library and of a syslogd(8) daemon. The wrappers should runwithout modification on any system that satisfies these requirements.Workarounds have been implemented for several common bugs in systemssoftware.What to do if this is your first encounter with the wrapper programs:1) read the tutorial sections for an introduction to the relevantconcepts and terminology; 2) glance over the security feature sectionsin this document; 3) follow the installation instructions (easy oradvanced). I recommend that you first use the default security featuresettings. Run the wrappers for a few days to become familiar withtheir logs, before doing anything drastic such as cutting off access orinstalling booby traps.2 - Disclaimer--------------The wrapper programs rely on source address information obtained fromnetwork packets. This information is provided by the client host. It isnot 100 percent reliable, although the wrappers do their best to exposeforgeries.In the absence of cryptographic protection of message contents, and ofcryptographic authentication of message originators, all data from thenetwork should be treated with sound scepticism.THIS RESTRICTION IS BY NO MEANS SPECIFIC TO THE TCP/IP PROTOCOLS.3 - Tutorials-------------The tutorial sections give a gentle introduction to the operation ofthe wrapper programs, and introduce some of the terminology that isused in the remainder of the document: client, server, the inetd andsyslogd daemons, and their configuration files.3.1 - How it works------------------Almost every application of the TCP/IP protocols is based on a client-server model. For example, when a user invokes the telnet command toconnect to one of your systems, a telnet server process is executed onthe target host. The telnet server process connects the user to a loginprocess. A few examples of client and server programs are shown in thetable below: client server application -------------------------------- telnet telnetd remote login ftp ftpd file transfer finger fingerd show usersThe usual approach is to run one single daemon process that waits forall kinds of incoming network connections. Whenever a connection isestablished, this daemon (usually called inetd) runs the appropriateserver program and goes back to sleep, waiting for other connections.The wrapper programs rely on a simple, but powerful mechanism. Insteadof directly running the desired server program, the inetd is trickedinto running a small wrapper program. The wrapper logs the client hostname or address and performs some additional checks. When all is well,the wrapper executes the desired server program and goes away.The wrapper programs have no interaction with the client user (or withthe client process). Nor do the wrappers interact with the serverapplication. This has two major advantages: 1) the wrappers areapplication-independent, so that the same program can protect manykinds of network services; 2) no interaction also means that thewrappers are invisible from outside (at least for authorized users).Another important property is that the wrapper programs are active onlywhen the initial contact between client and server is established. Oncea wrapper has done its work there is no overhead on the client-serverconversation.The simple mechanism has one major drawback: the wrappers go away afterthe initial contact between client and server processes, so thewrappers are of little use with network daemons that service more thanone client. The wrappers would only see the first client attempt tocontact such a server. The NFS mount daemon is a typical example of adaemon that services requests from multiple clients. See the section onrelated software for ways to deal with such server programs.There are two ways to use the wrapper programs:1) The easy way: move network daemons to some other directory and fill the resulting holes with copies of the wrapper programs. This approach involves no changes to system configuration files, so there is very little risk of breaking things.2) The advanced way: leave the network daemons alone and modify the inetd configuration file. For example, an entry such as: tftp dgram udp wait root /usr/etc/tcpd in.tftpd -s /tftpboot When a tftp request arrives, inetd will run the wrapper program (tcpd) with a process name `in.tftpd'. This is the name that the wrapper will use when logging the request and when scanning the optional access control tables. `in.tftpd' is also the name of the server program that the wrapper will attempt to run when all is well. Any arguments (`-s /tftpboot' in this particular example) are transparently passed on to the server program.For an account of the history of the wrapper programs, with real-lifeexamples, see the section below on related documents.3.2 - Where the logging information goes----------------------------------------The wrapper programs send their logging information to the syslogdaemon (syslogd). The disposition of the wrapper logs is determined bythe syslog configuration file (usually /etc/syslog.conf). Messages arewritten to files, to the console, or are forwarded to a @loghost. Somesyslogd versions can even forward messages down a |pipeline.Older syslog implementations (still found on Ultrix systems) onlysupport priority levels ranging from 9 (debug-level messages) to 0(alerts). All logging information of the specified priority level ormore urgent is written to the same destination. In the syslog.conffile, priority levels are specified in numerical form. For example, 8/usr/spool/mqueue/syslogcauses all messages with priority 8 (informational messages), andanything that is more urgent, to be appended to the file/usr/spool/mqueue/syslog.Newer syslog implementations support message classes in addition topriority levels. Examples of message classes are: mail, daemon, authand news. In the syslog.conf file, priority levels are specified withsymbolic names: debug, info, notice, ..., emerg. For example, mail.debug /var/log/syslogcauses all messages of class mail with priority debug (or more urgent)to be appended to the /var/log/syslog file.By default, the wrapper logs go to the same place as the transactionlogs of the sendmail daemon. The disposition can be changed by editingthe Makefile and/or the syslog.conf file. Send a `kill -HUP' to thesyslogd after changing its configuration file. Remember that syslogd,just like sendmail, insists on one or more TABs between the left-handside and the right-hand side expressions in its configuration file.Solaris 2.x note: the syslog daemon depends on the m4 macro processor.The m4 program is installed as part of the software developer packages.Trouble shooting note: when the syslogging does not work as expected,run the program by hand (`syslogd -d') and see what really happens.4 - Features------------4.1 - Access control--------------------When compiled with -DHOSTS_ACCESS, the wrapper programs support asimple form of access control. Access can be controlled per host, perservice, or combinations thereof. The software provides hooks for theexecution of shell commands when an access control rule fires; thisfeature may be used to install "booby traps". For details, see thehosts_access.5 manual page, which is in `nroff -man' format. A latersection describes how you can test your access control rules.Access control can also be used to connect clients to the "right"service. What is right may depend on the requested service, the originof the request, and what host address the client connects to. Examples:(1) A gopher or www database speaks native language when contacted from within the country, otherwise it speaks English.(2) A service provider offers different ftp, gopher or www services with different internet hostnames from one host (section 4.6).Access control is enabled by default. It can be turned off by editingthe Makefile, or by providing no access control tables. The installinstructions below describe the Makefile editing process.The hosts_options.5 manual page (`nroff -man' format) documents anextended version of the access control language. The extensions aredisabled by default. See the section below on language extensions.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -