Con­fi­gu­rar cor­re­ta­mente o próprio servidor, seja próprio ou alugado, é essencial. Aprenda como proteger o seu servidor, de qualquer sistema ope­ra­ci­o­nal, es­ta­be­le­cendo senhas adequadas e crip­to­gra­fia SSH, e atu­a­li­zando-o re­gu­lar­mente.

Quem é res­pon­sá­vel pela segurança de ser­vi­do­res?

Para liberdade máxima, alugue um hardware de servidor. Ser­vi­do­res dedicados, que podem ser alugados de vários pro­ve­do­res, oferecem acesso root à conta, por exemplo. Seja como for, etapas fun­da­men­tais de ge­ren­ci­a­mento, como ins­ta­la­ção, es­tru­tu­ra­ção e ma­nu­ten­ção do servidor, são de res­pon­sa­bi­li­dade do locatário. Durante esses processos, todo cuidado é pouco: ações in­cor­re­tas re­a­li­za­das com pri­vi­lé­gios de root podem gerar con­sequên­cias graves. Ao seguir nossas dicas, contudo, você es­ta­be­le­cerá a base perfeita para um servidor estável, potente e seguro.

Dedicated Servers
Per­for­mance through in­no­va­tion

O encontro do hardware com a nuvem: servidor dedicado com nuvem integrada e cobrança por minuto, incluindo as­sis­tente pessoal!

  • Dedicated en­ter­prise hardware
  • Con­fi­gu­ra­ble hardware equipment
  • ISO-certified data centers

Ins­tru­ções passo a passo: Como proteger um servidor

In­de­pen­den­te­mente de você querer proteger um servidor Windows, Ubuntu ou Debian, existem medidas gerais que podem ajudar a criar uma base sólida de segurança. Aqui estão os passos mais im­por­tan­tes resumidos.

Passo 1: Fazer ins­ta­la­ção mínima

Antes mesmo de começar a im­ple­men­tar medidas de segurança de ser­vi­do­res para proteger o seu próprio servidor, suas atitudes já in­flu­en­ci­a­rão os re­sul­ta­dos. In­de­pen­den­te­mente de optar por um sistema ope­ra­ci­o­nal Windows ou Linux: durante a ins­ta­la­ção, aplique o seguinte princípio: seu servidor deve conter apenas o software ne­ces­sá­rio para cumprir suas funções.

Isso ocorre pois cada aplicação instalada é um potencial risco de segurança e pode impactar ne­ga­ti­va­mente o de­sem­pe­nho do servidor. Para reduzir ao máximo a su­per­fí­cie de ataque, instale ou ative apenas os com­po­nen­tes ne­ces­sá­rios e utilize somente softwares ve­ri­fi­ca­dos de terceiros.

Passo 2: Definir senha segura

Ao finalizar o processo de ins­ta­la­ção, o primeiro passo deve ser con­fi­gu­rar uma senha segura para a conta de ad­mi­nis­tra­dor (Windows) ou root (Linux). Por padrão, nenhuma senha é definida, sendo a conta de ad­mi­nis­tra­dor bloqueada até que você faça essa con­fi­gu­ra­ção. Nor­mal­mente, o sistema ope­ra­ci­o­nal solicita au­to­ma­ti­ca­mente a criação de uma conta com senha, que fun­ci­o­nará como o acesso do admin ou root.

Se você alugou seu servidor Linux de um provedor e recebeu um login root pre­de­fi­nido, altere a senha assim que possível. Para isso, conecte-se ao servidor por SSH e insira o seguinte comando no terminal:

passwd
bash

Em seguida, você pode definir uma senha segura, que precisará ser ve­ri­fi­cada pos­te­ri­or­mente. Cer­ti­fi­que-se de escolher uma senha longa, uti­li­zando não apenas letras, mas também ca­rac­te­res especiais e números. É altamente re­co­men­dá­vel salvar suas senhas em um ge­ren­ci­a­dor de senhas, ga­ran­tindo que ela esteja sempre acessível quando ne­ces­sá­rio.

Passo 3: Alterar porta SSH

