Servidor Perfeito · 8 min read · Feb 13, 2026

O Servidor Perfeito - OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3) - Página 2

Agora faça login com o nome de usuário root e a senha que você selecionou durante a instalação.

4 Configurar as Configurações de Rede

Usamos o Yast, a ferramenta de gerenciamento de sistema OpenSuSE, para reconfigurar as configurações do cartão de rede. Após a primeira inicialização, o sistema é configurado para obter o endereço IP com DHCP. Para um servidor, mudaremos para um endereço IP estático.

Execute

yast2

Selecione Dispositivos de Rede > Configurações de Rede:

Selecione seu cartão de rede e depois Editar:

Selecione Endereço IP Atribuído Estaticamente e insira o endereço IP, máscara de sub-rede e nome do host e salve as alterações selecionando Avançar:

Agora selecione Nome do Host/DNS e insira o nome do host (por exemplo, server1.example.com) e servidores de nomes (por exemplo, 192.168.1.200 e 8.8.8.8):

Agora selecione Roteamento e insira o gateway padrão e pressione OK:

Para configurar o firewall (caso você não o tenha configurado durante a instalação básica), selecione Segurança e Usuários > Firewall no Yast:

Quero instalar o ISPConfig no final deste tutorial, que vem com seu próprio firewall. É por isso que desativo o firewall padrão do OpenSUSE agora. Claro, você é livre para deixá-lo ativado e configurá-lo de acordo com suas necessidades (mas então você não deve usar nenhum outro firewall mais tarde, pois provavelmente interferirá com o firewall do OpenSUSE).

Selecione Desativar Início Automático do Firewall e Parar Firewall Agora, depois pressione Avançar:

Pressione Concluir e saia do Yast:

Depois, você deve verificar com

ifconfig

se sua configuração de rede está correta. Se não estiver (por exemplo, se eth0 estiver faltando), reinicie o sistema…

reboot

… e verifique sua configuração de rede novamente depois - agora deve estar correta.

5 Instalar Atualizações

Agora instalamos as últimas atualizações dos repositórios do openSUSE. Execute

zypper update

E então reinicie o servidor, pois você provavelmente instalou algumas atualizações do kernel também:

reboot

6 Instalar Alguns Pacotes Básicos

Execute

zypper install findutils readline 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 sudo perl-TimeDate

7 Quota Registrada

Para instalar quota, execute

zypper install quota

Edite /etc/fstab para ficar assim (adicionei, usrjquota=aquota.user, grpjquota=aquota.group, jqfmt=vfsv0 aos pontos de montagem / e /srv):

vi /etc/fstab

| /dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part1 swap swap defaults 0 0 /dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part2 / ext4 acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 1 /dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part3 /srv ext4 acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 2 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 usbfs /proc/bus/usb usbfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 |

Então execute:

mount -o remount /  
 mount -o remount /srv
quotacheck -avugm  
 quotaon -avug

Não se preocupe se você ver essas mensagens de erro - elas são normais quando você executa quotacheck pela primeira vez:

server1:~ # quotacheck -avugm  
 quotacheck: Scanning /dev/sda2 [/] done  
 quotacheck: Cannot stat old user quota file: No such file or directory  
 quotacheck: Cannot stat old group quota file: No such file or directory  
 quotacheck: Cannot stat old user quota file: No such file or directory  
 quotacheck: Cannot stat old group quota file: No such file or directory  
 quotacheck: Checked 3872 directories and 32991 files  
 quotacheck: Old file not found.  
 quotacheck: Old file not found.  
 quotacheck: Scanning /dev/sda3 [/srv] done  
 quotacheck: Cannot stat old user quota file: No such file or directory  
 quotacheck: Cannot stat old group quota file: No such file or directory  
 quotacheck: Cannot stat old user quota file: No such file or directory  
 quotacheck: Cannot stat old group quota file: No such file or directory  
 quotacheck: Checked 6 directories and 0 files  
 quotacheck: Old file not found.  
 quotacheck: Old file not found.  
 server1:~ #

