Menu

Веб-сервер на базе Apache под управлением Ubuntu 15.10

В данной статье рассмотрен процесс установки сервера Ubuntu 15.10 (Wily Werewolf) с Apache2, Postfix, Dovecot, Bind и PureFTPD для подготовки к установке ISPConfig 3. В результате в системе будут установлены: сеть, почта, список адресатов, DNS и FTP Server.

 

ISPConfig 3 представляет собой интерфейс, с помощью которого вы можете настраивать следующие службы из браузера: веб сервер Apache или nginx, почтовый сервер Postfix, Courier или Dovecot серверов IMAP/POP3 MySQL, сервера доменных имён BIND или MyDNS, PureFTPd, SpamAssassin, ClamAV,и многое другое. В процессе установки мы будем использовать Apache (вместо nginx), BIND (вместо MyDNS) и Dovecot (вместо Courier).

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

В данной статье будем использовать имя хоста drach.pro, IP адрес 192.168.1.100 и шлюз 192.168.1.1. В конкретном случае эти параметры могут отличаться, вам необходимо будет заменить их на свои там, где это требуется. Перед дальнейшими действиями у Вас должна быть установлена Ubuntu версии 15.10.

2. Редактирование /etc/apt/sources.list и обновление установки Linux

Отредактируем файл /etc/apt/sources.list. Удалим диск установки из файла и убедимся, что дополнительные и экстра репозитории включены:

nano /etc/apt/sources.list
#
# deb cdrom:[Ubuntu-Server 15.10 _Wily Werewolf_ - Release amd64 (20151021)]/ wily main restricted
#deb cdrom:[Ubuntu-Server 15.10 _Wily Werewolf_ - Release amd64 (20151021)]/ wily main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://de.archive.ubuntu.com/ubuntu/ wily main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ wily main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ wily-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu/ wily universe
deb-src http://de.archive.ubuntu.com/ubuntu/ wily universe
deb http://de.archive.ubuntu.com/ubuntu/ wily-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://de.archive.ubuntu.com/ubuntu/ wily multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ wily multiverse
deb http://de.archive.ubuntu.com/ubuntu/ wily-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu wily-security main restricted
deb-src http://security.ubuntu.com/ubuntu wily-security main restricted
deb http://security.ubuntu.com/ubuntu wily-security universe
deb-src http://security.ubuntu.com/ubuntu wily-security universe
deb http://security.ubuntu.com/ubuntu wily-security multiverse
deb-src http://security.ubuntu.com/ubuntu wily-security multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu wily partner
# deb-src http://archive.canonical.com/ubuntu wily partner

Затем запустим

apt-get update

для обновления соответствующих баз данных и

apt-get upgrade

для установки последних обновлений (если они есть). Если вместе с обновлениями обновилось и само ядро, тогда потребуется перезагрузка системы:

reboot

3. Изменение стандартной оболочки

/bin/sh аналогична /bin/dash, однако нам потребуется именно /bin/bash, а не /bin/dash.

Далее введём следующее:

dpkg-reconfigure dash
Use dash as the default system shell (/bin/sh)?

Если этого не сделать, то затем невозможно будет установить ISPConfig.

4. Отключение AppArmor

AppArmor является расширением безопасности (схожим с SELinux), которое предоставляет улучшенную безопасность. В нашем случае данное расширение нам не потребуется, поэтому отключим его следующим образом:

service apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

5. Синхронизация времени системы

Наиболее удобным является синхронизация времени системы с NTP (протокол времени интернета), если Вы используете физический сервер, если же Вы используете виртуальный сервер, синхронизация времени не требуется. Для выполнения синхронизации выполним следующее:

apt-get install ntp ntpdate

После этого системное время всегда будет синхронизировано.

6. Установка Postfix, Dovecot, MariaDB, phpMyAdmin, rkhunter, binutils

Для установки postfix необходимо сначала убедится, что sendmail не установлен и не запущен. Для установки и удаления sendmail выполним следующее:

service sendmail stop; update-rc.d -f sendmail remove

Сообщение об ошибке:

Failed to stop sendmail.service: Unit sendmail.service not loaded.

Это сообщение означает, что sendmail не установлен и удалять нечего.

