Веб-сервер "под ключ" на базе CentOS 7.1

В этой статье рассмотрим установку ISPConfig 3 на сервер CentOS 7.1 (64-Bit). ISPConfig 3 представляет собой интерфейс, с помощью которого можно настраивать следующие службы из браузера: веб-сервер Apache или nginx, почтовый сервер Postfix, СУБД (MySQL или MariaDB), сервер имён BIND, службу PureFTPd, SpamAssassin, ClamAV, Mailman и т.д. С версии 3.0.4, ISPConfig полностью поддерживает веб-сервер nginx; однако, в этой статье рассмотрим установку сервера, использующего Apache, а не nginx.

Обратите внимание, что данная методика может подходить Вам прямо как есть, а может и не подходить. К сожалению, на разных системах получается разный результат. В основном, эта проблема обусловлена различными алгоритмами виртуализации. Пожалуйста, используйте эту методику только если уверенно чувствуете себя в общении с Linux!

1. Системные требования

Для установки системы потребуется:

  • Установленная система (либо на реальную машину, либо на виртуальную) Centos 7.1. Установка CentOS 7.0 может быть использована для примера.
  • Хороший процессор (предпочтительно иметь более двух ядер).
  • Много ОЗУ (предпочтительно иметь более 1 Гб).
  • Наличие файла подкачки.
  • Высокоскоростное соединение с сетью.

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

В данной статье будем использовать имя хоста server1.example.com, IP-адрес 10.4.0.10. В конкретном случае эти параметры могут отличаться, Вам необходимо будет заменить их на свои там, где это требуется.

3. Установка раскладки клавиатуры

В случае, если необходимо переключиться на правильную раскладку (например "ru" для русской раскладки клавиатуры), используем команду localectl:

localectl set-keymap ru

Для получения списка выполним:

localectl list-keymaps

Установку ISPConfig рассмотрим в конце статьи, однако ISPConfig идёт вместе с межсетевым экраном Bastille, который будет использоваться, как основной межсетевой экран, поэтому потребуется отключить стандартный межсетевой экран CentOS. Вы также можете использовать стандартный межсетевой экран (но затем Вы не сможете использовать другой межсетевой экран, так как он будет конфликтовать с межсетевым экраном CentOS).

Выполним...

yum -y install net-tools
systemctl stop firewalld.service
systemctl disable firewalld.service

для остановки и отключения межсетевого экрана CentOS.

Затем необходимо проверить, отключён ли межсетевой экран, поэтому выполним команду:

iptables -L

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

Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Или воспользуемся командой firewall-cmd:

firewall-cmd --state

not running

Теперь установим редактор "nano", который будем использовать для редактирования файлов конфигурации:

yum -y install nano wget NetworkManager-tui

Либо установим 'Полуночный Командир', чтобы пользоваться встроенным mcedit:

yum -y install mc

Если сетевая карта не настроена, выполним:

nmtui

... и выберем пункт Edit a connection:

Выберем сетевой интерфейс.

Затем заполним настройки интернета - отключим DHCP и введём статический IP адрес, сетевую маску, шлюз и один или два NSа (сервера разрешения имён), затем нажимаем OK.

Далее выбираем OK для подтверждения изменений в настройках интернета.

Возможно, понадобится настройка второго IP-адреса, тогда внимательно читаем специальную статью.

И нажимаем Quit для выхода из программы настройки.

Оценим конфигурацию интерфейсов

ifconfig

