X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=debian%2Fpostinst;h=cde2e48e7ca22669de593367ebee07d946a952e0;hb=HEAD;hp=fe02c1534dc50fd1de4e7d23f29619325743eb2d;hpb=c18ccf295b02b5ab918b983f2e651de97e58c7ba;p=postfix-cn.git diff --git a/debian/postinst b/debian/postinst index fe02c15..5c0d9c7 100755 --- a/debian/postinst +++ b/debian/postinst @@ -5,11 +5,31 @@ set -e [ "$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" @@ -40,7 +60,15 @@ if echo $rbl | grep -q dnsbl.njabl.org; then db_set postfix-cn/rbl "$rbl" || true fi -db_get postfix-cn/matchgecos || true +# 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" @@ -60,15 +88,49 @@ netaddr="$RET" cp -pf /etc/postfix/master.cf /etc/postfix/master.cf.dpkg-tmp.$$ cp -pf /etc/postfix/main.cf /etc/postfix/main.cf.dpkg-tmp.$$ -# srediti master.cf za TLS +# srediti master.cf za TLS & submission & retry if [ -f /etc/postfix/master.cf ]; then cp_check_and_sed '^#tlsmgr' \ 's/^#tlsmgr/tlsmgr/g' \ /etc/postfix/master.cf || true + cp_check_and_sed '^#submission' \ + 's/^#submission/submission/g' \ + /etc/postfix/master.cf || true + + cp_check_and_sed '^#retry' \ + 's/^#retry/retry/g' \ + /etc/postfix/master.cf || true + cp_check_and_sed '^#smtps' \ 's/^#smtps/smtps/g' \ /etc/postfix/master.cf || true + + cp_check_and_sed '^# -o' \ + 's/^# -o/ -o/g' \ + /etc/postfix/master.cf || true + + for option in "-o milter_macro_daemon_name=ORIGINATING" \ + "-o smtpd_recipient_restrictions=" \ + "-o smtpd_reject_unlisted_recipient=no" \ + "-o smtpd_relay_restrictions=permit_sasl_authenticated,reject" \ + "-o smtpd_sasl_auth_enable=yes" \ + "-o smtpd_tls_security_level=encrypt" \ + "-o smtpd_tls_wrappermode=yes" \ + "-o syslog_name=postfix/smtps" \ + "-o syslog_name=postfix/submission"; do + cp_check_and_sed "^# $option" \ + "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, @@ -81,9 +143,10 @@ postconf -e myorigin="$mailname" postconf -e append_dot_mydomain="yes" postconf -e append_at_myorigin="yes" -# dodaj 127.0.0.0/8 i netaddr +# 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"; 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" fi @@ -118,10 +181,10 @@ if [ "$mx_domain" != "$fqdn" ]; then 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 @@ -173,7 +236,11 @@ smtpd_recipient_restrictions="reject_invalid_hostname, \ 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 @@ -186,6 +253,14 @@ fi 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" @@ -251,19 +326,15 @@ fi # restart saslauthd if [ "$restart_saslauthd" = "yes" ]; then - if [ -x /usr/sbin/invoke-rc.d ]; then - [ -x /etc/init.d/saslauthd ] && invoke-rc.d saslauthd restart - else - [ -x /etc/init.d/saslauthd ] && /etc/init.d/saslauthd restart - fi + service saslauthd restart fi # TLS stuff postconf -e smtp_tls_security_level="may" -postconf -e smtp_tls_session_cache_database="sdbm:/var/lib/postfix/smtp_scache" +postconf -e smtp_tls_session_cache_database="btree:/var/lib/postfix/smtp_scache" postconf -e smtp_tls_session_cache_timeout="3600s" postconf -e smtpd_tls_security_level="may" -postconf -e smtpd_tls_session_cache_database="sdbm:/var/lib/postfix/smtpd_scache" +postconf -e smtpd_tls_session_cache_database="btree:/var/lib/postfix/smtpd_scache" postconf -e smtpd_tls_session_cache_timeout="3600s" postconf -e tls_random_source="dev:/dev/urandom" postconf -e smtpd_tls_exclude_ciphers="aNULL" @@ -312,8 +383,8 @@ fi # 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 @@ -321,8 +392,8 @@ 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 @@ -334,40 +405,63 @@ 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 rm -f /etc/postfix/main.cf.dpkg-tmp.$$ -if ! grep -q "retry unix - - - - - error" /etc/postfix/master.cf; then - echo "CN: Please, add this line in /etc/postfix/master.cf and restart Postfix." - echo "retry unix - - - - - error" - echo -fi +#if ! grep -q "retry unix - - y - - error" /etc/postfix/master.cf; then +# echo "CN: Please, add this line in /etc/postfix/master.cf and restart Postfix." +# echo "retry unix - - y - - error" +# 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 +# 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 <