База знаний: Linux Server
Установка хостинг панели ISPConfig на VPS под Ubuntu
Автор Алексей | HiTex.BY на 27 июня 2012 12:16
Данный вариант установки предложен для абсолютно чистого сервера без установленного какого либо ПО на него.

ISPConfig работает со следующими компонентами:


Apache 1.3.x/2.0.x/2.2.x
Proftpd & vsftpd
Supports The Following Mail Servers: Sendmail & Postfix
All POP3 & POP3s Servers
All IMAP & IMAPs Servers
BIND 8/9 (A, CNAME, MX, SPF Records)
Firewall Configuration
Monitoring Of Services And Automatic Restart
Web FTP
Web Mail Interface
phpMyAdmin Integration

После установки вам будут доступны следующие параметры для вашего VPS , где любая из опций может быть включена или выключена для аккаунтов пользователей:

PHP incl. Safemode
SSI
CGI-Directories
SSL Sites and Certificates
Frontpage 2002 extensions (if installed on the server)
MySQL Databases
Disk Quota
Webalizer statisics
Traffic statistics
Traffic limits (for web sites and resellers)
Disk usage statistics and overquota warnings
Individual standard index and error pages per domain
Individual records for inclusion in apache vhost (admin only)
Domain redirects
Backup
Log-Quota and Logrotation
Standard CGI
WAP pages
Hosting templates
Cronjobs

Начнем установку с удаления app-armor, он может помешать нормальной работе ISPConfig.

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
aptitude remove apparmor apparmor-utils

Установка Postfix, Courier, Saslauthd, MySQL, phpMyAdmin, rkhunter, binutils

aptitude install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl maildrop getmail4 rkhunter binutils ntp ntpdate

В процессе установки пакетов вам надо будет ответить на вопросы, задать пароль для сервера MYSQL, отказаться от создания директорий для веб администрирования, для почтовой системы выбрать конфигурацию “интернет сайт”, указать полное доменное имя вашего сервера, а так же согласиться на установку сертификатов.

Далее отредактируйте конфиг файл для MYSQL сервера /etc/mysql/my.cnf, за комментируйте строку bind-address = 127.0.0.1 как показано в примере ниже, затем перезапустите MYSQL сервер командой /etc/init.d/mysql restart.

Код:

