Ручне налаштування повноцінного хостинг-сервера потребує встановлення та узгодження великої кількості компонентів. Потрібно підготувати вебсервер, PHP, базу даних, пошту, DNS, FTP, брандмауер, антивірусний захист, статистику та панель керування.

Для спрощення цього процесу можна використати Bash-скрипт, розроблений для чистої системи OpenSUSE 11.4. Він автоматично встановлює основні серверні служби, вносить необхідні зміни до їхніх конфігурацій і наприкінці розгортає ISPConfig 3.

## Важливе попередження

Скрипт не слід запускати на вже налаштованому або робочому сервері. Під час виконання він змінює системні файли, конфігурацію Apache, PHP, поштових служб, FTP, брандмауера та інших компонентів.

Через це існуючі сайти або сервіси можуть перестати працювати. Використовувати сценарій потрібно лише на новій інсталяції OpenSUSE 11.4, бажано у тестовому середовищі або на окремій віртуальній машині.

Перед запуском систему потрібно оновити:

```bash
zypper update
reboot
```

Також рекомендується заздалегідь встановити правильне ім’я сервера через YaST або вручну у файлі `/etc/HOSTNAME`.

## Параметри, які потрібно змінити

Перед запуском у скрипті необхідно вказати власні значення.

Архітектура системи:

```bash
THIS_PLATFORM=x86_64
```

Для 32-бітної системи використовується значення `i586`.

Пароль адміністратора MySQL:

```bash
MYSQLROOTPASS=складний_пароль
```

Цей самий пароль потрібно ввести під час ручного запуску `mysql_secure_installation`.

Ім’я сервера та основний домен:

```bash
MY_HOSTNAME=server1
MY_DOMAIN=example.com
```

У результаті повне доменне ім’я сервера матиме вигляд:

```text
server1.example.com
```

Також потрібно перевірити адресу архіву ISPConfig 3 та посилання на додаткові пакети. Старі адреси можуть уже не працювати або містити застарілі версії програм.

## Які компоненти встановлює скрипт

Сценарій додає базові системні утиліти, компілятори та бібліотеки, необхідні для складання додаткових модулів.

Для роботи сайтів встановлюються:

* Apache;
* PHP 5 та основні розширення;
* FastCGI і SuPHP;
* phpMyAdmin;
* Webalizer та AWStats;
* модулі Rewrite, SSL, FCGI, Suexec і LogIO.

Для баз даних використовується MySQL. Скрипт запускає сервер баз даних і викликає стандартний майстер початкового захисту.

Поштова система складається з Postfix і Dovecot. Для боротьби зі спамом і небезпечними вкладеннями встановлюються SpamAssassin, Amavisd-new і ClamAV.

За обслуговування доменних зон відповідає BIND, а доступ до файлів сайтів через FTP забезпечує Pure-FTPd.

## Захист сервера

Скрипт активує SuSEfirewall2 і відкриває порти, необхідні для SSH, HTTP, пошти, FTP та панелі ISPConfig.

Також встановлюється Fail2ban. Він аналізує журнали служб і блокує IP-адреси після великої кількості невдалих спроб авторизації.

Для захищених з’єднань створюються SSL-сертифікати Apache і Postfix. Панель ISPConfig переводиться на роботу через HTTPS.

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

## Налаштування FTP і пошти

Конфігурація Pure-FTPd змінюється так, щоб користувачі могли перейменовувати файли, працювати з прихованими файлами та використовувати заданий діапазон пасивних портів.

Для Dovecot активується SSL, задаються шляхи до сертифікатів і збільшується дозволена кількість одночасних підключень одного користувача.

Окремо виправляються шляхи до сокета ClamAV, налаштування `pam_mysql` для 64-бітної системи та сумісність поштових компонентів.

## Статистика та резервні копії

Скрипт встановлює AWStats і Webalizer для формування статистики відвідувань сайтів. Apache налаштовується так, щоб коректно враховувати вхідний і вихідний трафік.

Для резервного копіювання використовується `rdiff-backup`. Створюються окремі каталоги для копій системи та дампів MySQL.

Під час резервного копіювання сценарій:

* перевіряє бази даних;
* створює окремі SQL-дампи;
* копіює файлову систему;
* виключає тимчасові й системні каталоги;
* зберігає попередні версії файлів.

Запуск резервного копіювання можна додати до cron, щоб воно виконувалося автоматично за встановленим розкладом.

## Встановлення ISPConfig 3

Після встановлення та налаштування всіх служб скрипт завантажує архів ISPConfig 3, розпаковує його та запускає консольний інсталятор.

Перед запуском до шаблонів ISPConfig вносяться зміни для OpenSUSE, Dovecot, Pure-FTPd, Apache й AWStats.

Панель отримує доступ до керування:

* сайтами та доменами;
* базами даних;
* поштовими скриньками;
* FTP-користувачами;
* DNS-зонами;
* статистикою;
* резервними копіями;
* системними журналами.

Після встановлення створюються посилання на phpMyAdmin і вебпошту SquirrelMail, а ISPConfig переводиться на захищене HTTPS-з’єднання.

## Запуск скрипту

Сценарій можна зберегти у файл:

```bash
nano /root/opensuse_ispconfig3.sh
```

Потім потрібно надати право на виконання:

```bash
chmod 700 /root/opensuse_ispconfig3.sh
```

Запуск виконується від імені root:

```bash
/root/opensuse_ispconfig3.sh
```

Під час роботи знадобиться вручну пройти захист MySQL і підтвердити окремі параметри встановлення ISPConfig.

OpenSUSE 11.4, PHP 5 та версії серверних компонентів із цієї інструкції давно застаріли. Матеріал підходить для ознайомлення з автоматизацією серверного розгортання або підтримки старої системи. Для нового сервера потрібно використовувати актуальну операційну систему, сучасні пакети та перевірений сценарій встановлення.