homebrew-core/Formula/denyhosts.rb
Charlie Sharpsteen a66de23894 denyhosts: Fix script and plugin install paths
Ensure components don't wander into `/scripts` and `/plugins`.
2011-10-25 19:00:55 -07:00

183 lines
5.6 KiB
Ruby

require 'formula'
class Denyhosts < Formula
url 'http://downloads.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz'
homepage 'http://denyhosts.sourceforge.net/'
md5 'fc2365305a9402886a2b0173d1beb7df'
def patches
# The original DenyHosts scripts will be installed to libexec with the
# `-dist` suffixes. The patchfile modifies the copies to set some defaults.
cp 'daemon-control-dist', 'daemon-control'
cp 'denyhosts.cfg-dist', 'denyhosts.cfg'
DATA
end
def install
# If the `libpath` is relative, instead of absolute, we can influence the
# 'data path' via command line arguments to `setup.py`.
inreplace 'setup.py' do |s|
s.change_make_var! 'libpath', "''"
s.change_make_var! 'scriptspath', "''"
s.change_make_var! 'pluginspath', "''"
end
# Make it so that all DenyHosts tools have a default path that points at
# our config file.
inreplace 'DenyHosts/constants.py' do |s|
s.change_make_var! 'CONFIG_FILE', "'#{etc}/denyhosts.cfg'"
end
# Install mostly into libexec (a la Duplicity)
system "python", "setup.py", "install",
"--prefix=#{prefix}",
"--install-lib=#{libexec}",
"--install-scripts=#{libexec}",
"--install-data=#{libexec}"
libexec.install 'daemon-control'
# Don't overwrite the config file if it exists---the user may have tweaked
# it.
etc.install 'denyhosts.cfg' unless (etc + 'denyhosts.cfg').exist?
sbin.mkpath
ln_s libexec + 'denyhosts.py', sbin + 'denyhosts'
ln_s libexec + 'daemon-control', sbin + 'daemon-control'
plist = prefix + 'org.denyhosts.cron.plist'
plist.write cron_plist
plist.chmod 0644
end
def cron_plist
<<-EOS.undent
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.denyhosts.cron</string>
<key>ProgramArguments</key>
<array>
<string>#{HOMEBREW_PREFIX}/sbin/denyhosts</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>StartInterval</key>
<integer>600</integer>
</dict>
</plist>
EOS
end
def caveats
<<-EOS.undent
Unless it exists already, a denyhosts.cfg file has been written to:
#{etc}/denyhosts.cfg
All DenyHosts scripts will load this file by default unless told to use
a different one.
A launchctl plist has been created that will run DenyHosts to update
/etc/hosts.deny every 10 minutes. It will need to be run by the user that
owns /etc/hosts.deny, usually root, and can be set to load at startup
via:
sudo cp #{prefix}/org.denyhosts.cron.plist /Library/LaunchDaemons/
EOS
end
end
__END__
Set DenyHosts defaults for OS X.
See: http://trac.macports.org/browser/trunk/dports/security/denyhosts/files/patch-denyhosts.cfg-dist.diff
diff --git a/daemon-control b/daemon-control
index dd49315..b2bb838 100755
--- a/daemon-control
+++ b/daemon-control
@@ -11,9 +11,9 @@
#### Edit these to suit your configuration ####
###############################################
-DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
-DENYHOSTS_LOCK = "/var/lock/subsys/denyhosts"
-DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg"
+DENYHOSTS_BIN = "HOMEBREW_PREFIX/sbin/denyhosts"
+DENYHOSTS_LOCK = "HOMEBREW_PREFIX/var/run/denyhosts.pid"
+DENYHOSTS_CFG = "HOMEBREW_PREFIX/etc/denyhosts.cfg"
PYTHON_BIN = "/usr/bin/env python"
diff --git a/denyhosts.cfg b/denyhosts.cfg
index 6551b3f..c95fcb6 100644
--- a/denyhosts.cfg
+++ b/denyhosts.cfg
@@ -9,7 +9,7 @@
# argument
#
# Redhat or Fedora Core:
-SECURE_LOG = /var/log/secure
+# SECURE_LOG = /var/log/secure
#
# Mandrake, FreeBSD or OpenBSD:
#SECURE_LOG = /var/log/auth.log
@@ -19,7 +19,7 @@ SECURE_LOG = /var/log/secure
#
# Mac OS X (v10.4 or greater -
# also refer to: http://www.denyhosts.net/faq.html#macos
-#SECURE_LOG = /private/var/log/asl.log
+SECURE_LOG = /private/var/log/secure.log
#
# Mac OS X (v10.3 or earlier):
#SECURE_LOG=/private/var/log/system.log
@@ -88,9 +88,9 @@ PURGE_DENY =
# eg. sshd: 127.0.0.1 # will block sshd logins from 127.0.0.1
#
# To block all services for the offending host:
-#BLOCK_SERVICE = ALL
+BLOCK_SERVICE = ALL
# To block only sshd:
-BLOCK_SERVICE = sshd
+# BLOCK_SERVICE = sshd
# To only record the offending host and nothing else (if using
# an auxilary file to list the hosts). Refer to:
# http://denyhosts.sourceforge.net/faq.html#aux
@@ -150,7 +150,7 @@ DENY_THRESHOLD_RESTRICTED = 1
# Note: it is recommended that you use an absolute pathname
# for this value (eg. /home/foo/denyhosts/data)
#
-WORK_DIR = /usr/share/denyhosts/data
+WORK_DIR = HOMEBREW_PREFIX/var/denyhosts
#
#######################################################################
@@ -192,13 +192,13 @@ HOSTNAME_LOOKUP=YES
# running at a time.
#
# Redhat/Fedora:
-LOCK_FILE = /var/lock/subsys/denyhosts
+#LOCK_FILE = /var/lock/subsys/denyhosts
#
# Debian
#LOCK_FILE = /var/run/denyhosts.pid
#
# Misc
-#LOCK_FILE = /tmp/denyhosts.lock
+LOCK_FILE = HOMEBREW_PREFIX/var/run/denyhosts.pid
#
######################################################################
@@ -432,7 +432,7 @@ AGE_RESET_INVALID=10d
# this is the logfile that DenyHosts uses to report it's status.
# To disable logging, leave blank. (default is: /var/log/denyhosts)
#
-DAEMON_LOG = /var/log/denyhosts
+DAEMON_LOG = HOMEBREW_PREFIX/var/log/denyhosts.log
#
# disable logging:
#DAEMON_LOG =