8 Instalar Postfix, Dovecot, MySQL

Execute

zypper install postfix postfix-mysql mysql-community-server libmysqlclient-devel dovecot21 dovecot21-backend-mysql pwgen cron python

Se você receber a seguinte mensagem, selecione desinstalar exim:

Problema: sendmail-8.14.5-85.1.2.x86_64 entra em conflito com postfix fornecido por postfix-2.9.6-1.2.1.x86_64
Solução 1: As seguintes ações serão realizadas:
não instalar postfix-2.9.6-1.2.1.x86_64
não instalar postfix-mysql-2.9.6-1.2.1.x86_64
Solução 2: desinstalação de sendmail-8.14.5-85.1.2.x86_64

Escolha entre as soluções acima pelo número ou cancele [1/2/c] (c): <– 2

Crie o seguinte link simbólico:

ln -s /usr/lib64/dovecot/modules /usr/lib/dovecot

Neste ponto, tive que reiniciar porque, caso contrário, o MySQL se recusava a iniciar com o erro:

Failed to issue method call: Unit mysql.service failed to load: No such file or directory. See system logs and 'systemctl status mysql.service' for details.
reboot

Inicie o MySQL, Postfix e Dovecot e habilite os serviços para serem iniciados na inicialização.

systemctl enable mysql.service  
 systemctl start mysql.service
systemctl enable postfix.service  
 systemctl start postfix.service
systemctl enable dovecot.service  
 systemctl start dovecot.service

Agora instalo o pacote getmail:

zypper install getmail

Para proteger a instalação do MySQL, execute:

mysql_secure_installation

Agora você será solicitado a responder várias perguntas:

server1:~ # mysql_secure_installation

NOTA: EXECUTAR TODAS AS PARTES DESTE SCRIPT É RECOMENDADO PARA TODOS OS SERVIDORES MySQL
EM USO EM PRODUÇÃO! POR FAVOR, LEIA CADA ETAPA CUIDADOSAMENTE!

Para fazer login no MySQL e protegê-lo, precisaremos da
senha atual do usuário root. Se você acabou de
instalar o MySQL e não definiu a senha do root ainda,
a senha estará em branco,
portanto você deve apenas pressionar enter aqui.

Digite a senha atual para root (pressione enter para nenhum): <– ENTER
OK, senha usada com sucesso, prosseguindo…

Definir a senha do root garante que
ninguém possa fazer login no usuário root do MySQL
sans a autorização adequada.

Definir senha do root? [Y/n] <– Y
Nova senha: <– sua senha root do sql
Reinsira a nova senha: <– sua senha root do sql
Senha atualizada com sucesso!
Recarregando tabelas de privilégios..
… Sucesso!

Por padrão, uma instalação do MySQL
tem um usuário anônimo,
permitindo que qualquer um
faça login no MySQL
sans ter que ter uma conta de usuário
criada para eles.
Isso é destinado apenas
para testes,
e para tornar a instalação
mais suave.
Você deve removê-los
antes de entrar em um
ambiente de produção.

Remover usuários anônimos? [Y/n] <– Y
… Sucesso!

Normalmente, o root
deve ser permitido
a conectar-se apenas
de ‘localhost’.
Isso garante que
ninguém possa adivinhar
a senha do root
do rede.

Desabilitar login remoto do root? [Y/n] <– Y
… Sucesso!

Por padrão, o MySQL
vem com um banco de dados
chamado ‘teste’
que qualquer um pode
acessar.
Isso também é
intencionado apenas
para testes,
e deve ser removido
antes de entrar em um
ambiente de produção.

Remover banco de dados de teste
e acesso a ele? [Y/n] <– Y

  • Removendo banco de dados de teste…
    … Sucesso!
  • Removendo privilégios
    sobre o banco de dados de teste…
    … Sucesso!

