Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
vms:webdev:ispconfig [2014/06/06 14:50]
admin [Mailman]
vms:webdev:ispconfig [2014/06/06 16:23]
admin [Install ISPConfig 3]
Line 281: Line 281:
 ... ...
 </​code>​ </​code>​
 +
 +To allow FTP and TLS sessions:
 +<​code>​
 +> echo 1 > /​etc/​pure-ftpd/​conf/​TLS
 +</​code>​
 +
 +In order to use TLS, we must create an SSL certificate. Lets create it in **/​etc/​ssl/​private/​**,​ creating the directory first:
 +<​code>​
 +> mkdir -p /​etc/​ssl/​private/​
 +</​code>​
 +
 +Then, we generate the SSL certificate as follows:
 +<​code>​
 +> openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /​etc/​ssl/​private/​pure-ftpd.pem -out /​etc/​ssl/​private/​pure-ftpd.pem
 +</​code>​
 +
 +Fill all requested information...
 +
 +Change the permissions of the SSL certificate,​ and restart PureFTPd:
 +<​code>​
 +> chmod 600 /​etc/​ssl/​private/​pure-ftpd.pem
 +> service pure-ftpd-mysql restart
 +</​code>​
 +
 +Edit **/​etc/​fstab**,​ adding ,​usrjquota=quota.user,​grpjquota=quota.group,​jqfmt=vfsv0 to the partition with the mount point /:
 +<​code>​
 +> nano /etc/fstab
 +
 +UUID=1d269e64-420e-47e1-84fc-c8f0b14c1345 /               ​ext4 ​   errors=remount-ro,​usrjquota=quota.user,​grpjquota=quota.group,​jqfmt=vfsv0 0       1
 +</​code>​
 +
 +To enable quota, run these commands:
 +<​code>​
 +> mount -o remount /
 +> quotacheck -avugm
 +> quotaon -avug
 +</​code>​
 +
 +==== BIND DNS Server ====
 +----
 +<​code>​
 +> apt-get install bind9 dnsutils
 +</​code>​
 +
 +==== Vlogger, Webalizer, And AWstats ====
 +----
 +<​code>​
 +> apt-get install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl
 +> nano /​etc/​cron.d/​awstats
 +
 +# Comment out everything in that file !
 +</​code>​
 +
 +==== Jailkit ====
 +----
 +Jailkit is needed only if you want to chroot SSH users. It must be installed before ISPConfig - it cannot be installed afterwards!
 +
 +<​code>​
 +> apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold
 +> cd /tmp
 +> wget http://​olivier.sessink.nl/​jailkit/​jailkit-2.15.tar.gz
 +> tar xvfz jailkit-2.15.tar.gz
 +> cd jailkit-2.15
 +> ./​debian/​rules binary
 +> cd ..
 +> dpkg -i jailkit_2.15-1_*.deb
 +> rm -rf jailkit-2.15*
 +</​code>​
 +
 +==== fail2ban ====
 +----
 +<​code>​
 +> apt-get install fail2ban
 +</​code>​
 +
 +To have fail2ban monitor PureFTPd and Dovecot, create (or edit) the file **/​etc/​fail2ban/​jail.local**:​
 +<​code>​
 +> nano /​etc/​fail2ban/​jail.local
 +
 +[pureftpd]
 +enabled ​ = true
 +port     = ftp
 +filter ​  = pureftpd
 +logpath ​ = /​var/​log/​syslog
 +maxretry = 3
 +
 +[dovecot-pop3imap]
 +enabled = true
 +filter = dovecot-pop3imap
 +action = iptables-multiport[name=dovecot-pop3imap,​ port="​pop3,​pop3s,​imap,​imaps",​ protocol=tcp]
 +logpath = /​var/​log/​mail.log
 +maxretry = 5
 +
 +[sasl]
 +enabled ​ = true
 +port     = smtp
 +filter ​  = sasl
 +logpath ​ = /​var/​log/​mail.log
 +maxretry = 3
 +</​code>​
 +
 +Create two more files:
 +<​code>​
 +> nano /​etc/​fail2ban/​filter.d/​pureftpd.conf
 +
 +[Definition]
 +failregex = .*pure-ftpd:​ \(.*@<​HOST>​\) \[WARNING\] Authentication failed for user.*
 +ignoreregex =
 +
 +> nano /​etc/​fail2ban/​filter.d/​dovecot-pop3imap.conf
 +
 +[Definition]
 +failregex = (?: pop3-login|imap-login):​ .*(?:​Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?​P<​host>​\S*),​.*
 +ignoreregex =
 +</​code>​
 +
 +Finally, restart fail2ban:
 +<​code>​
 +> /​etc/​init.d/​fail2ban restart
 +</​code>​
 +
 +==== SquirrelMail ====
 +----
 +This has not been done here, for reference, see [[http://​www.howtoforge.com/​perfect-server-debian-wheezy-nginx-bind-dovecot-ispconfig-3-p5|this page of The Perfect Server - Debian Wheezy site]]...
 +
 +----
 +===== Install ISPConfig 3 =====
 +----
 +Although Apache should not be present in this configuration,​ make sure it's not running in case it was installed without you knowing about it, then remove its startup link:
 +<​code>​
 +> service apache2 stop
 +> update-rc.d -f apache2 remove
 +</​code>​
 +
 +Make sure nginx is running:
 +<​code>​
 +> service nginx restart
 +</​code>​
 +
 +=== Install ISPConfig 3 from the latest released version ===
 +
 +<​code>​
 +> cd /tmp
 +> wget http://​www.ispconfig.org/​downloads/​ISPConfig-3-stable.tar.gz
 +> tar xfz ISPConfig-3-stable.tar.gz
 +> cd ispconfig3_install/​install/​
 +</​code>​
 +
 +We need php5-cli to be able to execute php from the command line, then launch the ISPConfig install script:
 +<​code>​
 +> apt-get install php5-cli
 +> php -q install.php
 +</​code>​
 +
 +Follow the instructions and... You'll soon have access to the ISPConfig interface.