Bob Mottram пре 9 година
родитељ
комит
86bf6c7666
2 измењених фајлова са 11 додато и 1 уклоњено
  1. 4
    0
      src/freedombone
  2. 7
    1
      src/freedombone-clientcert

+ 4
- 0
src/freedombone Прегледај датотеку

@@ -5647,6 +5647,7 @@ function configure_imap {
5647 5647
 
5648 5648
   sed -i 's/#process_limit =.*/process_limit = 5/g' /etc/dovecot/conf.d/10-master.conf
5649 5649
   sed -i 's/#default_client_limit.*/default_client_limit = 5/g' /etc/dovecot/conf.d/10-master.conf
5650
+  sed -i 's|#default_process_limit =.*|default_process_limit = 100|g' /etc/dovecot/conf.d/10-master.conf
5650 5651
 
5651 5652
   sed -i 's/#auth_verbose.*/auth_verbose = yes/g' /etc/dovecot/conf.d/10-logging.conf
5652 5653
 
@@ -5664,10 +5665,13 @@ function configure_imap_client_certs {
5664 5665
       return
5665 5666
   fi
5666 5667
   # http://strange.systems/certificate-based-auth-with-dovecot-sendmail/
5668
+  sed -i 's|#default_process_limit =.*|default_process_limit = 100|g' /etc/dovecot/conf.d/10-master.conf
5669
+  sed -i 's/disable_plaintext_auth =.*/disable_plaintext_auth = yes/g' /etc/dovecot/conf.d/10-auth.conf
5667 5670
   sed -i 's|#auth_ssl_require_client_cert =.*|auth_ssl_require_client_cert = yes|g' /etc/dovecot/conf.d/10-auth.conf
5668 5671
   sed -i 's|#auth_ssl_username_from_cert =.*|auth_ssl_username_from_cert = yes|g' /etc/dovecot/conf.d/10-auth.conf
5669 5672
   sed -i 's|#ssl_ca =.*|ssl_ca = /etc/ssl/certs/dovecot-ca.crt|g' /etc/dovecot/conf.d/10-ssl.conf
5670 5673
   sed -i 's|#ssl_cert_username_field =.*|ssl_cert_username_field = commonName|g' /etc/dovecot/conf.d/10-ssl.conf
5674
+  sed -i 's|#ssl_verify_client_cert =.*|ssl_verify_client_cert = yes|g' /etc/dovecot/conf.d/10-ssl.conf
5671 5675
   if ! grep -q "passdb {" /etc/dovecot/conf.d/10-auth.conf; then
5672 5676
     echo '' >> /etc/dovecot/conf.d/10-auth.conf
5673 5677
     echo 'passdb {' >> /etc/dovecot/conf.d/10-auth.conf

+ 7
- 1
src/freedombone-clientcert Прегледај датотеку

@@ -33,6 +33,7 @@
33 33
 # along with this program. If not, see <http://www.gnu.org/licenses/>.
34 34
 
35 35
 USERNAME=
36
+CLIENT_CERT_PASSWORD=
36 37
 COUNTRY_CODE="US"
37 38
 AREA="Free Speech Zone"
38 39
 LOCATION="Freedomville"
@@ -48,6 +49,7 @@ function show_help {
48 49
     echo ''
49 50
     echo '     --help                  Show help'
50 51
     echo '  -u --username [name]       Username'
52
+    echo '  -p --password [text]       Client certificate install password'
51 53
     echo ''
52 54
     exit 0
53 55
 }
@@ -64,6 +66,10 @@ case $key in
64 66
     shift
65 67
     USERNAME="$1"
66 68
     ;;
69
+    -p|--password)
70
+    shift
71
+    CLIENT_CERT_PASSWORD="$1"
72
+    ;;
67 73
     *)
68 74
     # unknown option
69 75
     ;;
@@ -131,7 +137,7 @@ mv /etc/ssl/certs/$USERNAME.cer /home/$USERNAME/emailcert
131 137
 cp /etc/ssl/certs/dovecot-ca.crt /home/$USERNAME/emailcert
132 138
 mv /etc/ssl/private/$USERNAME.key /home/$USERNAME/emailcert
133 139
 mv /etc/ssl/certs/$USERNAME.crt /home/$USERNAME/emailcert
134
-openssl pkcs12 -export -in /home/$USERNAME/emailcert/$USERNAME.cer -out /home/$USERNAME/emailcert/$USERNAME.p12 -inkey /home/$USERNAME/emailcert/$USERNAME.key -certfile /home/$USERNAME/emailcert/dovecot-ca.crt
140
+openssl pkcs12 -export -in /home/$USERNAME/emailcert/$USERNAME.cer -out /home/$USERNAME/emailcert/$USERNAME.p12 -inkey /home/$USERNAME/emailcert/$USERNAME.key -certfile /home/$USERNAME/emailcert/dovecot-ca.crt -password "$CLIENT_CERT_PASSWORD"
135 141
 
136 142
 # make an install script
137 143
 echo '#!/bin/bash' > /home/$USERNAME/emailcert/install.sh