для проверки получения установщиком нашего IP-адреса:

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 10.4.0.10 netmask 255.255.255.0 broadcast 10.4.0.255
inet6 fe80::20c:29ff:fecd:cc52 prefixlen 64 scopeid 0x20
ether 00:0c:29:cd:cc:52 txqueuelen 1000 (Ethernet)
RX packets 999 bytes 1094 (0.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 28115 bytes 2608239 (2.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Если сетевая карта здесь не представлена, значит она не включена при загрузке, в этом случае откроем файл /etc/sysconfig/network-scripts/ifcfg-eth0

nano /etc/sysconfig/network-scripts/ifcfg-ens33

и сменим значение ONBOOT на yes:

[...]
ONBOOT=yes
[...]

И перезагрузим сервер.

Проверим файл /etc/resolv.conf, в котором NSы должны совпадать с заданными ранее:

cat /etc/resolv.conf

Если NSы отсутствуют, выполним: nmtui и снова добавим пропущенные NS.

Перейдём к настроке...

4. Корректировка /etc/hosts

Отредактируем /etc/hosts. Должно получиться следующее: перед каждым именем 'localhost' нужно добавить имя нашего сервера.

Если после рестарта сервера или рестарта службы network у нас не изменилось имя сервера, придётся запускать nmtui и через него менять имя машины.

5 Отключение SELinux

SELinux представляет собой удивительное расширение безопасности в CentOS, которое обеспечивает дополнительную защиту. На практике это расширение создаёт больше проблем, чем приносит пользы, поэтому его придётся отключить (более того, это необходимо для дальнейшей установки ISPConfig).

Отредактируем /etc/selinux/config и установим SELINUX=disabled:

nano /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

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

reboot

6 Включение дополнительных репозиторий и установка ПО

В начале импортируем ключи GPG для пакетов ПО:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Затем включим репозиторий EPEL в системе CentOS, так как большинство пакетов, которые будут установлены, недоступны в официальной репозитории CentOS 7:

yum -y install epel-release
yum -y install yum-priorities

Отредактируем /etc/yum.repos.d/epel.repo...

nano /etc/yum.repos.d/epel.repo

... и добавим строку priority=10 в секции [epel]:

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[...]

Затем обновим существующие пакеты в системе:

yum update

Далее установим ПО, которое потребует в дальнейшем:

yum -y groupinstall 'Development Tools'

7. Quota

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

Для установки quota выполним:

yum -y install quota

Теперь проверим, включена ли quota для файловом системы, в которой расположены сайт (/var/www) и данные maildir (var/vmail). Например, есть один root раздел, поэтому будем искать ' / ':

mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)

Если существует несколько разделов /var partition, выполним следующее:

mount | grep ' /var '

Если строка содержит слово "noquota", потребуется выполнить следующее, для включения quota.

Включение quota в/ (root) разделе

Обычно можно включить quota в файле /etc/fstab, но если файловая система является файловой системой root "/", quota включается, как параметр загрузки ядра Linuх.

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

nano /etc/default/grub

ищем строку, которая начинается с GRUB_CMDLINE_LINUX и добавляем rootflags=uquota,gquota к параметрам командной строки, результат должен быть следующий:

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us rhgb quiet rootflags=uquota,gquota"

Сохраним изменения, выполнив следующее:

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak
grub2-mkconfig -o /boot/grub2/grub.cfg

и перезагрузим сервер.

reboot

Теперь проверим, включена ли quota:

mount | grep ' / '
 /dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)

Когда quota запущена, появится "usrquota,grpquota" в списке опций.

Включение quota в разделённых /var разделах

Если разделы /var разделены, отредактируем файл /etc/fstab и добавим, uquota,gquota в

/ partition (/dev/mapper/centos-var):
nano /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Sep 21 16:33:45 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 1 1
/dev/mapper/centos-var /var xfs
defaults,uquota,gquota 1 2
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot xfs defaults 1 3
/dev/mapper/centos-swap swap swap defaults 0 0

Далее выполним

mount -o remount /var
quotacheck -avugm
quotaon -avug

для включения quota. Когда возникнет ошибка oartition с включенной quota, перезапустим сервер, перед тем, как продолжить.

8 Установка Apache, MySQL, phpMyAdmin

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

yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin

9 Установка Dovecot

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

yum -y install dovecot dovecot-mysql dovecot-pigeonhole

Создадим пустой файл dovecot-sql.conf file и символьную ссылку:

touch /etc/dovecot/dovecot-sql.conf
ln -s /etc/dovecot/dovecot-sql.conf /etc/dovecot-sql.conf

Теперь создадим автозагрузку и запустим Dovecot:

systemctl enable dovecot
systemctl start dovecot

10 Установка Postfix

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

yum -y install postfix

Далее отключаем Sendmail и запускаем Postfix и Mariadb (MySQL):

systemctl enable mariadb.service
systemctl start mariadb.service
systemctl stop sendmail.service
systemctl disable sendmail.service
systemctl enable postfix.service
systemctl restart postfix.service

Отключим sendmail, чтобы он не стартовал автоматически, после чего ошибка "Failed to issue method call: Unit sendmail.service not loaded" может быть проигнорирована.

11. Установка Getmail

Getmail устанавливается одной командой:

yum -y install getmail

12. Определение паролей MySQL и настройка phpMyAdmin

Определим пароли для аккаунта root в MySQL:

mysql_secure_installation

Далее потребуется ответить на ряд вопросов, всегда в качестве ответов нажимаем Enter, кроме New Password и Re-enter new password, где потребуется задать и повторить пароль.

Теперь настроим phpMyAdmin. Изменим настройку Apache таким образом, что phpMyAdmin разрешает соединения не только с локального хоста (удалив две строки "Require ip" и добавив новую строку "Require all granted" в строфу ):

nano /etc/httpd/conf.d/phpMyAdmin.conf

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
     #  Require ip 127.0.0.1
     #  Require ip ::1
Require all granted </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory>

Далее изменим аутентификацию в phpMyAdmin с cookie на http:

nano /etc/phpMyAdmin/config.inc.php

[...]
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]

Далее создадим автозагрузку для Apache и запустим его:

systemctl enable httpd.service
systemctl restart httpd.service

Теперь можно в браузере перейти по адресу server1.example.com/phpmyadmin/ или 10.4.0.10/phpmyadmin/ и войти с использованием имени пользователя root и пароля root MySQL.

13. Установка Amavisd-new, SpamAssassin и ClamAV

Возможно, в Вашем конкретном случае есть смысл ставить пакет clamd (clamav-scanner.noarch), окончательное решение за Вами.

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

yum -y install amavisd-new spamassassin clamav clamav-update unzip bzip2 perl-DBD-mysql

Отредактируем файл конфигурации freshclam /etc/freshclam.conf

