Это подробное описание о том, как настроить OpenSUSE сервер 11.4 64bit (x86_64), который предоставляет все услуги, необходимые интернет-провайдеру и хостеру: веб-сервер Apache (SSL-совместимый) с PHP, CGI, SSI и поддержку Postfix почтового сервер с SMTP авторизацией, TLS и виртуальных пользователей почты, BIND DNS сервера, PureFTPd FTP сервер, MySQL сервер, Dovecot POP3/IMAP, квоты, брандмауэры и т.д.
Я буду использовать следующее программное обеспечение:
- Веб-сервер: Apache 2.2 с PHP 5
- Сервер баз данных: MySQL
- Почтовый сервер: Postfix с виртуальными пользователями
- DNS-сервер: BIND
- FTP-сервер: PureFTPd
- POP3/IMAP: Dovecot
- Webalizer и AWStats для статистики сайта
В конце Вы получите систему, которая работает надежно, а так же легка в управлении с панелью управления ISPConfig 3. Это руководство предназначено для 64-разрядной версии OpenSUSE. Это не единственный способ создания такой системы. Есть много способов достижения этой цели, а это всего лишь один из них.
{xtypo_alert}Это руководство предназначено для ISPConfig 3.0.1 или выше. И не применимо для панели управления ISPConfig 2.x!{/xtypo_alert}
Требования
Для установки такой системы необходимо следующее:
- Установочный дистрибутив OpenSUSE 11.4
- Быстрое подключение к Интернету ...
Предварительные замечания
В данной статье я использую имя хоста server1.example.com с IP-адреса 192.168.2.175 и шлюзом 192.168.2.200 . Эти параметры могут отличаться в Вашем случае, поэтому Вам придется заменить их в случае необходимости.
Базовая установка OpenSUSE 11.4
Загрузитесь с диска OpenSUSE 11.4 и выберите Installation:
Выберите язык, раскладку клавиатуры и приняв условия лицензионного соглашения:
Установка проанализирует аппаратные средства и сконфигурирует устанавливаемое программное обеспечение:
Выберите Новая установка:
Выберите регион и часовой пояс:
Здесь мы выбираем Другое - Минимальный сервер (текстовый режим), так как мы хотим установить сервер а не desktop версию OpenSUSE 11.4. В оконном режиме (desktop) у системы нет необходимости при запуске сервера, что так же может привести к замедлению работы системы. Мы выполняем все задачи администрирования в консоли или через SSH соединения, например через PuTTY с удаленного рабочего компьютера.
Нажмите на редактировать разметку... измените предлагаемые разделы. Так как это настройка сервера, нам нужен большой раздел /srv вместо /home раздела:
Выберите /dev/hda3 и нажмите на Редактировать ... :
Измените точку монтирования в /srv и нажмите Завершить :
Нажмите на Принять :
Нажмите на Далее :
Теперь я создаю пользователя с именем Administrator. Вы можете использовать любое имя пользователя какое пожелаете. Убедитесь, что Вы отключили флажок Автоматический вход в систему для этого пользователя. Пароль, которые вы здесь введете будет использован в качестве root пароля:
Установка покажет Вам обзор выбранных параметров установки. Прокрутите вниз до брандмауэра и SSH раздела и включите SSH ...
Затем отключить брандмауэр (ISPConfig 3 поставляется со своим собственным брандмауэром):
Нажмите на Установить , чтобы начать процесс установки:
Подтвердите, что Вы хотите начать установку:
Устанавливается формат жесткого диска, установка программных пакетов и подготовка конфигурации системы для первого запуска:
После завершения установки базовой системы, процесс установки выполнит автоматическую перезагрузку:
Автоматическая конфигурация начнется сразу же после перезагрузки системы:
Теперь войдите в систему с именем пользователя root и паролем выбранным во время установки.
Настройка сети OpenSUSE 11.4
Мы используем Yast OpenSuSE как инструмент системы управления для перенастройки настройки сетевой карты. После первой загрузки, система настроится на получение IP-адреса через DHCP. Для сервера мы включим статический IP адрес.
Выполним:
|
Выберите Network Devices - Network Settings:
Выберите сетевую карту, а затем Edit :
Выберите статически назначенный IP Address и введите IP адрес, маску подсети и хоста, после чего сохраните изменения, выбрав Next:
Теперь выберите Hostname / DNS и введите имя хоста (например, server1.example.com ) и серверы имен (например, 192.168.2.200 и 8.8.8.8 ):
Теперь выберите Routing и введите шлюз по умолчанию и нажмите OK :
Чтобы настроить брандмауэр (в случае, если Вы не настроили его во время базовой установки), выберите в Yast Security and Users - Firewall:
В конце этого учебника я собираюсь установить ISPConfig, который поставляется с собственным брандмауэром. Вот почему сейчас я отключаю брандмауэр OpenSUSE по умолчанию. Конечно, Вы можете оставить его и настроить его под свои нужды (но тогда позже Вы не должны использовать любой другой брандмауэр, так как это, скорее всего будет мешает брандмауэру OpenSUSE).
Выберите Disable Firewall Automatic Starting и Stop Firewall Now, затем нажмите Next:
Далее Finish и покидаем Yast:
Обновление OpenSUSE 11.4
Сейчас мы устанавливаем последние обновления с OpenSUSE хранилищ. Выполним:
|
А затем перезагрузите сервер, так как Вы скорее всего установите некоторые обновления ядра:
|
Установка некоторых основных пакетов
Выполнить:
|
Журналирование квоты
Чтобы установить квоты, запустите:
|
Изменить /etc/fstab, он должен выглядеть следующим образом (я добавил ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 в точку монтирования / и /srv):
|
/dev/sda1 swap swap defaults 0 0 /dev/sda2 / ext4 acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 1 /dev/sda3 /srv ext4 acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 2 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0
Затем выполните:
|
Не надо беспокоиться, если Вы увидите эти сообщения об ошибках - это нормально, когда Вы запускаете quotacheck в первый раз:
server1:~ # quotacheck -avugm quotacheck: WARNING - Quotafile //aquota.user was probably truncated. Cannot save quota settings... quotacheck: WARNING - Quotafile //aquota.group was probably truncated. Cannot save quota settings... quotacheck: Scanning /dev/sda2 [/] done quotacheck: Checked 4416 directories and 35532 files quotacheck: WARNING - Quotafile /srv/aquota.user was probably truncated. Cannot save quota settings... quotacheck: WARNING - Quotafile /srv/aquota.group was probably truncated. Cannot save quota settings... quotacheck: Scanning /dev/sda3 [/srv] done quotacheck: Checked 6 directories and 2 files server1:~ #
Установите Postfix, Dovecot, MySQL
В этой главе нам необходимо установить Python 2.7, но он конфликтует с пакетом шаблонов-OpenSUSE-minimal_base. Поэтому мы должны в первую очередь удалить этот пакет. Для этого запустите YaST:
|
В YaST, перейти на Software - Software Management:
В поле поиск укажим patterns-openSUSE-minimal_base и нажмем ENTER. Пакет должны быть указаны в главном окне как установленый - ( i ). Нажимаем пробел или ENTER до тех пор пока маркер ( i ) не изменится на ( - ) (минус означает удаление), а затем нажмите [Accept] :
Как замена для пакетов, некоторые другие пакеты должны быть установлены. Принять выбор нажатием [OK] :
По окончанию выйдете из YaST.
Далее выполните:
|
Открыть /etc/postfix/master.cf ...
|
... и раскомментируйте следующую строку:
[...] tlsmgr unix - - n 1000? 1 tlsmgr [...]
Создайте следующую ссылку:
|
Запустите MySQL, Postfix, и Dovecot и активируйте сервисы при загрузки с системой.
|
Вы можете увидеть следующее предупреждение Dovecot которые можно игнорировать:
Starting dovecot Warning: There is no way to login to this server: disable_plaintext_auth=yes, ssl=no, no non-plaintext auth mechanisms. 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.
Теперь я могу установить пакет getmail rpm, которая не доступна из OpenSUSE основных репозиториев.
|
Для безопасной установки MySQL, выполните:
|
Теперь Вам будет предложено несколько вопросов:
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] - Y 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] - Y ... 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] - Y ... 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] - Y - 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] - Y ... 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! server1:~ #
Теперь ваша установка MySQL должна быть завершена.
Amavisd-new, Spamassassin And Clamav
Установить Amavisd-new, Spamassassin And Clamav можно выполнив команду:
|
Откройте /etc/amavisd.conf ...
|
... и добавить ниже строку $myhostname соответствующую имени Вашему хосту:
[...] $mydomain = 'example.com'; # a convenient default for other settings $myhostname = "server1.$mydomain"; [...]
Затем создайте символическую ссылку с /var/run/clamav/clamd на /var/lib/clamav/clamd-socket :
|
Для запуска сервиса, выполните:
|
Установите Apache 2 веб-сервер с PHP5, Ruby, WebDAV
Установим Apache2 и suphp. Выполнив:
|
Установим PHP5:
|
Затем эти команды для того, чтобы запустить Apache модули (включая WebDAV):
|
Далее мы собираем mod_ruby модуль Apache (он не доступен в OpenSUSE 11,4 репозиториях, поэтому мы должны собрать его сами):
|
Запустим Apache:
|
Установим PhpMyAdmin:
|
Установка PureFTPd
Что бы установить FTP демон становить PureFTPd, выполните:
|
Теперь мы настроим PureFTPd что бы FTP работал с TLS. FTP является очень небезопасным протоколом, потому что все пароли и все данные передаются в открытом виде. С помощью TLS, все связи могут быть зашифрованы, что делает FTP гораздо более безопасным.
OpenSSL нужна TLS. Установим OpenSSL просто выполнив:
|
Открыть /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 сессии (не FTP), 2 набор 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 2 [...]
Чтобы запретить TLS для всех (только FTP), 0 набор 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 0 [...]
Для того чтобы использовать TLS, мы должны создать SSL-сертификат. Я создаю его в /etc/ssl/private/ , поэтому я создал этот каталог первым, так как до меня его никто не создавал:
|
После этого мы можем сгенерировать SSL сертификат следующим образом:
|
Country Name (2 letter code) [AU]: - Введите название страны (например, "RU") State or Province Name (full name) [Some-State]: - Введите государства или название провинции Locality Name (eg, city) []: - введите Ваш город Organization Name (eg, company) [Internet Widgits Pty Ltd]: - Введите название организации (например, название Вашей компании) Organizational Unit Name (eg, section) []: - Введите Организационные Название группы (например, "ИТ-отдел") Common Name (eg, YOUR name) []: - Введите полное доменное имя системы (например, "server1.example.com") Email Address []: - Введите адрес электронной почты
Изменените разрешения сертификата SSL:
|
Теперь перезапустите PureFTPd:
|
Вот и все. Теперь Вы можете попробовать подключиться с помощью вашего FTP-клиента, однако, вы должны настроить свой FTP-клиента для использования TLS - см. следующую главу, как это сделать с FileZilla.
Установка BIND
Сервер имен BIND может быть установлен следующим образом:
|
Создадим ссылки на атозапуск BIND в месте с системой и запустим его:
|
Установка Webalizer и AWStats
ISPConfig 3 позволяет Вам выбрать, хотите Вы хотите использовать Webalizer или AWStats для создания статистики веб-сайта, мы устанавливаем их так:
|
Установка fail2ban
fail2ban может быть установлен следующим образом:
|
Установика Jailkit
Jailkit может быть установлен следующим образом:
|
Синхронизация системного времени
Если Вы хотите, чтобы системные часы синхронизируются с NTP-сервера выполните следующие действия:
|
Затем добавте автозапуск с системой для NTP и запустите NTP:
|
ISPConfig 3
Прежде чем установить ISPConfig 3, убедитесь, что /var/vmail/ каталог существует:
|
Скачайте текущую версию ISPConfig 3 и установить его. Установка ISPConfig настроит для Вас все услуги, такие как Postfix, Dovecot, и т.д.. Ручная настройки по мере необходимости.
|
Теперь запустите процесс установки, выполнив:
|
server1:/tmp/ispconfig3_install/install # php -q install.php -------------------------------------------------------------------------------- _____ ___________ _____ __ _ ____ |_ _/ ___| ___ \ / __ \ / _(_) /__ \ | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ __/ | |___/ -------------------------------------------------------------------------------- >> Initial configuration Operating System: openSUSE or compatible, unknown version. 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) [AU]: - ENTER State or Province Name (full name) [Some-State]: - ENTER Locality Name (eg, city) []: - ENTER Organization Name (eg, company) [Internet Widgits Pty Ltd]: - ENTER Organizational Unit Name (eg, section) []: - ENTER Common Name (eg, YOUR name) []: - ENTER Email Address []: - ENTER Configuring Jailkit Configuring Dovecot chmod: cannot access `/etc/dovecot/dovecot-sql.conf~': No such file or directory 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 ... Restarting service MySQL Shutting down service MySQL ..done Starting service MySQL ..done Shutting down mail service (Postfix)..done Starting mail service (Postfix)..done Waiting for the process [6308] to terminate Waiting for the process [6308] to terminate Daemon [6308] terminated by SIGTERM Shutting down virus-scanner (amavisd-new): ..done Starting virus-scanner (amavisd-new): ..done Shutting down Clam AntiVirus daemon ..done Starting Clam AntiVirus daemon ..done Stopping dovecot ..done Starting dovecot ..done 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. Syntax OK Shutting down httpd2 (waiting for all children to terminate) ..done Starting httpd2 (prefork) ..done Shutting down pure-ftpd..done Starting pure-ftpd..done Installation completed. server1:/tmp/ispconfig3_install/install #
Создайте символическую ссылку для PhpMyAdmin:
|
Очищаем /tmp каталог:
|
Откроем /etc/suphp.conf ...
|
... и убедитесь, что он содержит x-httpd-suphp вместо x-httpd-php в конце файла:
[...] [handlers] ;Handler for php-scripts x-httpd-suphp="php:/srv/www/cgi-bin/php5" [...]
Чтобы войти в панель управления ISPConfig, открыть этот URL в браузере (заменить IP на свой адрес сервера, что бы соответствовало настройкам!):
|
Логин по умолчанию является:
Пользователь: Admin
Пароль: Admin
Установка SquirrelMail (необязательно)
Установить SquirrelMail, веб-клиент электронной почты можно так:
|