Servidor Perfeito · 5 min read · Nov 19, 2025

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

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 para desinstalar o sendmail:

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 do 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, eu tive que reiniciar porque, caso contrário, o MySQL se recusava a iniciar com o erro:

Falha ao emitir chamada de método: Unidade mysql.service falhou ao carregar: Arquivo ou diretório não encontrado. Veja os logs do sistema e 'systemctl status mysql.service' para mais detalhes.
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 eu instalo o pacote getmail:

zypper install getmail

Para garantir 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 garantir sua segurança, precisaremos da senha atual do usuário root. Se você acabou de instalar o MySQL e ainda não definiu a senha do root, a senha estará em branco, então 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 sem a devida autorização.

Definir senha do root? [Y/n] <– Y
Nova senha: <– yourrootsqlpassword
Reinsira a nova senha: <– yourrootsqlpassword
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 pessoa faça login no MySQL sem precisar ter uma conta de usuário criada para ela. Isso é destinado apenas para testes e para tornar a instalação um pouco 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 apenas conectar-se a partir de ‘localhost’. Isso garante que alguém não possa adivinhar a senha do root pela rede.

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

Por padrão, o MySQL vem com um banco de dados chamado ‘test’ que qualquer um pode acessar. Isso também é destinado 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 no banco de dados de teste…
    … Sucesso!

Recarregar as tabelas de privilégios garantirá que todas as alterações feitas até agora tenham efeito imediato.

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 agora deve estar segura.

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 em /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á este 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 init /etc/init.d/amavis - eu não consegui iniciar, parar e reiniciar o amavisd de forma confiável com o script init padrão:

vi /etc/init.d/amavis

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

| [...] start) # ZMI 20100428 verifique se o arquivo pid está 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 falhou?)" # 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 init, 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 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.