nano /etc/freshclam.conf

и удалим строку "Example"

[....]
# Example
[....]

Затем запустим freshclam, amavisd и clamd.amavisd:

sa-update
freshclam
systemctl enable amavisd.service

14. Установка Apache2 с mod_php, mod_fcgi/PHP5, PHP-FPM и suPHP

ISPConfig 3 позволяет использовать mod_php, mod_fcgi/PHP5, cgi/PHP5 и suPHP в основе каждого сайта.

Установим Apache2 с mod_php5, mod_fcgid и PHP5 следующим образом:

yum -y install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel php-fpm

Далее откроем /etc/php.ini...

nano /etc/php.ini

... и изменим отчёт об ошибках (сообщения больше не будут), установим timezone(часовой пояс) и удалим cgi.fix_pathinfo=1:

[...]
;error_reporting = E_ALL & ~E_DEPRECATED
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for
CGI. PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to
not grok
; what PATH_INFO is. For more information on PAppp.tldTH_INFO, see the cgi
specs. Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A
setting
; of zero causes PHP to behave as before. Default is 1.
You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]
date.timezone = 'Europe/Moscow'
[...]

Далее установим suPHP:

Обратите внимание, что в репозиториях доступен пакет mod_suphp, но, к сожалению, он не совместим с ISPConfig, поэтому нам придётся собирать suPHP самостоятельно!

cd /usr/local/src
wget http://suphp.org/download/suphp-0.7.2.tar.gz
tar zxvf suphp-0.7.2.tar.gz

CentOS 7.1 использует apache-2.4, поэтому нам придётся поставить исправление для suphp перед тем, как скомпилировать его для работы с Apache. Исправление применяется следующим образом:

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
# autoreconf -if
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `config'.
libtoolize: copying file `config/ltmain.sh'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
configure.ac:9: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are
deprecated. For more info, see:
configure.ac:9: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation
configure.ac:24: installing 'config/config.guess'
configure.ac:24: installing 'config/config.sub'
configure.ac:9: installing 'config/install-sh'
configure.ac:9: installing 'config/missing'
src/Makefile.am: installing 'config/depcomp'

Затем скомпилируем новый источник следующим образом:

./configure --prefix=/usr/ --sysconfdir=/etc/ --with-apr=/usr/bin/apr-1-config --with-apache-user=apache --with-setid-mode=owner --with-logfile=/var/log/httpd/suphp_log
make
make install

В некоторых случаях не проходит компиляция, попробуйте заменить команду конфигурации на следующую: ./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=paranoid --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable-SUPHP_USE_USERGROUP=yes

Далее добавим модуль suPHP в конфигурацию Apache...

nano /etc/httpd/conf.d/suphp.conf
LoadModule suphp_module modules/mod_suphp.so

... и создадим файл /etc/suphp.conf:

nano /etc/suphp.conf
[global]
;Path to logfile
logfile=/var/log/httpd/suphp.log
;Loglevel
loglevel=info
;User Apache is running as
webserver_user=apache
;Path all scripts have to be in
docroot=/
;Path to chroot() to before executing script
;chroot=/mychroot
; Security options
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
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=0077
; 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"

Отредактируем файл etc/httpd/conf.d/php.conf для включения синтаксического анализа php только для phpmyadmin, roundcube и других пакетов в /usr/share, но не для сайтов в /var/www, ведь ISPConfig активирует PHP для каждого сайта индивидуально.

nano /etc/httpd/conf.d/php.conf

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

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

на:

<Directory /usr/share>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
</Directory>

Теперь интерпретатор PHP сможет искать исполнимые файлы в директории Directory.

Добавим httpd и PHP-FPM в автозагрузку, запустим службы:

systemctl start php-fpm.service
systemctl enable php-fpm.service
systemctl enable httpd.service

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

systemctl restart httpd.service

15 Установка mod_python

Модуль apache mod_python недоступен, как пакет RPM, поэтому скомпилируем его из источника. Первым шагом будет установка файлов разработки python и загрузка нынешней версии mod_python в файле tar.gz

yum -y install python-devel
cd /usr/local/src/
wget http://dist.modpython.org/dist/mod_python-3.5.0.tgz
tar xfz mod_python-3.5.0.tgz
cd mod_python-3.5.0

и затем настроим и скомпилируем модуль

./configure
make
make install

И включим модуль в apache

echo 'LoadModule python_module modules/mod_python.so' > 
/etc/httpd/conf.modules.d/10-python.conf
systemctl restart httpd.service

16 Установка PureFTPd

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

yum -y install pure-ftpd

Далее создадим автозагрузку и запустим PureFTPd:

systemctl enable pure-ftpd.service
systemctl start pure-ftpd.service

Теперь настроим PureFTPd, для того, чтобы разрешить сессии FTP и TLS. FTP является очень ненадёжным протоколом, потому что все пароли и данные передаются в виде текста. При использовании TLS, вся коммуникации зашифрована, что делает FTP гораздо более защищённым.

OpenSSL требуется для установкиis TLS; установим OpenSSL:

yum install openssl

Откроем /etc/pure-ftpd/pure-ftpd.conf...

