From 7b6e4c36d0c4daaf62fb8c39d5e9a5746e2fc0dc Mon Sep 17 00:00:00 2001 From: Christoph Date: Mon, 27 Jan 2025 18:50:01 +0100 Subject: [PATCH] install_amavis.sh,install_postfix_advanced.sh: support additional smtp port in case of relay host. --- install_amavis.sh | 26 ++++++++++++++ install_postfix_advanced.sh | 68 ++++++++++++++++++++++++++++++++++++- 2 files changed, 93 insertions(+), 1 deletion(-) diff --git a/install_amavis.sh b/install_amavis.sh index efcbddd..edae0fc 100755 --- a/install_amavis.sh +++ b/install_amavis.sh @@ -5034,6 +5034,12 @@ if grep -iq -E "^amavisfeed\s+" $postfix_master_cf > /dev/null 2>&1 ; then else amavisfeed_present=false fi +if grep -iq -E "^[0-9]{2,5}\s+inet.*smtpd" $postfix_master_cf > /dev/null 2>&1 ; then + listen_on_additional_smtp_port=true + additional_smtp_port="$(grep -E "^[0-9]{2,5}\s+inet.*smtpd" /etc/postfix/master.cf | grep -o -E "^[0-9]{2,5}")" +else + listen_on_additional_smtp_port=false +fi > $postfix_master_cf while IFS='' read -r _line || [[ -n $_line ]] ; do @@ -5051,6 +5057,19 @@ EOF EOF fi + if ${listen_on_additional_smtp_port} ; then + cat >> $postfix_master_cf << EOF +${additional_smtp_port} inet n - y - - smtpd + -o smtpd_proxy_filter=127.0.0.1:10024 + -o content_filter= +EOF + if [[ "$SASL_AUTH_ENABLED" = "no" ]] ; then + cat >> $postfix_master_cf << EOF + -o smtpd_sasl_auth_enable=no +EOF + fi + fi + if ! $submission_present && ! $smtps_present && ! $localhost_10025_present ; then cat >> $postfix_master_cf << EOF localhost:10025 inet n - y - - smtpd @@ -5305,6 +5324,13 @@ else fi fi +if ${listen_on_additional_smtp_port}: then + + echo "" + warn "Please do not forget to allow incomming traffic on port \033[1m${additional_smtp_port}\033[m. + Check your firewall settings.." +fi + #fi # if $ommit ; then # ------------------------------- diff --git a/install_postfix_advanced.sh b/install_postfix_advanced.sh index aea2dad..062464c 100755 --- a/install_postfix_advanced.sh +++ b/install_postfix_advanced.sh @@ -125,9 +125,12 @@ trap clean_up SIGHUP SIGINT SIGTERM # - DEFAULT_ADMIN_EMAIL="argus@oopen.de" DEFAULT_IS_RELAY_HOST=false +DEFAULT_ADDITIONAL_RELAY_PORT=2525 DEFAULT_IS_SYMPA_LIST_SERVER=no DEFAULT_SASL_AUTH_ENABLED=no +DEFAULT_LISTEN_ON_ADDITIONAL_RELAY_PORT=false + # - Is this a systemd system? # - @@ -167,6 +170,10 @@ else _IS_RELAY_HOST="$_RELAY_HOST" fi +if [[ -z "$_LISTEN_ON_ADDITIONAL_RELAY_PORT" ]] ; then + _LISTEN_ON_ADDITIONAL_RELAY_PORT=${DEFAULT_LISTEN_ON_ADDITIONAL_RELAY_PORT} +fi + echo "" echo "" echo "" @@ -394,6 +401,42 @@ if $IS_RELAY_HOST ; then done fi + ADDITIONAL_RELAY_LISTEN_PORT= + echo "" + echo -e "\033[32m--\033[m" + echo "" + echo "Should this mail relay server listen on an additional port?" + echo "" + if [[ -n "$_ADDITIONAL_RELAY_LISTEN_PORT" ]]; then + echo "Type:" + echo -e "\t\033[33mNone\033[m for no additional listen port." + else + echo "Type:" + echo -e "\t\033[33mNone\033[m or lrave empty for no additional listen port." + fi + echo "" + if [[ -n "$_ADDITIONAL_RELAY_LISTEN_PORT" ]]; then + echononl "additional listen port [${_ADDITIONAL_RELAY_LISTEN_PORT}]: " + read ADDITIONAL_RELAY_LISTEN_PORT + if [[ "X${ADDITIONAL_RELAY_LISTEN_PORT}" = "X" ]]; then + ADDITIONAL_RELAY_LISTEN_PORT=$_ADDITIONAL_RELAY_LISTEN_PORT + LISTEN_ON_ADDITIONAL_RELAY_PORT=true + fi + if [[ "${ADDITIONAL_RELAY_LISTEN_PORT,,}" = "none" ]] ; then + ADDITIONAL_RELAY_LISTEN_PORT="" + LISTEN_ON_ADDITIONAL_RELAY_PORT=false + fi + else + echononl "additional listen port: " + read ADDITIONAL_RELAY_LISTEN_PORT + if [[ "X${ADDITIONAL_RELAY_LISTEN_PORT}" = "X" ]] || [[ "${ADDITIONAL_RELAY_LISTEN_PORT,,}" = "none" ]]; then + ADDITIONAL_RELAY_LISTEN_PORT="" + LISTEN_ON_ADDITIONAL_RELAY_PORT=false + else + LISTEN_ON_ADDITIONAL_RELAY_PORT=true + fi + fi + else IS_SYMPA_LIST_SERVER=false @@ -441,6 +484,11 @@ if $IS_RELAY_HOST ; then echo -e "\tConfigure as sympa list server?...: \033[33m\033[1m$IS_SYMPA_LIST_SERVER\033[m" echo "" echo -e "\tSupport Cyrus SASL authentication.: $SASL_AUTH_ENABLED" + echo "" + echo -e "\tListen on an additional port?.......: \033[33m\033[1m${LISTEN_ON_ADDITIONAL_RELAY_PORT}\033[m" + if ${LISTEN_ON_ADDITIONAL_RELAY_PORT}; then + echo -e "\tAdditional Listen Port..............: ${ADDITIONAL_RELAY_LISTEN_PORT}" + fi else echo -e "\tConfigure as relay host?..........: $IS_RELAY_HOST" echo -e "\tConfigure as complete mailserver..: \033[33m\033[1mtrue\033[m" @@ -464,7 +512,7 @@ _failed=false echononl " Save Configuration" cat << EOF > $conf_file # --- -# - Parameter Settins Postfix Relay System +# - Parameter Settings Postfix Relay System # --- _HOSTNAME=$HOSTNAME @@ -480,7 +528,13 @@ if $IS_RELAY_HOST ; then cat << EOF >> $conf_file _SASL_AUTH_ENABLED=$SASL_AUTH_ENABLED _SYMPA_LIST_SERVER=$IS_SYMPA_LIST_SERVER +_LISTEN_ON_ADDITIONAL_RELAY_PORT=${LISTEN_ON_ADDITIONAL_RELAY_PORT} EOF + if ${LISTEN_ON_ADDITIONAL_RELAY_PORT} : then + cat << EOF >> $conf_file +_ADDITIONAL_RELAY_LISTEN_PORT=${ADDITIONAL_RELAY_LISTEN_PORT} +EOF + fi fi if [[ $? -ne 0 ]]; then _failed=true @@ -3544,6 +3598,10 @@ smtps inet n - y - - smtpd #-o milter_macro_daemon_name=ORIGINATING EOF fi + elif $LISTEN_ON_ADDITIONAL_RELAY_PORT ; then + cat >> $postfix_master_cf << EOF +${ADDITIONAL_RELAY_LISTEN_PORT} inet n - y - - smtpd +EOF fi continue fi @@ -3838,6 +3896,14 @@ else fi fi +if ${LISTEN_ON_ADDITIONAL_RELAY_PORT} ; then + + echo "" + warn "Please do not forget to allow incomming traffic on port \033[1m${ADDITIONAL_RELAY_LISTEN_PORT}\033[m. + Check your firewall settings.." +fi + + if [[ -n "$(which amavisd-new)" ]] ; then warn "You have to run \033[1minstall_amavis.sh\033[m script to continue the configuration."