Servidor Perfeito · 5 min read · Jan 14, 2026
Script Para Configuração Automática de um Servidor Perfeito no OpenSUSE 11.3 e Instalação do ISPConfig 3
Script Para Configuração Automática de um Servidor Perfeito no OpenSUSE 11.3 e Instalação do ISPConfig 3
Autor: George Yohng (georgesc#oss3d.com)
Versão do script: 2.1
Última atualização: 6 de junho de 2011
Aqui está um pequeno script que automatiza a tarefa de configurar um Servidor Perfeito - OpenSUSE 11.3 x86_64 [ISPConfig 3], e no final também instala o ISPConfig 3.
Por favor, note: não execute este script em um servidor já funcionando, pois este script pode sobrescrever arquivos de configuração e quebrar o sistema em funcionamento. Ele é destinado apenas para ser usado em uma instalação nova do OpenSUSE 11.3.
Se você estiver instalando no OpenSUSE 11.2, por favor, certifique-se de usar outra versão deste script (também disponível em www.howtoforge.com).
Há algumas coisas faltando no tutorial, conforme eu o encontrei. Eu fiz um script, baseado no tutorial, que prepara um sistema, e que contém várias etapas que, se não feitas, deixam o sistema incompleto de alguma forma.
Adições notáveis:
- configuração do fail2ban
- SuSEfirewall2 habilitado
- alteração na configuração do Pure-ftpd (permitir renomeações, alterar portas passivas e permissões)
- geração de certificado do Postfix
- geração de certificado SSL do Apache e mudança do ISPConfig para HTTPS
- correção da configuração do NameVirtualHost do apache com OpenSUSE (importante para o Apache reconhecer múltiplos domínios do ISPConfig)
- configuração do rdiff-backup com cron
- correção da configuração do dovecot para habilitar SSL e suportar compatibilidade com courier
- correção do pam_mysql para funcionar em sistemas de 64 bits
- correção do amavis para encontrar o socket clamd
- instalação do eAccelerator
- correção do caminho de erros personalizados do apache
- instalação e configuração do awstats
- configuração do apache e awstats para usar mod_logio para medição correta de largura de banda
O script é imperfeito no fato de que requer entrada manual duas vezes - quando mysql_secure_install é executado, e quando ispconfig_update_svn é executado. (Eu uso svn, porque a última versão SVN do ISPConfig parece muito mais bonita, mas pode-se digitar stable também - em sistemas de produção, você deve usar stable!)
Faça
zypper updatee
rebootantes de executar este script.
Também é melhor mudar o nome do host (arquivo HOSTNAME) manualmente com yast2 antes de executar este script, para que o OpenSUSE coloque um nome apropriado na configuração do Postfix.
Este script requer duas ações manuais:
Primeiro - quando mysql_secure_install é executado.
Segundo - para atualização do ISPConfig3, se a atualização SVN for escolhida, pode ser necessário dizer ‘y’ para habilitar SSL, enquanto para todas as outras opções - pode-se escolher um valor padrão apenas pressionando ENTER.
Você deve alterar as seguintes variáveis no script antes de executá-lo:
THIS_PLATFORM: Ou x86_64 ou i586.
MYSQLROOTPASS: Por favor, altere MYSQLROOTPASS, e tenha certeza de digitá-lo exatamente durante a instalação do mysql_secure_install.
MY_HOSTNAME, MY_DOMAIN: Altere isso para o nome do seu servidor. Por padrão, está configurado para server1.mydomain.com. Se seu site hospeda um domínio completo, como domain.com, ainda deixe algo para MY_HOSTNAME. server1 ou host é um bom nome.
ISPCONFIG_TAR_GZ: Certifique-se de que ISPCONFIG_TAR_GZ contém a versão mais recente disponível do ISPConfig 3. Cuidado, que o encanamento automático para responder a todas as perguntas está configurado para funcionar com ISPConfig 3.0.3.3, e você pode precisar alterar essa parte do script, se o ISPConfig for de uma versão posterior.
Salve o script no seu servidor (por exemplo, /root/opensuse_ispconfig3.sh):
vi /root/opensuse_ispconfig3.sh| ``` #!/bin/sh
# Script do Servidor Perfeito OpenSUSE 11.3 ISPConfig por George Yohng (georgesc#oss3d.com)
# Versão do Script 2.1
# Faça zypper update e reinicie antes de executar este script
# Também é melhor mudar o nome do host manualmente com yast2 antes de executar este script.
# Este script requer duas ações manuais.
# Primeiro - quando mysql_secure_install está sendo executado. Deve-se digitar uma nova senha mysql, a mesma que aqui
# Segundo - para atualização do ISPConfig3. Deve-se digitar ‘svn’ quando o tipo de atualização for perguntado
# Para ambos os scripts, todas as outras opções são padrão, pode-se apenas pressionar ENTER.
# Além disso, por favor, altere MYSQLROOTPASS abaixo, e tenha certeza de digitá-lo exatamente
# durante a instalação do mysql_secure_install.
# Importante: Ao definir uma entrada MX, aponte para mail.yourdomain.com em vez de
# apenas yourdomain.com, e crie uma entrada CNAME para mail. Caso contrário, não parece
# funcionar de alguma forma.
# A plataforma é x86_64 ou i586
THIS_PLATFORM=x86_64
MYSQLROOTPASS=87h4eq2jr2
# Altere isso para o nome do seu servidor. Por padrão, está configurado para server1.mydomain.com
# Se seu site hospeda um domínio completo, como domain.com, ainda deixe
# algo para MY_HOSTNAME. ‘server1’ ou ‘host’ é um bom nome.
MY_HOSTNAME=server1
MY_DOMAIN=mydomain.com
# Descomente para usar a versão SVN do ISP config, e para executar a atualização uma vez que a instalação esteja concluída
#ISPCONFIG_SVN=yes
# Os pacotes podem ter sido atualizados, portanto, verifique também os locais RPM e TARGZ abaixo,
# e de preferência use as versões mais recentes de tudo.
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
# Desabilitar apparmor
/etc/init.d/boot.apparmor stop
chkconfig -d boot.apparmor
# Instalar SuSEfirewall
yast2 -i SuSEfirewall2 iptables
# Permitir portas através do firewall
SuSEfirewall2 open EXT TCP 22
SuSEfirewall2 open EXT TCP 21 80 8080 25 143 465 585 993 30000:30500
SuSEfirewall2
# Desligar login X (verifique!)
chkconfig –del xdm
rcxdm stop
# Quota
yast2 -i quota
touch /aquota.user /aquota.group
chmod 600 /aquota.
touch /srv/aquota.user /srv/aquota.group
chmod 600 /srv/aquota.
# TODO: alterar fstab aqui
# Ignorar erros dos comandos abaixo
mount -o remount /
mount -o remount /srv
mount -o remount /home
quotacheck -avugm
quotaon -avug
# Pacotes básicos
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
# Nome do host
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, etc
yast2 -i spamassassin amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql
sa-update
# TODO: alterar /etc/amavisd.conf
#$mydomain = “$MY_DOMAIN”; # um padrão conveniente para outras configurações
#$myhostname = “$MY_HOSTNAME”;
sed -i ‘s/ $mydomain = ‘\
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.