Просмотр исходного кода

Basic mail server install without torifications

Bob Mottram 8 лет назад
Родитель
Сommit
3efa61fcfa
1 измененных файлов: 124 добавлений и 9 удалений
  1. 124
    9
      src/freedombone-base-email

+ 124
- 9
src/freedombone-base-email Просмотреть файл

@@ -663,14 +663,7 @@ function remove_email {
663 663
     echo ''
664 664
 }
665 665
 
666
-function install_email {
667
-    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
668
-        return
669
-    fi
670
-    if [[ $(is_completed $FUNCNAME) == "1" ]]; then
671
-        return
672
-    fi
673
-
666
+function install_email_with_tor {
674 667
     apt-get -y remove postfix
675 668
     apt-get -y install exim4 sasl2-bin swaks libnet-ssleay-perl procmail xinetd
676 669
 
@@ -900,7 +893,115 @@ function install_email {
900 893
     function_check configure_firewall_for_email
901 894
     configure_firewall_for_email
902 895
     dpkg-reconfigure --frontend noninteractive exim4-config
903
-    mark_completed $FUNCNAME
896
+}
897
+
898
+function install_email_basic {
899
+    apt-get -y remove postfix
900
+    apt-get -y install exim4 sasl2-bin swaks libnet-ssleay-perl procmail
901
+
902
+    if [ ! -d /etc/exim4 ]; then
903
+        echo $"ERROR: Exim does not appear to have installed. $CHECK_MESSAGE"
904
+        exit 48
905
+    fi
906
+
907
+    # configure for Maildir format
908
+    sed -i 's/MAIL_DIR/#MAIL_DIR/g' /etc/login.defs
909
+    sed -i 's|#MAIL_FILE.*|MAIL_FILE Maildir/|g' /etc/login.defs
910
+
911
+    if ! grep -q "export MAIL" /etc/profile; then
912
+        echo 'export MAIL=~/Maildir' >> /etc/profile
913
+    fi
914
+
915
+    sed -i 's|pam_mail.so standard|pam_mail.so dir=~/Maildir standard|g' /etc/pam.d/login
916
+    sed -i 's|pam_mail.so standard noenv|pam_mail.so dir=~/Maildir standard|g' /etc/pam.d/sshd
917
+    sed -i 's|pam_mail.so nopen|pam_mail.so dir=~/Maildir nopen|g' /etc/pam.d/su
918
+
919
+    echo "dc_eximconfig_configtype='internet'" > /etc/exim4/update-exim4.conf.conf
920
+    echo "dc_other_hostnames='${DEFAULT_DOMAIN_NAME}'" >> /etc/exim4/update-exim4.conf.conf
921
+    echo "dc_local_interfaces=''" >> /etc/exim4/update-exim4.conf.conf
922
+    echo "dc_readhost=''" >> /etc/exim4/update-exim4.conf.conf
923
+    echo "dc_relay_domains=''" >> /etc/exim4/update-exim4.conf.conf
924
+    echo "dc_minimaldns='false'" >> /etc/exim4/update-exim4.conf.conf
925
+    IPv4_address=$(get_ipv4_address)
926
+    IPv4_address_base=$(echo "$IPv4_address" | awk -F '.' '{print $1"."$2"."$3}')
927
+    RELAY_NETS="${IPv4_address_base}.0/24"
928
+    if [ $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
929
+        RELAY_NETS=$(echo $LOCAL_NETWORK_STATIC_IP_ADDRESS | awk -F '.' '{print $1 "." $2 "." $3 ".0/24"}')
930
+    fi
931
+    echo "dc_relay_nets='$RELAY_NETS'" >> /etc/exim4/update-exim4.conf.conf
932
+    echo "dc_smarthost=''" >> /etc/exim4/update-exim4.conf.conf
933
+    echo "CFILEMODE='644'" >> /etc/exim4/update-exim4.conf.conf
934
+    echo "dc_use_split_config='false'" >> /etc/exim4/update-exim4.conf.conf
935
+    echo "dc_hide_mailname=''" >> /etc/exim4/update-exim4.conf.conf
936
+    echo "dc_mailname_in_oh='true'" >> /etc/exim4/update-exim4.conf.conf
937
+    echo "dc_localdelivery='maildir_home'" >> /etc/exim4/update-exim4.conf.conf
938
+    update-exim4.conf
939
+    sed -i "s/START=no/START=yes/g" /etc/default/saslauthd
940
+    systemctl start saslauthd
941
+
942
+    # make a tls certificate for email
943
+    if [ ! -f /etc/ssl/certs/exim.dhparam ]; then
944
+        ${PROJECT_NAME}-addcert -h exim --dhkey $DH_KEYLENGTH
945
+        check_certificates exim
946
+    fi
947
+    cp /etc/ssl/private/exim.key /etc/exim4
948
+    cp /etc/ssl/certs/exim.crt /etc/exim4
949
+    cp /etc/ssl/certs/exim.dhparam /etc/exim4
950
+    chown root:Debian-exim /etc/exim4/exim.key /etc/exim4/exim.crt /etc/exim4/exim.dhparam
951
+    chmod 640 /etc/exim4/exim.key /etc/exim4/exim.crt /etc/exim4/exim.dhparam
952
+
953
+    if [ ! -d /etc/skel/log ]; then
954
+        mkdir -m 700 /etc/skel/log
955
+    fi
956
+    if [ ! -d /etc/skel/Maildir ]; then
957
+        mkdir -m 700 /etc/skel/.mutt
958
+        mkdir -m 700 /etc/skel/Maildir
959
+        mkdir -m 700 /etc/skel/Maildir/new
960
+        mkdir -m 700 /etc/skel/Maildir/cur
961
+        mkdir -m 700 /etc/skel/Maildir/Sent
962
+        mkdir -m 700 /etc/skel/Maildir/Sent/tmp
963
+        mkdir -m 700 /etc/skel/Maildir/Sent/cur
964
+        mkdir -m 700 /etc/skel/Maildir/Sent/new
965
+        mkdir -m 700 /etc/skel/Maildir/.learn-spam
966
+        mkdir -m 700 /etc/skel/Maildir/.learn-spam/cur
967
+        mkdir -m 700 /etc/skel/Maildir/.learn-spam/new
968
+        mkdir -m 700 /etc/skel/Maildir/.learn-spam/tmp
969
+        mkdir -m 700 /etc/skel/Maildir/.learn-ham
970
+        mkdir -m 700 /etc/skel/Maildir/.learn-ham/cur
971
+        mkdir -m 700 /etc/skel/Maildir/.learn-ham/new
972
+        mkdir -m 700 /etc/skel/Maildir/.learn-ham/tmp
973
+        ln -s /etc/skel/Maildir/.learn-spam /etc/skel/Maildir/spam
974
+        ln -s /etc/skel/Maildir/.learn-ham /etc/skel/Maildir/ham
975
+    fi
976
+
977
+    if [ ! -d /home/$MY_USERNAME/Maildir ]; then
978
+        mkdir -m 700 /home/$MY_USERNAME/.mutt
979
+        mkdir -m 700 /home/$MY_USERNAME/Maildir
980
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/cur
981
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/tmp
982
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/new
983
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/Sent
984
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/Sent/cur
985
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/Sent/tmp
986
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/Sent/new
987
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-spam
988
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-spam/cur
989
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-spam/new
990
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-spam/tmp
991
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-ham
992
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-ham/cur
993
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-ham/new
994
+        mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-ham/tmp
995
+        ln -s /home/$MY_USERNAME/Maildir/.learn-spam /home/$MY_USERNAME/Maildir/spam
996
+        ln -s /home/$MY_USERNAME/Maildir/.learn-ham /home/$MY_USERNAME/Maildir/ham
997
+        chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Maildir
998
+    fi
999
+
1000
+    function_check configure_firewall_for_email
1001
+    configure_firewall_for_email
1002
+
1003
+    dpkg-reconfigure --frontend noninteractive exim4-config
1004
+    systemctl restart exim4
904 1005
 }
905 1006
 
906 1007
 function email_change_relay {
@@ -1509,4 +1610,18 @@ function refresh_gpg_keys {
1509 1610
     fi
1510 1611
 }
1511 1612
 
1613
+function install_email {
1614
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
1615
+        return
1616
+    fi
1617
+    if [[ $(is_completed $FUNCNAME) == "1" ]]; then
1618
+        return
1619
+    fi
1620
+
1621
+    install_email_basic
1622
+    #install_email_with_tor
1623
+
1624
+    mark_completed $FUNCNAME
1625
+}
1626
+
1512 1627
 # NOTE: deliberately no exit 0