Это подробное описание как настроить Fedora 14 сервер, который предлагает все услуги, необходимые интернет-провайдерe и хостерe: web-сервер Apache (SSL-совместимый) с PHP5/Ruby/Python, Postfix почтовый сервер с SMTP-AUTH и TLS, BIND DNS-сервер, FTP-сервер Proftpd, MySQL сервер, Dovecot POP3/IMAP, квоты, брандмауэр, и т.д. Это руководство написано для 64-битной версии Fedora 14, но может применяться к 32 разрядной версия с очень малыми изменениями. В окончании материала Вы должны получить надежную и рабочую систему.
Обратите внимание, что эта установка не применима для ISPConfig 3! Это справедливо только для ISPConfig 2! Я буду использовать следующее программное обеспечение:
Требования для установки ISPСonfig 2
- Fedora 14 DVD компакт-диск
- Быстрое подключение к Интернету.
Предварительные замечания
В данной статье я использую имя хоста server1.example.com с IP-адреса 192.168.1.101 и шлюз 192.168.1.1. Эти параметры могут отличаться в Вашем случае, поэтому придется заменить их при необходимости.
Установка базовой системы Fedora 14
Вставьте установочный диск Ubuntu в вашу систему и загрузиться с него. Выберите язык:
Загрузим с Fedora 14 DVD. Выбрав Install a new system or upgrade an existing system:
Тест проверки информации об установке, может занять много времени, поэтому здесь мы пропускаем этот шаг:
Появится экран приветствия программы установки Fedora 14. Нажмем на Next:
Следующим шагом выберите Ваш язык:
А так же раскладку клавиатуры:
Я предполагаю, что Вы используете локально подключенный жесткий диск, так как здесь, Вы должны выбрать основные устройства хранения:
Если Вы видите следующее сообщение (Ошибка обработки диска: необходимо будет нажать на Инициализировать все, что приведет к полной очистке локального диска и потере всех данных:
Заполним имя хоста сервера:
Выберите свой часовой пояс:
Задайте пароль для суперпользователя root:
Далее мы сдаем разделы. Выберите Все пространство, чтобы использовать диск целиком уничтожив все созданное до этого от фалов до целых разделов, если это Вас не устраивает и на диске уже имеются данные то предпочтительнее использовать Заменить существующую систему Linux:
Выберите Сохранить изменения на диск:
Жесткий диск форматируется:
Теперь выберем программное обеспечение которое мы хотим установить. Снимите графического рабочий стол на веб-сервер. Затем установите Настроить сейчас. Затем, выберите дополнительные репозитории Fedora 14 - x86_64 и Fedora 14 - x86_64 - Updates (если Вы ставите на i386 систему, имена соответственно: Fedora 14 - i386 и Fedora 14 - i386 - Updates):
Для подключения этих двух хранилищ необходимо подключение к Интернету, в появившемся новом окне, Вы должны настроить сетевую карту. Выберите Включить поддержку IPv4, но отключить использование динамической конфигурации IP (DHCP), а затем присвоить Вашей сетевой карте статический IP-адрес и маску подсети (в этом руководстве для демонстрации я использую IP-адрес 192.168.1.101 и маску подсети 255.255.255.0, Также заполните Ваш шлюз (например, 192.168.1.1) и один сервер имен (например, 8.8.8.8):
Теперь мы должны выбрать группы пакетов которые мы хотим установить:
Приложения |
Программирование |
Серверы |
Базовая система |
Редакторы | Библиотеки разработки | Сервер DNS | Средства администрирования |
Текстовые средства Интернет | Средства программирования | Сервер электронной почты | Основные |
База данных MySQL | Системные средства | ||
Средства настройки сервера | |||
Веб-сервер | |||
Сервер FTP |
Начинается установка. Это займет несколько минут:
Наконец, установка завершена, и Вы можете извлечь Ваш DVD из компьютера и перезагрузить его:
После перезагрузки, Вы увидите этот экран. Выберите утилиту конфигурации брандмауэра и нажмите Выполнить:
Я хочу установить ISPConfig 2, который поставляется с собственным брандмауэром. Вот почему сейчас я отключил брандмауэр Fedora по умолчанию. Конечно, Вы можете оставить его и настроить его под свои нужды (но тогда вы не должны использовать любой другой брандмауэр позже, так как это будет, мешает нормальной работе брандмауэра Fedora).
После чего нажмем OK:
Подтвердите Ваш выбор, выбрав Да:
Затем выберите настройка сети:
Если вы не настроить сетевую карту в процессе установки (потому что Вы не выбрали дополнительных онлайновых хранилищах), Вы можете сделать это прямо сейчас, перейдя в конфигурации устройства:
Выберите сетевой интерфейс (обычно eth0):
Тогда заполните данные сети - отключив DHCP и заполнив статический адрес IP, маску подсети и шлюз, а затем нажмите ОК:
Затем выберите Сохранить:
Что Вы должны сделать во всех случаях (независимо от того, настроен подключение к сети во время установки или только сейчас), это указать сервера имен (во время первоначальной установки, вы можете заполнить только один сервер имен, поэтому вы должны указать по крайней мере второй сейчас ). Выберите Конфигурация DNS:
Теперь вы можете заполнить дополнительные серверы имен и нажмите ОК:
После чего, Сохранить и Выйти ...
... и выйти из окна Выбора утилиты, выбрав Выход:
Вы должны запустить:
|
Чтобы проверить Ваши получены установки IP-адреса.
Теперь я могу отключить в Fedora NetworkManager. и NetworkManager хорош для настольных компьютеров, где сетевые соединения могут изменяться (например, LAN на WLAN), а на сервере Вы обычно не меняете сетевых соединений:
|
Проверьте что /etc/resolv.conf, содержит список всех DNS серверов, которые Вы предварительно настроили:
|
Если серверов имен не хватает, запустите:
|
и добавить недостающие серверы имен снова.
Теперь переходим к конфигурации ...
Отрегулируем /etc/hosts
Далее Изменить /etc/hosts, что бы выглядел следующим образом:
127.0.0.1 localhost.localdomain localhost 192.168.0.100 server1.example.com server1 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Важно, что Вы добавляете строку с server1.example.com и удалить server1.example.com и server1 от 127.0.0.1 строки.
Отключаем SELinux
SELinux является обеспечением расширения Fedora 13, которое должно обеспечивать расширенную безопасность. На мой взгляд, Вам не нужно настраивать в нем безопасность системы, так как это обычно вызывает больше проблем, чем преимуществ. Поэтому я отключаю его (это необходимо, если позже Вы хотите установить ISPConfig 2).
Изменить /etc/selinux/config и выставим 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
Затем мы должны перезапустить систему:
|
Установка некоторых программ
Далее мы обновим в системе наши существующие пакеты:
|
Теперь мы установим некоторые пакеты программного обеспечения, которые необходимы в дальнейшем:
|
Журналирование Квоты
(Если Вы выбрали другую схему разбиения диска, нежели я, Вы должны настроить эту главу, чтобы квота распространяется на разделы, где это необходимо.)
Чтобы установить квоту, выполним эту команду:
|
Изменим /etc/fstab и добавив ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 в разделе (/dev/mapper/vg_server1-lv_root):
|
#
# /etc/fstab
# Created by anaconda on Thu Nov 4 01:49:41 2010
#
# 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=1b6ac184-dcd8-4cc9-829f-d5fca50df46f /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
Запустим:
|
включив квоту.
Установите изолированного DNS-сервера (BIND9)
Чтобы установить изолированный BIND9, мы выполним это:
|
Далее, мы меняем несколько разрешений:
|
Тогда мы открываем /etc/sysconfig/named и убеждаемся, что он имеет следующую строку BIND сказать, что он работает в изоляции /var/named/chroot:
|
[...] ROOTDIR=/var/named/chroot
Далее откроете /etc/rsyslog.conf...
|
... и добавьте строку $AddUnixListenSocket /var/named/chroot/dev/log:
[...] $AddUnixListenSocket /var/named/chroot/dev/log
Перезапускаем rsyslog:
|
Затем мы создаем автозапуск для BIND:
|
Мы не запускаем BIND сейчас, потому что он не запустится из-за отсутствующих /var/named/chroot/etc/named.conf. Это будет создан позже по ISPConfig 2 (если Вы используете ISPConfig 2 DNS-менеджер).
MySQL 5
Для установки MySQL, выполним это:
|
Затем мы создаем автозапуск для MySQL (так чтобы MySQL запускалась автоматически при загрузке системы) и запустить ее сервер MySQL:
|
Теперь проверим, что сеть включена. Выполнив:
|
Он должно отобразиться, что-то вроде этого:
[root@server1 ~]# netstat -tap | grep mysql tcp 0 0 *:mysql *:* LISTEN 1765/mysqld [root@server1 ~]#
Если этого не произойдет, редактировать /etc/my.cnf и закомментируйте опцию skip-networking:
|
[...] #skip-networking [...]
И перезапустим Ваш MySQL сервер:
|
Запустим:
|
Установите пароль для пользователя root (в противном случае любой желающий может получить доступ к MySQL базе данных!).
[root@server1 ~]# 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): - ENTER 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 ~]#
Postfix с SMTP-AUTH и TLS
Теперь мы установим Postfix и Dovecot (Dovecot будет нашим POP3/IMAP сервер):
|
Теперь настроить SMTP-AUTH и TLS:
|
Мы должны изменить /usr/lib64/sasl2/smtpd.conf так, чтобы Postfix разрешал PLAIN и LOGIN логинов (на 32-битных систем, этот файл находится в / usr/lib/sasl2/smtpd.conf). Он должен выглядеть следующим образом:
|
pwcheck_method: saslauthd mech_list: plain login
Затем мы создаем сертификаты для TLS:
|
Далее настраиваем Postfix для TLS:
|
Затем мы устанавливаем имя хоста в наших настройках Postfix (убедившись, что Вы заменили server1.example.com с вашим собственным именем хоста):
|
После этих шагов настройки, Вы должны иметь /etc/postfix/main.cf, который выглядит примерно так (я удалил все комментарии от него):
|
queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = all inet_protocols = all mydestination = $myhostname, localhost.$mydomain, localhost unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.7.1/samples readme_directory = /usr/share/doc/postfix-2.7.1/README_FILES smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination mynetworks = 127.0.0.0/8 [::1]/128 smtpd_tls_auth_only = no smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom myhostname = server1.example.com
Теперь запустим Postfix и saslauthd:
|
Прежде чем мы запустим Dovecot, мы должны позволить текстовую аутентификации. Откроем /etc/dovecot/conf.d/10-auth.conf ...
|
... и добавим строку disable_plaintext_auth = no:
[...]
# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
#disable_plaintext_auth = yes
disable_plaintext_auth = no
[...]
Запустим Dovecot:
|
Чтобы убедиться, что SMTP-AUTH и TLS работают запустим следующую команду:
|
После того как Вы установили соединение с Вашим Postfix почтовым сервером:
|
Если Вы видите строки 250-STARTTLS и 250-AUTH LOGIN PLAIN:
[root@server1 ssl]# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 server1.example.com ESMTP Postfix ehlo localhost 250-server1.example.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit 221 2.0.0 Bye Connection closed by foreign host. [root@server1 ssl]#
Значит все в порядке. Завершим проверку вернувшись в оболочку системы.:
|
Maildir
Dovecot использует Maildir формат (не Mbox), так что если Вы установите ISPConfig 2 на сервере, пожалуйста, не забудьте включить Maildir в Управление - Server - Настройка - Электронная почта. ISPConfig 2 выполнит необходимые настройки.
Если вы не хотите установить ISPConfig 2, то необходимо настроить Postfix для доставки писем на Maildir пользователя (Вы также можете сделать это, если Вы используете ISPConfig):
|
Apache2 с PHP, Ruby, Python, WebDAV
Теперь мы установим Apache с PHP5 (это PHP 5.3.3):
|
Затем отредактируйте /etc/httpd/conf/httpd.conf:
|
и изменения в DirectoryIndex:
[...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl [...]
Теперь настроить автозапуск Apache при загрузке:
|
Запустим Apache:
|
Отключим глобальный PHP
(Если вы не планируете устанавливать ISPConfig 2 на этом сервере, пожалуйста, пропустите этот раздел!)
ISPConfig 2 даст Вам настроить PHP отдельно для каждого сайта, т.е. вы можете указать, какие веб-сайт могут работать с PHP скрипты и который не может. Это может работать только в том случае, если PHP отключена глобально, так как иначе все сайты будут иметь возможность запускать PHP скрипты, независимо от того, что вы указываете в ISPConfig 2.
Чтобы отключить PHP мире, мы отредактировать /etc/httpd/conf.d/php.conf и закоментируем AddHandler и AddType строки:
# # PHP is an HTML-embedded scripting language which attempts to make it # easy for developers to write dynamically generated webpages. #LoadModule php5_module modules/libphp5.so LoadModule php5_module modules/libphp5-zts.so # # Cause the PHP interpreter to handle files with a .php extension. # #AddHandler php5-script .php #AddType text/html .php # # Add index.php to the list of files that will be served as directory # indexes. # DirectoryIndex index.php # # Uncomment the following line to allow PHP to pretty-print .phps # files as PHP source code: # #AddType application/x-httpd-php-source .phps
Далее перезапустим Apache:
|
Ruby
Начиная с версии 2.2.20, ISPConfig имеет встроенную поддержку Ruby. Вместо использования CGI / FastCGI, ISPConfig 2 зависит от mod_ruby будет доступна в сервере Apache.
У Fedora 14, нет mod_ruby в имеющихся пакетах, поэтому мы должны скомпилировать его сами. Сначала установим некоторые предпосылки:
|
Далее скачаем и установим mod_ruby следующим образом:
|
Наконец, мы должны добавить mod_ruby модуль конфигурации Apache, поэтому мы создаем файл vi /etc/httpd/conf.d/ruby.conf...
|
LoadModule ruby_module modules/mod_ruby.so
... и перезапустим Apache:
|
Установка mod_python
Чтобы установить mod_python, мы просто бежать ...
|
... и перезапустим Apache:
|
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:
|
ProFTPd
ISPConfig имеет лучше поддержку в ProFTPD, чем Vsftpd, так что давайте удалим Vsftpd и установим ProFTPD:
|
Теперь мы можем создать автозапуск для Proftpd и запустить его:
|
Webalizer
Чтобы установить Webalizer, просто запустите:
|
Синхронизация системного времени
Если вы хотите, чтобы системные часы синхронизируются с NTP-сервером, выполните следующие действия:
|
Установка некоторых модули Perl
ISPConfig 2 поставляется с SpamAssassin которая требует для работы несколько модулей Perl. Мы устанавливаем необходимые модули Perl с помощью одной команды:
|
ISPConfig 2
Конфигурация сервера закончена. Теперь Вы можете установить ISPConfig 2 на него, выполните следующие инструкции: http://www.ispconfig.org/manual_installation.htm Перед установкой ISPConfig, есть одна важная вещь, которую Вы должны сделать. Открыть /usr/include/stdio.h и заменить getline на parseline в строке 673:
|
[...] /* Like `getdelim', but reads up to a newline. This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern _IO_ssize_t parseline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __wur; #endif [...]
Если Вы не сделаете этого, установка будет прервана из-за следующей ошибки:
htpasswd.c:101: error: conflicting types for âgetlineâ /usr/include/stdio.h:653: note: previous declaration of âgetlineâ was here make[2]: *** [htpasswd.o] Error 1 make[2]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support' make[1]: *** [build-support] Error 1 make[1]: Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41' make: *** [build] Error 2 ERROR: Could not make Apache
Вы можете отменить изменения в /usr/include/stdio.h после успешной установки ISPConfig 2 ). (Не забудьте изменить его обратно, когда вы захотите обновить ISPConfig 2!
Примечание по Suexec
Если вы хотите запустить CGI скрипты под Suexec, Вы должны указать /var/www , как web-сервер для web сайтов. Выполним:
|
это должно выглядеть следующим образом:
[root@server1 ~]# /usr/sbin/suexec -V -D AP_DOC_ROOT="/var/www" -D AP_GID_MIN=100 -D AP_HTTPD_USER="apache" -D AP_LOG_EXEC="/var/log/httpd/suexec.log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=500 -D AP_USERDIR_SUFFIX="public_html" [root@server1 ~]#
Так что если вы хотите использовать Suexec с ISPConfig 2, не меняют Web сервера по умолчанию (который /var/www), если Вы используете режим эксперта во время установки ISPConfig 2 (в стандартном режиме Вы не можете изменить веб-сервера в любом случае, чтобы Вы могли использовать Suexec).