Вы здесь
Идеальный сервер: настройка Ubuntu Gutsy Gibbon 7.10 Server для ISP и хостеров
Работаете администратором или инженером в провайдерской конторе? А может сами хотите начать свой бизнес в этой сфере? Вполне вероятно, что вам сильно поможет данное руководство.
Эта статья расскажет о подробной установке веб-сервера Apache (+SSL), почтового сервера Postfix (+ SMTP-AUTH и TLS), BIND DNS сервера, Proftpd FTP сервера, MySQL сервера, Courier POP3/IMAP, Quota, Firewall, и т.п.
Рассматривается установка на 32-х битную версию Ubuntu Server, для иных версий (x64, UltraSPARC) возможны небольшие отличия.
Используемое ПО:
- веб-сервер: Apache 2.2
- сервер баз данных: MySQL 5.0
- почтовый сервер: Postfix
- DNS сервер: BIND9
- FTP сервер: proftpd
- POP3/IMAP: используется формат Maildir с установкой Courier-POP3/Courier-IMAP.
- Webalizer для статистики
В итоге, вы получите надежную работающую систему, и сможете поверх нее установить бесплатную систему для удаленного управления веб-хостингом ISPConfig.
Для установки нам нужен CD с Ubuntu Server 7.10 x86 и хорошее соединение с интернетом.
В статье будет использовано имя хоста server1.example.com с IP-адресом 192.168.0.100 и шлюзом 192.168.0.1.
Эти установки могут отличаться от нужных вам, просто замените их своими данными.
Шаги установки, на которых система будет требовать от вас действий:
- Ставим диск с Ubuntu Server 7.10 x86 и загружаемся с него.
- Перед началом установки выбираем опцию F2 и выбираем русский язык.
- Выбираем “Установить на жесткий диск”.
- Выбираем способ переключения языковой раскладки (у меня например Alt+Shift).
- Вводим имя компьютера.
- Разметка диска (Авто - использовать весь диск), либо на ваше усмотрение.
- Выбрать диск для разметки (если их несколько, выберите нужный).
- Подтверждаем изменения на диске.
- Выбираем часовой пояс.
- Указываем, что системные часы показывают UTC.
- Заводим учетную запись пользователя с административными привелегиями.
- Забиваем и подтверждаем пароль для этого пользователя.
- Выбираем какие пакеты мы поставим. ВНИМАНИЕ: нужно выбрать только OpenSSH.
- Завершаем установку, вынимаем диск, перезагружаемся.
После перезагрузки, заходим в систему под тем пользователем и паролем, который мы создали.
Дальнейшая работа будет происходить под суперпользователем root, для этого зададим ему пароль:
указываем пароль для него и начинаем работать уже из-под root
если вы вдруг не поставили OpenSSH сервер во время установки, это можно исправить установив его сейчас
после этого можно вообще отключить от этой машины монитор, клаву и мышь, и работать удаленно по сети, например через Putty, чтобы не забивать ручками, а просто копировать информацию для конфигов прямо из этого руководства :)
В оригинале статьи автор использует консольный редактор vim, я предлагаю начинающим использовать ee (easy editor), а бывалые пользователи пусть используют, что им по вкусу.
Ставим ee:
Настраиваем сеть:
По умолчанию установщик сконфигурировал наш сетевой интерфейс на получение настроек по DHCP, но наш сервер должен иметь статический IP-адрес, для этого надо поправить настройки в файле /etc/network/interfaces
vim /etc/network/interfaces
Пример файла конфигурации (тут вам надо использовать уже ваши данные, вместо примера данных, описывающих iface eth0 inet static, то есть укажите ваш адрес, маску сети, сеть и броадкаст):
Указали свои данные? Сохраните файл и перезапустите сеть:
Затем поправьте файл /etc/hosts
Он должен выглядеть примерно так (только с вашими данными):
Теперь выполните
Затем:
Обе команды должны вывести server1.example.com (или то имя, которое указали вы)
Правим файл /etc/apt/sources.list и проводим апдейт для нашей системы
Закомментируем или удалим ссылки на установочный CD из этого файла и удостоверимся, что репозитории universe и multiverse доступны, т.е. файл будет выглядеть примерно так:
Затем запускаем обновление базы данных ПО:
и устанавливаем последние обновления (если они есть):
Теперь нам необходимо сменить шелл, поскольку иначе мы не сможем установить ISPConfig.
/bin/sh это символическая ссылку на /bin/dash, а нам нужно /bin/bash, а не /bin/dash
Поправляем это таким образом:
Теперь нам нужно установить кое-какие пакеты, которые нам потребуются в дальнейшем.
Внимание: эта команда идет одной строкой!
Настройка квот.
Если вы сделали разметку своего диск как-то по своему, то вам придется применять квотирование к тем разделам где это вам нужно.
Установим:
Поправим /etc/fstab. Мой выглядит так(я добавил usrquota, grpquota к основному разделу с точкой монтирования /):
Для активации квоты выполните:
Настройка DNS
Выполните:
Про соображениям безопасности BIND надо запускать через chroot:
Правим файл /etc/default/bind9 так, чтобы демон запускался как непривелигированный пользователь bind, с chroot в /var/lib/named. Поправьте строку: OPTIONS=”-u bind” на OPTIONS=”-u bind -t /var/lib/named”:
Создадим необходимые директории в /var/lib:
Переместим директорию с конфигами из /etc в /var/lib/named/etc:
Создадим символическую ссылку на новую директорию с конфигами ( чтобы не было проблем с обновлением bind в дальнейшем):
Создадим null и random устройства, исправим разрешения для директорий:
Изменим /etc/default/syslogd чтобы мы могли получать важные сообщения в логах
Исправьте строку: SYSLOGD=”" на эту SYSLOGD=”-a /var/lib/named/dev/log”:
Перезапускаем демон логов:
Запускаем BIND, и проверяем /var/log/syslog на ошибки:
MySQL
Устанавливаем пакет:
Вас спросят ввести пароль для root пользователя MySQL - этот пароль будет использоваться как для пользователя root@localhost , так и для root@server1.example.com, так что нам не придется указывать пароль для рута MySQL позже(как это было в предыдущих версиях):
New password for the MySQL “root” user: введите-свой-пароль
Нам нужно чтобы MySQL слушал на других интерфейсах, а не только на localhost, для этого правим /etc/mysql/my.cnf и закомментируем строку _bind-address = 127.0.0.1_:
Затем перезапускаем MySQL:
Проверьте, что MySQL доступен для сети:
Вывод должен быть примерно таким:
Postfix с SMTP-AUTH и TLS
По шагам:
Вам зададут два вопроса, отвечать надо примерно так:
General type of mail configuration: <– Internet Site
System mail name: <– server1.example.com
затем запустите
И опять ответьте на вопросы:
Затем, сделайте следующее:
После этого создадим сертификаты для TLS:
И сконфигурируем Postfix для TLS (удостоверьтесь, что вы используете правильное имя компьютера для myhostname):
теперь файл /etc/postfix/main.cf должен выглядеть примерно так:
Перезапускаем Postfix:
Аутентификация будет производится saslauthd. Нужно кое-что изменить, чтобы это работало как надо.
Поскольку Postfix работает через chroot в /var/spool/postfix мы делаем так:
Теперь мы правим /etc/default/saslauthd для того чтобы активировать saslauthd.
Установите START значение yes и измените строку OPTIONS=”-c” на OPTIONS=”-c -m /var/spool/postfix/var/run/saslauthd -r”:
Теперь запускаем saslauthd:
Чтобы удостоверится, что SMTP-AUTH и TLS работают правильно, проверим так:
После соединения с Postfix наберите:
Если вы увидети строки:
и
значит все в порядке
Вывод на моей системе выглядел так:
Courier-IMAP/Courier-POP3
Устанавливаем Courier-IMAP/Courier-IMAP-SSL (для IMAP на порту 993) и Courier-POP3/Courier-POP3-SSL (для POP3 на порту 995):
Вам зададут вопросы:
Если вы не захотите использовать систему управления ISPConfig, сконфигурируйте Postfix на доставку почты в Maildir* пользователя:
Обратите внимание: вам не надо этого делать, если вы будете использовать ISPConfig, поскольку он сам выполнит необходимое конфигурирование. При этом, вам лучше убедится в этом самостоятельно - удостоверьтесь что Maildir задействован в Management -> Server -> Settings -> EMail (в веб-интерфейсе ISPConfig).
Apache/PHP5
Ставим Apache:
Затем PHP5:
Отвечаем на вопрос:
Далее правим /etc/apache2/mods-available/dir.conf:
Правим строку DirectoryIndex (в IfModule mod_dir.c):
Теперь надо активировать некоторые модули Apache (SSL, rewrite, suexec и include):
Перезагружаем конфигурацию Apache:
Отключаем глобальную работу PHP (если вы не планируете установку ISPConfig пропустите этот раздел!)
В ISPConfig вы сконфигурируете PHP под каждый веб-сайт, т.е. укаже кто может использовать скрипты PHP, а кто нет. Это можно сделать только при отключении глобальной работы PHP, потому что иначе все вебсайты смогут запускать скрипты PHP, несмотря на установки в ISPConfig.
Для отключения мы правим /etc/mime.types и закомментируем строки application/x-httpd-php:
Правим /etc/apache2/mods-enabled/php5.conf и закомментируем следующие строки в IfModule mod_php5.c:
Перезагружаем Apache:
Proftpd
Устанавливаем:
Отвечаем на вопрос:
Открываем /etc/proftpd/proftpd.conf и отклбчаем UseIPv6 (off); иначе будем получать предупреждения:
или можно поправить /etc/hosts and add server1.example.com (добавив строку ::1):
или изменить /etc/proftpd/proftpd.conf:
По соображениям безопасности нужно добавить следуюшие строки в /etc/proftpd/proftpd.conf (спасибо Reinaldo Carvalho; подробности "здесь":http://proftpd.org/localsite/Userguide/linked/userguide.html ):
ISPConfig ищет конфиг в /etc/proftpd.conf вместо /etc/proftpd/proftpd.conf, поэтому создадим символическую ссылку (можете пропустить этот шаг если вы не будете ставить ISPConfig):
Затем перезапустим Proftpd:
Webalizer
Просто ставим его:
Синхронизируем системные часы
Через сервер NTP(network time protocol), достаточно установить:
И все, часы будут синхронизированы.
Поставим некоторые модули Perl, которые потребуются SpamAssassin (который идет с ISPConfig):
ISPConfig
Поскольку конфигурирование нашего сервера завершено, теперь вы можете поставить на него систему управления ISPConfig, работающую через веб-интерфейс. Мануал по ее установке "здесь":http://www.ispconfig.org/manual_installation.htm
Обратите внимание на SuExec
Если вы хотите запускать CGI скрипты под suExec, вам нужно указать /var/www в качестве домашней директории для вебсайтов создаваемых через ISPConfig в то время как Ubunt-овый suExec скомпилирован с /var/www в качестве Doc_Root.
Выполните:
Вывод будет примерно таким:
Так что если вы будете использовать suExec с ISPconfig, не меняйте значения web-пути по умолчанию (т.е. оставьте /var/www) если вы работает в expert mode, когда будете устанавливать ISPConfig (в standard mode вы в любом случае этот путь поменять не сможете).
Оригинал статьи: http://www.xima4.com/?p=236.