Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
vms:webdev:ispconfig [2014/06/06 11:03] admin [Install Nginx, PHP5 (PHP-FPM), And Fcgiwrap] |
vms:webdev:ispconfig [2014/06/06 17:44] (current) admin [Install ISPConfig 3] |
||
|---|---|---|---|
| Line 87: | Line 87: | ||
| * Repeat password for the MySQL "root" user: yourrootsqlpassword | * Repeat password for the MySQL "root" user: yourrootsqlpassword | ||
| - | === Postfix === | + | ==== Postfix ==== |
| + | ---- | ||
| Next open the TLS/SSL and submission ports in Postfix: | Next open the TLS/SSL and submission ports in Postfix: | ||
| <code> | <code> | ||
| Line 117: | Line 118: | ||
| </code> | </code> | ||
| - | === MySQL === | + | ==== MySQL ==== |
| + | ---- | ||
| MySQL should listen on all interfaces, not just localhost, therefore we edit **/etc/mysql/my.cnf** and comment out the line bind-address = 127.0.0.1, then restart the service: | MySQL should listen on all interfaces, not just localhost, therefore we edit **/etc/mysql/my.cnf** and comment out the line bind-address = 127.0.0.1, then restart the service: | ||
| <code> | <code> | ||
| Line 147: | Line 149: | ||
| ---- | ---- | ||
| - | ==== Install Nginx, PHP5 (PHP-FPM), And Fcgiwrap ==== | + | ===== Install Nginx, PHP5 (PHP-FPM), And Fcgiwrap ===== |
| ---- | ---- | ||
| - | === nginx === | + | ==== nginx ==== |
| + | ---- | ||
| <code> | <code> | ||
| > apt-get install nginx | > apt-get install nginx | ||
| Line 156: | Line 159: | ||
| </code> | </code> | ||
| - | === php-fpm === | + | ==== php-fpm ==== |
| + | ---- | ||
| <code> | <code> | ||
| > apt-get install php5-fpm | > apt-get install php5-fpm | ||
| </code> | </code> | ||
| - | === php complementary packages === | + | ==== php complementary packages ==== |
| + | ---- | ||
| <code> | <code> | ||
| > apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached | > apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached | ||
| </code> | </code> | ||
| - | === php.ini === | + | ==== php.ini ==== |
| + | ---- | ||
| <code> | <code> | ||
| > nano /etc/php5/fpm/php.ini | > nano /etc/php5/fpm/php.ini | ||
| Line 181: | Line 187: | ||
| Available timezones can be found in the **/usr/share/zoneinfo** directories and its subdirectories. | Available timezones can be found in the **/usr/share/zoneinfo** directories and its subdirectories. | ||
| - | === fcgiwrap === | + | ==== fcgiwrap ==== |
| + | ---- | ||
| To get CGI support in nginx, we install Fcgiwrap. | To get CGI support in nginx, we install Fcgiwrap. | ||
| Line 188: | Line 195: | ||
| </code> | </code> | ||
| - | === Multiple php versions === | + | ==== Multiple php versions ==== |
| + | ---- | ||
| In case you'd like to be able to selct various php version for each site, read [[http://www.howtoforge.com/how-to-use-multiple-php-versions-php-fpm-and-fastcgi-with-ispconfig-3-debian-wheezy|How To Use Multiple PHP Versions (PHP-FPM & FastCGI) With ISPConfig 3 (Debian Wheezy)]] | In case you'd like to be able to selct various php version for each site, read [[http://www.howtoforge.com/how-to-use-multiple-php-versions-php-fpm-and-fastcgi-with-ispconfig-3-debian-wheezy|How To Use Multiple PHP Versions (PHP-FPM & FastCGI) With ISPConfig 3 (Debian Wheezy)]] | ||
| ---- | ---- | ||
| - | ==== Services ==== | + | ===== Services ===== |
| ---- | ---- | ||
| - | === phpMyAdmin === | + | ==== phpMyAdmin ==== |
| + | ---- | ||
| <code> | <code> | ||
| > apt-get install phpmyadmin | > apt-get install phpmyadmin | ||
| Line 209: | Line 218: | ||
| The ISPConfig apps vhost on port 8081 for nginx comes with a phpMyAdmin configuration, so you can use http://server1.example.com:8081/phpmyadmin or http://server1.example.com:8081/phpMyAdmin to access phpMyAdmin. | The ISPConfig apps vhost on port 8081 for nginx comes with a phpMyAdmin configuration, so you can use http://server1.example.com:8081/phpmyadmin or http://server1.example.com:8081/phpMyAdmin to access phpMyAdmin. | ||
| - | For more info regarding nginx configuration regarding PhpMyAdmin see point 12.2 of [[http://www.howtoforge.com/perfect-server-debian-wheezy-nginx-bind-dovecot-ispconfig-3-p4|this page in the perfect server guide]]. | + | For more info regarding nginx configuration for PhpMyAdmin see point 12.2 of [[http://www.howtoforge.com/perfect-server-debian-wheezy-nginx-bind-dovecot-ispconfig-3-p4|this page in the perfect server guide]]. |
| + | |||
| + | ==== Mailman ==== | ||
| + | ---- | ||
| + | ISPConfig (3.0.4+) allows to manage (create/modify/delete) Mailman mailing lists. If you want to make use of this feature, install Mailman as follows: | ||
| + | <code> | ||
| + | > apt-get install mailman | ||
| + | </code> | ||
| + | |||
| + | Select at least one language, say OK when it says the site list is missing.\\ | ||
| + | If you need a different set of languages at a later time, just run dpkg-reconfigure mailman. | ||
| + | |||
| + | <code> | ||
| + | > newlist mailman | ||
| + | </code> | ||
| + | |||
| + | * Enter the email of the person running the list: admin email address, e.g. listadmin@example.com | ||
| + | * Initial mailman password: admin password for the mailman list | ||
| + | |||
| + | <code> | ||
| + | > nano /etc/aliases | ||
| + | |||
| + | ADD: | ||
| + | ## mailman mailing list | ||
| + | mailman: "|/var/lib/mailman/mail/mailman post mailman" | ||
| + | mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" | ||
| + | mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" | ||
| + | mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" | ||
| + | mailman-join: "|/var/lib/mailman/mail/mailman join mailman" | ||
| + | mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" | ||
| + | mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" | ||
| + | mailman-request: "|/var/lib/mailman/mail/mailman request mailman" | ||
| + | mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" | ||
| + | mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" | ||
| + | |||
| + | > newaliases | ||
| + | </code> | ||
| + | |||
| + | Restart Postfix, then start the Mailman daemon: | ||
| + | <code> | ||
| + | > service postfix restart | ||
| + | > service mailman start | ||
| + | </code> | ||
| + | |||
| + | For more info regarding nginx configuration for mailman see point 13 of [[http://www.howtoforge.com/perfect-server-debian-wheezy-nginx-bind-dovecot-ispconfig-3-p4|this page in the perfect server guide]]. | ||
| + | |||
| + | ==== PureFTPd And Quota ==== | ||
| + | ---- | ||
| + | <code> | ||
| + | > apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool | ||
| + | </code> | ||
| + | |||
| + | Edit **/etc/default/pure-ftpd-common** to make sure that the start mode is set to standalone and set VIRTUALCHROOT=true | ||
| + | |||
| + | <code> | ||
| + | > nano /etc/default/pure-ftpd-common | ||
| + | |||
| + | ... | ||
| + | STANDALONE_OR_INETD=standalone | ||
| + | ... | ||
| + | VIRTUALCHROOT=true | ||
| + | ... | ||
| + | </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. | ||
| + | |||
| + | ---- | ||
| + | ===== Create an xva Appliance ===== | ||
| + | ---- | ||
| + | |||
| + | You might want to save the ISPConfig configured VM for later use, refer to [[http://wiki.strategicz.com/vhyper/doku.php?id=hypervisor:basestack:domu#create_template_and_appliance|this explanation]] to see how to do this. | ||