nano /etc/pure-ftpd/pure-ftpd.conf

Если требуется разрешить сессии FTP и TLS, присвоим TLS значение 1:

[...]
# 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 необходимо создать сертификат 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:

systemctl restart pure-ftpd.service

Теперь можно подключиться, используя клиент FTP; в любом случае потребуется настроить клиент FTP для использования TLS.

17 Установка BIND

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

yum -y install bind bind-utils

Создадим резервную копию файла /etc/named.conf и сделаем новый файл:

cp /etc/named.conf /etc/named.conf_bak
cat /dev/null > /etc/named.conf
nano /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
allow-recursion {"none";};
recursion no; };
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.conf.local";

Создадим файл /etc/named.conf.local that is included at the end of /etc/named.conf (/etc/named.conf.local will later on get populated by ISPConfig if you create DNS zones in ISPConfig):

touch /etc/named.conf.local

Затем создадим автозагрузку и запустим BIND:

systemctl enable named.service
systemctl start named.service

18. Установка Webalizer и AWStats

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

yum -y install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder

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

Важно: Jailkit может быть установлен только перед установкой ISPConfig – после его уже не получится установить!

Jailkit потребуется, если вы хотите сделать chroot для пользователей SSH. Установка производится следующим образом:

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit-2.17
./configure
make
make install
cd ..
rm -rf jailkit-2.17*

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

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

yum -y install iptables-services fail2ban fail2ban-systemd
systemctl mask firewalld.service
systemctl enable iptables.service
systemctl enable ip6tables.service
systemctl stop firewalld.service
systemctl start iptables.service
systemctl start ip6tables.service

Создадим файл /etc/fail2ban/jail.local и включим мониторинг для ssh, email и службы ftp.

nano /etc/fail2ban/jail.local

Добавим следующее в файл jail.local:

[sshd]
enabled = true
action = iptables[name=sshd, port=ssh, protocol=tcp]
[pure-ftpd]
enabled = true
action = iptables[name=FTP, port=ftp, protocol=tcp]
maxretry = 3
[dovecot]
enabled = true
action = iptables-multiport[name=dovecot, port="pop3,pop3s,imap,imaps",
protocol=tcp]
maxretry = 5
[postfix-sasl]
enabled = true
action = iptables-multiport[name=postfix-sasl, port="smtp,smtps,submission", protocol=tcp]
maxretry = 3

Далее создадим автозагрузку и запустим fail2ban:

systemctl enable fail2ban.service
systemctl start fail2ban.service

Внимание! На некоторых системах fail2ban блокирует установку roundcube. Единого решения пока не найдено.

21. Установка rkhunter

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

yum -y install rkhunter

22. Установка Mailman

Mailman используется для управления адресным списком на сервере. Mailman поддерживается ISPConfig, следовательно можно создавать новые адресные списки через ISPConfig.

yum -y install mailman

Перед запуском Mailman необходимо создать список, под названием mailman:

touch /var/lib/mailman/data/aliases
postmap /var/lib/mailman/data/aliases
/usr/lib/mailman/bin/newlist mailman

Далее потребуется ввести адрес электронной почты, задать пароль для списка и для подтверждения создания спиcка нажать Enter.

Далее откроем /etc/aliases...

vi /etc/aliases

... и добавим следующие строки:

[...]
mailman: "|/usr/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/usr/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/usr/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/usr/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/usr/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/usr/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/usr/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/usr/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/usr/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/usr/lib/mailman/mail/mailman unsubscribe
mailman"

Выполним

newaliases

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

systemctl restart postfix.service

Теперь откроем файл конфигурации Mailman Apache /etc/httpd/conf.d/mailman.conf...

mcedit /etc/httpd/conf.d/mailman.conf

... и добавим строку ScriptAlias /cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/. Alias /pipermail/ /var/lib/mailman/archives/public/ и добавим строку Alias /pipermail /var/lib/mailman/archives/public/:

#  httpd configuration settings for use with mailman.

ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/
ScriptAlias /cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/
<Directory /usr/lib/mailman/cgi-bin/>
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

#Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /pipermail /var/lib/mailman/archives/public/
<Directory /var/lib/mailman/archives/public>
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    AddDefaultCharset Off
</Directory>

# Uncomment the following line, to redirect queries to /mailman to the
# listinfo page (recommended).
# RedirectMatch ^/mailman[/]*$ /mailman/listinfo

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

systemctl restart httpd.service

Создадим автозагрузку и запустим Mailman:

systemctl enable mailman.service
systemctl start mailman.service

После установки ISPConfig 3 можно будет получить доступ к Mailman следующим образом:

Можно использовать alias /cgi-bin/mailman для всех виртуальных хостов Apache (Внимание: suExec и CGI должны быть отключены для всех виртуальных хостов, которые будут иметь доступ к Mailman!), это значит, что можно получить доступ к интерфейсу администратора Mailman через http:///cgi-bin/mailman/admin/ и веб-страница для пользователей в списке адресатов находится по адресу http:///cgi-bin/mailman/listinfo/.

В http:///pipermail/ можно найти архивы адресных списков.

