Поиск по сайту:

Идеальный сервер — Ubuntu 15.10 (nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD и ISPConfig 3)


В этом руководстве показаны шаги по установке сервера Ubuntu 15.10 (Wiley Werewolf) с Nginx, PHP, MariaDB, Postfix, pure-ftpd, BIND, Dovecot и ISPConfig 3. ISPConfig 3 — это панель управления веб-хостингом, которая позволяет настроить установленный службы через веб-браузер. Эта настройка предоставляет полный хостинг-сервер с веб-службами, электронной почтой (включая спам и антивирусный фильтр), базой данных, FTP и службами DNS.

1. Предварительное примечание

В этом руководстве я буду использовать имя хоста server1.example.com с IP-адресом 192.168.1.100 и шлюзом 192.168.1.1 для конфигурации сети. Эти настройки могут отличаться для вас, поэтому вам придется заменить их там, где это необходимо. Прежде чем продолжить, вам необходимо иметь базовую минимальную установку Ubuntu 15.10, как описано в руководстве. 3043223216276099;var slotId=div-gpt-ad-howtoforge_com-medrectangle-3-0;var ffid=1;var alS=1021%1000;var container=document.getElementById(slotId);container.style.width=100%; var ins=document.createElement(ins);ins.id=slotId+-asloaded;ins.className=adsbygoogle ezasloaded;ins.dataset.adClient=pid;ins.dataset.adChannel=cid;if(ffid==2){ins .dataset.fullWidthResponsive=true;}

Шаги в этом руководстве должны выполняться от имени пользователя root, поэтому я не буду добавлять «sudo» перед командами. Либо войдите как пользователь root на свой сервер, прежде чем продолжить, либо запустите:

sudo su

чтобы стать root, когда вы вошли в систему как другой пользователь в оболочке.

Команды для редактирования файлов будут использовать редактор \nano\, вы можете заменить его любым редактором по вашему выбору. Nano — это простой в использовании файловый редактор для оболочки. Если вы хотите использовать nano и еще не установили его, запустите:

apt-get install nano

2. Обновите свою установку Linux

Отредактируйте /etc/apt/sources.list. Закомментируйте или удалите установочный компакт-диск из файла и убедитесь, что репозитории юниверса и мультивселенной включены. Это должно выглядеть так:

nano /etc/apt/sources.list
#

# deb cdrom:[Ubuntu-Server 15.10 _Wily Werewolf_ - Release amd64 (20151021)]/ wily main restricted

#deb cdrom:[Ubuntu-Server 15.10 _Wily Werewolf_ - Release amd64 (20151021)]/ wily 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/ wily main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ wily main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ wily-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-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/ wily universe
deb-src http://de.archive.ubuntu.com/ubuntu/ wily universe
deb http://de.archive.ubuntu.com/ubuntu/ wily-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-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/ wily multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ wily multiverse
deb http://de.archive.ubuntu.com/ubuntu/ wily-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-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/ wily-backports main restricted universe multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu wily-security main restricted
deb-src http://security.ubuntu.com/ubuntu wily-security main restricted
deb http://security.ubuntu.com/ubuntu wily-security universe
deb-src http://security.ubuntu.com/ubuntu wily-security universe
deb http://security.ubuntu.com/ubuntu wily-security multiverse
deb-src http://security.ubuntu.com/ubuntu wily-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 wily partner
# deb-src http://archive.canonical.com/ubuntu wily partner

Затем запустите:

apt-get update

Чтобы обновить базу данных пакетов apt, а затем:

apt-get upgrade

установить последние обновления (если они есть). Если вы видите, что новое ядро устанавливается как часть обновлений, вам следует перезагрузить систему после этого:

reboot

3. Измените оболочку по умолчанию

/bin/sh — это символическая ссылка на /bin/dash, однако нам нужен /bin/bash, а не /bin/dash. Поэтому делаем так:

dpkg-reconfigure dash

Использовать тире в качестве системной оболочки по умолчанию (/bin/sh)? <-- Нет