Para acessar o servidor por SSH, por padrão a porta TCP-/UDP 22 é usada - ela é au­to­ma­ti­ca­mente con­fi­gu­rada durante a ins­ta­la­ção do sistema. Invasores em busca de sistemas vul­ne­rá­veis ge­ral­mente con­cen­tram seus ataques (prin­ci­pal­mente ten­ta­ti­vas au­to­má­ti­cas de login) nesta porta. Assim, alterar a porta padrão para conexões remotas crip­to­gra­fa­das reduz sig­ni­fi­ca­ti­va­mente o risco de acessos não au­to­ri­za­dos.

Altere a porta padrão editando o arquivo de con­fi­gu­ra­ção SSH sshd_config com qualquer editor de texto. No Linux, você pode abrir o arquivo com o editor padrão nano, por meio do comando:

nano /etc/ssh/sshd_config
bash

Procure pela linha “port” no arquivo e substitua o número da porta 22 por um número de sua escolha. Contudo, lembre-se de que existem diversas outras portas padrão para serviços es­pe­cí­fi­cos, como a porta 80 para HTTP.

Nota

Antes que as al­te­ra­ções feitas no arquivo sshd_config entrem em vigor, é ne­ces­sá­rio reiniciar o serviço SSH. No Debian, isso pode ser feito com o comando /etc/init.d/ssh restart. Já no Ubuntu, use o comando service ssh restart.

Passo 4: Desativar login SSH para admin

Para aumentar a segurança do servidor, é re­co­men­dá­vel desativar o login SSH para a conta root ou ad­mi­nis­tra­dor. Caso contrário, um invasor em posse da senha poderá acessar o servidor re­mo­ta­mente por essa conta.

Antes de aplicar essa medida, é ne­ces­sá­rio ter pelo menos mais uma conta de usuário con­fi­gu­rada para se conectar ao servidor. Assim, você evita ser com­ple­ta­mente bloqueado do sistema. Em sistemas Linux, crie essa conta com o seguinte comando:

useradd -g users -d /home/usuario1 -m -s /bin/bash usuario1
bash

Esse comando criará uma conta de usuário chamada “usuario1”. Em seguida, defina uma senha segura para essa conta com o comando:

passwd usuario1
bash

Teste o login com a nova conta. Se ele funcionar cor­re­ta­mente, prossiga com a de­sa­ti­va­ção do login da conta root. Para isso, abra novamente o arquivo de con­fi­gu­ra­ção SSH sshd_config no editor de sua pre­fe­rên­cia. Localize a linha PermitRootLogin yes e altere para PermitRootLogin no. Após reiniciar o serviço SSH, o acesso remoto da conta root estará de­sa­ti­vado.

Na mesma con­fi­gu­ra­ção, é possível usar a linha AllowGroups para es­pe­ci­fi­car quais usuários podem se conectar ao servidor por SSH. Para isso, crie um grupo (addgroup) e adicione os usuários desejados (adduser). Em seguida, adicione o nome do grupo escolhido no arquivo sshd_config (por exemplo, AllowGroups ssh_usuarios).

Nota

Uma al­ter­na­tiva prática à de­sa­ti­va­ção do login SSH é proibir com­ple­ta­mente o login com senha e adotar o método de au­ten­ti­ca­ção por chave pública, uti­li­zando chaves SSH.

Passo 5: Con­fi­gu­rar no­ti­fi­ca­ções por e-mail para logins SSH

In­de­pen­den­te­mente das medidas que você adotar para proteger o acesso por SSH, é fun­da­men­tal monitorar todas as ati­vi­da­des remotas no servidor. Isso permite verificar se o serviço SSH foi con­fi­gu­rado cor­re­ta­mente e iden­ti­fi­car possíveis acessos não au­to­ri­za­dos. Para esse mo­ni­to­ra­mento, você pode criar um script simples que envia no­ti­fi­ca­ções por e-mail sempre que um login remoto bem-sucedido for realizado no servidor.

A seguir, apre­sen­ta­mos um exemplo de script /opt/shell-login.sh que pode ser fa­cil­mente criado em sistemas Linux:

#!/bin/bash
echo "Login no servidor $(hostname) em $(date +%Y-%m-%d) às $(date +%H:%M)"
echo "Usuário: $USER"
echo
finger
bash

Depois de criar o script, adicione a seguinte linha ao arquivo /etc/profile:

/opt/shell-login.sh | mailx -s "Login SSH no servidor" email@example.com
bash

Com essa entrada, o script será executado sempre que ocorrer um login via SSH, enviando uma no­ti­fi­ca­ção por e-mail para o endereço es­pe­ci­fi­cado. É im­por­tante garantir que o script possua a permissão 755 (leitura e execução para todos os usuários, com permissão de escrita apenas para o pro­pri­e­tá­rio), o que pode ser feito com o comando:

chmod 755 /opt/shell-login.sh
bash

Passo 6: Bloquear portas não uti­li­za­das

Portas abertas, por si só, não re­pre­sen­tam um grande risco de segurança. Elas são es­sen­ci­ais para a co­mu­ni­ca­ção entre serviços e apli­ca­ti­vos, sendo ne­ces­sá­rio que algumas per­ma­ne­çam abertas por padrão, como as portas 80 e 443 para conexões HTTP e HTTPS, ou a porta SSH con­fi­gu­rada. No entanto, portas abertas podem se tornar vul­ne­rá­veis se os programas que as utilizam apre­sen­ta­rem falhas de segurança que possam ser ex­plo­ra­das por agentes mal-in­ten­ci­o­na­dos.

Dica

Saiba como checar as portas abertas para obter uma visão geral das portas dis­po­ní­veis no seu servidor.

Se você seguiu uma ins­ta­la­ção mínima do sistema e instalou apenas um número reduzido de apli­ca­ti­vos de terceiros, a quan­ti­dade de portas ne­ces­sá­rias será limitada. Para proteger seu servidor contra possíveis ataques, é re­co­men­dá­vel bloquear todas as portas abertas que não sejam in­dis­pen­sá­veis, con­fi­gu­rando regras de firewall.

Os prin­ci­pais sistemas ope­ra­ci­o­nais incluem, por padrão, uma fer­ra­menta de filtragem de pacotes, chamada iptables. Com ela, é possível definir regras para controlar o tráfego de dados, incluindo a es­pe­ci­fi­ca­ção de quais portas devem ou não ser per­mi­ti­das.

Passo 7: Atualizar softwares re­gu­lar­mente

Em geral, vul­ne­ra­bi­li­da­des de segurança co­nhe­ci­das em apli­ca­ti­vos são cor­ri­gi­das ra­pi­da­mente por meio de atu­a­li­za­ções dis­po­ni­bi­li­za­das pelos de­sen­vol­ve­do­res. Manter-se informado sobre atu­a­li­za­ções do sistema ope­ra­ci­o­nal e dos programas ins­ta­la­dos, além de aplicar essas atu­a­li­za­ções de maneira ágil, garante a melhor proteção possível para o seu servidor. Muitos sistemas de ser­vi­do­res oferecem ainda a opção de baixar e instalar au­to­ma­ti­ca­mente atu­a­li­za­ções im­por­tan­tes de segurança em segundo plano.

Se você utiliza, por exemplo, um servidor Windows, pode con­fi­gu­rar as atu­a­li­za­ções au­to­má­ti­cas no painel “Windows Update”. Esse recurso permite definir quando e com que frequên­cia o sistema deve procurar por atu­a­li­za­ções, se as atu­a­li­za­ções en­con­tra­das devem ser ins­ta­la­das au­to­ma­ti­ca­mente e quando o sistema será rei­ni­ci­ado. Para sistemas Linux, existem fer­ra­men­tas es­pe­cí­fi­cas, como o apt-list­chan­ges ou o script apticron, que notificam di­a­ri­a­mente sobre novos pacotes de software dis­po­ní­veis e realizam os res­pec­ti­vos downloads. Outros scripts, como o* unat­ten­ded-upgrades*, assumem a tarefa de instalar as atu­a­li­za­ções au­to­ma­ti­ca­mente.

Nota

Mesmo uti­li­zando processos de atu­a­li­za­ção au­to­má­tica, é im­por­tante manter o controle sobre as atu­a­li­za­ções re­a­li­za­das. Assim, você consegue iden­ti­fi­car e resolver eventuais problemas que possam surgir após a aplicação dos updates.

Passo 8: Proteger ser­vi­do­res Windows e Linux contra ataques de força bruta

