Скрипты · 5 min read · Jan 14, 2026
Скрипт для автоматической настройки идеального сервера на OpenSUSE 11.4 и установки ISPConfig 3
Скрипт для автоматической настройки идеального сервера на OpenSUSE 11.4 и установки ISPConfig 3
Автор: George Yohng (georgesc#oss3d.com)
Версия скрипта: 2.2
Последнее обновление: 26 октября 2011
Вот небольшой скрипт, который автоматизирует задачу настройки идеального сервера - OpenSUSE 11.4 x86_64 [ISPConfig 3], и в конце он также устанавливает ISPConfig 3.
Пожалуйста, обратите внимание: не выполняйте этот скрипт на уже работающем сервере, так как этот скрипт может перезаписать файлы конфигурации и сломать работающую систему. Он предназначен только для использования на свежей установке OpenSUSE 11.4.
Если вы устанавливаете на OpenSUSE 11.2 или OpenSUSE 11.3, пожалуйста, убедитесь, что вы используете другую версию этого скрипта (также доступна на 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.4 от George Yohng (georgesc#oss3d.com)
# Версия скрипта 2.2
# Выполните 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-версию ISP config и запустить обновление после завершения установки
#ISPCONFIG_SVN=yes
# Пакеты могли быть обновлены, поэтому также проверьте RPM и TARGZ расположения ниже,
# и желательно используйте последние версии всего.
GETMAIL_RPM=http://download.opensuse.org/repositories/server:/mail/openSUSE_11.4/noarch/getmail-4.20.4-11.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.4/$THIS_PLATFORM/suphp-0.7.1-3.2.$THIS_PLATFORM.rpm
AWSTATS_RPM=http://download.opensuse.org/repositories/network:/utilities/openSUSE_11.4/noarch/awstats-7.0-14.1.noarch.rpm
SQUIRRELMAIL_RPM=http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.4/noarch/squirrelmail-1.4.22-1.1.noarch.rpm
JAILKIT_TARGZ=http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
PHPMYADMIN_RPM=http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.4/noarch/phpMyAdmin-3.4.3.2-15.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
#EACCELERATOR_TARGZ=http://www.debiantutorials.com/static/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
zypper -n install -l 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
# Квота
zypper -n install -l 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
# Базовые пакеты
zypper -n install -l mc
zypper -n install -l GeoIP libGeoIP-devel libGeoIP1
geоip-fetch
zypper -n install -l findutils libreadline6 compat-readline4 readline-devel libgcc45 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
zypper -n install -l postfix postfix-mysql mysql-community-server mysql-community-server-client mysql-community-server-tools
zypper -n install -l python cron
zypper -n install -l libmysqlclient-devel pwgen
zypper -n install -l dovecot12 dovecot12-backend-mysql
zypper -n install -l 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
zypper -n install -l pam-devel pam-32bit pam-devel-32bit pam-modules-32bit
fi
if [ “$THIS_PLATFORM” == “i586” ]; then
zypper -n install -l 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, и т.д.
zypper -n install -l spamassassin amavisd-new clamav clamav-db zoo unzip bzip2 unarj perl-DBD-mysql
zypper -n install -l unrar
sa-update
# TODO: изменить /etc/amavisd.conf
#$mydomain = “$MY_DOMAIN”; # удобный по умолчанию для других настроек
#$myhostname = “$MY_HOSTNAME”;
sed -i ‘s/ $mydomain = ‘\
Get new posts in your inbox
No spam. Unsubscribe anytime.