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
yast2Selecione 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
ifconfigse 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 updateE então reinicie o servidor, pois você provavelmente instalou algumas atualizações do kernel também:
reboot6 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-TimeDate7 Quota Registrada
Para instalar quota, execute
zypper install quotaEdite /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 /srvquotacheck -avugm
quotaon -avugNã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 pythonSe 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/dovecotNeste 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.rebootInicie o MySQL, Postfix e Dovecot e habilite os serviços para serem iniciados na inicialização.
systemctl enable mysql.service
systemctl start mysql.servicesystemctl enable postfix.service
systemctl start postfix.servicesystemctl enable dovecot.service
systemctl start dovecot.serviceAgora instalo o pacote getmail:
zypper install getmailPara proteger a instalação do MySQL, execute:
mysql_secure_installationAgora 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-mysqlAbra /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/clamdOpenSUSE 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/amavisComente 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-reloadagora.
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.serviceReceba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.