Uma das formas de ataque mais simples e fre­quen­te­mente uti­li­za­das é o chamado ataque de força bruta. Nesse tipo de ataque, invasores utilizam fer­ra­men­tas para tentar adivinhar senhas. Quanto mais cuidadoso você for na criação de senhas seguras, menor será a chance de sucesso dessa técnica.

No entanto, se você oferece um serviço com mecanismo de au­ten­ti­ca­ção, é provável que nem todos os usuários adotem a mesma cautela ne­ces­sá­ria. Para so­lu­ci­o­nar isso, fer­ra­men­tas de análise são muito úteis. Soluções como o Fail2ban (para sistemas Linux/POSIX) ou o RdpGuard (para Windows) analisam os logs do servidor, iden­ti­fi­cam com­por­ta­men­tos suspeitos e bloqueiam endereços IP po­ten­ci­al­mente ma­li­ci­o­sos. Você pode con­fi­gu­rar o número de ten­ta­ti­vas falhas per­mi­ti­das antes do bloqueio e o tempo de duração da restrição.

Passo 9: Utilizar fer­ra­men­tas de mo­ni­to­ra­mento

Ao proteger um servidor, é essencial garantir que a in­te­gra­ção entre hardware e software funcione conforme esperado. Isso não é uma tarefa única, mas um processo contínuo que deve ser mo­ni­to­rado cons­tan­te­mente. Devido à grande quan­ti­dade de processos do sistema, é re­co­men­dá­vel usar fer­ra­men­tas de mo­ni­to­ra­mento desde o início. Essas fer­ra­men­tas monitoram todas as ati­vi­da­des do servidor e alertam sobre qualquer com­por­ta­mento anômalo.

Uma fer­ra­menta simples e fácil de con­fi­gu­rar é o Monit, que pode ser instalada fa­cil­mente em várias dis­tri­bui­ções Linux via ge­ren­ci­a­do­res de pacotes. O Monit é uma aplicação open source (licença GNU-AGPL) que, após ser iniciada, pode monitorar processos, arquivos, hosts, programas ou scripts. Além disso, também é possível monitorar os recursos do sistema, como CPU, memória e carga total. Se você precisar de mais detalhes, pode con­si­de­rar o uso do software de mo­ni­to­ra­mento Nagios, que é open source e dis­po­ní­vel para Linux e Windows, podendo ser estendido por meio de diversos plugins Nagios.

Teste o VPS da IONOS grátis

Ex­pe­ri­mente seu vServer de graça agora - Teste um servidor virtual por 30 dias!

  • Recursos dedicados
  • Tráfego ilimitado
  • Consultor pessoal

Passo 10: Con­fi­gu­rar backups

Com as con­fi­gu­ra­ções re­co­men­da­das, você aumentará sig­ni­fi­ca­ti­va­mente a segurança do seu servidor. No entanto, nem a melhor con­fi­gu­ra­ção nem uma ma­nu­ten­ção dedicada garantem proteção total. Assim, uma outra base im­por­tante para o seu sistema de segurança deve ser uma es­tra­té­gia de backup abran­gente, que permita a re­cu­pe­ra­ção de arquivos em cenários de perda. Conheça as melhores es­tra­té­gias de backup.

Em termos de fer­ra­men­tas poderosas, que não apenas ajudam na criação, mas também na res­tau­ra­ção de backups, não faltam opções. Um exemplo gratuito que vale a pena mencionar é o programa de sin­cro­ni­za­ção de código aberto rsync , que tem o nome do protocolo homônimo e está dis­po­ní­vel em várias versões para quase todas as pla­ta­for­mas populares (macOS, Windows, Linux). Essa fer­ra­menta mantém o backup dos seus dados do servidor atu­a­li­zado, sin­cro­ni­zando al­te­ra­ções feitas no original pe­ri­o­di­ca­mente.

Além do backup geral do servidor, a segurança dos dados das suas bases de dados também é fun­da­men­tal, e deve ser parte do processo de backup. Saiba mais sobre isso em como fazer backup de bancos de dados.

Nota

Para garantir a máxima segurança no backup, é re­co­men­dá­vel que o diretório de backup esteja em um meio de ar­ma­ze­na­mento externo (disco rígido portátil, outro servidor etc.), e não no próprio servidor que você está pro­te­gendo.

Ir para o menu principal