Tutorial Debian 8 x64 com ISPConfig e NginX: Deploy do Linux

Para prosseguir em nosso tutorial será necessário um sistema operacional Linux. Faremos o deploy do Linux Debian 8 x64 num VPS de baixo custo.

Os meus tutoriais podem ser usados para configurar o ISPConfig em qualquer empresa de hosting, mas eu indico a Digital Ocean onde tenho todos os meus servidores e sites desde Outubro de 2014 sem sofrer quedas ou interrupções de serviço.

Então antes de fazer o deploy do Debian assine o serviço pelo meu link de indicação que você irá ganhar $10 de bônus. É só ativar a conta depositando $5 que o seu saldo será $15, sendo suficiente para 3 meses de hospedagem.

Assine o serviço por este link e ganhe um Bônus de $10

*Se você não possuir cartão de crédito internacional e quiser uma alternativa veja este:
Tutorial de como carregar créditos no Paypal com boleto bancário.

Instalando o Linux Debian 8 em um servidor VPS
Criando um servidor virtual

Na Digital Ocean os servidores virtuais são conhecidos como Droplets. Clique em “Create Droplet” e selecione as opções conforme exemplo abaixo:

» Choose an Image: <– Debian 8.x x64 (escolha a última versão disponível, 8.x indica que você deve instalar a última revisão de Debian 8, exemplo 8,7 ou 8.8 etc..)

* A Digital Ocean já fez o upgrade do kernel no Debian para a versão com o fix do exploit Dirty COW. Veja neste link como verificar.

» Choose a Size: <– $5/mo (mesmo que você pretenda instalar em um VPS mais robusto a Digital Ocean permite fazer um “resize” aumentando a capacidade do servidor a qualquer momento. *A Digital Ocean cobra por hora, o valor que aparece é informativo para o mês todo)

» Choose a Datacenter Region: <– NYC1 (NYC1 e SFO2 têm opção para Block Storage)

» Select Additional Options: <– Backups (Opcional porém recomendável. Acionando esta opção um backup automático semanal será criado de todo o seu VPS. O custo para o serviço é de 20% o valor do Droplet. Também será  cobrado por hora)

» Add you SSH Keys: <– Não usaremos esta opção

» How Many Droplets: <– 1 Droplet

» Choose a Hostname: <– cp.seu_dominio.com.br (Substitua seu_dominio.com.br pelo nome de um domínio válido e que exista (não precisa estar propagado ainda, mas deverá ser quando estiver em produção), e escreva um prefixo ao nome como o “cp” que utilizamos no exemplo. *A Digital Ocean finalmente nos escutou e mudou essa opção para maior clareza. Este será o seu Hostname FQDN, se quiser que os seus emails sejam entregues na caixa de entrada siga nosso exemplo. No meu servidor criei este nome como: debian8.fatorbinario.com (lembrando que fatorbinario.com é um domínio válido e que existe. Substitua pelo seu domínio válido aqui))

» Clique no botão Create

* Caso erre algum parâmetro e queira refazer os passos pode-se deletar o Droplet e criá-lo novamente quantas vezes forem necessárias.

Acessando o VPS pela primeira vez

Após criar o Droplet um email será enviado para você com as informações de acesso ao servidor. Será necessário e OBRIGATÓRIO a mudança da senha do superusuário root.

*Para acessar o servidor e os arquivos remotos eu indico o WinSCP com PuTTY e Notepad++ que ensino como integrar e usar neste tutorial.

• Acesse o servidor pelo endereço IP enviado ao email. Utilize uma ferramenta SSH como o PuTTY (só será possível acessar com o WinSCP via SFTP após trocar a senha do root. Mas se você seguiu o tutorial e integrou o PuTTY ao WinSCP então basta criar uma conexão e clicar ao lado do botão “Login” e escolher “Open in PuTTY”)

• O usuário para acesso será o root e a senha alterada desta maneira:

* Ao acessar o endereço IP pela primeira vez, seja via PuTTY ou WinSCP, uma mensagem de alerta será exibida solicitando a confirmação da chave de criptografia, clique em “Sim

» Password: <– Digite a senha enviada ao seu email (pode-se colar a senha no terminal SSH clicando com o botão direito do mouse e teclando ENTER)

