Servidor Perfeito · 14 min read · Jan 14, 2026

O Servidor Perfeito - OpenSUSE 11.2 x86_64 [ISPConfig 3] - Página 5

12 MyDNS

Instalamos o pacote rpm MyDNS para i386 que funciona em x86_64 também:

wget http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm  
rpm -ivh --force mydns-mysql-1.1.0-1.i386.rpm

Crie o seguinte script de inicialização do MyDNS:

vi /etc/init.d/mydns

| #! /bin/sh # Copyright (c) 1995-2004 SUSE Linux AG, Nuernberg, Germany. # Todos os direitos reservados. # # Autor: Kurt Garloff # Por favor, envie feedback para http://www.suse.de/feedback/ # # /etc/init.d/mydns # e seu link simbólico # /(usr/)sbin/rcmydns # # Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo # sob os termos da GNU General Public License conforme publicada pela # Free Software Foundation; seja a versão 2 da Licença, ou # (a seu critério) qualquer versão posterior. # # Este programa é distribuído na esperança de que seja útil, # mas SEM QUAISQUER GARANTIAS; sem mesmo a garantia implícita de # COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO. Veja a # GNU General Public License para mais detalhes. # # Você deve ter recebido uma cópia da GNU General Public License # junto com este programa; se não, escreva para a Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, EUA. # # Template de script de inicialização do sistema para algum serviço/exemplo daemon mydns # # Script de controle de serviço compatível com LSB; veja http://www.linuxbase.org/spec/ # # Nota: Este template usa funções rc_XXX definidas em /etc/rc.status em # distribuições Linux baseadas em UnitedLinux (UL). Se você quiser basear seu # script neste template e garantir que funcione em distribuições Linux compatíveis com LSB não baseadas em UL, # você deve fornecer as funções rc.status de UL ou mudar o script para funcionar sem elas. # ### BEGIN INIT INFO # Provides: mydns # Required-Start: $syslog $remote_fs # Should-Start: $time ypbind sendmail # Required-Stop: $syslog $remote_fs # Should-Stop: $time ypbind sendmail # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Short-Description: daemon mydns XYZ fornecendo ZYX # Description: Inicie mydns para permitir XY e fornecer YZ # continuado na segunda linha por '#' # deve conter informações suficientes para o editor de runlevel # dar ao administrador uma ideia do que este serviço faz e # para que é necessário... # (A Short-Description já deve ser uma boa dica.) ### END INIT INFO # # Quaisquer extensões às palavras-chave dadas acima devem ser precedidas por # X-VendorTag- (X-UnitedLinux- X-SuSE- para nós) de acordo com LSB. # # Notas sobre Required-Start/Should-Start: # * Existem duas questões diferentes que são resolvidas por Required-Start # e Should-Start # (a) Dependências rígidas: Isso é usado pelo editor de runlevel para determinar # quais serviços precisam ser iniciados para que o início deste # serviço faça sentido. Exemplo: nfsserver deve ter # Required-Start: $portmap # Além disso, os serviços requeridos são iniciados antes dos dependentes. # O editor de runlevel avisará sobre tais dependências rígidas ausentes # e sugerirá habilitar. Durante a inicialização do sistema, você pode esperar um erro, # se a dependência não for atendida. # (b) Especificando a ordem do script de inicialização, não dependências reais (rígidas). # Isso é necessário para o insserv determinar qual serviço deve ser # iniciado primeiro (e em um estágio posterior quais serviços podem ser iniciados # em paralelo). A tag Should-Start: é usada para isso. # Ela diz que, se um serviço estiver disponível, ele deve ser iniciado # antes. Se não, não se preocupe. # * Ao especificar dependências rígidas ou requisitos de ordenação, você pode # usar nomes de serviços (conteúdos de sua seção Provides:) # ou nomes pseudo que começam com um $. Os seguintes estão disponíveis # de acordo com LSB (1.1): # $local_fs todos os sistemas de arquivos locais estão montados # (a maioria dos serviços deve precisar disso!) # $remote_fs todos os sistemas de arquivos remotos estão montados # (note que /usr pode ser remoto, então # muitos serviços devem requerer isso!) # $syslog instalação do sistema de registro ativada # $network rede de baixo nível (cartão eth, ...) # $named resolução de nome de host disponível # $netdaemons todos os daemons de rede estão em execução # O pseudo serviço $netdaemons foi removido no LSB 1.2. # Por enquanto, ainda o oferecemos para compatibilidade retroativa. # Estes são novos (LSB 1.2): # $time a hora do sistema foi definida corretamente # $portmap serviço de mapeamento de porta SunRPC disponível # Extensões do UnitedLinux: # $ALL indica que um script deve ser inserido # no final # * Os serviços especificados nas tags de parada # (Required-Stop/Should-Stop) # especificam quais serviços precisam estar ainda em execução quando este serviço # for encerrado. Muitas vezes as entradas lá são apenas cópias ou um subconjunto # da respectiva tag de início. # * Should-Start/Stop agora são parte do LSB a partir da versão 2.0, # anteriormente SUSE/Unitedlinux usava X-UnitedLinux-Should-Start/-Stop. # O insserv suporta ambas as variantes. # * X-UnitedLinux-Default-Enabled: yes/no é usado no momento da instalação # (%fillup_and_insserv macro em %post de muitos RPMs) para especificar se # um script de inicialização deve ser habilitado por padrão após a instalação. # Não é usado pelo insserv. # # Nota sobre runlevels: # 0 - halt/poweroff 6 - reboot # 1 - single user 2 - multiuser sem rede exportada # 3 - multiuser com rede (modo texto) 5 - multiuser com rede e X11 (xdm) # # Nota sobre nomes de scripts: # http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/scrptnames.html # Um registro foi criado para gerenciar o namespace do script de inicialização. # http://www.lanana.org/ # Por favor, use os nomes já registrados ou registre um ou use um # prefixo de fornecedor. # Verifique se há binários ausentes (links simbólicos obsoletos não devem acontecer) # Nota: Tratamento especial de parada para conformidade com LSB MYDNS_BIN=/usr/sbin/mydns test -x $MYDNS_BIN || { echo "$mydns_BIN não instalado"; if [ "$1" = "stop" ]; then exit 0; else exit 5; fi; } # Verifique a existência do arquivo de configuração necessário e leia-o #MYDNS_CONFIG=/etc/sysconfig/mydns #test -r $MYDNS_CONFIG || { echo "$mydns_CONFIG não existente"; # if [ "$1" = "stop" ]; then exit 0; # else exit 6; fi; } # Leia a configuração #. $MYDNS_CONFIG # Fonte das funções de inicialização LSB # fornecendo start_daemon, killproc, pidofproc, # log_success_msg, log_failure_msg e log_warning_msg. # Isso atualmente não é usado por distribuições baseadas em UnitedLinux e # não é necessário para scripts de inicialização apenas para UnitedLinux. Se for usado, # as funções de rc.status não devem ser fonte ou usadas. #. /lib/lsb/init-functions # Funções de shell fonte de /etc/rc.status: # rc_check verifica e define o status rc local e geral # rc_status verifica e define o status rc local e geral # rc_status -v seja verbose no status rc local e limpe-o depois # rc_status -v -r idem e limpe tanto o status rc local quanto o geral # rc_status -s exiba "pulou" e saia com status 3 # rc_status -u exiba "não utilizado" e saia com status 3 # rc_failed define o status rc local e geral como falhado # rc_failed define o status rc local e geral como # rc_reset limpa tanto o status rc local quanto o geral # rc_exit sai de acordo com o status rc geral # rc_active verifica se um serviço está ativado por links simbólicos . /etc/rc.status # Redefinir status deste serviço rc_reset # Valores de retorno de acordo com LSB para todos os comandos, exceto status: # 0 - sucesso # 1 - erro genérico ou não especificado # 2 - argumento(s) inválido(s) ou excessivo(s) # 3 - recurso não implementado (por exemplo, "reload") # 4 - usuário não tinha privilégios suficientes # 5 - programa não está instalado # 6 - programa não está configurado # 7 - programa não está em execução # 8--199 - reservado (8--99 LSB, 100--149 distrib, 150--199 apl) # # Nota que iniciar um serviço já em execução, parar # ou reiniciar um serviço não em execução, assim como o reinício # com force-reload (caso o sinal não seja suportado) são # considerados um sucesso. case "$1" in start) echo -n "Iniciando mydns " ## Inicie o daemon com startproc(8). Se isso falhar ## o valor de retorno é definido apropriadamente por startproc. startproc $MYDNS_BIN # Lembre-se do status e seja verbose rc_status -v ;; stop) echo -n "Desligando mydns " ## Pare o daemon com killproc(8) e se isso falhar ## killproc define o valor de retorno de acordo com LSB. killproc -TERM $MYDNS_BIN # Lembre-se do status e seja verbose rc_status -v ;; try-restart|condrestart) ## Faça um reinício apenas se o serviço estava ativo antes. ## Nota: try-restart agora é parte do LSB (a partir da versão 1.9). ## RH tem um comando semelhante chamado condrestart. if test "$1" = "condrestart"; then echo "${attn} Use try-restart ${done}(LSB)${attn} em vez de condrestart ${warn}(RH)${norm}" fi $0 status if test $? = 0; then $0 restart else rc_reset # Não em execução não é uma falha. fi # Lembre-se do status e fique quieto rc_status ;; restart) ## Pare o serviço e independentemente de estar ## em execução ou não, inicie-o novamente. $0 stop $0 start # Lembre-se do status e fique quieto rc_status ;; force-reload) ## Sinalize o daemon para recarregar sua configuração. A maioria dos daemons ## faz isso no sinal 1 (SIGHUP). ## Se não suportar, reinicie. echo -n "Recarregar serviço mydns " ## se suportar: killproc -HUP $MYDNS_BIN #touch /var/run/mydns.pid rc_status -v ## Caso contrário: #$0 try-restart #rc_status ;; reload) ## Como force-reload, mas se o daemon não suportar ## sinalização, não faça nada (!) # Se suportar sinalização: echo -n "Recarregar serviço mydns " killproc -HUP $MYDNS_BIN #touch /var/run/mydns.pid rc_status -v ## Caso contrário, se não suportar recarregar: #rc_failed 3 #rc_status -v ;; status) echo -n "Verificando o serviço mydns " ## Verifique o status com checkproc(8), se o processo estiver em execução ## checkproc retornará com status de saída 0. # O valor de retorno é ligeiramente diferente para o comando de status: # 0 - serviço em execução # 1 - serviço morto, mas o arquivo pid em /var/run/ existe # 2 - serviço morto, mas o arquivo de bloqueio em /var/lock/ existe # 3 - serviço não está em execução (não utilizado) # 4 - status do serviço desconhecido :-( # 5--199 reservado (5--99 LSB, 100--149 distro, 150--199 apl.) # NOTA: checkproc retorna valores de status compatíveis com LSB. checkproc $MYDNS_BIN # NOTA: rc_status sabe que chamamos este script de inicialização com # a opção "status" e adapta suas mensagens de acordo. rc_status -v ;; probe) ## Opcional: Probar a necessidade de um recarregamento, imprimir o ## argumento para este script de inicialização que é necessário para um recarregamento. ## Nota: probe não é (ainda) parte do LSB (a partir da versão 1.9) test /etc/mydns/mydns.conf -nt /var/run/mydns.pid && echo reload ;; *) echo "Uso: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" exit 1 ;; esac rc_exit |