Затем установим Postfix, Dovecot, MariaDB (как замена 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 sudo

В процессе установки потребуется ответить на следующие вопросы:

General type of mail configuration: <--Интернет сайт
System mail name:

Важно использовать поддомен "system mail name", а не домен, который вы хотите далее использовать, как почтовый домен.

Затем откроем TLS/SSL и порты подчинения в Postfix:

nano /etc/postfix/master.cf

Удалим секции подчинения и smtps, - добавим строку -o smtpd_client_restrictions=permit_sasl_authenticated, вставим обе строки в файл, остальное оставим как есть:

[...]
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
[...]

Пробел перед строками "-o .... " необходимо оставить!

Перезапустим Postfix:

service postfix restart

Нам необходимо, чтобы MySQL работал со всеми интерфейсами, а не только с локальным хостом, для этого отредактируем файл /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
[...]

Теперь зададим корневой пароль в MariaDB. Выполним:

mysql_secure_installation

Потребуется ответить на следующее вопросы:

Enter current password for root (enter for none): 
Set root password? [Y/n] 
New password: <--Ввести новый корневой пароль MariaDB
Re-enter new password: Remove anonymous users? [Y/n] Disallow root login remotely? [Y/n] Reload privilege tables now? [Y/n]

Затем перезапустим MariaDB:

service mysql restart

Теперь проверим, разрешена ли работа в интернете:

netstat -tap | grep mysql

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

root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 24603/mysqld
root@server1:~#

7. Установка Amavisd-new, SpamAssassin и Clamav

Для установки amavisd-new, SpamAssassin и ClamAV, выполним следующее:

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

Установка ISPConfig 3 использует amavisd, который загружает библиотеку фильтров SpamAssassin, поэтому остановим SpamAssassin, для того, чтобы освободить оперативную память:

service spamassassin stop
update-rc.d -f spamassassin remove

Отредактируем файл конфигурации clamd:

nano /etc/clamav/clamd.conf

и изменим строку:

AllowSupplementaryGroups false

на:

AllowSupplementaryGroups true

И сохраним файл. Затем запустим clamav:

freshclam
service clamav-daemon start

8. Установка Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt

Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt устанавливаются следующим образом:

apt-get install apache2 apache2-doc apache2-utils 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 libapache2-mod-suphp libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached

Далее потребуется ответить на следующие вопросы:

Web server to reconfigure automatically:
Configure database for phpmyadmin with dbconfig-common?
Password of the database's administrative user:
MySQL application password for phpmyadmin:

Затем нам потребуется включить модули Apache suexec, rewrite, ssl, actions и include (дополнительно dav, dav_fs, and auth_digest, если вам требуется WebDAV):

a2enmod suexec rewrite ssl actions include cgi
a2enmod dav_fs dav auth_digest

И подключим модуль mcrypt в PHP:

php5enmod mcrypt

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

service apache2 restart

Если вы хотите использовать файлы Ruby с расширением .rb на вашем сайте, созданным ISPConfig, потребуется удалить строку application/x-ruby rb in /etc/mime.types:

nano /etc/mime.types
[...]
#application/x-ruby rb
[...]

(Это требуется только для файлов с расширением .rb; файлы Ruby с расширением.rbx все равно будут действительны.)

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

service apache2 restart

8.1 APCu PHP Opcode cache

APCu представляет собой бесплатный PHP opcode кэшер предназначенный для кэширования и оптимизации промежуточного кода. Настоятельно рекомендуется установить один из этих кэшеров, если вы хотите ускорить страницу PHP.

APCu устанавливается следующим образом:

apt-get install php5-xcache

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

service apache2 restart

8.2 PHP-FPM

Для использования PHP-FPM совместно Apache, нам потребуется mode_fastcgi модуля Apache module (не путать с mod_fcgid – они очень похожи, но невозможно использовать PHP-FPM с mod_fcgid). Установим PHP-FPM и mode_fastcgi следующим образом:

apt-get install libapache2-mod-fastcgi php5-fpm

Убедимся, что модуль включен и перезапустим Apache:

a2enmod actions fastcgi alias
service apache2 restart

8.3 Дополнительные версии PHP

Начиная с ISPConfig 3.0.5, возможно иметь несколько версий PHP на одном сервере (версия выбирается с помощью ISPConfig), которые могут быть запущены через FastCGI и PHP-FPM.

8.4 Установка 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]
;Path to logfile
logfile=/var/log/suphp/suphp.log

;Loglevel
loglevel=info

;User Apache is running as
webserver_user=www-data

;Path all scripts have to be in
docroot=/var/www

;Path to chroot() to before executing script
;chroot=/mychroot

; Security options
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false

;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=true

;Send minor error messages to browser
errors_to_browser=false

;PATH environment variable
env_path=/bin:/usr/bin

;Umask to set, specify in octal notation
umask=0022

; Minimum UID
min_uid=100

; Minimum GID
min_gid=100


[handlers]
;Handler for php-scripts
x-httpd-suphp="php:/usr/bin/php-cgi"

;Handler for CGI-scripts
x-suphp-cgi=execute:!self
umask=0022

Затем добавим файл конфигурации для загрузки модуля 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

9. Установка 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. Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
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:///pipermail находится архив списка адресатов.

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

service apache2 restart

и затем запустим Mailman:

service mailman start

10. Установка 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: Organizational Unit Name: Common Name (eg, YOUR name) []: Email Address []:

Изменим права доступа сертификата SSL:

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

Затем перезапустим PureFTPd:

service pure-ftpd-mysql restart

Отредактируем /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

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