[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
[...]

Проверьте все ли верно, выполнив команду netstat -tap | grep mysql, результат должен быть примерно таким:

Код:

root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 8474/mysqld
root@server1:~#

Во время установки почтовый сервер Courier генерирует сертификаты для localhost, нам надо сменить их на наше доменное имя, для этого нам надо удалить старые сертификаты, поправить конфигурационные файлы Courier и сгенерировать новые сертификаты для нашего домена. В примере используется домен server1.example.com.

Код:

cd /etc/courier
удалим старые сертификаты
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem
Отредактируем конфиги
vi /etc/courier/imapd.cnf
Впишите ваш домен вместо localhost
[…]
CN=server1.example.com
[…]
Отредактируем второй конфиг
vi /etc/courier/pop3d.cnf
замените localhost на ваш домен
[…]
CN=server1.example.com
[…]
теперь сгененрируем новые сертификаты
mkimapdcert
mkpop3dcert

Перезапустите Courier для того что бы он подхватил новые сертификаты выполнив пару команд:

Код:

/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart

Установим Amavisd-new, SpamAssassin, и Clamav

Код:

aptitude install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl

Установка Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear, And mcrypt

Код:

aptitude install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp

В процессе установки надо ответить на вопросы, на первый вопрос ответьте apache2, на следующий вопрос заданный пакетом phpmyadmin ответить Yes, затем у вас спросят пароль для root на сервер mysql, и пароль для доступа к phpmyadmin, оставьте его пустым.

Включите необходимые модули для вебсервера Apache2

Код:

a2enmod suexec rewrite ssl actions include

Далее обезопасим доступ к phpmyadmin, удалите файл /etc/phpmyadmin/htpasswd.setup и закомментируйте секцию в конфиге Apache2 /etc/phpmyadmin/apache.conf как показано ниже

Код:

[...]
## Authorize for setup
#
#
# AuthType Basic
# AuthName “phpMyAdmin Setup”
# AuthUserFile /etc/phpmyadmin/htpasswd.setup
#
# Require valid-user
#
[…]

После этого перезапустим Apache2 командой /etc/init.d/apache2 restart

Установка PureFTPd и Quota

Код:

aptitude install pure-ftpd-common pure-ftpd-mysql quota quotatool

Отредактируем конфиг сервера PureFTPD /etc/default/pure-ftpd-common, изменив пару важных параметров как показано ниже

Код:

[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

После этого перезапустите PureFTPD командой /etc/init.d/pure-ftpd-mysql restart

Для включения квот для пользователей отредактируем файл /etc/fstab который отвечает за монтирование дисков, добавим к разделу / опции usrquota и grpquota, выглядеть это будет примерно так

Код:

# /etc/fstab: static file system information.
#
# Use 'vol_id --uuid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
proc /proc proc defaults 0 0
# / was on /dev/mapper/server1-root during installation
UUID=b8d265bc-5959-404d-a68e-8dc1c76f18d6 / ext3 relatime,errors=remount-ro,usrquota,grpquota 0 1
# /boot was on /dev/sda5 during installation
UUID=01e9c3c7-2ad0-4f52-a356-18290517b362 /boot ext2 relatime 0 2
# swap was on /dev/mapper/server1-swap_1 during installation
UUID=c1e0bcbb-5c73-4bd2-a7b2-8beeb7526200 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

Создадим файлы необходимые для работы квот и перемонтируем корневой раздел для их включения

Код:

touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /

Проверим все ли правильно выполнив команды

Код:

quotacheck -avugm
quotaon -avug

Установка DNS сервер MyDNS

Код:

aptitude install g++ libc6 gcc gawk make texinfo libmysqlclient15-dev

Пакет MyDNS отсутствует в репозиториях Ubuntu, поэтому ставить его будем из исходных кодов.

Код:

cd /tmp
wget http://heanet.dl.sourceforge.net/sourceforge/mydns-ng/mydns-1.2.8.27.tar.gz
tar xvfz mydns-1.2.8.27.tar.gz
cd mydns-1.2.8
./configure
make
make install

После установки создадим стартовый скрипт для MyDNS, создайте файл /etc/init.d/mydns и впишите в него следующее

Код:

#! /bin/sh
#
# mydns Start the MyDNS server
#
# Author: Philipp Kern
.
# Based upon skeleton 1.9.4 by Miquel van Smoorenburg
# and Ian Murdock .
#
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/mydns
NAME=mydns
DESC=”DNS server”
SCRIPTNAME=/etc/init.d/$NAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
case “$1? in
start)
echo -n “Starting $DESC: $NAME”
start-stop-daemon –start –quiet \
–exec $DAEMON — -b
echo “.”
;;
stop)
echo -n “Stopping $DESC: $NAME”
start-stop-daemon –stop –oknodo –quiet \
–exec $DAEMON
echo “.”
;;
reload|force-reload)
echo -n “Reloading $DESC configuration…”
start-stop-daemon –stop –signal HUP –quiet \
–exec $DAEMON
echo “done.”
;;
restart)
echo -n “Restarting $DESC: $NAME”
start-stop-daemon –stop –quiet –oknodo \
–exec $DAEMON
sleep 1
start-stop-daemon –start –quiet \
–exec $DAEMON — -b
echo “.”
;;
*)
echo “Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}” >&2
exit 1
;;
esac
exit 0

Сделаем скрипт исполняемым и добавим в автозагрузку

Код:

chmod +x /etc/init.d/mydns
update-rc.d mydns defaults

Установим Vlogger и Webalizer

Код:

aptitude install vlogger webalizer

Установим Jailkit

Jailkit нужен нам для реализации chroot наших пользователей для входа по ssh.
Важно, Jailkit обязательно должен быть установлен перед установкой ISPConfig!
Установим необходимые пакеты

Код:

aptitude install build-essential autoconf automake1.9 libtool flex bison

Jailkit так же как и MyDns будем ставить из исходников

