В данной статье описывается процесс установки полноценного сервера (с Apache2, BIND, Dovecot) на базе Ubuntu 14 (Utopic Unicorn), ISPConfig 3. ISPConfig 3 представляет собой интерфейс, с помощью которого вы можете настраивать следующие службы из браузера: веб-сервер Apache или nginx, почтовый сервер Postfix, Courier или Dovecot (работа с IMAP/POP3), базы данных MySQL, сервера доменных имён BIND или MyDNS, PureFTPd, SpamAssassin, ClamAV и многое другое. В процессе установки мы будем использовать Apache (вместо nginx), BIND (вместо MyDNS) и Dovecot (вместо Courier).
1. Предварительные замечания
В данной статье будем использовать имя хоста test.drach.pro, IP адрес 10.4.0.10 и шлюз 10.4.0.1. В конкретном случае эти параметры могут отличаться, вам необходимо будет заменить их на свои там, где это требуется. Подразумевается, что у Вас должна быть установлена Ubuntu версии 14.04.
2. Редактирование /etc/apt/sources.list и обновление установки Linux
Отредактируем файл /etc/apt/sources.list. Удалим диск установки из файла и убедимся, что дополнительные и экстра репозитории включены:
mcedit /etc/apt/sources.list
Пример файла Sources.list
# # deb cdrom:[Ubuntu-Server 14.10 _Utopic Unicorn_ - Release amd64 (20141022.2)]/ utopic main restricted #deb cdrom:[Ubuntu-Server 14.10 _Utopic Unicorn_ - Release amd64 (20141022.2)]/ utopic main restricted # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://de.archive.ubuntu.com/ubuntu/ utopic main restricted deb-src http://de.archive.ubuntu.com/ubuntu/ utopic main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://de.archive.ubuntu.com/ubuntu/ utopic-updates main restricted deb-src http://de.archive.ubuntu.com/ubuntu/ utopic-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://de.archive.ubuntu.com/ubuntu/ utopic universe deb-src http://de.archive.ubuntu.com/ubuntu/ utopic universe deb http://de.archive.ubuntu.com/ubuntu/ utopic-updates universe deb-src http://de.archive.ubuntu.com/ubuntu/ utopic-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://de.archive.ubuntu.com/ubuntu/ utopic multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ utopic multiverse deb http://de.archive.ubuntu.com/ubuntu/ utopic-updates multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ utopic-updates multiverse ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. deb http://de.archive.ubuntu.com/ubuntu/ utopic-backports main restricted universe multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ utopic-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu utopic-security main restricted deb-src http://security.ubuntu.com/ubuntu utopic-security main restricted deb http://security.ubuntu.com/ubuntu utopic-security universe deb-src http://security.ubuntu.com/ubuntu utopic-security universe deb http://security.ubuntu.com/ubuntu utopic-security multiverse deb-src http://security.ubuntu.com/ubuntu utopic-security multiverse ## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. ## This software is not part of Ubuntu, but is offered by Canonical and the ## respective vendors as a service to Ubuntu users. # deb http://archive.canonical.com/ubuntu utopic partner # deb-src http://archive.canonical.com/ubuntu utopic partner ## Uncomment the following two lines to add software from Ubuntu's ## 'extras' repository. ## This software is not part of Ubuntu, but is offered by third-party ## developers who want to ship their latest software. # deb http://extras.ubuntu.com/ubuntu utopic main # deb-src http://extras.ubuntu.com/ubuntu utopic main
Затем запустим
apt-get update
для обновления соответствующих баз данных и
apt-get upgrade
для установки последних обновлений (если они есть). Если вместе с обновлениями обновилось и само ядро, тогда потребуется перезагрузка системы:
reboot
3. Изменение стандартной оболочки
Как известно, /bin/sh это симлинк на /bin/dash, однако нам потребуется именно /bin/bash, а не /bin/dash.
Мы вынуждены выполнить команду:
dpkg-reconfigure dash
Use dash as the default system shell (/bin/sh)? N
Если этого не сделать, то затем невозможно будет установить ISPConfig.
4. Отключение AppArmor
AppArmor является расширением безопасности (схожим с SELinux), которое предоставляет расширенную безопасность. В нашем случае данное расширение нам не потребуется, поэтому отключим его следующим:
service apparmor stop update-rc.d -f apparmor remove apt-get remove apparmor apparmor-utils
5. Синхронизация времени системы
Наиболее удобным является синхронизация времени системы с NTP (протокол времени интернета), для этого выполним следующее:
apt-get install ntp ntpdate
После этого системное время всегда будет синхронизировано.
6. Установка Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, binutils
Для установки postfix потребуется установить и удалить sendmail
service sendmail stop; update-rc.d -f sendmail remove
Затем установим Postfix, Dovecot, MySQL, rkhunter и binutils при помощи одной лишь команды:
apt-get install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo
В процессе установки потребуется ответить на следующие вопросы:
New password for the MySQL "root" user: Repeat password for the MySQL "root" user: Create a self-signed SSL certificate?: Host name: Local only: General type of mail configuration: System mail name:
Затем откроем TLS/SSL и порты в Postfix:
nano /etc/postfix/master.cf
Раскомментируйте секции “submission” и “smtps”, – добавим строку -o smtpd_client_restrictions=permit_sasl_authenticated в обе секции, остальное ниже оставим закомментированным:
[...]<br> submission inet n - - - - smtpd<br> -o syslog_name=postfix/submission<br> -o smtpd_tls_security_level=encrypt<br> -o smtpd_sasl_auth_enable=yes<br> -o smtpd_client_restrictions=permit_sasl_authenticated,reject<br> # -o smtpd_reject_unlisted_recipient=no<br> # -o smtpd_client_restrictions=$mua_client_restrictions<br> # -o smtpd_helo_restrictions=$mua_helo_restrictions<br> # -o smtpd_sender_restrictions=$mua_sender_restrictions<br> # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject<br> # -o milter_macro_daemon_name=ORIGINATING<br> smtps inet n - - - - smtpd<br> -o syslog_name=postfix/smtps<br> -o smtpd_tls_wrappermode=yes<br> -o smtpd_sasl_auth_enable=yes<br> -o smtpd_client_restrictions=permit_sasl_authenticated,reject<br> # -o smtpd_reject_unlisted_recipient=no<br> # -o smtpd_client_restrictions=$mua_client_restrictions<br> # -o smtpd_helo_restrictions=$mua_helo_restrictions<br> # -o smtpd_sender_restrictions=$mua_sender_restrictions<br> # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject<br> # -o milter_macro_daemon_name=ORIGINATING<br> [...]
Перезапустим Postfix:
service postfix restart
Нам необходимо, чтобы MySQL работал со всеми интерфейсами, а не только с локальным хостом, для этого отредактируем файл /etc/mysql/my.cnf и удалим строку bind-address = 127.0.0.1:
nano /etc/mysql/my.cnf
[...] # 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 [...]
Затем перезапустим MySQL:
service mysql restart
Теперь проверим, разрешена ли работа в интернете:
netstat -tap | grep mysql
Выходные данные должны выглядеть следующим образом:
root@test:~# netstat -tap | grep mysql tcp 0 0 *:mysql *:* LISTEN 24603/mysqld
В случае возникновения проблем, исправим конфигурацию:
default_transport = smtp relay_transport = relay inet_interfaces = all
7. Установка Amavisd-new, SpamAssassin и Clamav
Для установки amavisd-new, SpamAssassin и ClamAV, выполним следующее:
apt-get 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
Установка ISPConfig 3 использует amavisd, который загружает библиотеку фильтров SpamAssassin, поэтому остановим SpamAssassin, для того, чтобы освободить оперативную память:
service spamassassin stop update-rc.d -f spamassassin remove
Для запуска clamav введём следующее:
freshclam service clamav-daemon start
8. Установка Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt
Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt устанавливаются следующим образом:
apt-get install apache2 apache2-doc apache2-utils 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 libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached
Далее потребуется ответить на следующие вопросы:
Web server to reconfigure automatically: Configure database for phpmyadmin with dbconfig-common?
Затем нам потребуется включить модули Apache suexec, rewrite, ssl, actions и include (дополнительно dav, dav_fs, and auth_digest, если вам требуется WebDAV):
a2enmod suexec rewrite ssl actions include cgi
a2enmod dav_fs dav auth_digest
Далее откроем /etc/apache2/mods-available/suphp.conf…
nano /etc/apache2/mods-available/suphp.conf
… и удалим секцию <FilesMatch “\.ph(p3?|tml)$”> и добавим строку AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml – в противном случае файлы PHP будут запускаться с помощью SuPHP:
<br> #<FilesMatch "\.ph(p3?|tml)$"> <br> # SetHandler application/x-httpd-suphp<br> #<br> AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml<br> suPHP_AddHandler application/x-httpd-suphp<br> <br> suPHP_Engine on<br> <br> # By default, disable suPHP for debian packaged web applications as files # are owned by root and cannot be executed by suPHP because of min_uid. <br> suPHP_Engine off<br> <br> # # Use a specific php config file (a dir which contains a php.ini file) <br> # suPHP_ConfigPath /etc/php5/cgi/suphp/<br> # # Tells mod_suphp NOT to handle requests with the type <br> # suPHP_RemoveHandler <br>
Затем перезапустим Apache:
service apache2 restart
Если вы хотите использовать файлы Ruby с расширением .rb на вашем сайте, созданным ISPConfig, потребуется удалить строку application/x-ruby rb in /etc/mime.types:
nano /etc/mime.types
[...] #application/x-ruby rb [...]
(Это требуется только для файлов с расширением .rb; файлы Ruby с расширением.rbx все равно будут действительны.)
Далее перезапустим Apache:
service apache2 restart
8.1 Xcache
Xcache представляет собой бесплатный PHP opcode-кэшер, предназначенный для кэширования и оптимизации промежуточного кода PHP. Он схож с другими opcode кэшерами, например eAccelerator или APC. Настоятельно рекомендуется установить один из этих кэшеров, если вы хотите ускорить интерпретацию страниц PHP.
Xcache устанавливается следующим образом:
apt-get install php5-xcache
Перезапустим Apache:
service apache2 restart
8.2 PHP-FPM
Начиная с ISPConfig 3.0.5, дополнительным режим PHP, который можно выбрать для использования совместно с Apache: PHP-FPM.
Для использования PHP-FPM совместно Apache, нам потребуется модуль mod_fastcgi. Установим PHP-FPM и mod_fastcgi следующим образом:
apt-get install libapache2-mod-fastcgi php5-fpm
Убедимся, что модуль включен и перезапустим Apache:
a2enmod actions fastcgi alias service apache2 restart
8.3 Дополнительные версии PHP
Начиная с ISPConfig 3.0.5, стало возможным иметь несколько версий PHP на одном сервере (версия выбирается с помощью ISPConfig), которые могут быть запущены через FastCGI и PHP-FPM.
Продолжение статьи: читать далее…