summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mail-mta/qmail/files/qmail-dhparam.sh')
-rwxr-xr-xmail-mta/qmail/files/qmail-dhparam.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/mail-mta/qmail/files/qmail-dhparam.sh b/mail-mta/qmail/files/qmail-dhparam.sh
new file mode 100755
index 000000000000..fcad8e69efe6
--- /dev/null
+++ b/mail-mta/qmail/files/qmail-dhparam.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/qmail/files/qmail-dhparam.sh,v 1.1 2006/06/15 00:54:51 robbat2 Exp $
+# Robin H. Johnson <robbat2@gentoo.org> - Sept 5, 2005
+# This file generates the static temporary DH parameter keys needed for qmail to encrypt messages
+# It should be run from a crontab, once a day is ok on low load machines, but
+# if you do lots of mail, once per hour is more reasonable
+# if you do NOT create the dh512.pem/dh1024.pem, qmail will generate it on the fly for
+# each connection, which can be VERY slow.
+
+# this is the number of bits in the key
+# it should be a power of 2 ideally
+# and it must be more than 64!
+# set this to 512 only if you are using export grade encryption
+# and configure tls*ciphers for qmail
+bits="1024 512"
+
+for b in $bits ; do
+ if [ -z "${ROOT}" -o "${ROOT}" = "/" ]; then
+ confdir=/var/qmail/control
+ else
+ confdir=${ROOT}/var/qmail/control
+ fi
+ pemfile="${confdir}/dh${b}.pem"
+ tmpfile="${confdir}/dh${b}.pem.tmp"
+
+ # the key should be 0600
+ # which is readable by qmaild only!
+ umaskvalue="0077"
+ uid="qmaild"
+ gid="qmail"
+
+ umask ${umaskvalue} ;
+ # we need to make sure that all of the operations succeed
+ /usr/bin/openssl dhparam -out ${tmpfile} ${b} 2>/dev/null && \
+ /bin/chown ${uid}:${gid} ${tmpfile} && \
+ /bin/mv -f ${tmpfile} ${pemfile}
+done