#!/bin/sh # postinst script for proftpd-cn # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package # case "$1" in configure|reconfigure) # continue below ;; *) exit 0 ;; esac # created: 2002-11-15 Bozo Juretic # last update: 2007-05-14 Zoran Dzelajlija # last update: 2007-10-27 Dinko Korunic # Source debconf library. . /usr/share/debconf/confmodule # Import CN toolsa . /usr/share/carnet-tools/functions.sh FTP_CONF=/etc/proftpd/proftpd.conf FTP_TMP=`mktemp /etc/proftpd/proftpd.conf.XXXXXX` FTP_OLD=/var/backups/proftpd.conf.bak SSL_CERT=/etc/ssl/certs/ftpd-rsa.pem SSL_KEY=/etc/ssl/certs/ftpd-rsa-key.pem # Backup stare konfiguracije cp_backup_conffile $FTP_CONF cp -p $FTP_CONF $FTP_TMP # Onemogucavanje Anonymous ftp pristupa disable_anonymous() { if grep -qi "^ TLSEngine on # Are clients required to use FTP over TLS when talking to this server? TLSRequired off # Server's certificate TLSRSACertificateFile $SSL_CERT TLSRSACertificateKeyFile $SSL_KEY # CA the server trusts #TLSCACertificateFile /etc/ftpd/root.cert.pem # Authenticate clients that want to use FTP over TLS? TLSVerifyClient off # Allow SSL/TLS renegotiations when the client requests them, but # do not force the renegotations. Some clients do not support # SSL/TLS renegotiations; when mod_tls forces a renegotiation, these # clients will close the data connection, or there will be a timeout # on an idle data connection. TLSRenegotiate required off EOF fi } # include za slucaj da sistemac nije prihvatio izmjene od Debiana include_modules() { if [ -f $FTP_TMP ] ; then if ! egrep -qi "^[[:space:]]*Include.*/etc/proftpd/modules.conf" $FTP_TMP ; then printf "#\n# Includes required DSO modules. This is mandatory in proftpd 1.3\n#\nInclude\t/etc/proftpd/modules.conf\n\n" >$FTP_TMP.tmp.$$ cat $FTP_TMP >>$FTP_TMP.tmp.$$ mv -f $FTP_TMP.tmp.$$ $FTP_TMP fi fi } # Generiranje SSL certifikata make_ssl_cert() { if [ ! -f $SSL_CERT ] ; then cd $(dirname $SSL_CERT) echo "CN: Generating SSL certificate ... " openssl req -new -x509 -days 365 -nodes -out $(basename $SSL_CERT) -keyout $(basename $SSL_KEY) echo "CN: Self-signed SSL certificate generated in $SSL_CERT." echo "CN: Please note that the certificate will expire in one year." fi } # purge starog proftpd-common paketa bi napravio rusvaj defuse_old_postrm() { if [ -f /var/lib/dpkg/info/proftpd-common.postrm ]; then cp_check_and_sed '^[^#]*(update-rc.d|update-inetd|/var/run/proftpd)' \ '/update-rc.d/d; /update-inetd/d; /var\/run\/proftpd/d' \ /var/lib/dpkg/info/proftpd-common.postrm || true fi } defuse_old_postrm disable_anonymous fix_conf add_tls include_modules make_ssl_cert if [ -z "$2" ]; then echo "CN: Proftpd-cn is configured with disabled anonymous FTP access," echo "CN: for the security reasons." fi if ! cmp -s $FTP_TMP $FTP_CONF; then echo "CN: Original configuration file is saved in $FTP_OLD." cp_mv $FTP_TMP $FTP_CONF else rm -f $FTP_TMP fi echo "CN: Restarting proftpd ..." if [ -x /usr/sbin/invoke-rc.d ]; then invoke-rc.d proftpd restart else /etc/init.d/proftpd restart fi # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0