[ "$1" = "configure" ] || exit 0
[ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx
-# Load CARNet Tools
+# Load CARNET Tools
. /usr/share/carnet-tools/functions.sh
# Load Debconf
. /usr/share/debconf/confmodule
+check_for_utf() {
+
+utf=$(perl -lne 'print if /[^[:ascii:]]/' /etc/passwd)
+
+if [ ! -z "$utf" ]; then
+ poruka="Detektirani su znakovi šđčćž u datoteci /etc/passwd. To bi moglo omesti generiranje mail aliasa u obliku Ime.Prezime@ustanova.hr.
+
+Molimo uklonite naše znakove s naredbom
+
+usermod -c \"Ime Prezime\" korisnik
+
+Korisnici koji imaju znakove u imenu ili prezimenu su:
+
+"
+
+ LC_MESSAGES=hr_HR dialog --backtitle "Postfix: problem s datotekom /etc/passwd" --msgbox "$poruka$utf" 18 75
+fi
+}
+
db_get postfix-cn/rbl || true
rbl="$RET"
db_set postfix-cn/rbl "$rbl" || true
fi
+# zelja, 2021-04-29
+# ako je spamhaus.org ovdje, postavi eta.cert.hr, a sam
+# spamhaus je nepotreban, jer imamo zen.dnsbl-sh.carnet.hr
+if echo $rbl | grep -q zen.spamhaus.org; then
+ rbl="`echo $rbl | sed 's/zen.spamhaus.org, /eta.cert.hr, /g'`"
+ # za svaki slucaj, ako je na kraju
+ rbl="`echo $rbl | sed 's/zen.spamhaus.org/eta.cert.hr/g'`"
+ db_set postfix-cn/rbl "$rbl" || true
+fi
+
db_get postfix-cn/matchgecos || true
matchgecos="$RET"
"s/# $option/$option/g" \
/etc/postfix/master.cf || true
done
+
+ for option in "o smtpd_client_restrictions=" \
+ "o smtpd_helo_restrictions=" \
+ "o smtpd_sender_restrictions="; do
+ cp_check_and_sed "$option" \
+ "s/.*$option/# -$option/g" \
+ /etc/postfix/master.cf || true
+ done
fi
# ovo manje/vise uzima kao default, ali u slucaju da je multihomed stroj,
postconf -e append_at_myorigin="yes"
# dodaj 127.0.0.0/8, netaddr i ipv6-localhost
+# dodaje izlazne servere za webmail --zelja
mynetworks="`postconf -h mynetworks`"
-for i in "127.0.0.0/8" "$netaddr" "[::1]/128"; do
+for i in "127.0.0.0/8" "\[::1\]/128" "$netaddr" "193.198.233.95" "193.198.233.96"; do
if ! echo $mynetworks | grep -q $i; then
- mynetworks="$mynetworks $i"
+ mynetworks="$mynetworks, $i"
fi
done
postconf -e mynetworks="$mynetworks"
postconf -e relay_domains="\$mydestination"
if [ "$mx_domain" != "$domain" ]; then
if dpkg --compare-versions "$2" lt 2.1.5-8; then
- cp_echo "CN: This host is MX for more than one domain! postfix-cn package will"
- cp_echo "CN: only set up $mx_domain, you HAVE TO add the other domains manually"
- cp_echo "CN: to mydestination variable in /etc/postfix/main.cf, if you haven't"
- cp_echo "CN: done that already or you may lose mail."
+ cp_echo "CN: Ovaj poslužitelj je podešen kao MX za više od jedne domene! Paket postfix-cn će"
+ cp_echo "CN: podesiti samo domenu $mx_domain, ostale domene MORATE DODATI RUČNO"
+ cp_echo "CN: u varijablu 'mydestination' u /etc/postfix/main.cf. Ukoliko to ne"
+ cp_echo "CN: učinite, mogli biste (iz)gubiti mail za te domene."
fi
fi
fi
reject_unauth_pipelining, \
permit_sasl_authenticated, \
permit_mynetworks, \
- reject_unauth_destination"
+ reject_unauth_destination, \
+ check_client_access hash:/etc/postfix/cn-client-access, \
+ check_helo_access hash:/etc/postfix/cn-helo-access, \
+ check_sender_access hash:/etc/postfix/cn-sender-access, \
+ check_recipient_access hash:/etc/postfix/cn-recipient-access"
# dodaj samo rbl-ove iz debconfa
if [ "$rbl" ]; then
smtpd_recipient_restrictions="$smtpd_recipient_restrictions, permit"
postconf -e smtpd_recipient_restrictions="$smtpd_recipient_restrictions"
+# Header & body checks
+
+postconf -e header_checks="pcre:/etc/postfix/cn-header-checks"
+postconf -e mime_header_checks="pcre:/etc/postfix/cn-mime-header-checks"
+postconf -e nested_header_checks="pcre:/etc/postfix/cn-nested-header-checks"
+postconf -e body_checks="pcre:/etc/postfix/cn-body-checks"
+
+
# SASL stuff
postconf -e smtpd_sasl_auth_enable="yes"
postconf -e smtpd_sasl_security_options="noanonymous"
# provjeri da li postoji sendmail-base
if ! dpkg -l sendmail-base | grep -q '^.n'; then
cp_echo ""
- cp_echo "CN: Package sendmail-base detected."
- cp_echo "CN: Please, purge this package with command:"
+ cp_echo "CN: Pronađen je paket sendmail-base."
+ cp_echo "CN: Molimo, obrišite paket s naredbom:"
cp_echo "CN: # dpkg --purge sendmail-base"
cp_echo ""
fi
# sendmailov /etc/mail/access
if [ -f /etc/mail/access -a /etc/mail/access.db ]; then
cp_echo ""
- cp_echo "CN: Sendmail's access file (/etc/mail/access) detected."
- cp_echo "CN: Please, upgrade your's /etc/postfix/access."
+ cp_echo "CN: Pronađena je sendmailova datoteka /etc/mail/access."
+ cp_echo "CN: Ukoliko je potrebno, nadogradite /etc/mail/access po uputama sa:"
cp_echo "CN: http://www.postfix.org/SMTPD_ACCESS_README.html"
cp_echo ""
fi
# ako ima razlika, backupiraj stari, ako ne, obrisi privremeni backup
if ! cmp -s /etc/postfix/master.cf /etc/postfix/master.cf.dpkg-tmp.$$; then
- cp_echo "CN: Backing up old version of /etc/postfix/master.cf in /var/backups/..."
+ cp_echo "CN: Backupiram staru inačicu /etc/postfix/master.cf u /var/backups/..."
cp_backup_conffile /etc/postfix/master.cf.dpkg-tmp.$$ master.cf
restart_postfix="yes"
fi
rm -f /etc/postfix/master.cf.dpkg-tmp.$$
if ! cmp -s /etc/postfix/main.cf /etc/postfix/main.cf.dpkg-tmp.$$; then
- cp_echo "CN: Backing up old version of /etc/postfix/main.cf in /var/backups/..."
+ cp_echo "CN: Backupiram staru inačicu /etc/postfix/main.cf u /var/backups/..."
cp_backup_conffile /etc/postfix/main.cf.dpkg-tmp.$$ main.cf
restart_postfix="yes"
fi
# echo
#fi
+# Provjera postoje li naša slova šđčćž u /etc/passwd
+check_for_utf
+
# kreiraj aliases_gecos
-if [ -x /usr/share/postfix-cn/make-aliases-gecos.sh ]; then
+if [ -x /usr/sbin/newaliases-gecos ]; then
if [ "$matchgecos" = "true" ]; then
- echo "CN: Creating GECOS alias map..."
- /usr/share/postfix-cn/make-aliases-gecos.sh
+ echo "CN: Pravim GECOS alias mapu..."
+ /usr/sbin/newaliases-gecos
fi
fi
-# rjesava gresku using backwards-compatible default setting chroot=y
-postconf -F smtp/inet/chroot=y && restart_postfix="yes"
+# rješava grešku "using backwards-compatible default setting chroot=y"
+
+for service in smtps/inet smtp/inet smtp/unix submission/inet pickup/fifo cleanup/unix qmgr/fifo rewrite/unix bounce/unix defer/unix trace/unix verify/unix flush/unix relay/unix showq/unix error/unix scache/unix discard/unix retry/unix
+do
+ postconf -F $service/chroot=y
+done
+restart_postfix="yes"
+
+
+# obavijest za webmail
+
+cp-update -t postfix-cn /etc/postfix/main.cf <<EOF
+
+# Posluzitelji "193.198.233.95" "193.198.233.96" su odlazni posluzitelji za webmail.carnet.hr
+# Ukoliko koristite uslugu CARNET-ovog Webmaila, nemojte ih brisati iz "mynetworks"!
+
+EOF
+
+test -f /etc/postfix/cn-client-access && /usr/sbin/postmap /etc/postfix/cn-client-access
+test -f /etc/postfix/cn-recipient-access && /usr/sbin/postmap /etc/postfix/cn-recipient-access
+test -f /etc/postfix/cn-sender-access && /usr/sbin/postmap /etc/postfix/cn-sender-access
+test -f /etc/postfix/cn-helo-access && /usr/sbin/postmap /etc/postfix/cn-helo-access
+
# restart
if [ "$restart_postfix" = "yes" ]; then