Серверы · 5 min read · Jan 14, 2026

Скрипт для автоматической настройки идеального сервера на OpenSUSE 11.3 и установки ISPConfig 3

Скрипт для автоматической настройки идеального сервера на OpenSUSE 11.3 и установки ISPConfig 3

Автор: George Yohng (georgesc#oss3d.com)
Версия скрипта: 2.1
Последнее обновление: 6 июня 2011

Вот небольшой скрипт, который автоматизирует задачу настройки идеального сервера - OpenSUSE 11.3 x86_64 [ISPConfig 3], и в конце он также устанавливает ISPConfig 3.

Пожалуйста, обратите внимание: не выполняйте этот скрипт на уже работающем сервере, так как этот скрипт может перезаписать конфигурационные файлы и нарушить работу системы. Он предназначен только для использования на свежей установке OpenSUSE 11.3.

Если вы устанавливаете на OpenSUSE 11.2, пожалуйста, убедитесь, что вы используете другую версию этого скрипта (также доступна на www.howtoforge.com).

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

Значительные дополнения:

  • конфигурация fail2ban
  • включен SuSEfirewall2
  • изменение конфигурации Pure-ftpd (разрешить переименования, изменить пассивные порты и разрешения)
  • генерация сертификата Postfix
  • генерация SSL сертификата Apache и переключение ISPConfig на HTTPS
  • исправление конфигурации NameVirtualHost apache с OpenSUSE (важно для Apache, чтобы распознавать несколько доменов из ISPConfig)
  • настройка rdiff-backup с cron
  • исправленная конфигурация dovecot для включения SSL и поддержки совместимости с courier
  • исправленный pam_mysql для работы на 64-битных системах
  • исправленный amavis для поиска сокета clamd
  • установлен eAccelerator
  • исправлен путь к пользовательским ошибкам apache
  • установка и настройка awstats
  • настройка apache и awstats для использования mod_logio для правильного измерения пропускной способности

Скрипт несовершенен в том, что требует ручного ввода дважды - когда выполняется mysql_secure_install, и когда выполняется ispconfig_update_svn. (Я использую svn, потому что последняя версия ISPConfig SVN выглядит намного лучше, но можно ввести stable - на производственных системах вы должны использовать stable!)

Сделайте

zypper update

и

reboot

перед запуском этого скрипта.

Также лучше изменить имя хоста (файл HOSTNAME) вручную с помощью yast2 перед запуском этого скрипта, чтобы OpenSUSE вставил правильное имя в конфигурацию Postfix.

Этот скрипт требует двух ручных действий:

Первое - когда выполняется mysql_secure_install.
Второе - для обновления ISPConfig3, если выбрано обновление SVN, может потребоваться ввести ‘y’ для включения SSL, в то время как для всех других опций - можно выбрать значение по умолчанию, просто нажав ENTER.

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

THIS_PLATFORM: Либо x86_64, либо i586.

MYSQLROOTPASS: Пожалуйста, измените MYSQLROOTPASS и убедитесь, что вы вводите его дословно во время установки mysql_secure_install.

MY_HOSTNAME, MY_DOMAIN: Измените это на имя вашего сервера. По умолчанию оно настроено на server1.mydomain.com. Если ваш веб-сайт хостит полный домен, такой как domain.com, все равно оставьте что-то для MY_HOSTNAME. server1 или host - хорошее имя.

ISPCONFIG_TAR_GZ: Убедитесь, что ISPCONFIG_TAR_GZ содержит последнюю доступную версию ISPConfig 3. Будьте осторожны, что автоматическая подача для ответа на все вопросы настроена для работы с ISPConfig 3.0.3.3, и вам может потребоваться изменить эту часть скрипта, если ISPConfig более поздней версии.

Сохраните скрипт на вашем сервере (например, /root/opensuse_ispconfig3.sh):

vi /root/opensuse_ispconfig3.sh

| ``` #!/bin/sh

# Скрипт идеального сервера ISPConfig для OpenSUSE 11.3 от George Yohng (georgesc#oss3d.com)
# Версия скрипта 2.1

# Выполните zypper update и перезагрузите перед запуском этого скрипта

# Также лучше изменить имя хоста вручную с помощью yast2 перед запуском этого скрипта.

# Этот скрипт требует двух ручных действий.

# Первое - когда выполняется mysql_secure_install. Необходимо ввести новый пароль mysql, такой же, как здесь
# Второе - для обновления ISPConfig3. Необходимо ввести ‘svn’, когда запрашивается тип обновления
# Для обоих скриптов все остальные опции по умолчанию, можно просто нажать ENTER.


# Также, пожалуйста, измените MYSQLROOTPASS ниже и убедитесь, что вы вводите его дословно
# во время установки mysql_secure_install.

# Важно: При установке MX-записи указывайте ее на mail.yourdomain.com, а не
# просто на yourdomain.com, и создайте запись CNAME для mail. В противном случае это не
# будет работать каким-то образом.

# Платформа - x86_64 или i586

THIS_PLATFORM=x86_64

MYSQLROOTPASS=87h4eq2jr2

# Измените это на имя вашего сервера. По умолчанию оно настроено на server1.mydomain.com

# Если ваш веб-сайт хостит полный домен, такой как domain.com, все равно оставьте
# что-то для MY_HOSTNAME. ‘server1’ или ‘host’ - хорошее имя.

MY_HOSTNAME=server1
MY_DOMAIN=mydomain.com

# Раскомментируйте, чтобы использовать SVN-версию ISPConfig и запустить обновление после завершения установки
#ISPCONFIG_SVN=yes

# Пакеты могли быть обновлены, поэтому также проверьте местоположения RPM и TARGZ ниже,
# и желательно используйте последние версии всего.

GETMAIL_RPM=http://download.opensuse.org/repositories/server:/mail/openSUSE_11.3/noarch/getmail-4.20.0-1.1.noarch.rpm
PAM_MYSQL_TARGZ=http://heanet.dl.sourceforge.net/sourceforge/pam-mysql/pam_mysql-0.7RC1.tar.gz
SUPHP_RPM=http://download.opensuse.org/repositories/server:/php/openSUSE_11.3/$THIS_PLATFORM/suphp-0.7.1-3.1.$THIS_PLATFORM.rpm

AWSTATS_RPM=http://download.opensuse.org/repositories/network:/utilities/openSUSE_11.3/noarch/awstats-6.95-3.1.noarch.rpm

SQUIRRELMAIL_RPM=http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.3/noarch/squirrelmail-1.4.21-1.1.noarch.rpm

JAILKIT_TARGZ=http://olivier.sessink.nl/jailkit/jailkit-2.12.tar.gz

PHPMYADMIN_RPM=http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.3/noarch/phpMyAdmin-3.3.4-1.1.noarch.rpm
VLOGGER_TARGZ=http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz

RDIFF_BACKUP_TARGZ=http://savannah.nongnu.org/download/rdiff-backup/rdiff-backup-1.2.8.tar.gz

EACCELERATOR_TARGZ=http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2

ISPCONFIG_TAR_GZ=http://downloads.sourceforge.net/ispconfig/ISPConfig-3.0.3.3.tar.gz?use_mirror=

MY_FULLHOSTNAME=$MY_HOSTNAME.$MY_DOMAIN

# Отключить apparmor
/etc/init.d/boot.apparmor stop
chkconfig -d boot.apparmor

# Установить SuSEfirewall
yast2 -i SuSEfirewall2 iptables

# Разрешить порты через брандмауэр
SuSEfirewall2 open EXT TCP 22
SuSEfirewall2 open EXT TCP 21 80 8080 25 143 465 585 993 30000:30500
SuSEfirewall2

# Выключить X вход (проверьте!)
chkconfig –del xdm
rcxdm stop

# Квота
yast2 -i quota

touch /aquota.user /aquota.group
chmod 600 /aquota.
touch /srv/aquota.user /srv/aquota.group
chmod 600 /srv/aquota.


# TODO: изменить fstab здесь
# Игнорировать ошибки от нижеприведенных команд

mount -o remount /
mount -o remount /srv
mount -o remount /home

quotacheck -avugm
quotaon -avug

# Базовые пакеты
yast2 -i mc

yast2 -i GeoIP libGeoIP-devel libGeoIP1

geoip-fetch

yast2 -i findutils readline libgcc glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ subversion make vim telnet cron iptables iputils man man-pages nano pico

# Имя хоста
echo $MY_FULLHOSTNAME > /etc/HOSTNAME
echo 127.0.0.2 $MY_FULLHOSTNAME $MY_HOSTNAME >> /etc/hosts

export HOST=$MY_FULLHOSTNAME
export HOSTNAME=$MY_FULLHOSTNAME

SuSEconfig

# Postfix, Dovecot, MySQL
yast2 -i postfix postfix-mysql mysql-community-server mysql-community-server-client mysql-community-server-tools
yast2 -i python cron
yast2 -i libmysqlclient-devel pwgen
yast2 -i dovecot12 dovecot12-backend-mysql
yast2 -i bind

chkconfig –add mysql
chkconfig –add postfix
chkconfig –add dovecot
chkconfig –add named

test -d /lib64 && ln -s /usr/lib64/dovecot/modules /usr/lib/dovecot

/etc/init.d/mysql start
/etc/init.d/postfix start
/etc/init.d/dovecot start
/etc/init.d/named start

# getmail

cd /tmp
rpm -i $GETMAIL_RPM

# pam

if [ “$THIS_PLATFORM” == “x86_64” ]; then
yast2 -i pam-devel pam-32bit pam-devel-32bit pam-modules-32bit
fi

if [ “$THIS_PLATFORM” == “i586” ]; then
yast2 -i pam-devel pam pam-modules
fi


# pam_mysql

cd /tmp
wget -c $PAM_MYSQL_TARGZ
tar xvfz pam_mysql-.tar.gz
rm -rf pam_mysql-
.tar.gz
cd pam_mysql-
./configure
make
make install
cd /tmp
rm -rf /tmp/pam_mysql-


test -d /lib64 && cp /lib/security/pam_mysql* /lib64/security

# mysql_secure_installation

mysql_secure_installation

#(echo Y; echo $MYSQLROOTPASS; echo $MYSQLROOTPASS; echo; echo; echo; echo; echo; echo; echo; echo; echo; echo; echo; echo; echo; echo; )

# amavis, spam asassin, и т.д.
yast2 -i spamassassin amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql

sa-update

# TODO: изменить /etc/amavisd.conf

#$mydomain = “$MY_DOMAIN”; # удобный по умолчанию для других настроек
#$myhostname = “$MY_HOSTNAME”;

sed -i ‘s/ $mydomain = ‘\

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.