1# @(#) Banners.Makefile 1.3 97/02/12 02:13:18 2# 3# Install this file as the Makefile in your directory with banner files. 4# It will convert a prototype banner text to a form that is suitable for 5# the ftp, telnet, rlogin, and other services. 6# 7# You'll have to comment out the IN definition below if your daemon 8# names don't start with `in.'. 9# 10# The prototype text should live in the banners directory, as a file with 11# the name "prototype". In the prototype text you can use %<character> 12# sequences as described in the hosts_access.5 manual page (`nroff -man' 13# format). The sequences will be expanded while the banner message is 14# sent to the client. For example: 15# 16# Hello %u@%h, what brings you here? 17# 18# Expands to: Hello username@hostname, what brings you here? Note: the 19# use of %u forces a client username lookup. 20# 21# In order to use banners, build the tcp wrapper with -DPROCESS_OPTIONS 22# and use hosts.allow rules like this: 23# 24# daemons ... : clients ... : banners /some/directory ... 25# 26# Of course, nothing prevents you from using multiple banner directories. 27# For example, one banner directory for clients that are granted service, 28# one banner directory for rejected clients, and one banner directory for 29# clients with a hostname problem. 30# 31SHELL = /bin/sh 32IN = in. 33BANNERS = $(IN)telnetd $(IN)ftpd $(IN)rlogind # $(IN)fingerd $(IN)rshd 34 35all: $(BANNERS) 36 37$(IN)telnetd: prototype 38 cp prototype $@ 39 chmod 644 $@ 40 41$(IN)ftpd: prototype 42 sed 's/^/220-/' prototype > $@ 43 chmod 644 $@ 44 45$(IN)rlogind: prototype nul 46 ( ./nul ; cat prototype ) > $@ 47 chmod 644 $@ 48 49# Other services: banners may interfere with normal operation 50# so they should probably be used only when refusing service. 51# In particular, banners don't work with standard rsh daemons. 52# You would have to use an rshd that has built-in tcp wrapper 53# support, for example the rshd that is part of the logdaemon 54# utilities. 55 56$(IN)fingerd: prototype 57 cp prototype $@ 58 chmod 644 $@ 59 60$(IN)rshd: prototype nul 61 ( ./nul ; cat prototype ) > $@ 62 chmod 644 $@ 63 64# In case no /dev/zero available, let's hope they have at least 65# a C compiler of some sort. 66 67nul: 68 echo 'main() { write(1,"",1); return(0); }' >nul.c 69 $(CC) $(CFLAGS) -s -o nul nul.c 70 rm -f nul.c 71