root@server1:/# quotacheck -avugm
quotacheck: Scanning /dev/dm-0 [/] done
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Checked 11518 directories and 83893 files
quotacheck: Old file not found.
quotacheck: Old file not found.
root@server1:/# quotaon -avug
/dev/dm-0 [/]: group quotas turned on
/dev/dm-0 [/]: user quotas turned on

11. Установка сервера BIND DNS

BIND устанавливается следующим образом:

apt-get install bind9 dnsutils

12. Установка 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

13. Установка Jailkit

Jailkit потребуется, если вы хотите сделать chroot для пользователей SSH. Установка производится следующим образом: (важно: Jailkit может быть установлен только перед установкой ISPConfig –после его уже не получится установить!):

apt-get install build-essential autoconf automake1.11 libtool flex bison debhelper binutils 
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*

14. Установка fail2ban

Установка fail2ban необязательна, но рекомендована, так как монитор ISPConfig попытается показать запись событий:

apt-get install fail2ban

Для создания монитора fail2ban PureFTPd и Dovecot, создадим файл /etc/fail2ban/jail.local:

nano /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
[postfix-sasl]
enabled = true
port = smtp
filter = postfix-sasl
logpath = /var/log/mail.log
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

15 Установка Roundcube Webmail

Установка Roundcube Webmail производится следующим образом:

apt-get install roundcube roundcube-core roundcube-mysql roundcube-plugins roundcube-plugins-extra javascript-common libjs-jquery-mousewheel php-net-sieve tinymce

Установщик затем попросит ответить на несколько вопросов:

Configure database for roundcube with dbconfig-common?
Database type to be used by roundcube:
MySQL application password for roundcube:
Password of the database's administrative user:

Далее отредактируем файл конфигурации apache RoundCube.

nano /etc/apache2/conf-enabled/roundcube.conf

и удалим and # перед двумя строками alias, добавим два других "Alias" и добавим строку "AddType application/x-httpd-php .php" сразу после строки "":

# Those aliases do not work properly with several hosts on your apache server
# Uncomment them to use it or adapt them to your configuration
Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/
Alias /roundcube /var/lib/roundcube
Alias /webmail/program/js/tiny_mce/ /usr/share/tinymce/www/
Alias /webmail /var/lib/roundcube
[...]

AddType application/x-httpd-php .php
[...]

Затем перезапустим apache

service apache2 restart

Далее отредактируем файл конфигурации RoundCube config.inc.php:

nano /etc/roundcube/config.inc.php

и изменим стандартный хост на локальный хост:

$rcmail_config['default_host'] = 'localhost';

Это позволит избежать того, что Roundcube будет показывать область ввода имени сервера в поле ввода логина.

16. Установка 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, в последней версии не требуется.

root@server1:/tmp/ispconfig3_install/install# php -q install.php
>> Initial configuration 
Operating System: 15.10 UNKNOWN
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]: Installation mode (standard,expert) [standard]: Full qualified hostname (FQDN) of the server: 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
............................................................................++
.....................++
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]: 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
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring Vlogger
Configuring Apps vhost
Configuring Bastille Firewall
Configuring Fail2ban
Installing ISPConfig
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
..........++
......++
e is 65537 (0x10001)
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]: 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
to be sent with your certificate request
A challenge password []: An optional company name []: writing RSA key
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services ...
Installation completed.
root@server1:/tmp/ispconfig3_install/install#

Установщик автоматически настроит все сервисы.

Теперь ISPConfig 3 доступен по адресу http(s)://drach.pro:8080/ или http(s)://192.168.0.100:8080/ (зависит от того, что вы выбрали при установке). Зайти можно введя имя пользователя admin и пароль admin (после первого входа в систему, пароль надо сменить)

Теперь система готова к использованию.

17 Поддержка Dkim в ISPConfig

Dkim представляет собой технологию, которая позволяет в цифровой форме подписывать все отправляемые сообщения. Поддержка Dkim будет интегрирована в ISPConfig 3.1, для текущей версии ISPConfig 3.0.5.4p8 есть возможность портировать доступные возможности Dkim. Рассмотрим как установить этот патч.

Загрузим патч и запустим скрипт установки:

cd /tmp
wget blog.schaal-24.de/files/dkim-latest_ispconfig3.tar.gz
tar xfz dkim-latest_ispconfig3.tar.gz
cd dkim-patch
php -q install.php

В процессе установки потребуется ответить на следующие вопросы:

Configure amavis? [ Y | n ]?
Directory for DKIM-Keys [ /var/lib/amavis/dkim ]
Configure postfix? [ Y | n ]?
Update databse? [ Y | n ]?

Залогинимся в ISPConfig и установим патч Dkim в "/var/lib/amavis/dkim" в System > Server Config > Mail и нажмём "Save" для сохранения изменений.

18. Дополнительные замечания

18.1 OpenVZ

Если сервер Ubuntu, который вы только что установили, является 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

1 Комментарий

Авторизуйтесь, чтобы получить возможность оставлять комментарии
Go to top