Идеальный сервер - CentOS 5.6 x86_64 [ISPConfig 3]

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

CentOSВ этом уроке рассказано как установить Web хостинг на CentOS 5.6 x86_64 сервере, подготовив систему для запуска ISPConfig 3, и как установить саму ISPConfig 3. ISPConfig 3 - это панель управления Web хостинга, она позволяет настроить следующие услуги через Web браузер: Web сервер Apache, Postfix почтовый сервер, MySQL, BIND, PureFTPd, SpamAssassin, ClamAV, и многое другое... Обсуждение темы на форуме Идеальный сервер - CentOS 5.6 x86_64 [ISPConfig 3], где Вы сможите не только задать свой вопрос но и скачать готовый сервер.

Требования

Для установки такой системы необходимо следующее:

  • Скачать два CentOS 5.6 DVD-диска или восемь CentOS 5.6 CD дисков (скачать ISO образы можно с официального сайта isoredirect.centos.org.)
  • Быстрое подключение к Интернету.

Предварительные замечания

В данной статье, я использую имя хоста server1.example.com с IP-адреса 192.168.1.101 и шлюз 192.168.1.1. Эти параметры могут отличаться в Вашем случае, поэтому Вам придется заменить их на свои настройки.

Установка базовой системы

Загрузитесь с первого CentOS 5.6 CD (CD 1) или первого CentOS 5.6 DVD. Нажмите Enter для подтверждения запуска процесса установки:

Установка CentOS 5.6

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

Установка CentOS 5.6

В появившемся экране приветствия процесса установки CentOS 5.6 нажмем Next:

Установка CentOS 5.6

Укажем язык процесса установки, в моем случае это Russian (Русский):

Установка CentOS 5.6

Укажите раскладку клавиатуры. Как правило, процесс установки системы CentOS 5.6 по умолчанию предлагает уже удобную раскладку, я бы не советовал ее менять, тем более что речь идет о сервере (Web хостинге), управление которого происходит удаленно через SSH или Web интерфейс:

Раскладка клавиатуры CentOS 5.6

Я устанавливаю CentOS 5.6 на свежую систему, поэтому на вопрос инициализировать этот диск я отвечаю Да, для удаления всех данных жесткого диска и использовать его полностью под наш сервер:

Раскладка клавиатуры CentOS 5.6

Теперь мы должны выбрать тип нашей установки CentOS. Для простоты я выбираю - Удалить разделы Linux на выбранных дисках и создать разбиение по умолчанию:

Создание разделов под CentOS 5.6

Ответьте на следующие вопрос: Вы уверены, что хотите это сделать? - Да

Создание разделов под CentOS 5.6

По умолчанию для настройки сетевых интерфейсов используется DHCP, но мы устанавливаем сервер, поэтому нам необходим статический IP-адреса а не динамический. Нажмите на кнопку Изменить в правом верхнем углу, выбрав перед этим сетевое устройство, как показано на скриншоте:

Настройка сети CentOS 5.6

Во всплывающем окне снимите флажок dynamic IP configuration (DHCP) и Enable IPv6 support и присвойте Вашей сетевой карте статический IP-адрес (в этом руководстве я использую IP-адрес 192.168.1.101 для демонстрационных целей) и подходящую маску подсети, например 255.255.255.0 (не забываем, что в некоторых статьях маску можно записать сокращенно 24):

Настройка сети CentOS 5.6

Установите имя сервера (компьюьера) вручную, например server1.example.com и введите шлюз (например, 192.168.1.1) и до двух DNS-серверов (например, 192.168.1.1 и 8.8.8.8, второй из которых является бесплатным DNS сервером Google):

Настройка сети CentOS 5.6

Установите свой часовой пояс:

Установка часового пояса CentOS 5.6

Установите пароль для root:

Новый пользователь CentOS 5.6


Теперь выберите программное обеспечение, которое нам потребуется на сервере. В наборе програм укажите только Server, а репозиторий Packages from CentOS Extras не выбирать! Настройку списка программ выполним сейчас, и нажмем Далее:

Пакеты и репозитории CentOS 5.6

Теперь мы должны выбрать группы пакетов, которые хотим установить:

Приложения
Программирование
Серверы
Базовая система
Редакторы Библиотеки для разработки Сервер DNS Средства администрирования
Текстовые средства Интернет Средства разработки Сервер электронной почты Основа
База данных MySQL Системные средства
Средства настройки сервера
Веб-сервер
FTP сервер

Пакеты и репозитории CentOS 5.6

Программа установки произведет проверку зависимостей от выбранных пакетов. Нажмите на Далее, чтобы начать установку:

Установка CentOS 5.6

Наконец, установка завершена, и Вы можете извлечь Ваш диск из компьютера и перезагрузить его:

Установка CentOS 5.6

После перезагрузки, Вы увидите такое окно. Мы выберем Настройка брандмауэра и нажмем Запустить утилиту:

Настройка брандмауэра CentOS 5.6

Так как, в этом материале я устанавливаю ISPConfig 3, который поставляется с собственным брандмауэром, я должен отключить брандмауэр CentOS 5.6, который входит как пакет по умолчанию. Конечно, Вы можете оставить его и настроить его под свои нужды, но тогда Вы не сможете использовать любой другой брандмауэр.

SELinux является расширенние безопасности CentOS 5.6. На мой взгляд, Вам не нужно его настраивать, так как это вызывает большую проблему, чем преимущества от от него. Поэтому я могу отключить его, так же, это необходимо, если Вы хотите установить ISPConfig 3, продолжим, нажав OK:

Настройка брандмауэра CentOS 5.6

Если Помощник по настройке не запустился, Вы можете запустить его самы, выполнив команду:

  • system-config-securitylevel

Затем остановим установочный агента, выбрав Выход:

Настройка брандмауэра CentOS 5.6

Затем войдем в систему как root и перезапустим систему, для применения изменений:

  • reboot

Теперь переходим к конфигурации ...


Далее отредактируем /etc/hosts. Выглядеть будет следующим образом:

  • nano /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
192.168.1.101           server1.example.com server1
::1             localhost6.localdomain6 localhost6

Настройка дополнительных IP-адресов

{xtypo_info}Этот раздел является не обязательным! Здесь я покажу как добавить дополнительные IP адреса для сетевой интерфейс eth0, если Вам необходимо более чем один IP-адрес. Если у Вас все в порядке на одного IP адресе, Вы можете пропустить этот раздел.{/xtypo_info}

Предположим, что наш сетевой интерфейс eth0. Тогда существует файл /etc/sysconfig/network-scripts/ifcfg-eth0, который содержит настройки для eth0. Мы можем использовать это в качестве образца для нашего нового виртуального сетевого интерфейса eth0:0 :

  • cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0

Теперь мы хотим использовать IP-адрес 192.168.1.102 на виртуальном интерфейсе eth0:0. Поэтому мы открываем файл /etc/sysconfig/network-scripts/ifcfg-eth0:0 и изменим его следующим образом:

  • nano /etc/sysconfig/network-scripts/ifcfg-eth0:0
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.102
NETMASK=255.255.255.0
NETWORK=192.168.1.1
ONBOOT=yes

По окончанию перезапускаем сеть:

  • /etc/init.d/network restart

Также после добавления новых IP адресов Вы можете настроить /etc/hosts, хотя это и не обязательно. Теперь запустите:

  • ifconfig

В результате Вы должны увидеть Ваш новый IP-адрес:

