From e87398cdbea71a73732a1d40a99901192c506f6c Mon Sep 17 00:00:00 2001 From: Christoph Date: Sun, 22 Oct 2017 17:00:44 +0200 Subject: [PATCH] Versions (dovecot AND pigeonhole) must be given interactivly. SSLv2 is no longer known by dovecot. So remove '\!SSLv2' from dovecot configuration file '10-ssl.conf'. --- conf/install_update_dovecot.conf.sample | 10 ---- install_update_dovecot.sh | 65 +++++++++++++++++++------ 2 files changed, 49 insertions(+), 26 deletions(-) diff --git a/conf/install_update_dovecot.conf.sample b/conf/install_update_dovecot.conf.sample index 7234057..d4f27c4 100644 --- a/conf/install_update_dovecot.conf.sample +++ b/conf/install_update_dovecot.conf.sample @@ -13,16 +13,6 @@ _update=false -# - Version dovecot -# - -_version=2.2.28 - - -# - Version Pigeonhole -# - -_pigeonhole=dovecot-2.2-pigeonhole-0.4.16 - - # - Install dovecot with systemd support # - # - Defaults to 'true' if systemd is present, otherwise to 'false' diff --git a/install_update_dovecot.sh b/install_update_dovecot.sh index 12f90c9..32cb836 100755 --- a/install_update_dovecot.sh +++ b/install_update_dovecot.sh @@ -94,8 +94,45 @@ if [[ -z "$systemd_support" ]] ; then fi fi +echo -e "\033[32m--\033[m" +echo "" +echo "Version Number of Dovecot to install" +echo "" +echo "" +_version= +while [ "X$_version" = "X" ] +do + echononl "Dovecot Version: " + read _version + if [ "X$_version" = "X" ]; then + echo -e "\n\t\033[33m\033[1mA version number is required!\033[m\n" + fi +done + +dovecot_major_version="$(echo $_version | cut -d '.' -f1,2)" + _log_dir=${_src_base_dir}/log-dovecot-$_version +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Version Number of Pigeonhole to install" +echo "" +echo "" +_pigeonhole= +while [ "X$_pigeonhole" = "X" ] +do + echononl "Pigeonhole Version: " + read _pigeonhole + if [ "X$_pigeonhole" = "X" ]; then + echo -e "\n\t\033[33m\033[1mA version number is required!\033[m\n" + fi +done +echo "" +echo -e "\033[32m--\033[m" +echo "" + + # ------------- @@ -306,7 +343,6 @@ echo "Download sources.." ## - Downloud Dovecot 2.2.x ## - echononl "\tDownload dovecot-${_version}.tar.gz" -#if [ ! -f "${_src_base_dir}/tarballs/dovecot-${_version}.tar.gz" ]; then if [ ! -f "${_src_base_dir}/dovecot-${_version}.tar.gz" ]; then wget http://www.dovecot.org/releases/2.2/dovecot-${_version}.tar.gz > /dev/null 2>&1 if [ "$?" = 0 ]; then @@ -322,10 +358,9 @@ fi ## - Download Pigeonhole for Dovecot v2.2 ## - -echononl "\tDownload ${_pigeonhole}.tar.gz.." -#if [ ! -f "${_src_base_dir}/tarballs/${_pigeonhole}.tar.gz" ]; then -if [ ! -f "${_src_base_dir}/${_pigeonhole}.tar.gz" ]; then - wget http://pigeonhole.dovecot.org/releases/2.2/${_pigeonhole}.tar.gz > /dev/null 2>&1 +echononl "\tDownload dovecot-${dovecot_major_version}-pigeonhole-${_pigeonhole}.tar.gz.." +if [ ! -f "${_src_base_dir}/dovecot-${dovecot_major_version}-pigeonhole-${_pigeonhole}.tar.gz" ]; then + wget http://pigeonhole.dovecot.org/releases/${dovecot_major_version}/dovecot-${dovecot_major_version}-pigeonhole-${_pigeonhole}.tar.gz > /dev/null 2>&1 if [ "$?" = 0 ]; then echo -e "$rc_done" else @@ -439,7 +474,6 @@ echo "Installing Base System.." cd ${_src_base_dir} echononl "\tUnpack dovecot-${_version}.tar.gz.." -#tar -xzf tarballs/dovecot-${_version}.tar.gz > /dev/null tar -xzf dovecot-${_version}.tar.gz > /dev/null if [ "$?" = 0 ]; then echo -e "$rc_done" @@ -537,22 +571,21 @@ fi cd ${_src_base_dir} echo "" -echononl "\tExtracting ${_pigeonhole}.tar.gz.." -#gunzip < tarballs/${_pigeonhole}.tar.gz | tar -xf - -gunzip < ${_pigeonhole}.tar.gz | tar -xf - +echononl "\tExtracting dovecot-${dovecot_major_version}-pigeonhole-${_pigeonhole}.tar.gz.." +gunzip < dovecot-${dovecot_major_version}-pigeonhole-${_pigeonhole}.tar.gz | tar -xf - if [ "$?" = 0 ]; then echo -e "$rc_done" else echo -e "$rc_failed" - fatal Extracting ${_pigeonhole}.tar.gz failed + fatal Extracting dovecot-${dovecot_major_version}-pigeonhole-${_pigeonhole}.tar.gz failed fi -cd ${_pigeonhole} +cd dovecot-${dovecot_major_version}-pigeonhole-${_pigeonhole} echononl "\tConfigure Pigeonhole ManageSieve.." ./configure \ --prefix=/usr/local/dovecot-${_version} \ - --with-dovecot=/usr/local/dovecot-${_version}/lib/dovecot > ${_log_dir}/${_pigeonhole}-configure.log 2<&1 + --with-dovecot=/usr/local/dovecot-${_version}/lib/dovecot > ${_log_dir}/dovecot-${dovecot_major_version}-pigeonhole-${_pigeonhole}-configure.log 2<&1 if [ "$?" = 0 ]; then echo -e "$rc_done" else @@ -561,7 +594,7 @@ else fi echononl "\tCompile Pigeonhole ManageSieve.." -make > ${_log_dir}/${_pigeonhole}-make.log 2<&1 +make > ${_log_dir}/dovecot-${dovecot_major_version}-pigeonhole-${_pigeonhole}-make.log 2<&1 if [ "$?" = 0 ]; then echo -e "$rc_done" else @@ -570,7 +603,7 @@ else fi echononl "\tInstall Pigeonhole ManageSieve.." -make install > ${_log_dir}/${_pigeonhole}-install.log 2<&1 +make install > ${_log_dir}/dovecot-${dovecot_major_version}-pigeonhole-${_pigeonhole}-install.log 2<&1 if [ "$?" = 0 ]; then echo -e "$rc_done" else @@ -978,7 +1011,7 @@ fi ## - ## - ssl_dh_parameters_length = 2048 ## - -## - ssl_protocols = !SSLv2 !SSLv3 +## - ssl_protocols = !SSLv3 ## - ## - ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA ## - @@ -1004,7 +1037,7 @@ perl -i -n -p -e "s#^([ ]*)(ssl_key\ ?=.*)#\1\#\# \2\n\1ssl_key = <$server_key#g /usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-ssl.conf || _failed=true perl -i -n -p -e "s#^([ ]*)\#?(ssl_dh_parameters_length\ ?=.*)#\1\#\# \2\nssl_dh_parameters_length = 2048#g" \ /usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-ssl.conf || _failed=true -perl -i -n -p -e "s#^([ ]*)\#?(ssl_protocols\ ?=.*)#\1\#\# \2\nssl_protocols = !SSLv2 !SSLv3#g" \ +perl -i -n -p -e "s#^([ ]*)\#?(ssl_protocols\ ?=.*)#\1\#\# \2\nssl_protocols = !SSLv3#g" \ /usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-ssl.conf || _failed=true perl -i -n -p -e "s#^([ ]*)\#?(ssl_cipher_list\ ?=.*)#\1\#\# \2\nssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA#g" \