summaryrefslogtreecommitdiff
path: root/debian/local/update_tcpd
diff options
context:
space:
mode:
Diffstat (limited to 'debian/local/update_tcpd')
-rw-r--r--debian/local/update_tcpd53
1 files changed, 53 insertions, 0 deletions
diff --git a/debian/local/update_tcpd b/debian/local/update_tcpd
new file mode 100644
index 0000000..e3b430a
--- /dev/null
+++ b/debian/local/update_tcpd
@@ -0,0 +1,53 @@
+#!/bin/sh -e
+#-----------------------------------------------------------------------------
+#
+# Update TCPD environment (TCP Wrappers) for sendmail
+#
+# Copyright (c) 2001-2001 Richard Nelson. All Rights Reserved.
+# Time-stamp: <2001/01/17 10:00:00 cowboy>
+#
+# Notes (to all):
+#
+# Notes (to self):
+#
+#-----------------------------------------------------------------------------
+set -e
+
+#------------------------------------------------------------------------------
+# Check to see if sendmail is mentioned in /etc/hosts.allow
+# Note: This check is far from perfect - it requires sendmail and : be
+# on the same line. If you've got a better approach, I'd love to
+# see it (Maybe awk/perl)!
+
+if grep -qEe "^[^#:]*sendmail[^:]*[:]" /etc/hosts.allow 2>/dev/null; then
+ need_tcpd=0
+else
+ need_tcpd=1
+ fi
+
+if [ ! -e /etc/hosts.allow ]; then
+ need_tcpd=0
+ fi
+
+if [ $need_tcpd -eq 1 ]; then
+ cat <<-EOT
+
+ Updating /etc/hosts.allow, adding "sendmail: all".
+
+ Please edit /etc/hosts.allow and check the rules location to
+ make sure your security measures have not been overridden -
+ it is common to move the sendmail:all line to the *end* of
+ the file, so your more selective rules take precedence.
+EOT
+
+ echo "sendmail: all" | cat - /etc/hosts.allow >/etc/hosts.allow.new
+ mv -f /etc/hosts.allow.new /etc/hosts.allow
+
+ if [ -e /etc/init.d/netbase ]; then
+ /etc/init.d/netbase reload >/dev/null
+ elif [ -e /etc/init.d/inetd ]; then
+ /etc/init.d/inetd reload >/dev/null
+ fi
+ fi
+
+exit 0