Torne o script de inicialização executável…

chmod 755 /etc/init.d/mydns

… e crie os links de inicialização do sistema para MyDNS:

chkconfig --add mydns

13 Instalar vlogger e Webalizer

cd /tmp
wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
tar xvfz vlogger-1.3.tar.gz
mv vlogger-1.3/vlogger /usr/sbin/
rm -rf vlogger*
yast2 -i webalizer perl-DateManip

14 Instalar fail2ban

rpm -i http://download.opensuse.org/repositories/home:/kolbma/openSUSE_11.1/x86_64/fail2ban-0.8.4-2.1.x86_64.rpm

Avisos como aviso: /var/tmp/rpm-xfer.SCm0TM: Header V3 DSA signature: NOKEY, key ID 5b00c76e podem ser ignorados.

15 Instalar jailkit

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.10.tar.gz
tar xvfz jailkit-2.10.tar.gz
cd jailkit-2.10
./configure
make
make install
cd ..
rm -rf jailkit-2.10*

16 Sincronizar o Relógio do Sistema

Se você deseja que o relógio do sistema seja sincronizado com um servidor NTP, faça o seguinte:

yast2 -i xntp

Em seguida, adicione links de inicialização do sistema para ntp e inicie o ntp:

chkconfig --add ntp  
/etc/init.d/ntp start

