Compare commits
2 Commits
e82b464115
...
96a77260c3
| Author | SHA1 | Date | |
|---|---|---|---|
| 96a77260c3 | |||
| 71be7f0754 |
@@ -2597,6 +2597,8 @@ chown -R vmail:vmail /usr/local/dovecot-${_version}/etc/dovecot/sieve
|
|||||||
|
|
||||||
if $systemd_support; then
|
if $systemd_support; then
|
||||||
|
|
||||||
|
_folder_created=false
|
||||||
|
|
||||||
## - # - At time, we don't use private tmp directory for divecot.
|
## - # - At time, we don't use private tmp directory for divecot.
|
||||||
## - # -
|
## - # -
|
||||||
## - echononl "\tAdjust Systemd service file, set PrivateTmp=false.."
|
## - echononl "\tAdjust Systemd service file, set PrivateTmp=false.."
|
||||||
@@ -2621,8 +2623,15 @@ if $systemd_support; then
|
|||||||
## - here:
|
## - here:
|
||||||
## - LimitNOFILE=32768
|
## - LimitNOFILE=32768
|
||||||
## -
|
## -
|
||||||
if [[ -f "/lib/systemd/system/dovecot.service" ]] \
|
## - zwei Bemerkungen:
|
||||||
&& $(grep -q -E "^LimitNOFILE=" /lib/systemd/system/dovecot.service) ; then
|
## - - keine runden Klammern notwendig, da die bash '&&' vor '||' auswertet
|
||||||
|
## - - hier auch keine backslah '\' am ende der zeile notwendig, da statement
|
||||||
|
## - offensichtlich noch nichzt abgeschlossen ist (die bash erkennt das)
|
||||||
|
## -
|
||||||
|
if [[ -f /lib/systemd/system/dovecot.service ]] &&
|
||||||
|
grep -qE '^[[:space:]]*LimitNOFILE=' /lib/systemd/system/dovecot.service ||
|
||||||
|
[[ -f /etc/systemd/system/dovecot.service ]] &&
|
||||||
|
grep -qE '^[[:space:]]*LimitNOFILE=' /etc/systemd/system/dovecot.service ; then
|
||||||
|
|
||||||
_LimitNOFILE="$(grep -E "^LimitNOFILE=[[:digit:]]+" /lib/systemd/system/dovecot.service | cut -d'=' -f2)"
|
_LimitNOFILE="$(grep -E "^LimitNOFILE=[[:digit:]]+" /lib/systemd/system/dovecot.service | cut -d'=' -f2)"
|
||||||
|
|
||||||
@@ -2638,6 +2647,7 @@ if $systemd_support; then
|
|||||||
mkdir "/etc/systemd/system/dovecot.service.d" > /dev/null 2>&1
|
mkdir "/etc/systemd/system/dovecot.service.d" > /dev/null 2>&1
|
||||||
if [[ $? -eq 0 ]]; then
|
if [[ $? -eq 0 ]]; then
|
||||||
echo -e "$rc_done"
|
echo -e "$rc_done"
|
||||||
|
_folder_created=true
|
||||||
else
|
else
|
||||||
echo -e "$rc_failed"
|
echo -e "$rc_failed"
|
||||||
adjust_limit_nofile=false
|
adjust_limit_nofile=false
|
||||||
@@ -2656,8 +2666,54 @@ LimitNOFILE=$service_limit_nofile
|
|||||||
EOF
|
EOF
|
||||||
echo -e "$rc_done"
|
echo -e "$rc_done"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
## - Adjust systemd hardening:
|
||||||
|
## -
|
||||||
|
## - Options such as ProtectSystem=full/strict make the service's mount namespace,
|
||||||
|
## - including /usr (and thus /usr/local/dovecote/..), read-only, even though it is w
|
||||||
|
## - ritable outside the service.
|
||||||
|
## -
|
||||||
|
## - However, we would like to allow dovecot to write to the directory
|
||||||
|
## - /usr/local/dovecot/etc/dovecot/sieve/.
|
||||||
|
## -
|
||||||
|
## - ProtectSystem=off
|
||||||
|
## -
|
||||||
|
## - zwei Bemerkungen:
|
||||||
|
## - - keine runden Klammern notwendig, da die bash '&&' vor '||' auswertet
|
||||||
|
## - - hier auch keine backslah '\' am ende der zeile notwendig, da statement
|
||||||
|
## - offensichtlich noch nichzt abgeschlossen ist (die bash erkennt das)
|
||||||
|
## -
|
||||||
|
if [[ -f /lib/systemd/system/dovecot.service ]] &&
|
||||||
|
grep -qE '^[[:space:]]*ProtectSystem=' /lib/systemd/system/dovecot.service ||
|
||||||
|
[[ -f /etc/systemd/system/dovecot.service ]] &&
|
||||||
|
grep -qE '^[[:space:]]*ProtectSystem=' /etc/systemd/system/dovecot.service ; then
|
||||||
|
|
||||||
|
if ! ${_folder_created} ; then
|
||||||
|
|
||||||
|
echononl "\tCreate Directory '/etc/systemd/system/dovecot.service.d'.."
|
||||||
|
if [[ -d "/etc/systemd/system/dovecot.service.d" ]] ; then
|
||||||
|
echo -e "$rc_skipped"
|
||||||
|
else
|
||||||
|
mkdir "/etc/systemd/system/dovecot.service.d" > /dev/null 2>&1
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo -e "$rc_done"
|
||||||
|
else
|
||||||
|
echo -e "$rc_failed"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
echononl "\tSet 'ProtectSystem=off' for 'dovecot.service'.."
|
||||||
|
cat <<EOF > /etc/systemd/system/dovecot.service.d/systemd-hardening.conf
|
||||||
|
[Service]
|
||||||
|
ProtectSystem=off
|
||||||
|
EOF
|
||||||
|
echo -e "$rc_done"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
echononl "\tReload systemd .."
|
echononl "\tReload systemd .."
|
||||||
systemctl daemon-reload > /dev/null 2>&1
|
systemctl daemon-reload > /dev/null 2>&1
|
||||||
|
|||||||
Reference in New Issue
Block a user