» (current) UNIX password: <– DIGITE A MESMA SENHA ENVIADA PELO EMAIL

» Enter  new UNIX password: <– Digite uma nova senha

» Retype new UNIX password: <– Repita a nova senha

Índice do Tutorial:

Gestão em infraestrutura de Servidores Cloud VPS e Dedicados. Planos mensais acessíveis e consultoria diferenciada para agências de marketing.
Envie um email para [email protected] e solicite uma análise gratuita!

  • Virtual

    Como disse em outro comentário, sou iniciante e gostei a forma que você escreveu o tutorial. To lendo todo ele para identificar possíveis dúvidas e então fazer todo de uma vez. Você pode me explicar ou indicar um conteúdo para entender o fqdn? A principal dúvida é como e onde ele é utilizado. Meu objetivo é hospedar mais de um site, esse fqdn vai aparecer em algum lugar dos domínios? Onde ele é utilizado?

  • FQDN é uma denominação, significa Fully Qualified Domain Name (em português:”Nome de Domínio Totalmente Qualificado”).

    Isso quer dizer que você precisa escrever o nome de domínio com a mesma estrutura de um domínio comum, contendo o TLD o nome de domínio e um subdomínio. Isso não pode ser “inventado” pois será usado para qualificar o servidor como válido para as normativas que regulam a internet.

    Nos servidores configurados pelos meus tutoriais isso será muito usado principalmente no servidor de email, e esse nome FQDN do servidor aparecerá nos cabeçalhos de emails enviados. Esse cabeçalho será verificado por outra normativa chamada Return Path, ou seja, para receber o email no outro lado sites como Hotmail e Gmail tentam atestar se o nome do servidor (neste caso o FQDN) existe e se ele tem um IP de retorno. Eles fazem isso para filtrar SPAM.

    Então, além de ser FQDN é muito importante que o nome do servidor seja um subdomínio de um domínio que exista e que tenha uma tabela DNS configurada e ativa para que o Return Path encontre o IP do servidor e valide o email.

    *Quando você cria o nome do servidor SEMPRE use um subdomínio, exemplo debian.meudominio.com.br. Já houve casos que a pessoa criou o servidor com o nome do domínio sem o sub e teve vários problemas de acesso depois.

    *O ISPConfig que usamos como painel nem deixa modificar os valores de configuração do servidor caso você não tenha criado ele como FQDN.

  • Virtual

    Obrigado pela explicação. Eu vi que ele é usado em varias etapas.

    Só para deixar claro a aplicação dele, tendo como base que vou hospedar mais de um site no servidor:

    Sendo que será criado somente um FQDN por servidor e não por domínio, conclui que se eu tiver o FQDN configurado como debian.meudominio1.com.br e enviar um e-mail do [email protected], aparecerá no cabeçalho o FQDN do servidor debian.meudominio1.com.br . É isso? Um exemplo seria o gmail quando diz “Fulado de tal por subdom.dominio.tld” ?

    Sabe me dizer se o FQDN pode aparecer em mais algum lugar dos outros domínios? A preocupação com isso é pq vou criar sites de segmentos e serviços diferentes e não vai ficar legal se o FQDN for, por exemplo, “algo.terror.com” e aparecer (seja publicamente como no e-mail ou meio de consulta como o whois do registro) para o domínio “algo.cristao.com”. Por isso gostaria de entender um pouco mais, onde poderá ser exibido o FQDN.

    Depois de saber onde mais poderá ser exibido, tomaria uma das ações como:

    Ou criar um domínio neutro para o FQDN ou então criar mais de um servidor quando necessário para que o FQDN seja outro, mas essa segunda opção me parece consumir mais do servidor. Que vc acha dessas opções?

  • Isso mesmo, no inicio do cabeçalho será inserido o nome do servidor.
    Você pode configurar um SMTP Relay externo que o cabeçalho será substituído por eles, por exemplo Mailgun.

    Em qualquer servidor, seja VPS, privado ou compartilhado, se você scanear os sites que existem no mesmo servidor aparecerá os demais. Mas raramente alguém se preocupa com isso. E o nome do servidor não aparece publicamente nos sites.

    Melhor opção é sempre criar num domínio neutro. E sempre que possivel escreva a tabela DNS pela CloudFlare que irá blindar e mascarar os domínios dificultando muito a exposição do servidor de origem.

  • Lennon

    Olá Boa Noite,

    Tenho uma dúvida, no campo user data, teria como colocar algum script que já defina uma senha para mim? Ou preciso recebe-la por e-mail mesmo?

    Obrigado pelo ótimo conteudo publicado neste site.

  • Olá Lennon,
    tem como usar aquele esquema de adicionar chave SSH no painel da Digital mas não é muito aconselhável fazer daquela maneira.

    Aprenda a lidar com ela recebendo por email mesmo porque se um dia você precisar resetar a senha do root ela será enviada sempre daquele jeito.

  • Lennon

    Ok, obrigado pelo retorno, o jeito é receber mesmo no e-mail.

  • Caio Hodos

    Luis, tudo bem?

    Veja se pode me ajudar com esse problema. Há cerca de uma semana não consigo acessar minha instância pois minha chave para o acesso ssh está sendo recusada. Segue o log abaixo:

    2017-03-07 08:46:25 Looking up host “208.113.164.XYZ”
    2017-03-07 08:46:25 Connecting to 208.113.164.XYZ port 22
    2017-03-07 08:46:25 We claim version: SSH-2.0-PuTTY_Release_0.65
    2017-03-07 08:46:25 Server version: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
    2017-03-07 08:46:25 Using SSH protocol version 2
    2017-03-07 08:46:26 Doing Diffie-Hellman group exchange
    2017-03-07 08:46:26 Doing Diffie-Hellman key exchange with hash SHA-256
    2017-03-07 08:46:26 Host key fingerprint is:
    2017-03-07 08:46:26 ssh-rsa 2048 08:19:25:db:ad:8a:54:c8:eb:92:e0:37:49:f8:74:32
    2017-03-07 08:46:26 Initialised AES-256 SDCTR client->server encryption
    2017-03-07 08:46:26 Initialised HMAC-SHA-256 client->server MAC algorithm
    2017-03-07 08:46:26 Initialised AES-256 SDCTR server->client encryption
    2017-03-07 08:46:26 Initialised HMAC-SHA-256 server->client MAC algorithm
    2017-03-07 08:46:26 Reading private key file “[PATH TO KEY]”
    2017-03-07 08:46:29 Offered public key
    2017-03-07 08:46:29 Server refused our key
    2017-03-07 08:46:29 Disconnected: No supported authentication methods available (server sent: publickey)

    Estou certo que todas as informações estão corretas, já cheguei até a criar uma nova instância com a mesma chave para testes e consegui acesso. Meu VPS não é na Digital Ocean, no momento da criação da instância você define a chave e acessa com o usuário padrão.
    Minha alternativa hoje é criar tudo do zero, se utilizar um snapshot agora vou continuar tendo problemas com a chave, se utilizar um anterior ele estará muito desatualizado.
    Já viu algo assim? Alguma sugestão? Obrigado!

  • Boa tarde Caio, editei a sua pergunta para exibir menos info do seu servidor.
    Para conseguir te ajudar envie no meu email mais informações como o nome do hosting que está o server.

  • Edson Correa

    Luis, tudo bem? Estou querendo seguir o seu tutorial para uma instalação de teste em uma máquina local (não sei se vai dar certo…). Para isso preciso saber qual versão do Linux Debian 8 x64 se utiliza no DO, pois lá no site da Debian tem várias versões, CD, DVD e por aí vai. Fiquei totalmente sem saber por onde começar para baixar… rs Saberia qual versão é?

  • Saiu hoje a Debian 8.8 X64 (versão 64 bits é representada por “AMD64”).

    Este é o link para CD:
    http://cdimage.debian.org/debian-cd/current/amd64/iso-cd/

  • Edson Correa

    Valeu! Aí que entra a minha dúvida: tem um monte de ISOs lá. Qual eu escolho? Aquela que tem os 8 cds?

  • Geralmente só o CD 1 já resolve mas acho que se você pegar o Netinstall consegue também.

  • Ola Luis,

    Gostaria de atualizar os pacotes de meu debian, pois mostra no ISPCONFIG um aviso, qual seria o processo?.

    Inst base-files [8+deb8u7] (8+deb8u8 Debian:8.8/stable [amd64])
    Conf base-files (8+deb8u8 Debian:8.8/stable [amd64])
    Inst libc6-dev [2.19-18+deb8u7] (2.19-18+deb8u9 Debian:8.8/stable [amd64]) []
    Inst libc-dev-bin [2.19-18+deb8u7] (2.19-18+deb8u9 Debian:8.8/stable [amd64]) []
    Inst linux-libc-dev [3.16.39-1+deb8u1] (3.16.43-2 Debian:8.8/stable [amd64]) []
    Inst libtirpc1 [0.2.5-1] (0.2.5-1+deb8u1 Debian-Security:8/stable [amd64]) []
    Inst rpcbind [0.2.1-6+deb8u1] (0.2.1-6+deb8u2 Debian-Security:8/stable [amd64]) []
    Inst libc-bin [2.19-18+deb8u7] (2.19-18+deb8u9 Debian:8.8/stable [amd64]) []
    Conf libc-bin (2.19-18+deb8u9 Debian:8.8/stable [amd64]) []
    Inst libc6 [2.19-18+deb8u7] (2.19-18+deb8u9 Debian:8.8/stable [amd64])
    Conf libc6 (2.19-18+deb8u9 Debian:8.8/stable [amd64])
    Inst libudev1 [215-17+deb8u6] (215-17+deb8u7 Debian:8.8/stable [amd64]) [udev:amd64 ]
    Conf libudev1 (215-17+deb8u7 Debian:8.8/stable [amd64]) [udev:amd64 ]
    Inst udev [215-17+deb8u6] (215-17+deb8u7 Debian:8.8/stable [amd64])
    Conf udev (215-17+deb8u7 Debian:8.8/stable [amd64])
    Inst linux-image-3.16.0-4-amd64 [3.16.39-1+deb8u1] (3.16.43-2 Debian:8.8/stable [amd64])
    Inst initramfs-tools [0.120+deb8u2] (0.120+deb8u3 Debian:8.8/stable [all])
    Inst libsystemd0 [215-17+deb8u6] (215-17+deb8u7 Debian:8.8/stable [amd64]) [systemd:amd64 ]
    Conf libsystemd0 (215-17+deb8u7 Debian:8.8/stable [amd64]) [systemd:amd64 ]
    Inst systemd [215-17+deb8u6] (215-17+deb8u7 Debian:8.8/stable [amd64]) [systemd-sysv:amd64 ]
    Conf systemd (215-17+deb8u7 Debian:8.8/stable [amd64]) [systemd-sysv:amd64 ]

  • Sempre faça um snapshot completo do servidor antes de atualizar o sistema. Se o upgrade fosse uma coisa banal de se fazer eu colocaria os comandos abaixo de cada artigo, mas não é. O mais comum de acontecer é a quebra de dependências entre os pacotes e consequentemente até mesmo a perda de acesso ao painel e erro nos sites.

    Lembre-se que quando você tem um servidor funcionando com vários sites ele é categorizado como Servidor em Produção, bem diferente daquele oba-oba que costumamos ler em fóruns na internet. Há vários comandos soltos por lá incluindo o upgrade do sistema mas aquilo só poderia ser usado como laboratório em servidores sem muita pretensão.

    Evite fazer upgrades de pacotes, mas os comandos são:
    > apt-get update
    > apt-get upgrade

    E em seguida tem que atualizar o ISPConfig também.

  • Obrigado Luis, tudo certo, fiz o snap do server por precaução e efetuei os updates, tudo certo.

    Obrigado.

  • Luis, bom dia!

    Muito obrigado pelas dicas. Uma duvida, estou fazendo um servidor secundário para mim, só que o meu servidor primário o FQDN é assim cp.exemplo.com.br, eu posso fazer outros servidores dessa maneira, cp2.exemplo.com.br?. Estará correto?.

  • Pode inventar o nome que quiser contanto que seja naquele formato.

  • Ah otimo, obrigado.

  • Andre

    Desculpe minha ignorância Luis, pois sou novo meio novato, mas como acesso via superusuário root? por que eu acesso via Chave Privada via Putty estava conseguindo fazer as edições via Nano mais na hora de editar o NGINX, não aperecia nada ficava um espaço vazio!

  • Em qual empresa você cadastrou o VPS? porque cada uma delas tem um procedimento diferente para permitir acesso sem chave.

    E você diz que estava configurando o servidor sem acesso root?

  • Andre

    Obrigado pela resposta Luis, então foi na Digital Ocean mesmo

  • Certo. Mas eu não entendi a pergunta,. Você estava configurando o servidor sem acesso root ?
    E quando cria o servidor na Digital tem a opção de adicionar uma chave no Droplet ou não adicionar. Se não usar SSH Key a Digital irá enviar a senha root para o seu email, que deverá ser trocada para uma nova seguindo o meu tutorial.

    Desta maneira você terá acesso sem chave como root.

  • Andre

    Valeu Luiz segui seu tutorial “COMO EDITAR ARQUIVOS LINUX REMOTOS USANDO WINSCP E NOTEPAD++” e deu certo aqui!

  • Edson Correa

    Olá Luís, tudo bem? Teve uma vez que você me recomendou umas diretivas para corrigir uns erros que estavam aparecendo via Logwatch. Implementei e resolveu. Só que de vez em quando ainda aparece o seguinte erro: INFO: rcu_sched self-detected stall on CPU { …: 1 Time(s). Ele vem cortado no Logwatch, por isso não sei o restante. Mas, parece que é algo relacionado à CPU. Há algo que se possa fazer a esse respeito?

  • Bom dia Edson, este aviso de CPU está relacionado com um processo de alta prioridade que fica executando por um período além do normal. O que pode estar acontecendo é algum bug de site ou até mesmo falta de recursos no servidor causando o gargalo na CPU. É necessário acompanhar os gráficos de uso dos recursos para determinar exatamente o que causa isso.

  • Edson Correa

    Obrigado pela dica. Dei uma olhada nos gráficos da DO e há alguns picos esporádicos de CPU nas últimas 6 horas chegando a até 90%. Porém, como o logwatch não informa a hora do ocorrido, fica complicado saber qual processo pode estar causando isso. Teria como acessar algum log de uso de cpu mais detalhado no Debian?

  • Tem como acessar logs do PHP, NginX e o messages para tentar ver o que causa isso. Abra os logs e verifique nesta faixa de horário o que houve. Isso é bem chato de se fazer mas é assim mesmo..

  • Edson Correa

    Olá Luís, tudo bem? Dei uma olhada nos logs e instalei o novo componente de gráficos da DO e vi que a memória estava quase nos 100%. Então resolvi fazer um upgrade pra um droplet com 1GB de memória. O problema é que agora todos os sites estão fora do ar, exibindo uma página do Apache 2 (sendo que é ngnix) e o ISPConfig não entra mais, dando connection refused. Como posso corrigir esse problema sem recorrer à restauração do backup do droplet?

  • /etc/init.d/apache2 stop
    /etc/init.d/nginx restart

  • Ola Luis, bom dia!

    Eu de retorno aqui, =D. Gostaria de uma dica sua, sobre servidores dedicado, você aconselha alguma empresa para servidores dedicados, com preços acessíveis, pode ser fora.
    E ferramenta para virtualização para criação de VPS?.

    Obrigado pela ajuda.

  • Fala Luis! Blz!?

    Vi que foi lançado o Debian 9 e estava pensando em atualizar seguindo o tutorial abaixo:

    https://linuxconfig.org/how-to-upgrade-debian-8-jessie-to-debian-9-stretch

    O que você acha? Já está utilizando o Debian 9 em seus servidores? Vale a pena atualizar agora ou melhor esperar?

    Enfim! Agradeço desde já por qualquer feedback…

    Abraço!

  • Boa tarde Glauber, ainda não estou usando porque ele meio que acabou de ser lançado. As principais novidades serão o PHP 7 e Maria DB. Irei começar a lidar a partir deste mês porque tenho clientes com demanda para Magento 2 e apps com PHP 7 solicitando.

    De acordo com outros releases passados ele só começará a ficar bom a partir do 9,2 na minha opinião.

    Se quiser se arriscar no upgrade lembre de tirar o snapshot primeiro, ou melhor ainda, tire um snapshot e crie um servidor a partir dele e lá no de teste faça o upgrade.

  • Brigadão pela resposta Luis! Como não estou com pressa, vou aceitar sua sugestão e esperar pela versão 9.2. Abraço!