17 ISPConfig 3

Baixe a versão atual do ISPConfig e instale-a. O instalador do ISPConfig irá configurar todos os serviços como postfix, sasl, courier, etc. para você. Uma configuração manual, como era necessária para o ISPConfig 2, não é mais necessária.

cd /tmp
wget http://downloads.sourceforge.net/ispconfig/ISPConfig-3.0.1.6.tar.gz?use_mirror=
tar xvfz ISPConfig-3.0.1.6.tar.gz
cd ispconfig3_install/install/

Agora inicie o processo de instalação executando:

php -q install.php

server1:/tmp/ispconfig3_install/install # php -q install.php

——————————————————————————–
_ _ _
|
/
| _ \/ \ / ()
| | |\ --.| |_/ /| |/ \/___ _ __ | |_ _ __ _ | | |–. \ / | | / \| ‘ \| | |/ ` |
| |_|\
/ / | | _/\ () | | | | | | | (| |
__
/_/| __/_/|| ||| ||\, |
/ |
|_
/
——————————————————————————–

>> Configuração inicial

Sistema Operacional: openSUSE 11.2 ou compatível

A seguir, haverá algumas perguntas para a configuração primária, então tenha cuidado.
Os valores padrão estão entre [colchetes] e podem ser aceitos com .
Digite “quit” (sem as aspas) para parar o instalador.

Selecione o idioma (en,de) [en]: <– ENTER

Modo de instalação (padrão, especialista) [padrão]: <– ENTER

Nome de host totalmente qualificado (FQDN) do servidor, ex: server1.domain.tld [server1.example.com]: <– ENTER

Nome do servidor MySQL [localhost]: <– ENTER

Nome de usuário root do MySQL [root]: <– ENTER

Senha root do MySQL []: <– yourrootsqlpassword

Banco de dados MySQL a ser criado [dbispconfig]: <– ENTER

Charset MySQL [utf8]: <– ENTER

Gerando uma chave privada RSA de 2048 bits
…………………+++
…………..+++
escrevendo nova chave privada em ‘smtpd.key’
—–
Você está prestes a ser solicitado a inserir informações que serão incorporadas
na sua solicitação de certificado.
O que você está prestes a inserir é o que é chamado de Nome Distinto ou DN.
Existem vários campos, mas você pode deixar alguns em branco
Para alguns campos haverá um valor padrão,
Se você digitar ‘.’, o campo será deixado em branco.
—–
Nome do País (código de 2 letras) [AU]: <– ENTER
Nome do Estado ou Província (nome completo) [Some-State]: <– ENTER
Nome da Localidade (ex, cidade) []: <– ENTER
Nome da Organização (ex, empresa) [Internet Widgits Pty Ltd]: <– ENTER
Nome da Unidade Organizacional (ex, seção) []: <– ENTER
Nome Comum (ex, SEU nome) []: <– ENTER
Endereço de Email []: <– ENTER
Configurando Jailkit
Configurando SASL
Configurando PAM
Configurando Courier
Configurando Spamassassin
Configurando Amavisd
Configurando Getmail
Configurando Pureftpd
Configurando MyDNS
Configurando Apache
Configurando vlogger
Configurando Firewall
Instalando ISPConfig
Porta ISPConfig [8080]: <– ENTER

Configurando DBServer
Instalando Crontab
sem crontab para root
sem crontab para getmail
Reiniciando serviços …
Reiniciando serviço MySQL
Desligando serviço MySQL ..feito
Iniciando serviço MySQL ..feito
Desligando serviço de email (Postfix)..feito
Iniciando serviço de email (Postfix)..feito
Desligando serviço saslauthd..feito
Iniciando serviço saslauthd..feito
Aguardando o processo [1836] terminar
Aguardando o processo [1836] terminar
Aguardando o processo [1836] terminar
Aguardando o processo [1836] terminar
Daemon [1836] terminado por SIGTERM
Desligando o scanner de vírus (amavisd-new): ..feito
Iniciando o scanner de vírus (amavisd-new): ..feito
Desligando o daemon Clam AntiVirus ..feito
Iniciando o daemon Clam AntiVirus ..feito
Desligando o Daemon de Autenticação Courier ..feito
Iniciando o Daemon de Autenticação Courier ..feito
Desligando o Courier-IMAP ..feito
Iniciando o Courier-IMAP ..feito
Desligando o Courier-IMAP (SSL)..feito
Iniciando o Courier-IMAP (SSL) gerando certificado SSL…..feito
Desligando o Courier-POP3 ..feito
Iniciando o Courier-POP3 ..feito
Desligando o Courier-POP3 (SSL)..feito
Iniciando o Courier-POP3 (SSL) gerando certificado SSL…..feito
Sintaxe OK
Desligando httpd2 (aguardando todos os filhos terminarem) ..feito
Iniciando httpd2 (prefork) ..feito
Desligando pure-ftpd..feito
Iniciando pure-ftpd..feito
Instalação concluída.
server1:/tmp/ispconfig3_install/install # Crie um link simbólico para phpMyAdmin: ln -s /srv/www/htdocs/phpMyAdmin /usr/local/ispconfig/interface/web/phpmyadmin Limpeza do diretório /tmp: rm -rf /tmp/ispconfig3_install
rm -f /tmp/ISPConfig-3.0.1.6.tar.gz Para fazer login no painel de controle do ISPConfig, abra esta URL em seu navegador (substitua o IP para corresponder às suas configurações!): http://192.168.0.100:8080/ O login padrão é: usuário: admin
senha: admin #### 17.1 Manual do ISPConfig 3 Para aprender a usar o ISPConfig 3, recomendo fortemente baixar o Manual do ISPConfig 3. Em quase 300 páginas, ele cobre o conceito por trás do ISPConfig (administrador, revendedores, clientes), explica como instalar e atualizar o ISPConfig 3, inclui uma referência para todos os formulários e campos de formulário no ISPConfig junto com exemplos de entradas válidas, e fornece tutoriais para as tarefas mais comuns no ISPConfig 3. Também descreve como tornar seu servidor mais seguro e vem com uma seção de solução de problemas no final. ### 18 Opcional Instale um cliente de email baseado na web: rpm -i http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.2/noarch/squirrelmail-1.4.19-4.1.noarch.rpm ln -s /srv/www/htdocs/squirrelmail /usr/local/ispconfig/interface/web/webmail ### 19 Desativar AppArmor AppArmor é uma extensão de segurança do SUSE (semelhante ao SELinux do Fedora) que deve fornecer segurança estendida. Na minha opinião, você não precisa dele para configurar um sistema seguro, e geralmente causa mais problemas do que vantagens (pense nisso depois de uma semana de solução de problemas porque algum serviço não estava funcionando como esperado, e então você descobre que tudo estava ok, apenas o AppArmor estava causando o problema). Portanto, eu o desativo (isso é obrigatório se você quiser instalar o ISPConfig mais tarde). Podemos desativá-lo assim: /etc/init.d/boot.apparmor stop chkconfig -d boot.apparmor ### 20 Links - OpenSUSE: http://www.opensuse.org/ - ISPConfig: http://www.ispconfig.org/

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.