[root@server1 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:FD:78:BE
          inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fefd:78be/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:130 errors:0 dropped:0 overruns:0 frame:0
          TX packets:137 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:12592 (12.2 KiB)  TX bytes:31876 (31.1 KiB)
          Base address:0x1070 Memory:ec820000-ec840000

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:FD:78:BE
          inet addr:192.168.1.102  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Base address:0x1070 Memory:ec820000-ec840000

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:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

[root@server1 ~]#

В результате я показал новы IP адреса другим цветом, если так же, значит все работает!

Отключим брандмауэр и SELinux

Так как в этом материале я устанавливаю ISPConfig 3, который поставляется с собственным брандмауэром, я и отключаю его по умолчанию в CentOS 5.6. Конечно, Вы можете оставить его и настроить его под свои нужды, но тогда Вы не должны использовать любой другой брандмауэр.

{SELinux является расширением безопасности CentOS. На мой взгляд, Вам не нужно его настроить, так как это вызовет больше проблем, чем удобств. Поэтому я отключаю его, так же это это необходимо, если Вы устанавливаете ISPConfig 3.

Выполним:

  • system-config-securitylevel

Установим Security Level и SELinux как выключеные (Disabled) и нажмем OK:

Установка CentOS 5.6

Произведем перезапуск сервера для применения сохраненных настроек:

  • reboot

Установим некоторые программы

Сначала импортируем GPG ключи для программных пакетов:

  • rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Включить contrib и centosplus хранилище:

  • nano /etc/yum.repos.d/CentOS-Base.repo

Изменить строки как показано ниже:

[base]
[...]
exclude=postfix
[...]
[updates]
[...]
exclude=postfix
[...]
[centosplus]
[...]
enabled=1
includepkgs=postfix
[...]
[contrib]
[...]
enabled=1
[...]

Теперь обновим существующие пакеты системы:

  • yum update

Установим некоторые пакеты программного обеспечения, которые пригодятся нам в дальнейшем:

  • yum groupinstall 'Development Tools'
  • yum groupinstall 'Development Libraries'

Квота

Чтобы установить квоту, мы выполним эту команду:

  • yum install quota

Изменим /etc/fstab добавив ,usrquota,grpquota к разделу /dev/VolGroup00/LogVol00:

  • nano /etc/fstab
/dev/VolGroup00/LogVol00 /                       ext3    defaults,usrquota,grpquota        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
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
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0

Затем выполним:

  • touch /aquota.user /aquota.group
  • chmod 600 /aquota.*
  • mount -o remount /
  • quotacheck -avugm
  • quotaon -avug

, для установки квоты.

Установим Apache, MySQL, phpMyAdmin

Сначала мы разрешим RPMforge репозиторий для нашей системы CentOS 5.6, так как многие пакеты, которые мы собираемся установить не доступны в официальных хранилищах CentOS 5.6:

  • rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
  • cd /tmp
  • wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
  • rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

(Если выше ссылка уже не работает, Вы можете найти текущую версию rpmforge-release здесь: packages.sw.be)

Если добавление ключа RPM-GPG-KEY.dag.txt вызывает ошибку, выполним его установку с самого сервера:

  • wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
  • rpm --import RPM-GPG-KEY.dag.txt

Затем одной командой мы можем установить необходимые нам пакеты:

  • yum install ntp httpd mysql-server php php-mysql php-mbstring php-mcrypt phpmyadmin

Установим Dovecot

Пакете Dovecot хранилища CentOS, не поддерживает MySQL. Поэтому мы должны удалить существующие Dovecot и установить другой пакет Dovecot (от ATrpms), которая поставляется с поддержкой MySQL:

  • yum remove dovecot

Создать новый файл /etc/yum.repos.d/atrpms.repo ...

  • nano /etc/yum.repos.d/atrpms.repo

... и вставить следующие строки в файл:

[atrpms]
name=Red Hat Enterprise Linux 5 - x86_64 - ATrpms
baseurl=http://dl.atrpms.net/el5-x86_64/atrpms/stable
failovermethod=priority
exclude=dovecot-2*
includepkgs=dovecot dovecot-sieve

#
# requires stable
#
[atrpms-testing]
name=Red Hat Enterprise Linux 5 - x86_64 - ATrpms testing
baseurl=http://dl.atrpms.net/el5-x86_64/atrpms/testing
failovermethod=priority
enabled=1
exclude=dovecot-2*
includepkgs=dovecot dovecot-sieve

#
# requires stable and testing
#
[atrpms-bleeding]
name=Red Hat Enterprise Linux 5 - x86_64 - ATrpms bleeding
baseurl=http://dl.atrpms.net/el5-x86_64/atrpms/bleeding
failovermethod=priority
enabled=0

Теперь импортируем tge gpg ключ atrpm хранилища ...

  • wget http://ATrpms.net/RPM-GPG-KEY.atrpms
  • rpm --import RPM-GPG-KEY.atrpms

... и установим Dovecot:

  • yum install dovecot dovecot-sieve

Для 64-bit системе надо выполнить это: (для 32-bit системы это не делать!)

  • ln -s /usr/lib64/dovecot/ /usr/lib/dovecot

Теперь мы добавляем Dovecot в атозапуск вместе с системой:

  • chkconfig --levels 235 dovecot on
  • /etc/init.d/dovecot start

Если Dovecot не запускается из-за ошибки:

Fatal: listen(::, 143) failed: Address already in use

... открываем /etc/dovecot.conf ...

  • nano /etc/dovecot.conf

... и добавляем строку listen = * :

[...]
#listen = *, [::]
listen = *
[...]

Теперь попробуйте запустить Dovecot еще раз:

  • /etc/init.d/dovecot start

Установика Postfix с поддержкой MySQL

Нормальный Postfix пакет из репозитория CentOS не имеет поодержки MySQL, но пакет Postfix из CentOS Plus хранилища имеет. Поэтому мы удаляем Postfix и устанавливаем его снова, на этот раз от CentOS Plus репозитория и добавим их в автозапуск:

  • yum remove postfix
  • yum install postfix
  • chkconfig --levels 235 mysqld on
  • /etc/init.d/mysqld start
  • chkconfig --levels 235 sendmail off
  • chkconfig --levels 235 postfix on
  • /etc/init.d/sendmail stop
  • /etc/init.d/postfix start

Установка GetMail

GetMail могжет быть установлен следующим образом:

  • yum install getmail

Установка MySQL пароля и настройка PhpMyAdmin

Установите пароль для учетной записи root MySQL:

  • mysql_secure_installation
[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 позволяет связей не только с локального хоста (путем комментирования строки):

  • nano /etc/httpd/conf.d/phpmyadmin.conf
#
#  Web application to manage MySQL
#

#
#  Order Deny,Allow
#  Deny from all
#  Allow from 127.0.0.1
#

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

Далее изменяем аутентификацию в PhpMyAdmin из cookie в http:

  • nano /usr/share/phpmyadmin/config.inc.php
[...]
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]

Затем мы создаем атозапуск для Apache и запустим его:

  • chkconfig --levels 235 httpd on
  • /etc/init.d/httpd start

Теперь Вы можете перейти в Вашем браузере http://server1.example.com/phpmyadmin/ или http://192.168.1.101/phpmyadmin/ и войдете в систему с именем пользователя root и Вашим новый root паролем MySQL.

Установим Amavisd-new, SpamAssassin и ClamAV

Чтобы установить Amavisd-new, SpamAssassin и ClamAV, запустите следующую команду:

  • yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql
  • nano /etc/sysconfig/amavisd

... и раскомментировать строку CONFIG_FILE="/etc/amavisd.conf":

### Uncomment this if you want to use amavis with sendmail milter interface.
### See README.milter for details.
#
#MILTER_SOCKET="local:/var/amavis/amavis-milter.sock"
#MILTER_SOCKET="10024@127.0.0.1"

### These are other defaults.
#AMAVIS_ACCOUNT="amavis"
CONFIG_FILE="/etc/amavisd.conf"
#MILTER_FLAGS=""

Теперь мы запускаем Freshclam, AMaViSd, и Clamd ...

  • sa-update
  • chkconfig --levels 235 amavisd on
  • chkconfig --levels 235 clamd on
  • /usr/bin/freshclam
  • /etc/init.d/amavisd start
  • /etc/init.d/clamd start

Создадим необходимые каталоги:

  • mkdir /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/dbe
  • chown amavis /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/dbe
  • ln -s /var/run/clamav/clamd.sock /var/spool/amavisd/clamd.sock

Установка Apache2 с mod_php, mod_fcgi/PHP5, И suPHP

ISPConfig 3 позволяет использовать mod_php, mod_fcgi/PHP5, cgi/PHP5, и suPHP в основе сайта. Mod_fcgid не доступен в репозитории CentOS, но есть пакет для CentOS 5.x в centos.karan.org тестирования хранилище. Мы даем возможность хранилище следующим образом:

  • cd /etc/yum.repos.d/
  • wget http://centos.karan.org/kbsingh-CentOS-Extras.repo
  • nano /etc/yum.repos.d/kbsingh-CentOS-Extras.repo
[...]
# pkgs in the -Testing repo are not gpg signed
[kbs-CentOS-Testing]
name=CentOS.Karan.Org-EL$releasever - Testing
gpgcheck=0
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
enabled=1
baseurl=http://centos.karan.org/el$releasever/extras/testing/$basearch/RPMS/

Теперь одной командой установим Apache2with mod_php5, mod_fcgid, и PHP5:

  • yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-mbstring php-mcrypt php-mhash php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel

Далее открываем /etc/php.ini ...

  • nano /etc/php.ini

... и изменение сообщений об ошибках (так что бы уведомления больше не показывались) и добавить в конце файла cgi.fix_pathinfo = 1:

[...]
;error_reporting  =  E_ALL
error_reporting = E_ALL & ~E_NOTICE
[...]
cgi.fix_pathinfo = 1

Далее установим suPHP:

  • cd /tmp
  • wget http://suphp.org/download/suphp-0.7.1.tar.gz
  • tar xvfz suphp-0.7.1.tar.gz
  • cd suphp-0.7.1/
  • ./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=owner --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable-SUPHP_USE_USERGROUP=yes
  • make
  • make install

Затем мы добавляем suPHP модуль для нашей конфигурации Apache ...

  • nano /etc/httpd/conf.d/suphp.conf
LoadModule suphp_module modules/mod_suphp.so

и создаем файл /etc/suphp.conf следующим образом:

  • nano /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:

  • /etc/init.d/httpd restart

Ruby

Начиная с версии 3.0.3, ISPConfig 3 имеет встроенную поддержку для Ruby. Вместо использования CGI / FastCGI, ISPConfig зависит от mod_ruby доступная на сервере Apache. Для CentOS 5.6, нету mod_ruby в репозиториях, поэтому мы должны скомпилировать его сами. Сначала установим некоторые предпосылки:

  • yum install httpd-devel ruby ruby-devel

Далее скачайте и установите mod_ruby следующим образом:

  • cd /tmp
  • wget http://www.modruby.net/archive/mod_ruby-1.3.0.tar.gz
  • tar zxvf mod_ruby-1.3.0.tar.gz
  • cd mod_ruby-1.3.0/
  • ./configure.rb --with-apr-includes=/usr/include/apr-1
  • make
  • make install

Теперь мы должны добавить mod_ruby модуль конфигурации Apache, поэтому мы создаем файл /etc/httpd/conf.d/ruby.conf ...

  • nano /etc/httpd/conf.d/ruby.conf
LoadModule ruby_module modules/mod_ruby.so

... и перезапустим Apache:

  • /etc/init.d/httpd restart

WebDAV

WebDAV уже должны быть включены, но проверте это. Откройте /etc/httpd/conf/httpd.conf и убедитесь, что следующие три модуля активных:

  • nano /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:

  • /etc/init.d/httpd restart

Установка PureFTPd

PureFTPd может быть установлена с помощью следующей команды:

  • yum install pure-ftpd

Затем создаем автозапуск для PureFTPd:

  • chkconfig --levels 235 pure-ftpd on
  • /etc/init.d/pure-ftpd start

Теперь мы настроим PureFTPd для FTP с TLS. FTP является очень небезопасным протоколом, так как все пароли и все данные передаются в открытом виде. С помощью TLS, все связи могут быть зашифрованы, это сделает FTP более безопасным.

OpenSSL нужна TLS. Установим OpenSSL выполнив:

  • yum install openssl

Открыть /etc/pure-ftpd/pure-ftpd.conf ...

  • nano /etc/pure-ftpd/pure-ftpd.conf

Если Вы хотите разрешить FTP и TLS сессии, используйте 1 TLS набор:

[...]
# 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/ , поэтому я создал этот каталог первым:

  • mkdir -p /etc/ssl/private/

После этого мы можем сгенерировать SSL сертификат следующим образом:

  • openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Country Name (2 letter code) [GB]: - Введите название страны (например, "RU")
State or Province Name (full name) [Berkshire]: - Введите государство или название провинции
Locality Name (eg, city) [Newbury]: - введите Ваш город
Organization Name (eg, company) [My Company Ltd]: - Введите название организации (например, название Вашей компании)
Organizational Unit Name (eg, section) []: - Введите Организационные Название группы (например, "ИТ-отдел")
Common Name (eg, your name or your server's hostname) []: - Введите полное доменное имя системы (например, "server1.example.com")
Email Address []: - Введите адрес электронной почты

Изменение разрешения сертификата SSL:

  • chmod 600 /etc/ssl/private/pure-ftpd.pem

Теперь перезапустите PureFTPd:

  • /etc/init.d/pure-ftpd restart

Вот и все. Теперь Вы можете попробовать подключиться с помощью вашего FTP-клиента, однако, вы должны настроить свой FTP-клиента для использования TLS.

Установка изолированного DNS-сервер (BIND9)

Чтобы установить изолированный BIND9, мы выполним это:

  • yum install bind-chroot
  • chmod 755 /var/named/
  • chmod 775 /var/named/chroot/
  • chmod 775 /var/named/chroot/var/
  • chmod 775 /var/named/chroot/var/named/
  • chmod 775 /var/named/chroot/var/run/
  • chmod 777 /var/named/chroot/var/run/named/
  • cd /var/named/chroot/var/named/
  • ln -s ../../ chroot
  • cp /usr/share/doc/bind-9.3.6/sample/var/named/named.local /var/named/chroot/var/named/named.local
  • cp /usr/share/doc/bind-9.3.6/sample/var/named/named.root /var/named/chroot/var/named/named.root
  • touch /var/named/chroot/etc/named.conf.local
  • nano /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/chroot/var/named";
        dump-file       "/var/named/chroot/var/named/data/cache_dump.db";
        statistics-file "/var/named/chroot/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/chroot/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.root";
};
include "/var/named/chroot/etc/named.conf.local";
  • chkconfig --levels 235 named on
  • /etc/init.d/named start

BIND будет работать в изолированной тюрьме в /var/named/chroot/var/named/. Я буду использовать ISPConfig для настройки BIND (зоны и т.д.).

Установка Vlogger и Webalizer

Vlogger и Webalizer могут быть установлены так:

  • yum install webalizer perl-DateTime-Format-HTTP perl-DateTime-Format-Builder
  • cd /tmp
  • wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
  • tar xvfz vlogger-1.3.tar.gz
  • mv vlogger-1.3/vlogger /usr/sbin/
  • rm -rf vlogger*

Установка Jailkit

Jailkit необходима только тогда, когда вы хотите изолированной SSH пользователей. Она может быть установлена следующим образом:

  • cd /tmp
  • wget http://olivier.sessink.nl/jailkit/jailkit-2.13.tar.gz
  • tar xvfz jailkit-2.13.tar.gz
  • cd jailkit-2.13
  • ./configure
  • make
  • make install
  • cd ..
  • rm -rf jailkit-2.13*

Установка fail2ban

Это необязательно, но рекомендуется, так как монитор ISPConfig отображает журнала:

  • yum install fail2ban
  • chkconfig --levels 235 fail2ban on
  • /etc/init.d/fail2ban start

Установка rkhunter

Rkhunter может быть установлен следующим образом:

  • yum install rkhunter

Установка SquirrelMail

Чтобы установить клиент SquirrelMail веб-почты:

  • yum install squirrelmail
  • /etc/init.d/httpd restart
  • /usr/share/squirrelmail/config/conf.pl

Мы должны скать 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 >> - dovecot


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 >> dovecot

              imap_server_type = dovecot
         default_folder_prefix = 
                  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 = detect
                 delete_folder = false

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:

  • nano /etc/squirrelmail/config_local.php

Теперь вы можете ввести http://server1.example.com/webmail или http://192.168.1.101/webmail в Вашем браузере для доступа к SquirrelMail.

Установка SquirrelMail

Установка ISPConfig 3

Чтобы установить последнюю стабильную версию ISPConfig 3, сделайте следующее:

  • cd /tmp
  • wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
  • tar xfz ISPConfig-3-stable.tar.gz
  • cd ispconfig3_install/install/

Следующим шагом является запуск:

  • php -q install.php

Это приведет к запуску установки 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 .
    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 ...

  • nano /etc/dovecot.conf

... и добавьте строку listen = * :

[...]
#listen = *, [::]
listen = *
[...]

Теперь снова попробуйте запустить Dovecot:

  • /etc/init.d/dovecot start

После этого Вы можете получить доступ к ISPConfig 3 по адресу http://server1.example.com:8080 или http://192.168.1.101:8080 Войдите с именем пользователя admin и пароль admin (Вы должны изменить пароль по умолчанию после первого входа):

Установка ISPConfig 3

Бесплатная Web панель ISPConfig 3

Система готова к использованию. Обсуждение темы на форуме Идеальный сервер - CentOS 5.6 x86_64 [ISPConfig 3], где Вы сможите не только задать свой вопрос но и скачать готовый сервер.