В этом учебнике показано, как подготовить CentOS 6.0 x86_64 сервер для установки ISPConfig 3, и как установить ISPConfig 3. ISPConfig 3 панель управления Web хостингом, которая позволяет вам настраивать следующие услуги через Web браузер: Apache Web сервер, почтовый сервер Postfix, MySQL, BIND сервер имен, PureFTPd, SpamAssassin, ClamAV, и многое другое. Обсуждение темы на форуме Идеальный сервер - CentOS 6.0 x86_64 [ISPConfig 3] + скачать, где Вы сможете не только задать свой вопрос но и скачать готовый сервер.
Требования
Для установки такой системы необходимо следующее:
- Скачать два CentOS 6.0 DVD-диск или восемь CentOS 6.0 CD дисков (скачать ISO образы можно с официального сайта isoredirect.centos.org.)
- Быстрое подключение к Интернету.
Предварительные замечания
В данной статье, я использую имя хоста server1.example.com с IP-адреса 192.168.1.101 и шлюз 192.168.1.1. Эти параметры могут отличаться в Вашем случае, поэтому Вам придется сменить их при необходимости.
Установка базовой системы
Загрузитесь с первого CentOS 6.0 CD (CD 1) или первого CentOS 6.0 DVD. Выбирети Install or upgrade an existing system.
Предложеный тест займет некоторое время, поэтому мы его пропустим, чтобы не показывать его здесь:
В появившемся экране приветствия процесса установки CentOS 6.0 нажмем Next:
Укажем язык процесса установки, в моем случае это Russian (Русский):
Укажите раскладку клавиатуры. Как правило, процесс установки системы CentOS 6.0 по умолчанию предлагает уже удобную раскладку, я бы не советовал ее менять, тем более, что речь идет о сервере (Web хостинге), управление которого происходит удаленно через SSH или Web интерфейс:
Я предполагаю, что вы используете локально подключенный жесткий диск, поэтому здесь Вы должны выбрать Стандартные накопители:
Вы можете увидеть следующее предупреждение - Ошибка обработки диска. Если Вы видите это щелкните на кнопку Инициализировать все, для продолжения:
Введите имя хоста сервера (например server1.example.com), затем щелкните на кнопку Настроить сеть:
На вышедшей вкладке, выберите сетевой интерфейс (возможно eth0) и нажмите на кнопку Изменить ... :
Закладка IPv4 Settings, профиль: Вручную. Добавим адреса настроек сетевого интерфейса. Заполните от одного до трех серверов имен (разделенных запятыми) в полях Серверы DNS (например 192.168.1.1,8.8.8.8,8.8.4.4 ), затем нажмите на кнопку Применить, для сохранения настроек:
Закройте окно Сетевые соединения, для завершения процесса настройки сети.
Можно продожить установку сервера, нажав кнопку Далее:
Установите свой часовой пояс:
Установите пароль для root:
Далее мы выполним разметку. Выберите Заменить существующую систему Linux:
Для подтверждения вышесказанного действия согласимся с Выполнением записи информации о хранилище на диск, нажав на кнопку Сохранить изменения на диск:
После чего произодет процесс формирования разделов на жестком диске, это может занять некоторое время:
Теперь мы выбираем программное обеспечение, которое мы хотим установить. Для этого достаточно указать Basic Server, а затем нажмите на кнопку Далее :
Установка запущена. Это займет несколько минут:
Наконец, установка завершена, и Вы можете извлечь Ваш DVD с компьютера и перезагрузить его:
После перезагрузки, войдите в систему как корневой.
Я хочу установить ISPConfig в конце этого урока, который поставляется с собственным брандмауэром. Вот почему я собираюсь отключить брандмауэр используемый CentOS 6.0 по умолчанию. Конечно, Вы можете оставить его и настроить его под свои нужды (но тогда Вы не должны использовать любой другой брандмауэр позже). Выполните ...
|
... и отключите брандмауэр. Нажав ОК после этого:
Подтвердите ваш выбор, выбрав Да :
Если Вы не настроили сетевую карту в процессе установки, то сейчас Вы можете это сделать. Выполните ...
|
... и перейдите к Конфигурация устройств :
Выберите сетевой интерфейс:
Затем заполните данные сети - отключив DHCP простым заполнением статических IP адресов, маски подсети, шлюза, а также один или два сервера имен. Затем нажмите Ok :
Затем выберите Сохранить :
Вы можете также задать дополнительные сервера имен. Выберите DNS-конфигурации :
Теперь вы можете заполнить дополнительные сервера имен и нажмите Ok :
В последствии нажмите Сохранить & Quit :
Вы должны запустить:
|
Теперь, чтобы проверить установки полученного Вашего IP адреса:
[root@server1 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:3E:29:60 inet addr:192.168.1.101 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe3e:2960/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:192 errors:0 dropped:0 overruns:0 frame:0 TX packets:145 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:18154 (17.7 KiB) TX bytes:17645 (17.2 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:30 errors:0 dropped:0 overruns:0 frame:0 TX packets:30 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2172 (2.1 KiB) TX bytes:2172 (2.1 KiB) [root@server1 ~]#
Проверьте ваш /etc/resolv.conf, перечислены ли все сервера имен, которые Вы предварительно указали:
|
Если сервера имен не хватает, запустите:
|
и добавте недостающие имена. Теперь перейдем к конфигурации ...
Настройка /etc/hosts
Дальше мы редактируем /etc/hosts. Сделайте, что бы выглядело следующим образом:
|
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 192.168.1.101 server1.example.com server1 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Настройка брандмауэра
Я хочу установить ISPConfig в конце этого урока который поставляется с собственным брандмауэром. Вот почему я отключаю брандмауэр используемый CentOS по умолчанию. Конечно, Вы можете оставить его и настроить под свои нужды (но тогда вы не должны использовать любой другой брандмауэр позже).
Выполните:
|
и отключить брандмауэр. Чтобы убедеть, что брандмауэр действительно был отключен, Вы можете выполнить:
|
Впоследствии, вывод должен выглядеть следующим образом:
[root@server1 ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination [root@server1 ~]#
Отключение SELinux
SELinux представляет собой расширение безопасности CentOS, которые должны обеспечить расширенную безопасность. По моему мнению, Вам не нужен SELinux, чтобы настроить безопасную систему, так как это вызывает больше проблем, чем преимуществ. Поэтому я отключаю его (это необходимо, если вы хотите установить ISPConfig позже).
Изменить /etc/selinux/config и поправте параметр SELINUX на SELINUX=disabled :
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
Затем мы должны перезагрузить систему:
|
Подключение дополнительных репозиториев и установка некоторых программ
Первым мы импортируем GPG ключи для пакетов программного обеспечения:
|
Затем мы предоставляем RPMforge и EPEL хранилища на нашей CentOS системе с множеством пакетов, которые мы собираемся установить в ходе этого урока не доступны, но они не доступны в официальных репозиториях CentOS 6.0:
|
|
(Если по ссылке приложенной выше уже не работает, Вы можете найти текущую версию RPMForge-релиза здесь: http://packages.sw.be/rpmforge-release/
|
Изменить /etc/yum.repos.d/epel.repo ...
|
... и добавьте строку priority=10 в [epel] раздел:
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6222arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[...]
Затем мы обновляем наши существующие пакеты в системе:
|
Теперь мы установим некоторые пакеты программ, которые необходимы в дальнейшем:
|
Квоты
(Если вы выбрали другую схему разбиения диска, чем я, вы должны изменить эту главу, с тем, что квота распространяется на разделы, где это необходимо.)
Чтобы установить квоту, мы запустим следующую команду:
|
Изменить /etc/fstab и добавим ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 к / разделу ( /dev/mapper/vg_server1-lv_root ):
|
# # /etc/fstab # Created by anaconda on Mon Jul 11 16:29:27 2011 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/vg_server1-lv_root / ext4 defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 1 UUID=6a119ddb-46eb-4054-a17c-8968ea87369f /boot ext4 defaults 1 2 /dev/mapper/vg_server1-lv_swap swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0
Затем запустите:
|
включив квоты.
Установка Apache, MySQL, PhpMyAdmin
Мы можем установить необходимые пакеты с помощью одной команды:
|
Установка Courier-IMAP, Courier-Authlib и Maildrop
К сожалению в CentOS не имеется RPM пакетов для Courier-IMAP, Courier-Authlib и Maildrop, поэтому мы должны создать их сами. Сначала удалите Dovecot (CentOS 6.0 поставляется с Dovecot 2.x, а ISPConfig 3 к сожалению поддерживает Dovecot 1.2.x, но не 2.x):
|
Затем установите предпосылки, что мы могли собирать пакеты Courier rpm:
|
RPM пакеты не должны быть построены из под root. Courier-IMAP будет даже отказаться от компиляции, если он обнаружит, что компиляция выполняется из под пользователя root. Поэтому, в настоящее время мы создадим учетную запись обычного пользователя ( mobil в данном примере) и присвоим ему пароль:
|
Позже нам понадобится Sudo команда, что бы пользователь mobil смог собрать и установить RPM-пакет. Но сначала мы должны позволить mobil запустить все команды, используя sudo:
Запустим:
|
В файле, который откроется есть строка root ALL=(ALL) ALL. Добавте аналогичную строку для mobil чуть ниже этой строки:
(Если у Вас возникли трудности с работо в редакторе, сделаю небольшое пояснение. В открывшемся редакторе спускаемся до необходимой строки нажатие два раза кнопки <Esc>, переключает редактор в режим ввода команды. Нажатие кнопки <i>, приведет к возможности ввода символов с клавиатуры. По окончанию ввода нам необходимо опять вернуться в режим ввода команды двоиным нажатием на кнопку <Esc>, теперь для сохранения файла и закрытия редактора введем команду <:wq>, готово!)
[...] ## Allow root to run any commands anywhere root ALL=(ALL) ALL mobil ALL=(ALL) ALL [...]
Теперь мы готовы собирать наши пакеты. Сначала надо стать пользователем mobil:
|
Далее мы создадим нашу среду разработки:
|
|
Теперь мы создадим загрузчик каталогов и запустим исходные файлы из http://www.courier-mta.org/download.php :
|
|
В настоящее время (еще в $HOME/downloads ) мы можем собрать courier-authlib:
|
После процесса сборки пакеты RPM могут быть найдены в /root/rpmbuild/RPMS/x86_64 ( /root/rpmbuild/RPMS/i686 если вы находитесь в i686 системе). Команда:
|
... показывает, доступные пакеты:
[mobil@server1 downloads]$ sudo ls -l /root/rpmbuild/RPMS/x86_64 total 516 -rw-r--r-- 1 root root 124296 Jul 11 17:27 courier-authlib-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 259620 Jul 11 17:27 courier-authlib-debuginfo-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 35044 Jul 11 17:27 courier-authlib-devel-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 17416 Jul 11 17:27 courier-authlib-ldap-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 13944 Jul 11 17:27 courier-authlib-mysql-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 13112 Jul 11 17:27 courier-authlib-pgsql-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 8316 Jul 11 17:27 courier-authlib-pipe-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 34168 Jul 11 17:27 courier-authlib-userdb-0.63.0-1.el6.x86_64.rpm [mobil@server1 downloads]$
Выберите те, которые Dы хотите установить, и установить их так:
|
Теперь мы вернемся к нашему каталогу downloads:
|
Выполните следующие команды, чтобы создать необходимые каталоги / разрешения смены каталога (потому что иначе процесс сборки Courier-IMAP не удастся):
|
Теперь запустите снова rpmbuild, на этот раз без sudo, в противном случае компиляция не удастся, поскольку она была запущена с правами администратора:
|
После процесса сборки, пакеты RPM можно будет найти в $HOME/rpm/RPMS/x86_64 ( $HOME/rpm/RPMS/i686 если вы находитесь в i686 системе):
|
Команда:
|
... показывает, доступные пакеты:
[mobil@server1 x86_64]$ ls -l total 1088 -rw-r--r-- 1 mobil mobil 333540 Jul 11 17:38 courier-imap-4.9.3-1.x86_64.rpm -rw-r--r-- 1 mobil mobil 776112 Jul 11 17:38 courier-imap-debuginfo-4.9.3-1.x86_64.rpm [mobil@server1 x86_64]$
Вы можете установить Courier-IMAP примерно так:
|
Теперь мы вернемся к нашему каталогу downloads:
|
и запустить rpmbuild , на этот раз для создания maildrop пакета:
|
После процесса сборки RPM-пакетов могут быть найдены в /root/rpmbuild/RPMS/x86_64 ( /root/rpmbuild/RPMS/i686 если Вы находитесь в i686 системе). Команда:
|
показывает, доступных пакетов:
[mobil@server1 downloads]$ sudo ls -l /root/rpmbuild/RPMS/x86_64 total 1660 -rw-r--r-- 1 root root 124296 Jul 11 17:27 courier-authlib-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 259620 Jul 11 17:27 courier-authlib-debuginfo-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 35044 Jul 11 17:27 courier-authlib-devel-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 17416 Jul 11 17:27 courier-authlib-ldap-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 13944 Jul 11 17:27 courier-authlib-mysql-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 13112 Jul 11 17:27 courier-authlib-pgsql-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 8316 Jul 11 17:27 courier-authlib-pipe-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 34168 Jul 11 17:27 courier-authlib-userdb-0.63.0-1.el6.x86_64.rpm -rw-r--r-- 1 root root 281328 Jul 11 17:47 maildrop-2.5.4-1.x86_64.rpm -rw-r--r-- 1 root root 717476 Jul 11 17:47 maildrop-debuginfo-2.5.4-1.x86_64.rpm -rw-r--r-- 1 root root 101156 Jul 11 17:47 maildrop-devel-2.5.4-1.x86_64.rpm -rw-r--r-- 1 root root 63744 Jul 11 17:47 maildrop-man-2.5.4-1.x86_64.rpm [mobil@server1 downloads]$
Теперь можно установить maildrop так:
|
После того как Вы собрали и установили все необходимые пакеты, Вы можете стать снова root, введя:
|
Теперь запустите Courier-IMAP/-POP3 следующим образом:
|
Установка Postfix
Postfix может быть установлен следующим образом:
|
Затем выключите Sendmail и запустите Postfix и MySQL:
|
Установка Getmail
Там нет пакету для getmail, поэтому мы должны установить его из источников. Это можно сделать следующим образом:
|
Установка MySQL пароля и настройка PhpMyAdmin
Установка пароля для суперпользователя MySQL:
|
[root@server1 tmp]# mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MySQL to secure it, we'll need the current password for the root user. If you've just installed MySQL, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MySQL root user without the proper authorisation. Set root password? [Y/n] - ENTER New password: - Ваш root SQL пароль Re-enter new password: - Ваш root SQL пароль Password updated successfully! Reloading privilege tables.. ... Success! By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] - ENTER ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] - ENTER ... Success! By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] - ENTER - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] - ENTER ... Success! Cleaning up... All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL! [root@server1 tmp]#
Теперь мы настроим PHPMyAdmin. Мы меняем конфигурацию Apache так, чтобы PhpMyAdmin позволял связываться не только с локального хоста (закомментировав <Directory "/usr/share/phpmyadmin"> строку):
|
# # Web application to manage MySQL # #<Directory "/usr/share/phpmyadmin"> # Order Deny,Allow # Deny from all # Allow from 127.0.0.1 #</Directory> Alias /phpmyadmin /usr/share/phpmyadmin Alias /phpMyAdmin /usr/share/phpmyadmin Alias /mysqladmin /usr/share/phpmyadmin
Далее мы изменяем аутентификации в PhpMyAdmin с cookie на http :
|
[...] /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'http'; [...]
Затем мы создаем автозапуск для Apache и запустить его:
|
Теперь Вы можете перейти в Вашем браузере http://server1.example.com/phpmyadmin/ или http://192.168.1.101/phpmyadmin/ и войдите в систему с именем пользователя root и Вашим новый root MySQL паролем.
Установка Amavisd-new, SpamAssassin и ClamAV
Для установки Amavisd-new, SpamAssassin и ClamAV, выполните следующую команду:
|
Теперь мы запустим Freshclam, Amavisd и clamd:
|
Установка Apache2 With mod_php, mod_fcgi/PHP5 и suPHP
ISPConfig 3 позволяет использовать mod_php, mod_fcgi/PHP5, cgi/PHP5 и suPHP для каждого сайта в отдельности. Мы можем установить Apache2with mod_php5, mod_fcgid, и PHP5 следующим образом:
|
Далее мы открыты /etc/php.ini ...
|
... и изменяем сообщений об ошибках (так, что уведомления не показывалось больше) и раскомментировать cgi.fix_pathinfo=1 :
[...]
;error_reporting = E_ALL & ~E_DEPRECATED
error_reporting = E_ALL & ~E_NOTICE
[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting
; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]
Далее мы установим suPHP (есть mod_suphp пакет доступен в репозитории, но к сожалению он не совместим с ISPConfig, поэтому мы должны построить suPHP сами):
|
Затем мы добавляем suPHP модуль для нашей конфигурации Apache ...
|
LoadModule suphp_module modules/mod_suphp.so
... и создайте файл /etc/suphp.conf следующим образом:
|
[global] ;Path to logfile logfile=/var/log/httpd/suphp.log ;Loglevel loglevel=info ;User Apache is running as webserver_user=apache ;Path all scripts have to be in docroot=/ ;Path to chroot() to before executing script ;chroot=/mychroot ; Security options allow_file_group_writeable=true allow_file_others_writeable=false allow_directory_group_writeable=true allow_directory_others_writeable=false ;Check wheter script is within DOCUMENT_ROOT check_vhost_docroot=true ;Send minor error messages to browser errors_to_browser=false ;PATH environment variable env_path=/bin:/usr/bin ;Umask to set, specify in octal notation umask=0077 ; Minimum UID min_uid=100 ; Minimum GID min_gid=100 [handlers] ;Handler for php-scripts x-httpd-suphp="php:/usr/bin/php-cgi" ;Handler for CGI-scripts x-suphp-cgi="execute:!self"
Наконец-то мы перезапустим Apache:
|
Ruby
Начиная с версии 3.0.3, ISPConfig 3 имеет встроенную поддержку Ruby. Вместо того чтобы использовать CGI/FastCGI, ISPConfig зависит от mod_ruby сети будет доступна в Apache сервера.
Для CentOS 6.0, нет доступного mod_ruby пакета, поэтому мы должны скомпилировать его сами. Сначала установим некоторые предпосылки:
|
Далее скачайте и установите mod_ruby следующим образом:
|
Наконец, мы должны добавить mod_ruby модуль для конфигурации Apache, поэтому мы создаем файл /etc/httpd/conf.d/ruby.conf ...
|
LoadModule ruby_module modules/mod_ruby.so RubyAddPath /1.8
... и перезагрузим Apache:
|
Если вы не укажете RubyAddPath /1.8 директиву, Вы увидите ошибку, такие как следующие в журнале ошибок сервера Apache, когда вы вызываете Ruby файлы:
[Thu May 26 02:05:05 2011] [error] mod_ruby: ruby:0:in `require': no such file to load -- apache/ruby-run (LoadError) [Thu May 26 02:05:05 2011] [error] mod_ruby: failed to require apache/ruby-run [Thu May 26 02:05:05 2011] [error] mod_ruby: error in ruby
WebDAV
WebDAV уже должен быть включен, но мы проверим это, откройте /etc/httpd/conf/httpd.conf и убедитесь, что следующие три модуля активные:
|
[...] LoadModule auth_digest_module modules/mod_auth_digest.so [...] LoadModule dav_module modules/mod_dav.so [...] LoadModule dav_fs_module modules/mod_dav_fs.so [...]
Если Вам необходимо изменить /etc/httpd/conf/httpd.conf, не забудьте перезапустить Apache после этого:
|
Установка PureFTPd
PureFTPd может быть установлена с помощью следующей команды:
|
Затем создайте автозагрузку для PureFTPd и запустите:
|
Теперь мы настроим PureFTPd чтобы разрешить FTP и TLS сессии. FTP является очень небезопасным протоколом, потому что все пароли и все данные передаются в открытом виде. С помощью TLS, все коммуникации могут быть зашифрованы, что делает FTP гораздо более безопасным. OpenSSL нужен TLS, установим OpenSSL просто выполнив:
|
Открытый /etc/pure-ftpd/pure-ftpd.conf ...
|
Если Вы хотите разрешить FTP и TLS сессии, установите TLS = 1 :
[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
# including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.
TLS 1
[...]
Для того чтобы использовать TLS, мы должны создать SSL-сертификат. Я создаю его в /etc/ssl/private/, поэтому я создал этот каталог первым:
|
После этого мы можем сгенерировать SSL сертификат следующим образом:
|
Country Name (2 letter code) [XX]: - Введите название Вашей страны (например, "RU") State or Province Name (full name) []: - Введите название государства или провинции Locality Name (eg, city) [Default City]: - Введите город Organization Name (eg, company) [Default Company Ltd]: - Введите название организации (например, название Вашей компании) Organizational Unit Name (eg, section) []: - Введите имя организационные единицы (например, "ИТ-отдел") Common Name (eg, your name or your server's hostname) []: - Введите полное доменное имя системы (например, "server1.example.com") Email Address []: - Введите свой электронный адрес
Изменение прав доступа SSL сертификата:
|
Наконец перезапустите PureFTPd:
|
Вот и все. Теперь Вы можете попробовать подключиться с помощью вашего FTP-клиента, однако, Вы должны настроить FTP-клиент для использования TLS.
Установка BIND
Мы можем установить BIND следующим образом:
|
Затем откройте /etc/sysconfig/named ...
|
... и убедитесь, что ROOTDIR=/var/named/chroot строка закомментирована:
# BIND named process options
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
# Currently, you can use the following options:
#
# ROOTDIR="/var/named/chroot" -- will run named in a chroot environment.
# you must set up the chroot environment
# (install the bind-chroot package) before
# doing this.
# NOTE:
# Those directories are automatically mounted to chroot if they are
# empty in the ROOTDIR directory. It will simplify maintenance of your
# chroot environment.
# - /var/named
# - /etc/pki/dnssec-keys
# - /etc/named
# - /usr/lib64/bind or /usr/lib/bind (architecture dependent)
#
# Those files are mounted as well if target file doesn't exist in
# chroot.
# - /etc/named.conf
# - /etc/rndc.conf
# - /etc/rndc.key
# - /etc/named.rfc1912.zones
# - /etc/named.dnssec.keys
# - /etc/named.iscdlv.key
#
# Don't forget to add "$AddUnixListenSocket /var/named/chroot/dev/log"
# line to your /etc/rsyslog.conf file. Otherwise your logging becomes
# broken when rsyslogd daemon is restarted (due update, for example).
#
# OPTIONS="whatever" -- These additional options will be passed to named
# at startup. Don't add -t here, use ROOTDIR instead.
#
# KEYTAB_FILE="/dir/file" -- Specify named service keytab file (for GSS-TSIG)
#ROOTDIR=/var/named/chroot
Сделайте резервную копию существующего /etc/named.conf файла и создайте новый, следующим образом:
|
// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion yes; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.conf.local";
Создайте файл /etc/named.conf.local, включенного в конце /etc/named.conf ( /etc/named.conf.local будет в дальнейшем получать данные ISPConfig, если Вы создадите DNS зоны в ISPConfig):
|
Затем мы создаем запуска ссылки и начать BIND:
|
Установка Vlogger, Webalizer, AWStats
Vlogger, Webalizer и AWStats может быть установлен следующим образом:
|
|
Установка Jailkit
Jailkit необходим только если Вы хотите, чтобы пользователи использованны изолированный SSH. Он может быть установлен следующим образом ( важно: Jailkit должна быть установлен до ISPConfig - она не может быть установлен впоследствии!):
|
Установка fail2ban
Это необязательно, но рекомендуется, так как ISPConfig использует монитор отображения журнала:
|
Установка RkHunter
|
Установка SquirrelMail
Чтобы установить клиент SquirrelMail веб-почты:
|
Мы должны скать SquirrelMail, что мы используем Courier-IMAP/-POP3:
SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Main Menu -- 1. Organization Preferences 2. Server Settings 3. Folder Defaults 4. General Options 5. Themes 6. Address Books 7. Message of the Day (MOTD) 8. Plugins 9. Database 10. Languages D. Set pre-defined settings for specific IMAP servers C Turn color off S Save data Q Quit Command >> - D SquirrelMail Configuration : Read: config.php --------------------------------------------------------- While we have been building SquirrelMail, we have discovered some preferences that work better with some servers that don't work so well with others. If you select your IMAP server, this option will set some pre-defined settings for that server. Please note that you will still need to go through and make sure everything is correct. This does not change everything. There are only a few settings that this will change. Please select your IMAP server: bincimap = Binc IMAP server courier = Courier IMAP server cyrus = Cyrus IMAP server dovecot = Dovecot Secure IMAP server exchange = Microsoft Exchange IMAP server hmailserver = hMailServer macosx = Mac OS X Mailserver mercury32 = Mercury/32 uw = University of Washington's IMAP server quit = Do not change anything Command >> - courier SquirrelMail Configuration : Read: config.php --------------------------------------------------------- While we have been building SquirrelMail, we have discovered some preferences that work better with some servers that don't work so well with others. If you select your IMAP server, this option will set some pre-defined settings for that server. Please note that you will still need to go through and make sure everything is correct. This does not change everything. There are only a few settings that this will change. Please select your IMAP server: bincimap = Binc IMAP server courier = Courier IMAP server cyrus = Cyrus IMAP server dovecot = Dovecot Secure IMAP server exchange = Microsoft Exchange IMAP server hmailserver = hMailServer macosx = Mac OS X Mailserver mercury32 = Mercury/32 uw = University of Washington's IMAP server gmail = IMAP access to Google mail (Gmail) accounts quit = Do not change anything Command >> courier imap_server_type = courier default_folder_prefix = INBOX. trash_folder = Trash sent_folder = Sent draft_folder = Drafts show_prefix_option = false default_sub_of_inbox = false show_contain_subfolders_option = false optional_delimiter = . delete_folder = true Press any key to continue... - press a key SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Main Menu -- 1. Organization Preferences 2. Server Settings 3. Folder Defaults 4. General Options 5. Themes 6. Address Books 7. Message of the Day (MOTD) 8. Plugins 9. Database 10. Languages D. Set pre-defined settings for specific IMAP servers C Turn color off S Save data Q Quit Command >> - S SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Main Menu -- 1. Organization Preferences 2. Server Settings 3. Folder Defaults 4. General Options 5. Themes 6. Address Books 7. Message of the Day (MOTD) 8. Plugins 9. Database 10. Languages D. Set pre-defined settings for specific IMAP servers C Turn color off S Save data Q Quit Command >> - Q
Последнее, что нам нужно внести изменения в файл /etc/squirrelmail/config_local.php и за комментировать переменную $default_folder_prefix - если Вы не сделаете этого, то увидите следующее сообщение об ошибке в SquirrelMail после того как Вы войдете в систему : CREATE "Sent" Reason Given: Invalid mailbox name:
|
<?php /** * Local config overrides. * * You can override the config.php settings here. * Don't do it unless you know what you're doing. * Use standard PHP syntax, see config.php for examples. * * @copyright © 2002-2006 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id: config_local.php,v 1.2 2006/07/11 03:33:47 wtogami Exp $ * @package squirrelmail * @subpackage config */ //$default_folder_prefix = ''; ?>
Теперь вы можете ввести http://server1.example.com/webmail или http://192.168.1.101/webmail в Вашем браузере для доступа к SquirrelMail.
Установка ISPConfig 3
Чтобы установить последнюю стабильную версию ISPConfig 3, сделайте следующее:
|
Следующим шагом является запуск:
|
Это приведет к запуску установки ISPConfig 3:
[root@server1 install]# php -q install.php -------------------------------------------------------------------------------- _____ ___________ _____ __ _ ____ |_ _/ ___| ___ \ / __ \ / _(_) /__ \ | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ __/ | |___/ -------------------------------------------------------------------------------- >> Initial configuration Operating System: CentOS 5 or compatible Following will be a few questions for primary configuration so be careful. Default values are in [brackets] and can be accepted with <ENTER>. Tap in "quit" (without the quotes) to stop the installer. Select language (en,de) [en]: - ENTER Installation mode (standard,expert) [standard]: - ENTER Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: - ENTER MySQL server hostname [localhost]: - ENTER MySQL root username [root]: - ENTER MySQL root password []: - Ваш root пароль SQL MySQL database to create [dbispconfig]: - ENTER MySQL charset [utf8]: - ENTER Generating a 2048 bit RSA private key ...............+++ ...+++ writing new private key to 'smtpd.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [GB]: - ENTER State or Province Name (full name) [Berkshire]: - ENTER Locality Name (eg, city) [Newbury]: - ENTER Organization Name (eg, company) [My Company Ltd]: - ENTER Organizational Unit Name (eg, section) []: - ENTER Common Name (eg, your name or your server's hostname) []: - ENTER Email Address []: - ENTER Configuring Jailkit Configuring Dovecot Configuring Spamassassin Configuring Amavisd Configuring Getmail Configuring Pureftpd Configuring BIND Configuring Apache Configuring Vlogger Configuring Apps vhost Configuring Firewall Installing ISPConfig ISPConfig Port [8080]: - ENTER Configuring DBServer Installing ISPConfig crontab no crontab for root no crontab for getmail Restarting services ... Stopping MySQL: [ OK ] Starting MySQL: [ OK ] Shutting down postfix: [ OK ] Starting postfix: [ OK ] Stopping saslauthd: [FAILED] Starting saslauthd: [ OK ] Shutting down Mail Virus Scanner (amavisd): [ OK ] Starting Mail Virus Scanner (amavisd): [ OK ] Stopping Clam AntiVirus Daemon: [ OK ] Starting Clam AntiVirus Daemon: [ OK ] Stopping Dovecot Imap: [ OK ] If you have trouble with authentication failures, enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork This message goes away after the first successful login. Fatal: listen(::, 143) failed: Address already in use Starting Dovecot Imap: [FAILED] Stopping httpd: [ OK ] [Mon Apr 11 16:42:19 2011] [warn] NameVirtualHost *:80 has no VirtualHosts Starting httpd: [ OK ] Stopping pure-ftpd: [ OK ] Starting pure-ftpd: [ OK ] Installation completed. [root@server1 install]#
Программа установки автоматически настроит все основные услуги, так что никакой ручной настройки не требуется.
Если Dovecot не запускается из-за ошибки:
Fatal: listen(::, 143) failed: Address already in use
... откройте /etc/dovecot.conf ...
|
... и добавьте строку listen = * :
[...] #listen = *, [::] listen = * [...]
Теперь снова попробуйте запустить Dovecot:
|
После этого Вы можете получить доступ к ISPConfig 3 по адресу http://server1.example.com:8080 или http://192.168.1.101:8080 Войдите с именем пользователя admin и пароль admin (Вы должны изменить пароль по умолчанию после первого входа):
Система готова к использованию. Обсуждение темы на форуме Идеальный сервер - CentOS 6.0 x86_64 [ISPConfig 3] + скачать, где Вы сможете не только задать свой вопрос но и скачать готовый сервер.