Веб-сервер “под ключ” на базе Debian
Описан процесс подготовки сервера Debian Jessie (с Apache2, BIND, Dovecot) для установки ISPConfig 3 и непосредственно установка ISPConfig 3. ISPConfig 3 представляет собой интерфейс, с помощью которого можно настраивать следующие службы из браузера: веб-сервер, почтовый сервер Postfix, Courier или Dovecot серверов IMAP/POP3 MySQL, сервера доменных имён BIND или MyDNS, PureFTPd, SpamAssassin, ClamAV и многое другое. В процессе установки мы будем использовать Apache (вместо nginx), BIND (вместо MyDNS) и Dovecot (вместо Courier).
Будем считать, что необходимо получить веб-окружение на базе Apache.
1. Предварительные замечания
В данной статье будем использовать имя хоста server1.drach.pro, IP адрес 192.168.0.100 и шлюз 192.168.0.1. В конкретном случае эти параметры могут отличаться, вам необходимо будет заменить их на свои там, где это требуется.
Перед дальнейшими действиями у Вас должна быть установлена операционная система Debian 8. Предполагается, что была выполнена чистая инсталляция, а не обновление существующей системы.
2 Установка SSH server
Если OpenSSH server не был установлен во время установки системы, введём следующее:
apt-get install ssh openssh-server
Теперь можно использовать клиент SSH, например PuTTY и подключаться с рабочей машины к серверу Debian Jessie.
Этот шаг не является обязательным.
3 Установка текстового редактора оболочки (Необязательно)
В качестве текстового редактора будем использовать nano. Некоторые пользователи предпочитают классический редактор vi, поэтому установим оба текстовых редактора. Стандартный редактор vi отличается странным поведением на Debian и Ubuntu; исправим это, установив vim-nox:
apt-get install nano vim-nox
Если Вы предпочитаете vi, замените nano на vi в командах редактирования фалов.
4 Настройка имени хоста
Имя хоста для сервера должно представлять собой поддомен типа “server1.drach.pro”. Не используйте имя домена без поддомена – “drach.pro” в качестве имени хоста, это может вызвать сложности при установки почты. В начале нужно проверить имя хоста в /etc/hosts и при необходимости изменить его. Строка должна быть следующего вида: “IP Address – space – full hostname incl. domain – space – subdomain part”. Для имени хоста server1.drach.pro, это будем выглядеть следующим образом:
nano /etc/hosts
127.0.0.1 localhost.localdomain localhost 192.168.1.100 server1.drach.pro server1 # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Затем отредактируем файл /etc/hostname:
nano /etc/hostname
Здесь должен находится только поддомен, в нашем случае:
server1
Затем перезапустим сервер для сохранения изменений:
reboot
Авторизуемся и проверим, верно ли имя хоста, для этого воспользуемся следующими командами:
hostname hostname -f
Выходные данные должны выглядеть следующим образом:
root@server1:/tmp# hostname server1 root@server1:/tmp# hostname -f server1.drach.pro
5 Обновление установки Debian
Для начала убедимся, что /etc/apt/sources.list содержит репозиторий jessie/updates (это значит, что Вы всегда будете получать свежие обновления безопасности) и что вкладываемые и несвободные репозитории разрешены (некоторые пакеты, например, libapache2-mod-fastcgi не находятся в главной репозитории).
nano /etc/apt/sources.list
#deb cdrom:[Debian GNU/Linux 8.0.0 _Jessie_ - Official amd64 NETINST Binary-1 20150425-12:50]/ jessie main deb http://ftp.us.debian.org/debian/ jessie main contrib non-free deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free deb http://security.debian.org/ jessie/updates main contrib non-free deb-src http://security.debian.org/ jessie/updates main contrib non-free
Выполним:
apt-get update
Для обновления баз данных пакета apt
apt-get upgrade
и для установки последних обновлений (если они есть).
6 Изменение стандартной оболочки
/bin/sh является символьной ссылкой на /bin/dash, однако нам потребуется /bin/bash, а не /bin/dash. Выполним следующее:
dpkg-reconfigure dash
Use dash as the default system shell (/bin/sh)?
Если этого не сделать, далее невозможно будет установить ISPConfig.
7 Синхронизация времени системы
Системное время можно синхронизировать с NTP (network time protocol) сервером через интернет:
apt-get install ntp ntpdate
8 Установка Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, binutils
Установка Postfix, Dovecot, MySQL, rkhunter и binutils производится при помощи одной лишь команды:
apt-get install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo
Если вы предпочитаете MySQL вместо MariaDB, замените пакеты “mariadb-client mariadb-server” в команде сверху, на”mysql-client mysql-server”.
Затем потребуется ответить на следующие вопросы:
General type of mail configuration: System mail name: New password for the MariaDB "root" user: Repeat password for the MariaDB "root" user:
Затем откроем TLS/SSL и порты подчинения в Postfix:
nano /etc/postfix/master.cf
Удалим секции подчинения и smtps и добавим строки таким образом, чтобы секции в файле master.cf выглядели следующим образом:
[...]<br> submission inet n - - - - smtpd<br> -o syslog_name=postfix/submission<br> -o smtpd_tls_security_level=encrypt<br> -o smtpd_sasl_auth_enable=yes<br> -o smtpd_client_restrictions=permit_sasl_authenticated,reject<br> # -o smtpd_reject_unlisted_recipient=no<br> # -o smtpd_client_restrictions=$mua_client_restrictions<br> # -o smtpd_helo_restrictions=$mua_helo_restrictions<br> # -o smtpd_sender_restrictions=$mua_sender_restrictions<br> # -o smtpd_recipient_restrictions=<br> # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br> # -o milter_macro_daemon_name=ORIGINATING<br> smtps inet n - - - - smtpd<br> -o syslog_name=postfix/smtps<br> -o smtpd_tls_wrappermode=yes<br> -o smtpd_sasl_auth_enable=yes<br> -o smtpd_client_restrictions=permit_sasl_authenticated,reject<br> # -o smtpd_reject_unlisted_recipient=no<br> # -o smtpd_client_restrictions=$mua_client_restrictions<br> # -o smtpd_helo_restrictions=$mua_helo_restrictions<br> # -o smtpd_sender_restrictions=$mua_sender_restrictions<br> # -o smtpd_recipient_restrictions=<br> # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br> # -o milter_macro_daemon_name=ORIGINATING<br> [...]
Перезапустим Postfix:
service postfix restart
Нам необходимо, чтобы MariaDB работал со всеми интерфейсами, а не только с локальным хостом, для этого отредактируем файл /etc/mysql/my.cnf и удалим строку bind-address = 127.0.0.1:
nano /etc/mysql/my.cnf
[...] # 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:
service mysql restart
Теперь проверим, разрешена ли работа в интернете:
netstat -tap | grep mysql
Выходные данные должны выглядеть следующим образом:
root@server1:/tmp# netstat -tap | grep mysql tcp6 0 0 [::]:mysql [::]:* LISTEN 27371/mysqld
9 Установка Amavisd-new, SpamAssassin и Clamav
Для установки amavisd-new, SpamAssassin и ClamAV, выполним следующее:
Tapt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
Отредактируем файл настройки Clamd, находящийся по адресу/etc/clamav/clamd.conf
nano /etc/clamav/clamd.conf
и изменим значение and AllowSupplementaryGroups с false на true:
AllowSupplementaryGroups true
Установка ISPConfig 3 использует amavisd, который загружает библиотеку фильтров SpamAssassin, поэтому остановим SpamAssassin, для того, чтобы освободить оперативную память:
service spamassassin stop systemctl disable spamassassin
10 Установка Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt
Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt устанавливаются следующим образом:
apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached libapache2-mod-passenger
Далее потребуется ответить на следующие вопросы:
Web server to reconfigure automatically: Configure database for phpmyadmin with dbconfig-common? Enter the password of the administrative user? Enter the phpmyadmin application password?
Затем нам потребуется включить модули Apache suexec, rewrite, ssl, actions и include (дополнительно dav, dav_fs, and auth_digest, если вам требуется WebDAV):
a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi
и разрешим работу moduley, выполнив:
service apache2 restart
11 Установка SuPHP
Уточнение!
Необязательно, не рекомендуется.
SuPHP больше недоступен для Debian Jessie. Режим suphp больше не должен использоваться в ISPConfig, так как существуют лучшие режимы PHP, такие как:php-fpm и php-fcgi. Если Вы хотите использовать suphp, необходимо выполнить следующее вручную:
apt-get install apache2-dev build-essential autoconf automake libtool flex bison debhelper binutils cd /usr/local/src wget http://suphp.org/download/suphp-0.7.2.tar.gz tar zxvf suphp-0.7.2.tar.gz wget -O suphp.patch https://lists.marsching.com/pipermail/suphp/attachments/20130520/74f3ac02/attachment.patch patch -Np1 -d suphp-0.7.2 < suphp.patch cd suphp-0.7.2 autoreconf -if ./configure --prefix=/usr/ --sysconfdir=/etc/suphp/ --with-apr=/usr/bin/apr-1-config --with-apache-user=www-data --with-setid-mode=owner --with-logfile=/var/log/suphp/suphp.log make make install
Создадим директорию настройки suphp и файл suphp.conf:
mkdir /var/log/suphp mkdir /etc/suphp nano /etc/suphp/suphp.conf
[global]<br> ;Path to logfile<br> logfile=/var/log/suphp/suphp.log<br> ;Loglevel<br> loglevel=info<br> ;User Apache is running as<br> webserver_user=www-data<br> ;Path all scripts have to be in<br> docroot=/var/www<br> ;Path to chroot() to before executing script<br> ;chroot=/mychroot<br> ; Security options allow_file_group_writeable=false<br> allow_file_others_writeable=false<br> allow_directory_group_writeable=false<br> allow_directory_others_writeable=false<br> ;Check wheter script is within DOCUMENT_ROOT<br> check_vhost_docroot=true<br> ;Send minor error messages to browser<br> errors_to_browser=false<br> ;PATH environment variable<br> env_path=/bin:/usr/bin<br> ;Umask to set, specify in octal notation<br> umask=0022<br> ; Minimum UID<br> min_uid=100<br> ; Minimum GID<br> min_gid=100<br> [handlers]<br> ;Handler for php-scripts<br> x-httpd-suphp="php:/usr/bin/php-cgi"<br> ;Handler for CGI-scripts<br> x-suphp-cgi=execute:!self<br> umask=0022
Далее добавим файл config для загрузки модуля suphp в apache:
echo "LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so" > /etc/apache2/mods-available/suphp.load
Затем откроем /etc/apache2/mods-available/suphp.conf…
nano /etc/apache2/mods-available/suphp.conf
… и добавим следующее:
AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml suPHP_AddHandler application/x-httpd-suphp suPHP_Engine on # By default, disable suPHP for debian packaged web applications as files # are owned by root and cannot be executed by suPHP because of min_uid. suPHP_Engine off # # Use a specific php config file (a dir which contains a php.ini file) # suPHP_ConfigPath /etc/php5/cgi/suphp/ # # Tells mod_suphp NOT to handle requests with the type . # suPHP_RemoveHandler
Включим модуль suphp в apache:
a2enmod suphp
И перезапустим Apache:
service apache2 restart
12 XCache и PHP-FPM
Xcache представляет собой бесплатный PHP opcode кэшер, предназначенный для кэширования и оптимизации промежуточного кода PHP. Он схож с другими opcode кэшерами, например, eAccelerator или APC. Настоятельно рекомендуется установить один из этих кэшеров, если вы хотите ускорить страницу PHP.
Xcache устанавливается следующим образом:
apt-get install php5-xcache
Перезапустим Apache:
service apache2 restart
12.2 PHP-FPM
Начиная с ISPConfig 3.0.5, дополнительным режим PHP, который можно выбрать для использования совместно с Apache: PHP-FPM.
Для использования PHP-FPM совместно Apache, нам потребуется mode_fastcgi модуля Apache(не путать с mod_fcgid). Установим PHP-FPM и mode_fastcgi следующим образом:
apt-get install libapache2-mod-fastcgi php5-fpm
Убедимся, что модуль включен и перезапустим Apache:
a2enmod actions fastcgi alias service apache2 restart
13 Install Mailman
Начиная с версии 3.0.4, ISPConfig также позволяет управлять (создавать/редактировать/удалять) список адресатов Mailman. Если вы хотите пользоваться данной возможностью, потребуется установить Mailman следующим образом:
apt-get install mailman
Выберем по крайне мере один язык:
Languages to support: Missing site list
Перед запуском Mailman необходимо создать первый список адресатов под названием mailman:
newlist mailman
root@server1:~# newlist mailman
Enter the email of the person running the list: <-
- admin email address, e.g. listadmin@drach.pro
Initial mailman password: To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:
## mailman mailing list
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Hit enter to notify mailman owner... root@server1:~#
Откроем файл /etc/aliases
nano /etc/aliases
… и добавим следующие строки:
[...] ## mailman mailing list mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Далее запустим:
newaliases
и затем перезапустим Postfix:
service postfix restart
В конце активируем конфигурацию Mailman Apache:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf
Определим alias /cgi-bin/mailman/ для всех виртуальных хостов Apache, это означает, что мы может получить доступ к интерфейсу администратора Mailman по адресу http:///cgi-bin/mailman/admin/, а адрес для пользователей из списка адресатов будет выглядеть следующим образом: http:///cgi-bin/mailman/listinfo/.
В http://server1.drach.pro/pipermail находится архив списка адресатов.
Перезапустим Apache:
service apache2 restart
и затем запустим Mailman:
service mailman start
14 УстановкаPureFTPd и Quota
PureFTPd и quota устанавливаются следующим образом:
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
Затем отредактируем файл /etc/default/pure-ftpd-common…
nano /etc/default/pure-ftpd-common
… и убедимся, что режимом запуска установлена автономная установка и значение VIRTUALCHROOT=true:
[...] STANDALONE_OR_INETD=standalone [...] VIRTUALCHROOT=true [...]
Теперь настроим PureFTPd, для того, чтобы разрешить сессии FTP и TLS. FTP является очень ненадёжным протоколом, потому что все пароли и данные передаются в виде текста. При использовании TLS, вся коммуникации зашифрована, что делает FTP гораздо более защищённым.
Для разрешения сессий FTP иTLS введём следующее:
echo 1 > /etc/pure-ftpd/conf/TLS
Для использования 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) [AU]: 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) []: Email Address []:
Изменим права доступа сертификата SSL:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Затем перезапустим PureFTPd:
service pure-ftpd-mysql restart
root@server1:~# service pure-ftpd-mysql restart Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -8 UTF-8 -u 1000 -E -O clf:/var/log/pure-ftpd/transfer.log -Y 1 -B root@server1:~#
Отредактируем /etc/fstab. Добавим строку usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0
nano /etc/fstab
# /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). # /dev/mapper/server1--vg-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1 # /boot was on /dev/sda1 during installation UUID=9b8299f1-b2a2-4231-9ba1-4540fad76b0f /boot ext2 defaults 0 2 /dev/mapper/server1--vg-swap_1 none swap sw 0 0
Для включения quota выполним следующее:
mount -o remount /
quotacheck -avugm quotaon -avug
15. Установка сервера BIND DNS
BIND устанавливается следующим образом:
apt-get install bind9 dnsutils
16 Установка Vlogger, Webalizer и AWStats
Vlogger, Webalizer и AWStats устанавливаются следующим образом:
apt-get install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl
Откроем /etc/cron.d/awstats…
nano /etc/cron.d/awstats
… и превратим в комментарий всё в этом файле:
#MAILTO=root #*/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
17 Установка Jailkit
Jailkit потребуется, если вы хотите сделать chroot для пользователей SSH. Установка производится следующим образом: (важно: Jailkit может быть установлен только перед установкой ISPConfig –после его уже не получится установить!):
apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold
cd /tmp wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz tar xvfz jailkit-2.17.tar.gz cd jailkit-2.17 ./debian/rules binary
Устанавливаем пакетYou Jailkit. deb следующим образом:
cd .. dpkg -i jailkit_2.17-1_*.deb rm -rf jailkit-2.17*
18 Установка fail2ban
Установка fail2ban необязательна, но рекомендована, так как монитор ISPConfig попытается показать запись событий:
apt-get install fail2ban
Для создания монитора fail2ban PureFTPd и Dovecot, создадим файл /etc/fail2ban/jail.local:
nano /etc/fail2ban/jail.local
[pureftpd] <br> enabled = true<br> port = ftp<br> filter = pureftpd<br> logpath = /var/log/syslog<br> maxretry = 3<br> [dovecot-pop3imap] <br> enabled = true<br> filter = dovecot-pop3imap<br> action = iptables-multiport[name=dovecot-pop3imap,<br> port="pop3,pop3s,imap,imaps", protocol=tcp] <br> logpath = /var/log/mail.log<br> maxretry = 5<br> [postfix-sasl] <br> enabled = true<br> port = smtp<br> filter = postfix-sasl<br> logpath = /var/log/mail.log<br> maxretry = 3
Затем создадим 2 файла фильтра:
nano /etc/fail2ban/filter.d/pureftpd.conf
[Definition] failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user. ignoreregex =
nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[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\S*),.* ignoreregex =
Добавим строку ignoreregex в файл postfix-sasl:
echo "ignoreregex =" >> /etc/fail2ban/filter.d/postfix-sasl.conf
Далее перезапустим fail2ban:
service fail2ban restart
19 Установка squirrelmail
Для установки почтового клиента SquirrelMail выполним следующее:
apt-get install squirrelmail
Затем настроим SquirrelMail:
squirrelmail-configure
В SquirrelMail важно указать, что мы используем Dovecot-IMAP/-POP3:
SquirrelMail Configuration : Read: config.php (1.4.0) <br> ---------------------------------------------------------<br> Main Menu --<br> 1. Organization Preferences<br> 2. Server Settings<br> 3. Folder Defaults<br> 4. General Options<br> 5. Themes<br> 6. Address Books<br> 7. Message of the Day (MOTD)<br> 8. Plugins<br> 9. Database<br> 10. Languages<br> D. Set pre-defined settings for specific IMAP servers<br> C Turn color on<br> S Save data<br> Q Quit<br> Command >> SquirrelMail Configuration : Read: config.php<br> Please select your IMAP server:<br> bincimap = Binc IMAP server<br> courier = Courier IMAP server<br> cyrus = Cyrus IMAP server<br> dovecot = Dovecot Secure IMAP server<br> exchange = Microsoft Exchange IMAP server<br> hmailserver = hMailServer<br> macosx = Mac OS X Mailserver<br> mercury32 = Mercury/32<br> uw = University of Washington's IMAP server<br> gmail = IMAP access to Google mail (Gmail) accounts<br> quit = Do not change anything<br> Command >> Please select your IMAP server:<br> bincimap = Binc IMAP server<br> courier = Courier IMAP server<br> cyrus = Cyrus IMAP serve<br>r dovecot = Dovecot Secure IMAP server<br> exchange = Microsoft Exchange IMAP server<br> hmailserver = hMailServer<br> macosx = Mac OS X Mailserver<br> mercury32 = Mercury/32<br> uw = University of Washington's IMAP server<br> gmail = IMAP access to Google mail (Gmail) accounts<br> quit = Do not change anything<br> Command >> dovecot<br> imap_server_type = dovecot<br> default_folder_prefix = <br> trash_folder = Trash<br> sent_folder = Sent<br> draft_folder = Drafts<br> show_prefix_option = false<br> default_sub_of_inbox = false<br> show_contain_subfolders_option = false<br> optional_delimiter = detect<br> delete_folder = false<br> Press any key to continue... SquirrelMail Configuration : Read: config.php (1.4.0) <br> ---------------------------------------------------------<br> Main Menu --<br> 1. Organization Preferences<br> 2. Server Settings<br> 3. Folder Defaults<br> 4. General Options<br> 5. Themes<br> 6. Address Books<br> 7. Message of the Day (MOTD) <br> 8. Plugins<br> 9. Database<br> 10. Languages<br> D. Set pre-defined settings for specific IMAP servers<br> C Turn color on<br> S Save data<br> Q Quit<br> Command >> SquirrelMail Configuration : Read: config.php (1.4.0) <br> ---------------------------------------------------------<br> Main Menu --<br> 1. Organization Preferences<br> 2. Server Settings<br> 3. Folder Defaults<br> 4. General Options<br> 5. Themes<br> 6. Address Books<br> 7. Message of the Day (MOTD)<br> 8. Plugins<br> 9. Database<br> 10. Languages<br> D. Set pre-defined settings for specific IMAP servers<br> C Turn color on<br> S Save data<br> Q Quit Command >>
Теперь настроим SquirrelMail для того, чтобы использовать его внутри нашего сайта (созданного с помощью ISPConfig), для этого используем /squirrelmail или /webmail. Например, если адрес сайта www.drach.pro, то для доступа к SquirrelMail необходимо будет перейти по адресу www.drach.pro/squirrelmail или www.drach.pro/webmail.
Apache конфигурация SquirrelMail находится в /etc/squirrelmail/apache.conf, но этот файл не загружен Apache, потому что он не находится в директории /etc/apache2/conf.d/. Создадим символьную ссылку под названием squirrelmail.conf в директории /etc/apache2/conf.d/, которая указывает на /etc/squirrelmail/apache.conf и перезагрузим Apache:
cd /etc/apache2/conf-available/ ln -s ../../squirrelmail/apache.conf squirrelmail.conf service apache2 reload
Далее откроем /etc/apache2/conf.d/squirrelmail.conf…
nano /etc/apache2/conf-available/squirrelmail.conf
… и добавим следующие строки в содержимое, для того, чтобы mod_php использовался для доступа к SquirrelMail, не смотря на то, какой режим PHP выбран на нашем сайте в ISPConfig:
[...]<br> <br> Options FollowSymLinks<br> <br> AddType application/x-httpd-php .php<br> php_flag magic_quotes_gpc Off<br> php_flag track_vars On<br> php_admin_flag allow_url_fopen Off<br> php_value include_path .<br> php_admin_value upload_tmp_dir /var/lib/squirrelmail/tmp<br> php_admin_value open_basedir<br> /usr/share/squirrelmail:/etc/squirrelmail:/var/lib/squirrelmail:/etc/hostname:/etc/mailname<br> php_flag register_globals off<br> <br> <br> DirectoryIndex index.php<br> <br> # access to configtest is limited by default to prevent information leak<br> <br> order deny,allow<br> deny from all<br> allow from 127.0.0.1<br> <br> <br> [...
Создадим директорию/var/lib/squirrelmail/tmp…
mkdir /var/lib/squirrelmail/tmp
… и сделаем владельцем пользователя www-data:
chown www-data /var/lib/squirrelmail/tmp
Далее необходимо, чтобы squirrelmail работал с apache2.
a2enconf squirrelmail
Снова перезапускаем Apache:
service apache2 reload
Теперь /etc/apache2/conf.d/squirrelmail.conf определяется alias /squirrelmail, который определит, что установка SquirrelMail будет произведена в /usr/share/squirrelmail.
Получить доступ к SquirrelMail через веб-сайт можно следующим образом:
http://192.168.0.100/squirrelmail http://www.drach.pro/squirrelmail
Также получить доступ можно из панели управления виртуального хоста ISPConfig (после установки ISPConfig, установку рассмотрим в следующей главе) следующим образом (никакая настройка ISPConfig не требуется):
http://server1.drach.pro:8080/squirrelmail
Если вы хотите использовать alias /webmail вместо/squirrelmail, необходимо будет открыть файлs /etc/apache2/conf.d/squirrelmail.conf…
nano /etc/apache2/conf-available/squirrelmail.conf
… и добавить в строку Alias /webmail /usr/share/squirrelmail:
Alias /squirrelmail /usr/share/squirrelmail Alias /webmail /usr/share/squirrelmail [...
Затем перезагрузим Apache:
service apache2 reload
Теперь мы можем получить доступ к Squirrelmail, делается это следующим образом:
http:// 192.168.0.100/webmail http://www.drach.pro/webmail http://server1.drach.pro:8080/webmail (после установки ISPConfig, установку рассмотрим в следующей главе)
Если вы хотите определить виртуальный хост как webmail.drach.pro, где пользователи могут получить доступ к SquirrelMail, необходимо будет добавить конфигурацию виртуального хоста в/etc/apache2/conf.d/squirrelmail.conf:
nano /etc/apache2/conf.d/squirrelmail.conf
[...] DocumentRoot /usr/share/squirrelmail ServerName webmail.drach.pro
Также должна существовать запись DNS для webmail.drach.pro, которая направляет на IP адрес, который использовался при настройке виртуального хоста. Также убедимся, что виртуальный хост webmail.drach.pro не существует в ISPConfig (в ином случае оба виртуальных хоста пересекутся друг с другом!).
Теперь перезапустим Apache…
service apache2 reload
SquirrelMail теперь находится по адресу http://webmail.drach.pro
20 Установка 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. Установщик настроит все службы, типа Postfix, Dovecot и т.д. ручная настройка, как в ISPConfig 2, в последней версии не требуется.
Внимание: Не обращайте внимание, что установщик ISPConfig 3 определяет Debian Jessie, как неизвестную версию. Это никак не влияет на функциональность и будет исправлено в следующем обновлении.
root@server1:/tmp/ispconfig3_install/install# php -q install.php PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0
>> Initial configuration<br> Operating System: Debian or compatible, unknown version.<br> Following will be a few questions for primary configuration so be careful.<br> Default values are in [brackets] and can be accepted with .<br> Tap in "quit" (without the quotes) to stop the installer.<br> Select language (en,de) [en]: Installation mode (standard,expert) [standard]: Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.drach.pro]: MySQL server hostname [localhost]: MySQL root username [root]: MySQL root password []: MySQL database to create [dbispconfig]: MySQL charset [utf8]: Generating a 4096 bit RSA private key<br> .............................................................++<br> .............................................................++<br> writing new private key to 'smtpd.key'<br> -----<br> You are about to be asked to enter information that will be incorporated<br> into your certificate request.<br> What you are about to enter is what is called a Distinguished Name or a DN.<br> There are quite a few fields but you can leave some blank<br> For some fields there will be a default value,<br> If you enter '.', the field will be left blank.<br> -----<br> Country Name (2 letter code) [AU]: 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 (e.g. server FQDN or YOUR name) []: Email Address []: Configuring Jailkit<br> Configuring Dovecot<br> Configuring Spamassassin<br> Configuring Amavisd<br> Configuring Getmail<br> Configuring Pureftpd<br> Configuring BIND<br> Configuring Apache<br> Configuring Vlogger<br> Configuring Apps vhost<br> Configuring Bastille Firewall<br> Configuring Fail2ban<br> Installing ISPConfig<br> ISPConfig Port [8080]: Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: Generating RSA private key, 4096 bit long modulus<br> .................................................................................................++<br> ........++<br> e is 65537 (0x10001)<br> You are about to be asked to enter information that will be incorporated<br> into your certificate request.<br> What you are about to enter is what is called a Distinguished Name or a DN.<br> There are quite a few fields but you can leave some blank<br> For some fields there will be a default value,<br> If you enter '.', the field will be left blank.<br> -----<br> Country Name (2 letter code) [AU]: 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 (e.g. server FQDN or YOUR name) []: Email Address []: Please enter the following 'extra' attributes<br> to be sent with your certificate request<br> A challenge password []: An optional company name []: writing RSA key<br> Configuring DBServer<br> Installing ISPConfig crontab<br> no crontab for root<br> no crontab for getmail<br> Restarting services ... <br> Stopping MySQL database server: mysqld.<br> Starting MySQL database server: mysqld ..<br> Checking for tables which need an upgrade, are corrupt or were<br> not closed cleanly..<br> Stopping Postfix Mail Transport Agent: postfix.<br> Starting Postfix Mail Transport Agent: postfix.<br> Stopping amavisd: amavisd-new.<br> Starting amavisd: amavisd-new.<br> Stopping ClamAV daemon: clamd.<br> Starting ClamAV daemon: clamd .<br> Restarting IMAP/POP3 mail server: dovecot.<br> [Tue May 07 02:36:22 2013] [warn] NameVirtualHost *:443 has no VirtualHosts<br> [Tue May 07 02:36:22 2013] [warn] NameVirtualHost *:80 has no VirtualHosts<br> [Tue May 07 02:36:23 2013] [warn] NameVirtualHost *:443 has no VirtualHosts<br> [Tue May 07 02:36:23 2013] [warn] NameVirtualHost *:80 has no VirtualHosts<br> Restarting web server: apache2 ... waiting .<br> Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -H -O clf:/var/log/pure-ftpd/transfer.log -Y 1 -D -u 1000 -A -E -b -8 UTF-8 -B<br> Installation completed.<br> root@server1:/tmp/ispconfig3_install/install#
Установщик автоматически настроит все сервисы.
Теперь можно предоставить установщик возможность самостоятельно создать SSl виртуальный хост для панели управления ISPConfig, который теперь будет доступен по адресу https:// вместо http://. Для этого необходимо нажать “Yes”, когда вы увидите следующий вопрос: Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:
Теперь ISPConfig 3 доступен по адресу http(s)://server1.drach.pro:8080/ или http(s)://192.168.0.100:8080/ (зависит от того, что вы выбрали при установке). Зайти можно введя имя пользователя admin и пароль admin (после первого входа в систему, пароль надо сменить)
Теперь система готова к использованию.
Приложение ISPConfig Monitor для Android
С помощью ISPConfig Monitor можно проверять состояние сервера и запущенные службы. Также можно проверять порты TCP иUDP и пинговать сервера. Приложение можно использоваться для запроса подробностей серверов, на который установлен ISPConfig (минимальная версия ISPConfig 3, которая поддерживается приложением – 3.0.3.3!); вся эти подробности включают в себя всю информацию с модуля мониторинга ISPConfig Control Panel (например службы, почтовые и системные журналы событий, очередь почты, информацию о ЦП и памяти, использование диска, детали ОС, журнал событий RKHunter и т.д.) и так как ISPConfig поддерживает несколько серверов, можно проверить, все ли сервера упраывляются главным сервером ISPConfig.
Для загрузки приложения и прочтения инструкций перейдите на официальный сайт.
21 Дополнительные замечания
Использование OpenVZ
Если сервер Debian, который вы только что установили, является OpenVZ (виртуальной машиной), в хосте системы необходимо сделать следующее (Предполагается, что ID OpenVZ является 101 – замените на корректный VPSID для вашей системы):
VPSID=101 for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE do vzctl set $VPSID --capability ${CAP}:on --save done