Установка ISPconfig на Debian/Ubuntu/Mint

ISPConfig – панель управления хостингом для Linux с открытыми исходниками и выпускается под лицензией лицензии BSD, разработана компанией ISPConfig UG. Сам проект ISPConfig был начат осенью 2005 года немецкой компанией projektfarm GmbH.

1. Для начала нужно установить весь необходимый софт для установки ISPConfig 3.

Стоит сказать что я буду использовать Debian ( для примера), сейчас я отключу оболочку dash и установлю вместо неё – bash, делается следующим образом:

#  dpkg-reconfigure dash

переконфигурирование dash в bash на Debian

переконфигурирование dash в bash на Debian

Выбираем “No” (нет) и жмем ентер.

Следующей командой собственной мы установим все необходимое для работы ISPconfig:

# aptitude install ntp ntpdate postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo

Мы установим утилиты для работы с почтой (Dovecot и Postfix), работа со временем (NTP), работа с БД (MySQL) и еще пару полезных утилит.

Система попросит ответить на ряд вопросов, отвечаем и идем далее. Вот скриншоты, если кто то не понял что нужно нажимать:

На первом меню которое выдало нам, просто  нажимаем ОК.

настройка Postfix в Debian

Прописываем ( выбираем) имя для нашего сервера с почтой:

настройка Postfix в Debian, имя для сервера почты

Я использую виртуальную машину, по этому я ввожу localhost, а вы, если используете реальный домен, введите его.

У меня собственно вот такое забавное имя. Я ранее установил сервер и клиент с Mysql, по этому я пропускаю этот шаг ( там нужно будет ввести пароль для root и может кое что еще).

Откроем порты TLS/SSL в Postfix:

# vim /etc/postfix/master.cf

Приводим вот к такому виду:

[...]
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 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 milter_macro_daemon_name=ORIGINATING
[...]

И сохраняем данный файл, перезапускаем сервис:

# /etc/init.d/postfix restart

Настроем работу БД в Mysql для всех наших интерфейсов, по умолчанию mysql, будет работать только на 127.0.0.1:

# vim /etc/mysql/my.cnf
[...]
#закомментируем строку что ниже
#bind-address           = 127.0.0.1
[...]

Ребутим службу Mysql-а:

# /etc/init.d/mysql restart

Основное мы настроили и подготовили к дальнейшей установки ISPconfig-а,  остались последние штрихи, мы установим антиспам утилиту и антивирус для нашего сервера  с почтой – Amavisd-new, и утилитой SpamAssassin, так же с антивирусом – ClamAV:

# aptitude 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

У меня не стартовал amavisd-new, решил проблему:

# vim /etc/amavis/conf.d/05-node_id

# нужно прописать доменное имя для нашей почти
$myhostname = "localhost";

А делаем собственно для того чтобы была фильтрация спам писем в ISPConfig 3 через утилиту Amavisd, которая загружается во внутренние фильтры библиотек программы SpamAssassin в автоматическом режиме, по этому мы можем легко запустить или выключить SpamAssassin, чтобы не грузить нашу RAM память лишним процессом:

# /etc/init.d/spamassassin stop
# update-rc.d -f spamassassin remove

!!! АХТУНГ!!! При долгой работе нашего сервера с почтой, Amavisd будет сохранять очень много различного спама и может даже вирусов в папку с карантином /var/lib/amavis/virusmails/ которая будет иметь очень большой размер если ее не удалять. По этому, добавляем в кронтаб задание которое будет автоматически искать и удалять наш сохраненный спам и так же возможные вирусы которые лежат в папке более 30 дней:

# crontab -e

# добавляем строку что ниже в открывшийся файл, я всегда кидаю в самый низ.
0 3 * * * find /var/lib/amavis/virusmails -ctime +30 -and -type 'f' -exec rm {} \;

Это правило будет запускаться каждый день в 3 ночи и будет искать файлы ( спам) старше 30 дней.

Установим еще и веб-сервер apache2 с поддержкой PHP5, PHPMyAdmin, FCGI и suExec и Pear, а так же mcrypt:

# aptitude 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-curl php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-ruby libapache2-mod-python libapache2-mod-perl2 dh-make-php php5-dev build-essential libmagic-dev php5-intl

Нас просят ответить на вопросы:

1. Выбор веб сервера ( выбираем собственно apache).
2. Настроить БД в phpmyadmin с использованием dbconfig-common? – нажимаем Нет.

После этого нам нужно активировать все установленные модули для апача:

# a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest

Перезапускаем сервис с апачем:

# /etc/init.d/apache2 restart

Выполним установку и настроим фтп сервис – PureFTPd:

# aptitude install pure-ftpd-common pure-ftpd-mysql quota quotatool

Настроим сейчас немного файл конфигурации:

# vim /etc/default/pure-ftpd-common

Приводим строчку к виду:

[...]
VIRTUALCHROOT=true
[...]

Настроим работу нашего фтп  с использованием ssl сертефиката и с использованием протокола TLS:

# echo 1 > /etc/pure-ftpd/conf/TLS

