В данной статье описывается процесс установки полноценного сервера (с 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
#
# 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 в обе секции, остальное ниже оставим закомментированным:
[...]
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
[...]
Перезапустим 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:
#<FilesMatch "\.ph(p3?|tml)$">
# SetHandler application/x-httpd-suphp
#
AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
suPHP_AddHandler application/x-httpd-suphp
suPHP_Engine on
# 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.
suPHP_Engine off
# # Use a specific php config file (a dir which contains a php.ini file)
# suPHP_ConfigPath /etc/php5/cgi/suphp/
# # Tells mod_suphp NOT to handle requests with the type
# suPHP_RemoveHandler
Затем перезапустим 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.
Продолжение статьи: читать далее...
Дискуссия
Написал Rocky 9
Опубликовано в: Установка nginx c PHP-FPM под CentOS 7.0 in LinuxНаписал Константин
Опубликовано в: Докеризация стека LEMP под Ubuntu c помощью Compose in LinuxНаписал bammbr
Опубликовано в: Шлюз для маленького отдела на Red Hat 9 in LinuxНаписал Федор
Опубликовано в: Установка и конфигурация Samba на CentOS 7 in LinuxНаписал Evgenytrl
Опубликовано в: Загрузка файлов с помощью Wget in Linux