X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=debian%2Fpostinst;h=24ab87487209fac6bb7fbc991abe07b6dea35473;hb=HEAD;hp=2f61213ca9a3f8dd757696e66103923263400b46;hpb=d6d471ca8237b76920e6c78385214ffe26ce6dc6;p=mod-security-cn.git diff --git a/debian/postinst b/debian/postinst index 2f61213..3a21ffd 100644 --- a/debian/postinst +++ b/debian/postinst @@ -2,28 +2,13 @@ set -e +[ "$1" = "configure" ] || exit 0 [ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx -case "$1" in - configure) - # continue below - ;; - - abort-upgrade|abort-remove|abort-deconfigure) - exit 0 - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 0 - ;; -esac - - -# Load debconf +# Load Debconf . /usr/share/debconf/confmodule -# Include CARNet functions +# Load CARNET Tools . /usr/share/carnet-tools/functions.sh PKG="mod-security-cn" @@ -40,18 +25,17 @@ temp_files= if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then - . /usr/share/apache2/apache2-maintscript-helper + . /usr/share/apache2/apache2-maintscript-helper - modsecurity_enable() { - cp_echo "CN: Enabling $PKG configuration for Apache2." - return 0 - } + modsecurity_enable() { + return 0 + } else - cp_echo "CN: Could not load Apache 2.4 maintainer script helper." + cp_echo "CN: Could not load Apache 2.4 maintainer script helper." - modsecurity_enable() { - return 1 - } + modsecurity_enable() { + return 1 + } fi # cleanup() @@ -59,36 +43,36 @@ fi # Cleanup all temp files or directories. # cleanup () { - local item - - if [ -n "$temp_files" ]; then - for item in $temp_files; do - if [ -e "$item" ]; then - rm -rf $item - fi - done - fi + local item + + if [ -n "$temp_files" ]; then + for item in $temp_files; do + if [ -e "$item" ]; then + rm -rf $item + fi + done + fi } # chk_conf_tag () # -# Check if configuration file has CARNet package info lines. +# Check if configuration file has CARNET package info lines. # return: $RET => 0 - tagged # 1 - file does not exists # 2 - file exists, but it is not tagged # chk_conf_tag () { - local conf_file - conf_file="$1" - RET=1 - - if [ -f "$conf_file" ]; then - if egrep -q "^## Begin - Generated by CARNet package mod-security-cn$" "$conf_file"; then - RET=0 - else - RET=2 - fi + local conf_file + conf_file="$1" + RET=1 + + if [ -f "$conf_file" ]; then + if egrep -q "^## Begin - Generated by CARNET package mod-security-cn$" "$conf_file"; then + RET=0 + else + RET=2 fi + fi } @@ -97,10 +81,17 @@ chk_conf_tag () { trap cleanup 0 1 2 15 +# Enable ModSecurity and unique_id Apache2 modules. +# +if modsecurity_enable; then + apache2_invoke enmod security2 +fi + + # Remove obsolete symbolic link. # if [ "`readlink -q -m /etc/apache2/conf.d/$PKG.conf`" = "$MODSECCONF" ]; then - rm -f /etc/apache2/conf.d/$PKG.conf + rm -f /etc/apache2/conf.d/$PKG.conf fi @@ -110,95 +101,97 @@ fi chk_conf_tag "$MODSECCONF" if [ $RET -eq 0 ] || [ $RET -eq 1 ]; then - # Create /etc/apache2/conf-available/ directory if missing. - if [ ! -d "$CONFDIR" ]; then - cp_echo "CN: Creating configuration directory $CONFDIR/" - mkdir -p $CONFDIR/ + # Create /etc/apache2/conf-available/ directory if missing. + if [ ! -d "$CONFDIR" ]; then + cp_echo "CN: Creating configuration directory $CONFDIR/" + mkdir -p $CONFDIR/ + fi + + # Create /etc/apache2/mod-security/ directory if missing. + if [ ! -d "$MODSECDIR" ]; then + cp_echo "CN: Creating ModSecurity configuration directory $MODSECDIR/" + mkdir -p $MODSECDIR/ + fi + + out=$(mktemp $MODSECCONF.XXXXXX) + temp_files="${temp_files} ${out}" + + db_get mod-security-cn/rbl || true + if [ "$RET" = "true" ]; then + + # Add RBL configuration. + chk_conf_tag "$MODSECRBL" + if [ $RET -eq 0 ] || [ $RET -eq 1 ]; then + + if [ $RET -eq 1 ]; then + cp_echo "CN: Creating configuration file $MODSECRBL" + cp "$MODSECTPL/$(basename $MODSECRBL)" "$MODSECRBL" + else + if ! cmp -s "$MODSECRBL" "$MODSECTPL/$(basename $MODSECRBL)"; then + cp_echo "CN: Updating configuration file $MODSECRBL" + cp "$MODSECTPL/$(basename $MODSECRBL)" "$MODSECRBL" + fi + fi fi - # Create /etc/apache2/mod-security/ directory if missing. - if [ ! -d "$MODSECDIR" ]; then - cp_echo "CN: Creating ModSecurity configuration directory $MODSECDIR/" - mkdir -p $MODSECDIR/ - fi + sed "s,#RBLLOOKUP#,Include $MODSECRBL,g" \ + "$MODSECTPL/$(basename $MODSECCONF)" > "$out" - out=$(mktemp $MODSECCONF.XXXXXX) - temp_files="${temp_files} ${out}" - - db_get mod-security-cn/rbl || true - if [ "$RET" = "true" ]; then - - # Add RBL configuration. - chk_conf_tag "$MODSECRBL" - if [ $RET -eq 0 ] || [ $RET -eq 1 ]; then - - if [ $RET -eq 1 ]; then - cp_echo "CN: Creating configuration file $MODSECRBL" - cp "$MODSECTPL/$(basename $MODSECRBL)" "$MODSECRBL" - else - if ! cmp -s "$MODSECRBL" "$MODSECTPL/$(basename $MODSECRBL)"; then - cp_echo "CN: Updating configuration file $MODSECRBL" - cp "$MODSECTPL/$(basename $MODSECRBL)" "$MODSECRBL" - fi - fi - fi - - sed "s,#RBLLOOKUP#,Include $MODSECRBL,g" \ - "$MODSECTPL/$(basename $MODSECCONF)" > "$out" - - if [ -e "$MODSECCONF" ]; then - if ! cmp -s "$MODSECCONF" "$out"; then - cp_echo "CN: Updating configuration file $MODSECCONF" - mv -f "$out" "$MODSECCONF" - cp_echo "CN: Enabled ModSecurity RBL lookup." - fi - else - cp_echo "CN: Creating configuration file $MODSECCONF" - mv "$out" "$MODSECCONF" - cp_echo "CN: Enabled ModSecurity RBL lookup." - fi + if [ -e "$MODSECCONF" ]; then + if ! cmp -s "$MODSECCONF" "$out"; then + cp_echo "CN: Updating configuration file $MODSECCONF" + mv -f "$out" "$MODSECCONF" + cp_echo "CN: Enabled ModSecurity RBL lookup." + fi else + cp_echo "CN: Creating configuration file $MODSECCONF" + mv "$out" "$MODSECCONF" + cp_echo "CN: Enabled ModSecurity RBL lookup." + fi + else + + # Remove RBL configuration. + sed "s,#RBLLOOKUP#,# DISABLED,g" \ + "$MODSECTPL/$(basename $MODSECCONF)" > "$out" + + if [ -e "$MODSECCONF" ]; then + if ! cmp -s "$MODSECCONF" "$out"; then + cp_echo "CN: Updating configuration file $MODSECCONF" + mv -f "$out" "$MODSECCONF" + cp_echo "CN: Disabled ModSecurity RBL lookup." + fi + else + cp_echo "CN: Creating configuration file $MODSECCONF" + mv "$out" "$MODSECCONF" + cp_echo "CN: Disabled ModSecurity RBL lookup." + fi - # Remove RBL configuration. - sed "s,#RBLLOOKUP#,# DISABLED,g" \ - "$MODSECTPL/$(basename $MODSECCONF)" > "$out" - - if [ -e "$MODSECCONF" ]; then - if ! cmp -s "$MODSECCONF" "$out"; then - cp_echo "CN: Updating configuration file $MODSECCONF" - mv -f "$out" "$MODSECCONF" - cp_echo "CN: Disabled ModSecurity RBL lookup." - fi - else - cp_echo "CN: Creating configuration file $MODSECCONF" - mv "$out" "$MODSECCONF" - cp_echo "CN: Disabled ModSecurity RBL lookup." - fi - - chk_conf_tag "$MODSECRBL" - if [ $RET -eq 0 ]; then - cp_echo "CN: Removing configuration file $MODSECRBL" - rm -f "$MODSECRBL" - fi + chk_conf_tag "$MODSECRBL" + if [ $RET -eq 0 ]; then + cp_echo "CN: Removing configuration file $MODSECRBL" + rm -f "$MODSECRBL" fi + fi - if [ -f "$out" ]; then rm -f $out; fi + if [ -f "$out" ]; then rm -f $out; fi +fi - # Enable ModSecurity configuration. - if [ ! -e "$MODSECLNK" ]; then - ln -fs "$MODSECCONF" "$MODSECLNK" - fi - if modsecurity_enable; then - apache2_invoke enmod security2 - apache2_invoke enconf security2-cn - fi + +# Enable ModSecurity configuration. +# +if [ ! -e "$MODSECLNK" ]; then + ln -fs "$MODSECCONF" "$MODSECLNK" +fi +if modsecurity_enable; then + cp_echo "CN: Enabling $PKG configuration for Apache2." + apache2_invoke enconf security2-cn fi db_stop || true if ! apache2ctl configtest >/dev/null 2>&1; then - cp_echo "CN: Your Apache2 configuration seems to be broken." - cp_echo "CN: Please, check the service after the installation finishes!" + cp_echo "CN: Your Apache2 configuration seems to be broken." + cp_echo "CN: Please, check the service after the installation finishes!" fi