В этом учебнике показано, как подготовить Debian Squeeze (Debian 6.0) сервер для установки ISPConfig 3, и как установить ISPConfig 3. ISPConfig 3, веб-хостинг панель управления, которая позволяет настроить следующие услуги через Web браузер: веб-сервер Apache, Postfix почтовый сервер, MySQL, BIND серверимен, PureFTPd, SpamAssassin, ClamAV, и многое другое. Обращаю Ваше внимание, на то что данная тема уже издавалась ранее, но была переиздана в связи с небольшими изменениями в части настроек, связанными с обновлениями некоторыми пакетами. Так же данный материал в отличии от старой его версии имеет готовый сервер, ознакомиться с которым, обсудить, задать свои вопросы, а так же скачать его Вы можете на нашем форуме в одноименной теме Идеальный сервер - Debian 6.0 [ISPConfig 3] + скачать.
Обратите внимание, что эта установка не работает для ISPConfig 2! Это справедливо только для ISPConfig 3!
Требования для установки ISPConfig 3
Для установки данного Web сервера необходимо:
- Debian Squeeze установочный компакт-диск, можно скачать здесь i386 или x86_64
- Быстрое подключение к Интернету.
Предварительные замечания
В данной статье я использую имя хоста server1.example.com с IP-адреса 192.168.2.222 и шлюз 192.168.2.200. Эти параметры могут отличаться в Вашем случае, поэтому придется заменить их при необходимости.
Установка базовой системы Debian 6.0
Вставьте установочный диск Debian 6.0 в вашу систему и загрузиться с него. Выберите Install (это будет начало текстового установщика - если Вы предпочитаете графический интерфейс программы установки, выберите Graphical install ) и выбирите язык:
Затем выберите ваше местоположение:
Выберите раскладку клавиатуры:
Установщик проверяет установочный компакт-диск, оборудовании и конфигурирует сеть с DHCP, если есть DHCP-сервера в сети, введите имя хоста. В этом примере, моя система называется server1.example.com , так что я вхожу server1 :
Введите имя домена. В этом примере, это example.com :
После этого дать суперпользователя пароль:
Убедитесь, что пароль введен верно, чтобы избежать опечаток:
Создать учетную запись обычного пользователя, например, пользователь администратора с именем пользователя llirikks (не используйте имя пользователя admin , так как оно зарезервированное на Debian Squeeze):
Так же система нас попросит выбрать часовой пояс в котором расположен наш сервер:
Теперь Вам предлогается, создать разделы на жестком диске. Для простоты я создам один большой раздел (с точкой монтирования / ) и маленький раздел подкачки поэтому я выбираю Авто - использовать весь диск (конечно, создание разделов зависит полностью от Вас - если вы хотите, Вы можете создать более одного большого раздела, и Вы также можете использовать LVM):
Выберите диск, который вы хотите разбить:
Затем выберите схемы секционирования. Как упоминалось ранее, я выбираю все файлы в одном разделе (рекомендуется для новых пользователей) для упрощения - это до ваших предпочтений, что Вы можите выбирать здесь:
В окончании разбиения диска на разделы, выберите Закончить разметку и записать изменения на диск :
Выберите Да , когда Вас спрспросят Записать изменения на диск? :
После этого ваши новые разделы созданы и отформатированы:
Теперь устанавливается базовая система:
Укажите способ переключения раскладки клавиатуры
Далее Вам необходимо настроить APT. Потому что Вы используете Debian Squeeze Netinstall CD, который содержит только минимальный набор пакетов, Вы должны использовать сетевой сервер-зеркало. Выберите страну, в которой находится сеть зеркало, (как правило, это страна, где находится Ваша система Debian Squeeze):
Затем выберите зеркало, которое вы хотите использовать (например, ftp.ru.debian.org ):
Если вы не используете прокси-HTTP, оставьте следующие поля пустыми и нажмите Продолжить :
Apt теперь обновления пакетов в базе данных:
Вы можете пропустить использование обследования пакета, выбрав Нет :
Нам нужны веб-сервер, DNS сервер, почтовый сервер, и базы данных MySQL, но тем не менее я не выбрать любой из них, потому что я хотел бы иметь полный контроль над тем, что получится в процессе установки на моей системе. Мы установим необходимые пакеты вручную позже. Поэтому мы просто выберите Стандартные системные утилиты и SSH сервер (так что я могу сразу же подключиться к системе с SSH клиент, такой как PuTTY после завершения установки) и нажмите Продолжить :
Необходимые пакеты будут загружены и установлены в системе:
Когда вас попросят Установить системный загрузчик GRUB в главную загрузочную запись?, выберите Да :
Установка базовой системы в настоящее время закончена. Извлеките компакт-диск Debian Squeeze Netinstall из дисковода и нажмите Продолжить для перезагрузки системы:
Установка SSH Server
Если Вы не установили SSH сервер во время базовой установки системы, Вы можете это сделать сейчас:
|
С этого момента Вы можете использовать SSH клиент, такой как PuTTY и связаться с Вашим сервером Debian Squeeze с рабочей станции для выполнения остальных шагов из этого учебника.
Настройка сети
Программа установки Debian Squeeze настроила нашу систему, на получение настроек сети через DHCP, мы должны изменить это сейчас, потому что сервер должен иметь статический IP-адрес. Изменим /etc/network/interfaces и настром его под свои нужды (в данном примере установки я буду использовать IP-адрес 192.168.2.222 ):
|
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface #allow-hotplug eth0 #iface eth0 inet dhcp auto eth0 iface eth0 inet static address 192.168.2.222 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255 gateway 192.168.2.200 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 192.168.2.200
Перезапустим сеть:
|
Отредактируем /etc/hosts следующим образом:
|
127.0.0.1 localhost.localdomain localhost 192.168.2.222 server1.example.com server1 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Выполним:
|
Проведем проверку:
|
Обе команды должны вернуть параметр server1.example.com:
Обновление установленной Debian
Сначала убедитесь, что Ваш /etc/apt/sources.list содержит squeeze-updates репозитории (это гарантирует, что Вы всегда получаете новые обновления для антивирусного сканера ClamAV - это проект публикует релизы очень часто, а иногда и старые версии перестают работать).
|
[...] deb http://ftp.ru.debian.org/debian/ squeeze-updates main [...]
Выполним:
|
Для обновления базы данных APT пакет:
|
Для установки последних обновлений (если Есть таковые имеются).
Изменение оболочки по умолчанию
/bin/sh является символической ссылкой на /bin/dash , однако нам необходимо /bin/bash , а не /bin/dash. Поэтому мы сделаем это:
|
Use dash as the default system shell (/bin/sh)? - No
Синхронизировать системных часов
Это хорошая идея, чтобы синхронизировать системные часы с NTP ( Network Time Protocol) сервером через Интернет. Просто выполните:
|
и системное время будут всегда синхронизировано.
Установка Postfix, Courier, Saslauthd, MySQL, PHPMyAdmin, rkhunter, Binutils
Мы можем установить Postfix, Courier, Saslauthd, MySQL, PHPMyAdmin, rkhunter и Binutils всего с одной командой:
|
Вам будут заданы следующие вопросы:
Общий тип настройка почты: - Интернет-сайта Система почты имя: - server1.example.com Новый пароль для MySQL "корень" Пользователь: - Ваш_root_пароль_SQL Повторите пароль для MySQL "корень" Пользователь: - Ваш_root_пароль_SQL Создание папок для веб-администрирования? - нет SSL сертификат требуется - OK
Мы хотим, чтобы MySQL прослушивался на всех интерфейсах, а не только на локальном, поэтому мы редактируем /etc/mysql/my.cnf и закомментируем строку bind-address = 127.0.0.1 :
|
[...] # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...]
Теперь мы перезапустим MySQL:
|
Теперь проверьте, что сеть включена. Выполним:
|
Ответ должен выглядеть следующим образом:
root@server1:~# netstat -tap | grep mysql tcp 0 0 *:mysql *:* LISTEN 10457/mysqld root@server1:~#
Установка Amavisd-new, SpamAssassin и Clamav
Чтобы установить Amavisd-new, SpamAssassin, ClamAV и, мы выполним
|
Установщик ISPConfig 3 использует встроенный Amavisd который загружает библиотеку фильтра SpamAssassin, так что мы можем остановить SpamAssassin, чтобы освободить оперативную память:
|
Установка Apache2, PHP5, PhpMyAdmin, FCGI, Suexec, Pear и Mcrypt
Apache2, PHP5, PhpMyAdmin, FCGI, Suexec, Pear и Mcrypt могут быть установлены следующим образом:
|
Ответьте на следующие вопросы:
Web server to reconfigure automatically: - apache2 Configure database for phpmyadmin with dbconfig-common? - No
Затем запустите следующую команду для Apache модулей suexec, rewrite, ssl, actions и include (плюс dav, dav_fs и auth_digest если хотите использовать WebDAV):
|
После перезагрузим Apache:
|
Установим PureFTPd и квоты:
|
Отредактируйте файл /etc/default/pure-ftpd-common ...
|
... и убедитесь, что начальный режим установлен для standalone и множество VIRTUALCHROOT=true :
[...] STANDALONE_OR_INETD=standalone [...] VIRTUALCHROOT=true [...]
Отредактируйте файл /etc/inetd.conf , чтобы предотвратить попытку запуска FTP:
|
Если есть строка, начинающаяся с ftp stream tcp , закомментируйте ее (если нет этого, то это хорошо, и вы не должны изменять /etc/inetd.conf ):
[...] #:STANDARD: These are standard services. #ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper [...]
Если Вам пришлось изменить /etc/inetd.conf , перезагрузите Inetd сейчас:
|
Теперь мы настроим PureFTPd для FTP и TLS сессии. FTP является очень небезопасным протоколом, потому что все пароли и все данные передаются в открытом виде. С помощью TLS, все связи могут быть зашифрованы, что делает FTP гораздо более безопасным.
Если вы хотите разрешить FTP и TLS сессии, запустите
|
Для того чтобы использовать TLS, мы должны создать SSL-сертификат. Я создаю его в /etc/ssl/private/ , поэтому я создал этот каталог первым:
Если вы хотите разрешить FTP и TLS сессии, запустите
|
После этого мы можем сгенерировать SSL сертификат следующим образом:
|
Название страны (2 буквенный код) [AU]: - Введите название страны (например, "RU") Государство или название провинции (полное название) [Некоторые государства-]: - Введите государства или название провинции Местность имя (например, города) []: - введите Ваш города Название организации (например, компании) [Интернет Widgits Pty Ltd]: - Введите название организации (например, название Вашей компании) Подразделение Название (например, раздел) []: - Введите организационное название группы (например, "ИТ-отдел") Общее имя (например, ваше имя) []: - Введите полное доменное имя системы (например, "server1.example.com") Электронный адрес: []: - Введите адрес электронной почты
Изменение разрешения сертификата SSL:
|
Затем перезагрузите PureFTPd:
|
Изменить /etc/fstab . Что бы выглядел следующим образом (я добавил ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 на раздел с точкой монтирования / ):
|
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # / was on /dev/sda1 during installation UUID=92bceda2-5ae4-4e3a-8748-b14da48fb297 / ext3 errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1 # swap was on /dev/sda5 during installation UUID=e24b3e9e-095c-4b49-af27-6363a4b7d094 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Чтобы включить квоты, запустите следующие команды:
|
Установка BIND DNS-сервера
BIND может быть установлен следующим образом:
|
Установика Vlogger, Webalizer, И AWstats
Vlogger, Webalizer, и AWstats могут быть установлены следующим образом:
|
Откроем /etc/cron.d/awstats ...
|
... и закомментируйте рабочий cron в этом файле:
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh # Generate static reports: #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh
Установика Jailkit
Jailkit необходимо только тогда, когда Вы хотите изолированной SSH пользователей. Она может быть установлена следующим образом Важно: (Jailkit должна быть установлена до ISPConfig - она не может быть установлен впоследствии!):
|
Далее:
|
Установка fail2ban
Это необязательно, но рекомендуется, так как монитор ISPConfig может показывать журнал:
|
Чтобы fail2ban отображал монитор PureFTPd, SASL, и Courier, создайте файл /etc/fail2ban/jail.local :
|
[pureftpd] enabled = true port = ftp filter = pureftpd logpath = /var/log/syslog maxretry = 3 [dovecot-pop3imap] enabled = true filter = dovecot-pop3imap action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp] logpath = /var/log/mail.log maxretry = 5
Затем создайте следующие фильтры файлов:
|
[Definition] failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] Authentication failed for user.* ignoreregex =
|
[Definition] failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P<host>\S*),.* ignoreregex =
Теперь перезапустим fail2ban:
|
Установка SquirrelMail
Чтобы установить клиент 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 on S Save data Q Quit
|
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
|
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
|
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 on S Save data Q Quit
|
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 on S Save data Q Quit
|
После этого Вы можете получить доступ к SquirrelMail по адресу в интернет обозревателе рабочей машины http://server1.example.com/webmail или http://192.168.2.222/webmail :
Установка ISPConfig 3
Чтобы установить последнюю выпущенную версию ISPConfig 3, выполните следующее:
|
Следующим шагом является запуск:
|
Это приведет к запуску установки ISPConfig 3. Программа установки настроит для Вас все услуги, такие как Postfix, Dovecot, и т.д.. Ручные настройки по мере появления не является необходимыми.
root@server1:/tmp/ispconfig3_install/install# php -q install.php -------------------------------------------------------------------------------- _____ ___________ _____ __ _ ____ |_ _/ ___| ___ \ / __ \ / _(_) /__ \ | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ __/ | |___/ -------------------------------------------------------------------------------- >> Initial configuration Operating System: Debian 6.0 (Squeeze/Sid) 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) [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 SASL Configuring PAM Configuring Courier 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 database server: mysqld. Starting MySQL database server: mysqld. Checking for corrupt, not cleanly closed and upgrade needing tables.. Stopping Postfix Mail Transport Agent: postfix. Starting Postfix Mail Transport Agent: postfix. Stopping SASL Authentication Daemon: saslauthd. Starting SASL Authentication Daemon: saslauthd. Stopping amavisd: amavisd-new. Starting amavisd: amavisd-new. Stopping ClamAV daemon: clamd. Starting ClamAV daemon: clamd . Stopping Courier authentication services: authdaemond. Starting Courier authentication services: authdaemond. Stopping Courier IMAP server: imapd. Starting Courier IMAP server: imapd. Stopping Courier IMAP-SSL server: imapd-ssl. Starting Courier IMAP-SSL server: imapd-ssl. Stopping Courier POP3 server: pop3d. Starting Courier POP3 server: pop3d. Stopping Courier POP3-SSL server: pop3d-ssl. Starting Courier POP3-SSL server: pop3d-ssl. Restarting web server: apache2 ... waiting .. Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -H -b -A -O clf:/var/log/pure-ftpd/transfer.log -8 UTF-8 -Y 1 -D -u 1000 -E -B Stopping domain name service...: bind9 waiting for pid 22267 to die. Starting domain name service...: bind9. Installation completed. root@server1:/tmp/ispconfig3_install/install#
Программа установки автоматически настроит все основные услуги, так что никакой ручной настройки не требуется. После этого Вы можете получить доступ к ISPConfig 3 по адресу http://server1.example.com:8080/ или http://192.168.2.222:8080/ . Войти с именем пользователя admin и паролем admin (Вы должны изменить пароль по умолчанию после первого входа):
Система готова к использованию. Настоятельно рекомендуем ознакомиться с дополнением материала Идеальный сервер - Debian 6.0 [ISPConfig 3]:
- Идеальный сервер - Debian 6.0 с BIND и Courier [ISPConfig 3]
- Расширение идеального сервера - Debian 6.0 [ISPConfig 3]
Обращаю Ваше внимание, на то что данная тема уже издавалась ранее, но была переиздана в связи с небольшими изменениями в части настроек, связанными с обновлениями некоторыми пакетами. Так же данный материал в отличии от старой его версии имеет готовый сервер, ознакомиться с которым, обсудить, задать свои вопросы, а так же скачать его Вы можете на нашем форуме в одноименной теме Идеальный сервер - Debian 6.0 [ISPConfig 3].