{"id":47233,"date":"2026-06-27T17:57:53","date_gmt":"2026-06-27T08:57:53","guid":{"rendered":"https:\/\/raybeam.jp\/docs\/initial-server-setup\/"},"modified":"2026-06-28T08:15:35","modified_gmt":"2026-06-27T23:15:35","slug":"initial-server-setup","status":"publish","type":"docs","link":"https:\/\/raybeam.jp\/pt\/docs\/initial-server-setup\/","title":{"rendered":"Configura\u00e7\u00e3o inicial do servidor"},"content":{"rendered":"<h2 id=\"ubuntu-server-lts-setup-guide-2004--2404\" class=\"wp-block-heading\">Guia de configura\u00e7\u00e3o do servidor Ubuntu LTS (20.04 \/ 24.04)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Este guia pressup\u00f5e que voc\u00ea esteja configurando um novo <strong>Servidor Ubuntu LTS<\/strong> inst\u00e2ncia (20.04 ou 24.04) em um VPS ou provedor de nuvem.<\/p>\n\n\n\n<h2 id=\"1-create-a-nonroot-sudo-user\" class=\"wp-block-heading\">1. Criar um usu\u00e1rio sudo que n\u00e3o seja o root<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code><code>adduser seuNomeDeUsu\u00e1rio\nusermod -aG sudo seuNomeDeUsu\u00e1rio<\/code><\/code><\/pre>\n\n\n\n<h2 id=\"2-get-ssh-key-access-to-the-new-user\" class=\"wp-block-heading\">2. Obter acesso por chave SSH para o novo usu\u00e1rio<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Se o seu host n\u00e3o suportar a inser\u00e7\u00e3o de chaves SSH p\u00fablicas no momento da cria\u00e7\u00e3o, copie sua chave do seu computador local para o diret\u00f3rio tempor\u00e1rio <code>raiz<\/code> login:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>ssh-copy-id <span \n                data-original-string='eN2JhTIzGzw2zxpaLpnRgA==a66pOVyskdKWFNT8sa2bq13m47JUtu6qXldlf5kDWhkaF4='\n                class='apbct-email-encoder'\n                title='Esse contato foi codificado pelo Anti-Spam da CleanTalk. Clique para decodificar. Para concluir a decodifica\u00e7\u00e3o, certifique-se de que o JavaScript esteja ativado em seu navegador.'>ro<span class=\"apbct-blur\">**<\/span>@<span class=\"apbct-blur\">**********<\/span>ne.ip<\/span>.000<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Depois de fazer login como <code>raiz<\/code>, transfira as chaves SSH para o novo usu\u00e1rio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>rsync --archive --chown=seuNomeDeUsu\u00e1rio:seuNomeDeUsu\u00e1rio \/root\/.ssh \/home\/seuNomeDeUsu\u00e1rio<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Saia e fa\u00e7a login novamente como o novo usu\u00e1rio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>sair\nssh <span \n                data-original-string='NzDD3ZkzBLbtZA8CgAFOMA==a66iVeYay\/dxASD4p2MATPpHrzxSR6DqXchkUZZQLaSh4A='\n                class='apbct-email-encoder'\n                title='Esse contato foi codificado pelo Anti-Spam da CleanTalk. Clique para decodificar. Para concluir a decodifica\u00e7\u00e3o, certifique-se de que o JavaScript esteja ativado em seu navegador.'>yo<span class=\"apbct-blur\">**********<\/span>@<span class=\"apbct-blur\">**********<\/span>ne.ip<\/span>.000<\/code><\/code><\/pre>\n\n\n\n<h2 id=\"3-harden-ssh\" class=\"wp-block-heading\">3. Fortalecer o SSH<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Depois de confirmar que voc\u00ea consegue fazer login como <code>seuNomeDeUsu\u00e1rio<\/code>, desative o acesso SSH como usu\u00e1rio root:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Edite a configura\u00e7\u00e3o do daemon SSH: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>sudo nano \/etc\/ssh\/sshd_config<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Certifique-se de que a linha esteja da seguinte forma: <code>PermitRootLogin no<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Reinicie o SSH: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>sudo service ssh restart<\/code><\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Importante:<\/strong> Mantenha uma sess\u00e3o SSH ativa aberta at\u00e9 confirmar que o login sem senha funciona para o seu novo usu\u00e1rio; em seguida, teste uma nova conex\u00e3o a partir de outro terminal antes de encerrar a sess\u00e3o do usu\u00e1rio root.<\/p>\n<\/blockquote>\n\n\n\n<h2 id=\"4-set-the-timezone\" class=\"wp-block-heading\">4. Defina o fuso hor\u00e1rio<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code><code>sudo timedatectl set-timezone Continente\/Cidade\n<em># Exemplo: sudo timedatectl set-timezone Asia\/Tokyo<\/em><\/code><\/code><\/pre>\n\n\n\n<h2 id=\"5-configure-the-fqdn\" class=\"wp-block-heading\">5. Configurar o FQDN<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Editar <code>\/etc\/hosts<\/code> e substitua a linha padr\u00e3o e adicione seu IP p\u00fablico:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>127.0.1.1 nome-do-computador.example.com\nip-do-seu-computador.000    nome-do-computador.example.com nome-do-computador<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Em seguida, defina o nome do host do sistema:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>sudo hostnamectl set-hostname machinename.example.com<\/code><\/code><\/pre>\n\n\n\n<h2 id=\"6-install-wordops\" class=\"wp-block-heading\">6. Instalar o WordOps<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code><code>wget -qO wo wops.cc &amp;&amp; sudo bash wo\nsource \/etc\/bash_completion.d\/wo_auto.rc\necho -e \"alias wo='sudo -E wo'\" &gt;&gt; $HOME\/.bashrc<\/code><\/code><\/pre>\n\n\n\n<h2 id=\"7-install-and-configure-ufw-firewall\" class=\"wp-block-heading\">7. Instalar e configurar o UFW (firewall)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code><code>wo stack install --ufw\nwo secure --ssh<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de ativar o UFW, certifique-se de permitir o SSH (j\u00e1 configurado por <code>wo secure --ssh<\/code>), em seguida, ative o firewall:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>sudo ufw allow 22\/tcp\nsudo ufw allow 80\/tcp\nsudo ufw allow 443\/tcp\nsudo ufw enable<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para a lista de endere\u00e7os IP permitidos compat\u00edvel com Cloudflare, consulte este outro artigo:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-raybeam wp-block-embed-raybeam\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"22Us8SmqGN\"><a href=\"https:\/\/raybeam.jp\/pt\/docs\/initial-server-setup\/how-to-auto-update-ufw-rules-with-cloudflare-ips\/\">Como atualizar automaticamente as regras do UFW com os endere\u00e7os IP do Cloudflare<\/a><\/blockquote><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u201cComo atualizar automaticamente as regras do UFW com os endere\u00e7os IP Cloudflare\u201d \u2014 Raybeam\" src=\"https:\/\/raybeam.jp\/docs\/initial-server-setup\/how-to-auto-update-ufw-rules-with-cloudflare-ips\/embed\/#?secret=wG57cXpQh0#?secret=22Us8SmqGN\" data-secret=\"22Us8SmqGN\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 id=\"8-cloudflare-api-variables-for-automation-scripts\" class=\"wp-block-heading\">8. Vari\u00e1veis da API Cloudflare (para scripts de automa\u00e7\u00e3o)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code><code>export CF_Key=\"yourCloudflareAPIKey\"\nexport CF_Email=\"<span \n                data-original-string='VAUypfGchMDT\/k1FgKB4VA==a66GfwqBhGjS7H\/GUSDT2b2KFhnWCZ9d+I9yH+2JxB75xU='\n                class='apbct-email-encoder'\n                title='Esse contato foi codificado pelo Anti-Spam da CleanTalk. Clique para decodificar. Para concluir a decodifica\u00e7\u00e3o, certifique-se de que o JavaScript esteja ativado em seu navegador.'>yo<span class=\"apbct-blur\">*****************<\/span>@<span class=\"apbct-blur\">*****<\/span>le.com<\/span>\"<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Salve-os em <code>~\/.bashrc<\/code> ou um arquivo de ambiente espec\u00edfico, caso sua automa\u00e7\u00e3o precise deles a cada login.<\/p>\n\n\n\n<h2 id=\"9-enable-wordpress-cron-via-system-cron\" class=\"wp-block-heading\">9. Ativar o cron do WordPress por meio do cron do sistema<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Edite o crontab do usu\u00e1rio root:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>sudo crontab -e<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Adicionar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>*\/2 * * * * find \/var\/www -type f -name \"wp-cron.php\" -path \"*\/htdocs\/wp-cron.php\" -execdir sudo -u www-data php {} \\; &gt; \/dev\/null 2&gt;&amp;1<\/code><\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Certifique-se de que o <code>cron<\/code> O servi\u00e7o est\u00e1 em execu\u00e7\u00e3o:<br><code>sudo systemctl enable --now cron<\/code><\/p>\n<\/blockquote>\n\n\n\n<h2 id=\"10-miscellaneous-tools\" class=\"wp-block-heading\">10. Ferramentas diversas<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code><code><em>Ferramenta de linha de comando # S3<\/em>\nsudo apt update\nsudo apt install -y s3cmd\n<em># Configure com: s3cmd --configure<\/em>\n\n<em># Analisador de uso de disco<\/em>\nsudo apt install -y ncdu<\/code><\/code><\/pre>\n\n\n\n<h2 id=\"11-redis-object-cache\" class=\"wp-block-heading\">11. Redis (cache de objetos)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ative e inicie o Redis como um servi\u00e7o do sistema:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>sudo systemctl enable redis-server.service\nsudo systemctl start redis-server.service<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Verifique com:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>sudo systemctl status redis-server.service<\/code><\/code><\/pre>\n\n\n\n<h2 id=\"12-wordops-modules-we-skip-by-default\" class=\"wp-block-heading\">12. M\u00f3dulos do WordOps que ignoramos por padr\u00e3o<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Nginx: Bloqueador Definitivo de Bots Maliciosos<\/strong>: \u00d3tima ferramenta, mas desnecess\u00e1ria quando voc\u00ea j\u00e1 est\u00e1 usando o WAF e a limita\u00e7\u00e3o de taxa do Cloudflare.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"13-final-steps--next-guides\" class=\"wp-block-heading\">13. Etapas finais e pr\u00f3ximos guias<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Siga os guias espec\u00edficos para montar a pilha (as raz\u00f5es por tr\u00e1s de cada escolha e as alternativas s\u00e3o abordadas nesses artigos).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ap\u00f3s essas etapas, seu servidor Ubuntu LTS ter\u00e1:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Um usu\u00e1rio sudo seguro, sem privil\u00e9gios de root, com acesso por chave SSH<\/li>\n\n\n\n<li>Acesso como usu\u00e1rio root desativado via SSH<\/li>\n\n\n\n<li>FQDN e fuso hor\u00e1rio corretos<\/li>\n\n\n\n<li>Integra\u00e7\u00e3o entre WordOps, UFW e Cloudflare<\/li>\n\n\n\n<li>WP-Cron, Redis e ferramentas comuns de administra\u00e7\u00e3o no n\u00edvel do sistema<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Agora voc\u00ea est\u00e1 pronto para criar sites no WordPress com <code>wo site create example.com --wpfc<\/code> (ou outras op\u00e7\u00f5es de pilha) e refor\u00e7ar a seguran\u00e7a de cada site individualmente.<\/p>","protected":false},"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"pmpro_default_level":"","nav_title":"","positive":"1","negative":"","footnotes":""},"docs_category":[],"class_list":["post-47233","docs","type-docs","status-publish","hentry","pmpro-has-access"],"_links":{"self":[{"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/docs\/47233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/comments?post=47233"}],"version-history":[{"count":8,"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/docs\/47233\/revisions"}],"predecessor-version":[{"id":47292,"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/docs\/47233\/revisions\/47292"}],"wp:attachment":[{"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/media?parent=47233"}],"wp:term":[{"taxonomy":"docs_category","embeddable":true,"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/docs_category?post=47233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}