Создим директорию в ней будет лежать наш сертификат:

# mkdir -p /etc/ssl/private/

Выполним команду для генерации сертификата:

# openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Нужно ввести код страны ( у меня это UA), город, организанизацию и мыло.

Выставим права на созданный сертификат:

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

Далее, ребутим PureFTPd:

# /etc/init.d/pure-ftpd-mysql restart

Можно ограничить пользователей, создав квоту на диск, добавив в fstab строчки. Мне это не нужно, но если необходимо используйте:

# vim /etc/fstab
UUID=5de3434-1674-4aав-b6кc-rtert460433e /               ext4    errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0       1

ПРИМЕЧАНИЕ! UUID – у вас будет отличаться от моего, по этому внимательно будьте.

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

# mount -o remount /

После чего включаем квоты на нашем жестком диске:

# quotacheck -avugm
# quotaon -avug

Выполним установку DNS сервер  такого как Bind, он  тоже будет администрироватся  через веб-интерфейс самой ISPConfig панели:

# aptitude install bind9 dnsutils

Можно установить анализатор и утилиту для статистики посещения веб-сервера, что я и сделаю:

# aptitude install vlogger webalizer awstats geoip-database

Отключим автозапуск  awstat из cron:

# vim /etc/cron.d/awstats

Приводим к такому виду (закомментируем строки):

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports (генерация отчетов):
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

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

# aptitude install build-essential autoconf automake1.9 libtool flex bison debhelper

И приступаем к созданию директории в нее будем скачивать, а после распакуем и соберем утилиту Jailkit. Для установки Jailkit выполните ряд команд:

# cd /usr/local/src 
# 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
# dpkg -i /usr/local/src/jailkit_2.17*.deb

Установим весьма полезную утилиту Fail2ban она будет следить за вашими серверами и защищая от попыток взлома (будет блокировать IP) в интернет сервисах. Сейчас я ее установлю и настрою:

# aptitude install fail2ban

Создадим конфиг с настройками утилиты fail2ban:
Я его прописал в файл, теперь его можно просто  скачать и запустить у себя:

# cd /usr/local/src
# wget http://linux-notes.org/wp-content/uploads/files/fail2ban/fail2ban.sh
#  chmod 777 fail2ban.sh

Запускаем его на выполнение:

# bash fail2ban.sh

Прочитать ( поглядеть) можно тут:

#!/bin/sh -e
echo '
[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
' > /etc/fail2ban/jail.local

echo '
[Definition]
failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] Authentication failed for user.*
ignoreregex =
' > /etc/fail2ban/filter.d/pureftpd.conf

echo '
[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P<host>\S*),.*
ignoreregex =
' > /etc/fail2ban/filter.d/dovecot-pop3imap.conf

Мы выполняя эту команду, перенаправляем вывод в определенные файлы, так же можно их открыть и вставить, но это же долго.

Перегружаем утилиту для защиты нашего сервера fail2ban:

# /etc/init.d/fail2ban restart

2. Установка ISPconfig на Debian/Ubuntu/Mint

Все необходимое я установил выше, сейчас время пришло установить саму панель управления – ISPconfig 3:

# cd /usr/local/src/
# 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

Нас просят ввести язык для установки (выбираю en -английский). Затем просят ввести каким образом будет устанавливать (expert или standart) – я выбираю expert. Далее вводим все остальное, интуитивно понятно что и как делать.

установка ISPconfig 3 на Debian

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

установка ISPconfig 3 на Debian

После чего попросят ввести пароль, отказываемся и просто нажимаем “Enter”. Не введите его, а то работать не будет, я эту ошибку совершил и каялся, пришлось все заново делать.

Желательно пропатчить ISPconfig, так как могут быть различные открытые дыры. На момент написания была самая последняя версия программы ISPconfig -3.0.5.4. Заходим на официальный сайт и скачиваем патч. Я перейду в нужную паку и скачаю его:

# cd /usr/local/ispconfig/server/scripts
# wget http://www.ispconfig.org/downloads/ispconfig_patch

выставляем права на файл и пачтим панель:

# chmod 700 ispconfig_patch
# chown root:root ispconfig_patch
# ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch
ispconfig_patch

На официальном сайте есть описание, нас интересует именно ID, у меня это 3054_dns, ввожу когда спросит меня об этом.

Ну что ребята, установка завершена, время пришло открыть ваш  браузер и перейти по ссылке:

https://your_IP_or_domain:8080

У меня это выглядит вот так:

https://192.168.116.207:8080/

Вводим логин – admin, пароль –admin. Меняем пароль администратора ISPconfig, нужно перейти Tools ->Passaword and Language.

ISPconfig, начальная настройка

Создадим нового пользователя ( клиента) который сможет управлять своими сайтами, ДНСами, SSH-ем, для этого нужно перейти client->Add new client (я не менял язык, использую английский).

 

дабавление клиента в ISPconfig добавление клиента в ISPconfig

Можно так же указать свою страну и много другой информации, ее можно заполнять по желанию. Можно еще много чего настроить и добавить, но об этом поговорим немного позже.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.