23. Установка Roundcube webmail

 

Внимание! На некоторых системах этот шаг не удаётся выполнить до тех пор, пока не будет исправлен алгоритм работы межсетевого экрана. Поэтому ежели у Вас не получается выполнить этот шаг, отредактируйте /etc/sysconfig/iptables и перезагрузитесь. Надо добавить три правила:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

 

Установим клиент Roundcube:

yum -y install roundcubemail

Отредактируем файл конфигурации roundcubemail следующим образом:

nano /etc/httpd/conf.d/roundcubemail.conf
#
# Round Cube Webmail is a browser-based multilingual IMAP client
#

Alias /roundcubemail /usr/share/roundcubemail
Alias /webmail /usr/share/roundcubemail # Define who can access the Webmail # You can enlarge permissions once configured #<Directory /usr/share/roundcubemail/> # <IfModule mod_authz_core.c> # # Apache 2.4 # Require local # </IfModule> # <IfModule !mod_authz_core.c> # # Apache 2.2 # Order Deny,Allow # Deny from all # Allow from 127.0.0.1 # Allow from ::1 # </IfModule> #</Directory> <Directory /usr/share/roundcubemail/> Options none AllowOverride Limit Require all granted </Directory> # Define who can access the installer # keep this secured once configured #<Directory /usr/share/roundcubemail/installer/> # <IfModule mod_authz_core.c> # # Apache 2.4 # Require local # </IfModule> # <IfModule !mod_authz_core.c> # # Apache 2.2 # Order Deny,Allow # Deny from all # Allow from 127.0.0.1 # Allow from ::1 # </IfModule> #</Directory> <Directory /usr/share/roundcubemail/installer> Options none AllowOverride Limit Require all granted </Directory> # Those directories should not be viewed by Web clients. <Directory /usr/share/roundcubemail/bin/> Order Allow,Deny Deny from all </Directory> <Directory /usr/share/roundcubemail/plugins/enigma/home/> Order Allow,Deny Deny from all </Directory>


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

systemctl restart httpd.service

Теперь потребуются базы данных для roundcube, инициализировать их можно следующим образом:

mysql -u root -p

В mariadb введём:

CREATE DATABASE roundcubedb;
CREATE USER roundcubeuser@localhost IDENTIFIED BY 'roundcubepassword';
GRANT ALL PRIVILEGES on roundcubedb.* to roundcubeuser@localhost ;
FLUSH PRIVILEGES;
exit

Значения в базе данных roundcube используются для теста, их следует заменить по Вашему выбору из соображений безопасности.

Теперь посмотрим на roundcube в браузере по адресу http://10.4.0.10/roundcubemail/installer

Добавим необходимые элементы настройки в nano /etc/roundcubemail/config.inc.php

<?php

/* Local configuration for Roundcube Webmail */

// ----------------------------------
// SQL DATABASE
// ----------------------------------
// Database connection string (DSN) for read+write operations
// Format (compatible with PEAR MDB2): db_provider://user:password@host/database
// Currently supported db_providers: mysql, pgsql, sqlite, mssql or sqlsrv
// For examples see http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php
// NOTE: for SQLite use absolute path: 'sqlite:////full/path/to/sqlite.db?mode=0646'
$config['db_dsnw'] = 'mysql://roundcubeuser:roundcubepassword@localhost/roundcubedb';

// ----------------------------------
// IMAP
// ----------------------------------
// The mail host chosen to perform the log-in.
// Leave blank to show a textbox at login, give a list of hosts
// to display a pulldown menu or set one host as string.
// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls://
// Supported replacement variables:
// %n - hostname ($_SERVER['SERVER_NAME'])
// %t - hostname without the first part
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
// %s - domain name after the '@' from e-mail address provided at login screen
// For example %n = mail.domain.tld, %t = domain.tld
// WARNING: After hostname change update of mail_host column in users table is
//          required to match old user data records with the new host.
$config['default_host'] = 'localhost';

// provide an URL where a user can get support for this Roundcube installation
// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
$config['support_url'] = '';

// this key is used to encrypt the users imap password which is stored
// in the session record (and the client cookie if remember password is enabled).
// please provide a string of exactly 24 chars.
$config['des_key'] = 'FHgaM7ihtMkM1cBwckOcxPdT';

// ----------------------------------
// PLUGINS
// ----------------------------------
// List of active plugins (in plugins/ directory)
$config['plugins'] = array();

// Set the spell checking engine. Possible values:
// - 'googie'  - the default
// - 'pspell'  - requires the PHP Pspell module and aspell installed
// - 'enchant' - requires the PHP Enchant module
// - 'atd'     - install your own After the Deadline server or check with the people at http://www.afterthedeadline.com before using their API
// Since Google shut down their public spell checking service, you need to 
// connect to a Nox Spell Server when using 'googie' here. Therefore specify the 'spellcheck_uri'
$config['spellcheck_engine'] = 'pspell';

Далее нажмём кнопку "continue" в веб-установщике. Затем нажимаем кнопку "Initialize database".

Наконец, отключим установщик Roundecubemail. Изменим файл конфигурации apacheroundcubemail:

nano /etc/httpd/conf.d/roundcubemail.conf
#
# Round Cube Webmail is a browser-based multilingual IMAP client
#

Alias /roundcubemail /usr/share/roundcubemail
Alias /webmail /usr/share/roundcubemail # Define who can access the Webmail # You can enlarge permissions once configured #<Directory /usr/share/roundcubemail/> # <IfModule mod_authz_core.c> # # Apache 2.4 # Require local # </IfModule> # <IfModule !mod_authz_core.c> # # Apache 2.2 # Order Deny,Allow # Deny from all # Allow from 127.0.0.1 # Allow from ::1 # </IfModule> #</Directory> <Directory /usr/share/roundcubemail/> Options none AllowOverride Limit Require all granted </Directory> # Define who can access the installer # keep this secured once configured <Directory /usr/share/roundcubemail/installer/> <IfModule mod_authz_core.c> # Apache 2.4 Require local </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> # Those directories should not be viewed by Web clients. <Directory /usr/share/roundcubemail/bin/> Order Allow,Deny Deny from all </Directory> <Directory /usr/share/roundcubemail/plugins/enigma/home/> Order Allow,Deny Deny from all </Directory> ~

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

systemctl restart httpd.service

24. Установка ISPConfig 3

Загрузим и установим последнюю версию (http://www.ispconfig.org/ispconfig-3/download/) ISPConfig 3. Установщик ISPConfig настроит такие службы, как Postfix, Dovecot и т.д. Ручная установка, как для ISPConfig версии 2, больше не требуется.

Также установщик может создать виртуальный хост SSL для панели управления ISPConfig control panel, таким образом ISPConfig будет доступен по протоколу https вместо http. Для этого необходимо нажать ENTER в вопросе: Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:.

Для установки последней версии 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:

# php -q install.php

Далее потребуется ввести данные для установки ISPConfig 3, для всех вопросов нажимаем Enter, кроме Enter your root password, где потребуется ввести пароль.

Сообщение об ошибке "usage: doveadm [-Dv] [-f ] []" можно проигнорировать, если оно появилось во время установки ispconfig.

Для исправления ошибок Mailman во время установки ISPConfig, откроем /usr/lib/mailman/Mailman/mm_cfg.py...

mcedit /usr/lib/mailman/Mailman/mm_cfg.py

... и зададим DEFAULT_SERVER_LANGUAGE = 'en':

[...]
#-----
# The default language for this server.
DEFAULT_SERVER_LANGUAGE = 'en'
[...]

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

systemctl restart mailman.service

25. Первая авторизация в ISPConfig

Теперь ISPConfig 3 доступен по адресу http(s)://server1.example.com:8080/ или http(s)://10.4.0.10:8080/, причём протокол http или https зависит от нашего выбора при установке. Авторизоваться можно, введя имя пользователя admin и пароль admin (стандартный пароль следует сменить после первого входа).

Далее потребуется задать пути настройки BIND в ISPConfig. Выбираем меню "System", затем "Server config" в правом меню. Далее, в появившимся списке выбираем server name.

Перейдём на вкладку "DNS".

И введём пути DNS:

BIND zonefiles directory: /var/named
BIND named.conf path: /etc/named.conf
BIND named.conf.local path: /etc/named.conf.local

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

Дополнение 1

Если не запускается веб-сервер Apache, убедитесь, что верно заданы все права на рабочие директории. Выполните команду

chown -R apache:apache /usr/share && chown -R apache:apache /var/www/html

Дополнение 2

Если вы используете загрузку UEFI, надо будет собрать grub следующим образом:

grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

Дополнение 3

Иногда выскакивает ошибка postalias: fatal: open /var/lib/mailman/data/aliases: No such file or directory - выполните:

touch /etc/mailman/aliases

36 комментарии

  • Verewolf

    написал Verewolf

    Вторник, 28 Июль 2015 23:08

    Выскажу критику: а зачем SELinux отключать? Так трудно пару дополнительных настроек в системе сделать?

  • Владимир Драч

    написал Владимир Драч

    Среда, 29 Июль 2015 16:03

    Причина отключения в данном случае - установка ISPConfig, о чём сказано в статье. От себя могу добавить: отключать или нет - личное дело каждого. Я уже неоднократно говорил: мне SELinux не помог ни разу в жизни, а проблем подкидывал периодически. Моё мнение: отключать. Но как поступать в Вашем случае - решать Вам!

  • Bitter Fly

    написал Bitter Fly

    Пятница, 14 Август 2015 11:14

    Спасибо за мануал, но:
    1. Дополните пожалуйста мануал командами сохранения файла в редакторе nano. То есть, редактируем файл и как сохранить? Комбинация Ctrl+O было найдена, но было бы удобнее если бы всё было в одном месте.
    2. Встал на 6 пункте:
    yum -y install yum-priorities
    нет такого пакета.

  • Bitter Fly

    написал Bitter Fly

    Пятница, 14 Август 2015 11:18

    Со вторым пунктом разобрался - сетевой кабель вылетел :)

  • Владимир Драч

    написал Владимир Драч

    Понедельник, 14 Сентябрь 2015 14:16

    Bitter Fly, спасибо за комментарий!

  • Владимир

    написал Владимир

    Пятница, 25 Сентябрь 2015 00:07

    Добрый день.

    Странно, хоть и были заморочки и запинки, но все поставил, но как ни пытаюсь прикрутить roundcubemail он отказывается логинится.

    Сталкивались с таким?

  • Владимир Драч

    написал Владимир Драч

    Пятница, 25 Сентябрь 2015 20:03

    Владимир, в моей практике ни разу с такой проблемой не сталкивался.

  • Виталий

    написал Виталий

    Пятница, 25 Декабрь 2015 21:25

    Изменим строки:
    SetHandler application/x-httpd-php
    на:
    SetHandler application/x-httpd-php

    А подскажите плиз, а в чем разница?я что-то различий в упор не вижу

  • Владимир Драч

    написал Владимир Драч

    Воскресенье, 27 Декабрь 2015 12:37

    Виталий, спасибо за бдительность!
    Исправил статью. В исходной версии отсутствовало несколько строк кода.

  • Емин

    написал Емин

    Вторник, 05 Январь 2016 07:01

    Статья хорошая, я только новичок, и мне не хватает коротких комментов иногда, чтобы понять что за пакет, и зачем он нужен. Хотя есть в некоторых местах
    Например
    7 Quota (# Quota - Установка дисковых квот)
    9 Установка Dovecot (#Dovecot — свободный IMAP- и POP3-сервер)

  • Дмитрий

    написал Дмитрий

    Суббота, 27 Февраль 2016 09:40

    cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak

    grub2-mkconfig -o /boot/grub2/grub.cfg
    После перезагрузки не запускается графика GNOME,выходит консоль рута с вводом пароля и при startx пишет нет соединения с сервером и т.п. Что делать не знаю. форумов перелопатил кучу, ssh тоже не работает, пользователя убило под которым се стояло или что?

  • Владимир Драч

    написал Владимир Драч

    Понедельник, 29 Февраль 2016 20:20

    Дмитрий, просто чудеса. А есть возможность восстановить исходный cfg от grub'a? Не зря же мы его копировали в grub.cfg_bak.

  • Дмитрий

    написал Дмитрий

    Вторник, 01 Март 2016 12:25

    Могу видео приложить, после того как удалил dev/mapper/centos-var /var xfs
    defaults,uquota,gquota 1 2, вернул как было на виртуальной машине стало нормально загружаться!
    После CentOS 7.1 использует apache-2.4, поэтому нам придётся поставить исправление для suphp перед тем, как скомпилировать его перед Apache. Исправление применяется следующим образом: не работают команды!

  • Дмитрий

    написал Дмитрий

    Вторник, 01 Март 2016 12:32

    Если не тяжело каким образом восстановить исходный grub, напишите команды пожалуйста!!! Умоляю!

  • Дмитрий

    написал Дмитрий

    Среда, 02 Март 2016 10:03

    patch -Np1 -d suphp-0.7.2

  • Владимир Драч

    написал Владимир Драч

    Среда, 02 Март 2016 18:16

    Это помогло!?.

  • Brick

    написал Brick

    Четверг, 03 Март 2016 07:04

    Я зашел в директорию suphp-0.7.2, и выполнил
    "patch -p1 -N

  • Brick

    написал Brick

    Четверг, 03 Март 2016 07:06

    Не могу написать комментарий! Съедает комманду: suphp.patch...

  • Дмитрийц

    написал Дмитрийц

    Четверг, 03 Март 2016 16:51

    Не помогло! По команде patch -Np1 -d suphp-0.7.2 не срабатывает!

  • Павел

    написал Павел

    Среда, 09 Март 2016 04:14

    Сначала yum install patch и потом только patch -Np1 -d suphp-0.7.2

  • Дмитрий

    написал Дмитрий

    Вторник, 19 Апрель 2016 06:38

    yum -y install webalizer пишет пакета такого не найдено

  • Дмитрий

    написал Дмитрий

    Вторник, 19 Апрель 2016 06:50

    systemctl status fail2ban.service
    ● fail2ban.service - Fail2Ban Service
    Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; vendor preset: disabled)
    Active: failed (Result: start-limit) since Вт 2016-04-19 10:47:20 KRAT; 5s ago
    Docs: man:fail2ban(1)
    Process: 19149 ExecStart=/usr/bin/fail2ban-client -x start (code=exited, status=255)

    апр 19 10:47:20 localhost.localdomain systemd[1]: Failed to start Fail2Ban Service.
    апр 19 10:47:20 localhost.localdomain systemd[1]: Unit fail2ban.service entered failed state.
    апр 19 10:47:20 localhost.localdomain systemd[1]: fail2ban.service failed.
    апр 19 10:47:20 localhost.localdomain systemd[1]: fail2ban.service holdoff time over, scheduling restart.
    апр 19 10:47:20 localhost.localdomain systemd[1]: start request repeated too quickly for fail2ban.service
    апр 19 10:47:20 localhost.localdomain systemd[1]: Failed to start Fail2Ban Service.
    апр 19 10:47:20 localhost.localdomain systemd[1]: Unit fail2ban.service entered failed state.
    апр 19 10:47:20 localhost.localdomain systemd[1]: fail2ban.service failed.

  • Дмитрий

    написал Дмитрий

    Вторник, 19 Апрель 2016 10:44

    установил Mailmn перестал запускаться httpd
    ● httpd.service - The Apache HTTP Server
    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Вт 2016-04-19 14:44:14 KRAT; 3s ago
    Process: 22361 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
    Process: 22347 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
    Main PID: 22347 (code=exited, status=1/FAILURE)

    апр 19 14:44:14 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
    апр 19 14:44:14 localhost.localdomain httpd[22347]: httpd: Syntax error on line 353 of /etc/httpd/conf/httpd.conf: Syntax error on line 1 of /etc/httpd/conf.d/site1.ru.conf: /etc/httpd/conf.d/site1.ru.conf:1:

  • Дмитрий

    написал Дмитрий

    Вторник, 19 Апрель 2016 13:35

    Угробил сервер в 0!

  • Евгений

    написал Евгений

    Понедельник, 25 Апрель 2016 09:34

    [root@server1 suphp-0.7.2]# autoreconf -if
    configure.ac:24: warning: macro 'AM_PROG_LIBTOOL' not found in library
    configure.ac:24: error: possibly undefined macro: AM_PROG_LIBTOOL
    If this token and others are legitimate, please use m4_pattern_allow.
    See the Autoconf documentation.
    autoreconf: /usr/bin/autoconf failed with exit status: 1
    [root@server1 suphp-0.7.2]#

  • Владимир Драч

    написал Владимир Драч

    Воскресенье, 05 Июнь 2016 20:18

    Всем спасибо за сообщения об ошибках. Статья поправлена. Теперь данных проблем возникать не должно. Успехов!

  • юрий

    написал юрий

    Понедельник, 20 Июнь 2016 16:17

    отсутствуют команды установки следующих модулей:

    yum install libtool
    yum install -y gcc-c++

  • Юрий

    написал Юрий

    Вторник, 21 Июнь 2016 12:45

    после установки roundcube выполняем mysql -u root –p
    получаем
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

    что делать как его излечить?

  • Владимир Драч

    написал Владимир Драч

    Среда, 22 Июнь 2016 13:21

    Юрий, спасибо за уточнения про libtool и gcc-c++!
    Почему mysql не пускает root'a - не понятно. Вы вообще можете как-то залогиниться в mysql (через phpMyAdmin, например)?
    А сброс пароля помогает?
    А перезапуск mysqld?

    Проверьте свой конфигурационный файл my.cnf, там есть похожие строки?
    innodb_file_per_table=1
    innodb_buffer_pool_size=512M
    innodb_additional_mem_pool_size=10M
    innodb_log_file_size=125M
    innodb_log_buffer_size=4M
    innodb_thread_concurrency=2
    Их потребуется удалить и перезапустить СУБД.

  • Илья

    написал Илья

    Понедельник, 18 Июль 2016 00:21

    Отличная статья. Спасибо! Это самое полное руководство, что я нашёл.

  • sanuich

    написал sanuich

    Суббота, 17 Сентябрь 2016 21:03

    pure-ftpd на CentOS 7.2 не стал
    пишет -
    Job for pure-ftpd.service failed because a configured resource limit was exceeded. See "systemctl status pure-ftpd.service" and "journalctl -xe" for details
    без него как то можно обойтись

  • Владимир Драч

    написал Владимир Драч

    Вторник, 20 Сентябрь 2016 21:26

    Чтобы победить pure-ftpd, надо смотреть внимательно в журнал (что показывает journalctl -xe?).
    Но можно, конечно, и без него обойтись, если не нужен доступ по протоколу FTP.

  • Wikly

    написал Wikly

    Воскресенье, 12 Февраль 2017 21:45

    Статья отличная.
    Но отчего то не проходит
    ./configure --prefix=/usr/ --sysconfdir=/etc/ --with-apr=/usr/bin/apr-1-config --with-apache-user=apache --with-setid-mode=owner --with-logfile=/var/log/httpd/suphp_log

    пишет:
    configure: WARNING: you should use --build, --host, --target
    и
    "checking build system type... Invalid configuration 'apache': machine 'apache' not recognized

  • Владимир Драч

    написал Владимир Драч

    Среда, 15 Февраль 2017 13:48

    Известная проблема. Универсальное решение пока не найдено. Пробуйте поменять операнды при конфигурации.

  • Андрей

    написал Андрей

    Пятница, 10 Март 2017 20:56

    Я тоже на этом встал:

    после установки roundcube выполняем mysql -u root -p

    получаем ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

    Что делать?

  • Владимир Драч

    написал Владимир Драч

    Суббота, 11 Март 2017 16:53

    Попробуйте вот так
    mysql --user=root --password

Оставить комментарий

Ваше мнение очень важно для нас! Обязательно выскажите Ваши мысли, пожелания и критику! Не стесняйтесь задавать вопросы. Скорее всего, ответ появится уже через 2-3 дня. Спасибо заранее.

Go to top