Recarregar as tabelas de privilégios
garantirá que todas
as alterações feitas
fiquem efetivas
imediatamente.

Recarregar tabelas de privilégios agora? [Y/n] <– Y
… Sucesso!

Limpando…

Tudo pronto! Se você completou
todas as etapas acima,
sua instalação do MySQL
deve agora estar
protegida.

Obrigado por usar o MySQL!

server1:~ #

Agora sua configuração do MySQL deve estar segura.

9 Amavisd-new, Spamassassin E Clamav

Instale Amavisd-new, Spamassassin e o antivírus Clamav. Execute

zypper install amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql

Abra /etc/amavisd.conf…

vi /etc/amavisd.conf

… e adicione a linha $myhostname com seu nome de host correto abaixo da linha $mydomain:

| [...] $mydomain = 'example.com'; # um padrão conveniente para outras configurações $myhostname = "server1.$mydomain"; [...] |

Então crie um link simbólico de /var/run/clamav/clamd para /var/lib/clamav/clamd-socket:

mkdir -p /var/run/clamav  
 ln -s /var/lib/clamav/clamd-socket /var/run/clamav/clamd

OpenSUSE 12.3 tem um diretório /run para armazenar dados de tempo de execução. /run agora é um tmpfs, e /var/run agora está montado como bind para /run a partir do tmpfs, e portanto esvaziado na reinicialização.

Isso significa que, após uma reinicialização, o diretório /var/run/clamav que acabamos de criar não existirá mais, e portanto o clamd falhará ao iniciar. Portanto, criamos o arquivo /etc/tmpfiles.d/clamav.conf agora que criará esse diretório na inicialização do sistema (veja http://0pointer.de/public/systemd-man/tmpfiles.d.html para mais detalhes):

vi /etc/tmpfiles.d/clamav.conf

| D /var/run/clamav 0755 root root - |

Antes de iniciarmos o amavisd e o clamd, devemos editar o script de inicialização /etc/init.d/amavis - eu não consegui iniciar, parar e reiniciar o amavisd de forma confiável com o script de inicialização padrão:

vi /etc/init.d/amavis

Comente as seguintes linhas na seção de início e parada:

| [...] start) # ZMI 20100428 verificar arquivo pid obsoleto #if test -f $AMAVIS_PID ; then # checkproc -p $AMAVIS_PID amavisd # if test $? -ge 1 ; then # # arquivo pid está obsoleto, remova-o # echo -n "(arquivo pid obsoleto do amavisd $AMAVIS_PID encontrado, removendo. O amavisd travou?)" # rm -f $AMAVIS_PID # fi #fi echo -n "Iniciando o scanner de vírus (amavisd-new): " $AMAVISD_BIN start #if ! checkproc amavisd; then # rc_failed 7 #fi rc_status -v #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then # rc_reset # echo -n "Iniciando amavis-milter:" # startproc -u vscan $AMAVIS_MILTER_BIN -p $AMAVIS_MILTER_SOCK > /dev/null 2>&1 # rc_status -v #fi ;; stop) echo -n "Desligando o scanner de vírus (amavisd-new): " #if checkproc amavisd; then # rc_reset $AMAVISD_BIN stop #else # rc_reset #fi rc_status -v #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then # rc_reset # echo -n "Desligando amavis-milter: " # killproc -TERM $AMAVIS_MILTER_BIN # rc_status -v #fi ;; [...] |

Como mudamos o script de inicialização, devemos executar

systemctl --system daemon-reload

agora.

Para iniciar o clamav, precisamos baixar o banco de dados e prosseguir com o comando

freshclam

Nota: Leva muito tempo para baixar o banco de dados, você é aconselhado a não interromper e não parar o serviço de atualização do freshclam no meio.

Para habilitar os serviços, execute:

systemctl enable amavis.service  
 systemctl enable clamd.service  
 systemctl start amavis.service  
 systemctl start clamd.service
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.