Если вы этого не сделаете, установка ISPConfig завершится ошибкой.

4. Отключить AppArmor

AppArmor — это расширение безопасности (похожее на SELinux), которое должно обеспечивать расширенную безопасность. Он не установлен по умолчанию с 13.10. Мы проверим, установлен ли он. На мой взгляд, вам не нужно это для настройки безопасной системы, и обычно это вызывает больше проблем, чем преимуществ (подумайте об этом после того, как вы провели неделю устранения неполадок, потому что какой-то сервис не работал должным образом, а затем вы обнаружите, что все все было в порядке, проблема была только в AppArmor). Поэтому я его отключаю (это обязательно, если вы хотите установить ISPConfig позже).

Мы можем отключить его следующим образом:

service apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

5. Синхронизируйте системные часы

Рекомендуется синхронизировать системные часы с сервером NTP (nсетевой time protocol) через Интернет. Просто запустите

apt-get install ntp ntpdate

и ваше системное время всегда будет синхронизировано.

6. Установите Postfix, Dovecot, MariaDB, phpMyAdmin, rkhunter, Binutils.

Мы можем установить Postfix, Dovecot, MariaDB (в качестве замены 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

MariaDB — это ответвление сервера базы данных MySQL, разработанное первоначальным разработчиком MySQL Монти Видениусом. Согласно тестам, найденным в Интернете, MariaDB работает быстрее, чем MySQL, и ее разработка идет более быстрыми темпами, поэтому большинство дистрибутивов Linux заменили MySQL на MariaDB в качестве сервера базы данных по умолчанию, похожего на MySQL. Если вы предпочитаете MySQL, а не MariaDB, замените «mariadb-client mariadb-server» в приведенной выше команде на «mysql-client mysql-server».

Вам будут заданы следующие вопросы:

General type of mail configuration: <-- Internet Site
System mail name: <-- server1.example.com

Затем откройте TLS/SSL и порты отправки в Postfix:

nano /etc/postfix/master.cf

Раскомментируйте разделы отправки и 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

Мы хотим, чтобы MariaDB/MySQL прослушивала все интерфейсы, а не только локальный хост. Поэтому мы редактируем /etc/mysql/mariadb.conf.d/mysqld.cnf (для MariaDB или /etc/mysql/my.cnf (для MySQL) и закомментируем строку bind-address=127.0.0.1:

МарияДБ

nano /etc/mysql/mariadb.conf.d/mysqld.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
[...]

Затем перезапускаем MariaDB:

service mysql restart

Имя службы systemd для MariaDB и MySQL — \mysql\, поэтому команда перезапуска одинакова для обоих серверов баз данных.

Теперь мы устанавливаем пароль root в MariaDB. Бегать:

mysql_secure_installation

Вам будут заданы следующие вопросы:

Enter current password for root (enter for none): <-- press enter
Set root password? [Y/n] <-- y
New password: <-- Enter the new MariaDB root password here
Re-enter new password: <-- Repeat the password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

Затем выполните эту команду, чтобы отключить подключаемый модуль аутентификации UNIX для пользователя root:

echo "update user set plugin='' where User='root';flush privileges;" | mysql --defaults-file=/etc/mysql/debian.cnf mysql

Чтобы разрешить аутентификацию на основе пароля из PHPMyAdmin.

MySQL

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

Имя службы systemd для MariaDB и MySQL — \mysql\, поэтому команда перезапуска одинакова для обоих серверов баз данных.

Для MySQL и MariaDB:

Теперь проверьте, включена ли сеть. Бегать:

netstat -tap | grep mysql

Вывод должен выглядеть так:

:~#

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-new, который загружает библиотеку фильтров SpamAssassin внутри, поэтому мы можем остановить SpamAssassin, чтобы освободить оперативную память:

service spamassassin stop
update-rc.d -f spamassassin remove

Чтобы обновить сигнатуры антивируса ClamAV и запустить службу Clamd. Процесс обновления может занять некоторое время, не прерывайте его.

freshclam
service clamav-daemon start