diff options
author | Michael Orlitzky <mjo@gentoo.org> | 2017-05-13 20:17:43 -0400 |
---|---|---|
committer | Michael Orlitzky <mjo@gentoo.org> | 2017-05-14 09:45:17 -0400 |
commit | bdd24a8411337b6308e001e3e3016930c8e55007 (patch) | |
tree | fdfc41d271d46f4d432a6079112b5b7f83bfc9fd /www-apache/mod_security/mod_security-2.9.1-r1.ebuild | |
parent | media-gfx/openscad: Add emacs mode, thanks Emery Hemingway for the ebuild (bu... (diff) | |
download | gentoo-bdd24a8411337b6308e001e3e3016930c8e55007.tar.gz gentoo-bdd24a8411337b6308e001e3e3016930c8e55007.tar.bz2 gentoo-bdd24a8411337b6308e001e3e3016930c8e55007.zip |
www-apache/mod_security: new revision with updated default configuration.
I've made a few small changes to the configuration file that we
install by default. First, I've added two settings, SecTmpDir and
SecUploadDir, which serve a similar purpose as the existing
SecDataDir. All of those need to be located somewhere safe, and the
upstream defaults point to /tmp (which is not safe). It is therefore
necessary that we override them, and point them to a location that is
created and made private in the ebuild. We now use
/var/lib/modsecurity/{data,tmp,upload}
and I've made them mode 0750 by default (owned by apache:apache).
I've also removed two settings that used to be present. Our default
configuration is extremely close to the upstream defaults, and sets
almost nothing in 79_mod_security.conf explicitly. The presence of
SecHttpBlKey was therefore rather strange, since it was disabled by
default and contained nothing Gentoo-specific. I've removed it for
consistency (it is documented upstream for people who want it).
The other setting that I've removed is SecGeoLookupDb. This one could
at least be justified for containing a Gentoo-specific path. However,
the path doesn't work out-of-the-box; it requires you to (manually, or
via cron) update your GeoIP database at least once before using it. At
that point, you know the location of the database, and can point
mod_security to it yourself. Taking that into consideration, it again
makes more sense to omit the setting for consistency and defer to the
upstream documentation and defaults.
Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'www-apache/mod_security/mod_security-2.9.1-r1.ebuild')
-rw-r--r-- | www-apache/mod_security/mod_security-2.9.1-r1.ebuild | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/www-apache/mod_security/mod_security-2.9.1-r1.ebuild b/www-apache/mod_security/mod_security-2.9.1-r1.ebuild new file mode 100644 index 000000000000..6dc8bf354d1c --- /dev/null +++ b/www-apache/mod_security/mod_security-2.9.1-r1.ebuild @@ -0,0 +1,108 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +inherit apache-module + +MY_PN=modsecurity +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Application firewall and intrusion detection for Apache" +HOMEPAGE="http://www.modsecurity.org/" +SRC_URI="http://www.modsecurity.org/tarball/${PV}/${MY_P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc fuzzyhash geoip jit json lua mlogc" + +COMMON_DEPEND="dev-libs/apr + dev-libs/apr-util[openssl] + dev-libs/libxml2 + dev-libs/libpcre[jit?] + fuzzyhash? ( app-crypt/ssdeep ) + json? ( dev-libs/yajl ) + lua? ( dev-lang/lua:0 ) + mlogc? ( net-misc/curl ) + www-servers/apache[apache2_modules_unique_id]" +DEPEND="${COMMON_DEPEND} + doc? ( app-doc/doxygen )" +RDEPEND="${COMMON_DEPEND} + geoip? ( dev-libs/geoip ) + mlogc? ( dev-lang/perl )" +PDEPEND=">=www-apache/modsecurity-crs-2.2.6-r1" + +S="${WORKDIR}/${MY_P}" + +APACHE2_MOD_FILE="apache2/.libs/${PN}2.so" +APACHE2_MOD_CONF="79_${PN}" +APACHE2_MOD_DEFINE="SECURITY" + +# Tests require symbols only defined within the Apache binary. +RESTRICT=test + +need_apache2 + +src_configure() { + econf --enable-shared \ + --disable-static \ + --with-apxs="${APXS}" \ + --enable-request-early \ + --with-pic \ + $(use_with fuzzyhash ssdeep) \ + $(use_with json yajl) \ + $(use_enable mlogc) \ + $(use_with lua) \ + $(use_enable lua lua-cache) \ + $(use_enable jit pcre-jit) +} + +src_compile() { + default + + # Building the docs is broken at the moment, see e.g. + # https://github.com/SpiderLabs/ModSecurity/issues/1322 + if use doc; then + doxygen doc/doxygen-apache.conf || die 'failed to build documentation' + fi +} + +src_install() { + apache-module_src_install + + dodoc CHANGES README.TXT modsecurity.conf-recommended + + if use doc; then + dodoc -r doc/apache/html + fi + + if use mlogc; then + insinto /etc/ + newins mlogc/mlogc-default.conf mlogc.conf + dobin mlogc/mlogc + dobin mlogc/mlogc-batch-load.pl + newdoc mlogc/INSTALL INSTALL-mlogc + fi + + # Use /var/lib instead of /var/cache. This stuff is "persistent," + # and isn't a cached copy of something that we can recreate. + # Bug 605496. + keepdir /var/lib/modsecurity + fowners apache:apache /var/lib/modsecurity + fperms 0750 /var/lib/modsecurity + for dir in data tmp upload; do + keepdir "/var/lib/modsecurity/${dir}" + fowners apache:apache "/var/lib/modsecurity/${dir}" + fperms 0750 "/var/lib/modsecurity/${dir}" + done +} + +pkg_postinst() { + elog "The base configuration file has been renamed ${APACHE2_MOD_CONF}" + elog "so that you can put your own configuration in (for example)" + elog "90_modsecurity_local.conf." + elog "" + elog "That would be the correct place for site-global security rules." + elog "Note: 80_modsecurity_crs.conf is used by www-apache/modsecurity-crs" +} |