Веб-сервер “под ключ” на базе Ubuntu 14

В данной статье описывается процесс установки полноценного сервера (с 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.

Продолжение статьи: читать далее

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.