Код:

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz
tar xvfz jailkit-2.5.tar.gz
cd jailkit-2.5
./configure
make
make install
cd ..
rm -rf jailkit-2.5*


Установим fail2ban

Код:

aptitude install fail2ban

Установим SquirrelMail

Код:

aptitude install squirrelmail

Создадим симлинк для более удобного входа в почтовый интерфейс, он будет доступен по адресу http://server1.example.com/webmail (server1.example.com замените на ваш домен)

Код:

ln -s /usr/share/squirrelmail/ /var/www/webmail

Затем настроим SquirrelMail выполнив команду squirrelmail-configure.

Вместо squirrel mail вы можете установить Roundcube mail,выглядит она поприятнее, функционала побольше.

Установим ISPConfig 3

Код:

cd /tmp
wget http://downloads.sourceforge.net/ispconfig/ISPConfig-3.0.1.1.tar.gz?use_mirror=
tar xvfz ISPConfig-3.0.1.1.tar.gz
cd ispconfig3_install/install/

Запустим установку

Код:

php -q install.php

Далее примерно описан процесс установки с ответами на вопросы задаваемыми установщиком

root@server1:/tmp/ispconfig3_install/install# php -q install.php

——————————————————————————–

>> Initial configuration

Operating System: Debian Lenny/Sid or compatible

Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with <ENTER>.
Tap in ”quit” (without the quotes) to stop the installer.

Select language (en,de) [en]: <– ENTER

Installation mode (standard,expert) [standard]: <– ENTER

Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: <– ENTER

MySQL server hostname [localhost]: <– ENTER

MySQL root username [root]: <– ENTER

MySQL root password []: <– пароль root для mysql

MySQL database to create [dbispconfig]: <– ENTER

MySQL charset [utf8]: <– ENTER

Generating a 2048 bit RSA private key
……………………………………………………..+++
…………..+++
writing new private key to ’smtpd.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ’.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]: <– ENTER
State or Province Name (full name) [Some-State]: <– ENTER
Locality Name (eg, city) []: <– ENTER
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <– ENTER
Organizational Unit Name (eg, section) []: <– ENTER
Common Name (eg, YOUR name) []: <– ENTER
Email Address []: <– ENTER
Configuring Jailkit
Configuring SASL
Configuring PAM
Configuring Courier
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring MyDNS
Configuring Apache
Configuring Firewall
Installing ISPConfig
ISPConfig Port [8080]: <– ENTER

Configuring DBServer
Installing Crontab
no crontab for root
no crontab for getmail
Restarting services …
* Stopping MySQL database server mysqld
…done.
* Starting MySQL database server mysqld
…done.
* Checking for corrupt, not cleanly closed and upgrade needing tables.
* Stopping Postfix Mail Transport Agent postfix
…done.
* Starting Postfix Mail Transport Agent postfix
…done.
* Stopping SASL Authentication Daemon saslauthd
…done.
* Starting SASL Authentication Daemon saslauthd
…done.
Stopping amavisd: amavisd-new.
Starting amavisd: amavisd-new.
* Stopping ClamAV daemon clamd
…done.
* Starting ClamAV daemon clamd
…done.
* Stopping Courier authentication services authdaemond
…done.
* Starting Courier authentication services authdaemond
…done.
* Stopping Courier IMAP server…
…done.
* Starting Courier IMAP server…
…done.
* Stopping Courier IMAP-SSL server…
…done.
* Starting Courier IMAP-SSL server…
…done.
* Stopping Courier POP3 server…
…done.
* Starting Courier POP3 server…
…done.
* Stopping Courier POP3-SSL server…
…done.
* Starting Courier POP3-SSL server…
…done.
* Restarting web server apache2
… waiting …done.
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -A -E -b -u 1000 -O clf:/var/log/pure-ftpd/transfer.log -B
Installation completed.
root@server1:/tmp/ispconfig3_install/install#

После установки система готова к использованию, зайдите в админ панель ISPConfig по адресу http://server1.example.com:8080/ с логином admin паролем admin

Вам останется только создать и настроить аккаунты, а так же немного привести в порядок конфигурацию установленных демонов.

(2735 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)