Poupe 15% em todos os serviços de alojamento

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código: Skills Começar a trabalhar
Secções
Administração Linux

Instalando e Configurando Componentes Ubuntu: Um Guia Completo

Ubuntu continua a ser uma das distribuições Linux mais populares do mundo — e com razão. A sua flexibilidade, ecossistema robusto de pacotes e forte suporte comunitário tornam-na uma plataforma ideal para programadores, administradores de sistemas e empresas. Quer esteja a configurar uma máquina de desenvolvimento local ou a provisionar um ambiente VPS Hosting na nuvem, saber como instalar e configurar adequadamente componentes Ubuntu é uma competência fundamental que compensa em todos os níveis da sua infraestrutura.

Este guia abrangente orienta-o através de cada passo crítico: atualizar o seu sistema, instalar pacotes essenciais, configurar firewalls, configurar servidores de base de dados, otimizar o desempenho e muito mais. No final, o seu sistema Ubuntu estará endurecido, eficiente e pronto para cargas de trabalho de produção.

1. Atualizar Ubuntu Antes de Instalar Qualquer Coisa

Antes de tocar em um único pacote, sempre mantenha seu sistema totalmente atualizado. Isso garante que você esteja trabalhando com os patches de segurança mais recentes, correções de bugs e melhorias de compatibilidade de software.

sudo apt update && sudo apt upgrade -y

O que isso faz:

  • apt update — Atualiza o índice de pacotes local de todos os repositórios configurados.
  • apt upgrade -y — Atualiza todos os pacotes instalados para suas versões mais recentes disponíveis, confirmando automaticamente os prompts.

> Dica Profissional: Em um servidor recém-provisionado — especialmente se você estiver executando Ubuntu em um Servidor Dedicado — este passo é inegociável. Pacotes desatualizados são um dos vetores de segurança mais comuns para violações.

Após atualizar, reinicie se o kernel foi atualizado:

sudo reboot

2. Instalação de Componentes Essenciais

O poder do Ubuntu reside na sua extensibilidade. As subsecções seguintes cobrem os pacotes mais críticos para qualquer implementação séria do Ubuntu.

2.1. Build Essentials

O pacote build-essential instala um conjunto curado de ferramentas necessárias para compilar software a partir do código-fonte, incluindo GCC (GNU Compiler Collection), Make e bibliotecas padrão C/C++.

sudo apt install build-essential -y

Verifique a instalação:

gcc --version
make --version

Este pacote é um pré-requisito para muitas outras ferramentas e tempos de execução de linguagem (por exemplo, extensões Python, gems Ruby, módulos nativos Node.js).

2.2. Git — Sistema de Controlo de Versão

Git é a ferramenta padrão da indústria para gestão de código-fonte, desenvolvimento colaborativo e pipelines de implementação.

sudo apt install git -y

Após a instalação, configure a sua identidade global:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

Verifique a sua configuração:

git config --list

Opcional mas recomendado: Defina o nome do seu ramo padrão como main para se alinhar com as convenções modernas:

git config --global init.defaultBranch main

2.3. Ferramentas de Rede: curl e wget

Estes utilitários são indispensáveis para descarregar ficheiros, testar APIs e depurar conectividade de rede diretamente a partir da linha de comandos.

sudo apt install curl wget -y

Exemplos de utilização rápida:

# Download a file with wget
wget https://example.com/file.tar.gz

# Test an API endpoint with curl
curl -I https://example.com

Ferramentas adicionais úteis de diagnóstico de rede:

sudo apt install net-tools dnsutils traceroute -y
  • net-tools — Fornece ifconfig, netstat e comandos relacionados.
  • dnsutils — Inclui dig e nslookup para resolução de problemas DNS.
  • traceroute — Rastreia o caminho de rede para um anfitrião remoto.

2.4. Editores de Texto

Cada administrador de sistema precisa de um editor de texto fiável na linha de comandos. O Ubuntu suporta várias opções dependendo da sua preferência e fluxo de trabalho.

Nano (amigável para principiantes):

sudo apt install nano -y

Vim (poderoso, altamente configurável):

sudo apt install vim -y

Emacs (rico em funcionalidades, extensível):

sudo apt install emacs -y

> Recomendação: Para ambientes de servidor, Vim é a opção mais universalmente disponível e capaz. Invista tempo em aprender os seus comandos principais — isto acelerará significativamente o seu fluxo de trabalho.

2.5. Instalação do Servidor Web

Um servidor web é essencial para alojar websites, aplicações web e APIs. As duas opções dominantes no Ubuntu são Nginx e Apache.

Instalação do Nginx (Recomendado para Alto Desempenho)

sudo apt install nginx -y

Inicie e ative o Nginx para ser lançado automaticamente no arranque:

sudo systemctl start nginx
sudo systemctl enable nginx

Verifique se está em execução:

sudo systemctl status nginx

Teste a sua configuração antes de recarregar:

sudo nginx -t

Instalação do Apache

sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2

Nginx vs. Apache — Qual Deve Escolher?

FuncionalidadeNginxApache
Desempenho sob cargaExcelente (orientado a eventos)Bom (baseado em processo/thread)
Serviço de ficheiros estáticosMuito rápidoRápido
Suporte .htaccessNãoSim
Ecossistema de módulosEm crescimentoExtenso
Utilização de memóriaInferiorSuperior

Para a maioria das implementações modernas — particularmente em ambientes VPS Hosting na nuvem — Nginx é a escolha preferida devido ao seu tratamento superior de conexões simultâneas e menor pegada de memória.

3. Configurar Repositórios de Software

A instalação padrão do Ubuntu ativa apenas os repositórios Main e Restricted. Para aceder a uma gama significativamente mais ampla de software, deve ativar os repositórios Universe e Multiverse.

Método 1: Utilizar a GUI (Ubuntu Desktop)

  1. Abra Software & Updates a partir do menu de aplicações.
  2. No separador Ubuntu Software, marque as caixas para Universe e Multiverse.
  3. Clique em Close e recarregue a lista de pacotes quando solicitado.

Método 2: Utilizar a Linha de Comandos (Recomendado para Servidores)

sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt update

Visão Geral do Repositório:

RepositórioConteúdo
MainSoftware de código aberto oficialmente suportado
RestrictedControladores proprietários com suporte oficial
UniverseSoftware de código aberto mantido pela comunidade
MultiverseSoftware com restrições de licença

Adicionar PPAs de Terceiros

Para software não disponível nos repositórios oficiais, pode adicionar Personal Package Archives (PPAs):

sudo add-apt-repository ppa:repository-name/ppa
sudo apt update
sudo apt install package-name

> Nota de Segurança: Adicione apenas PPAs de fontes confiáveis e bem conhecidas. Repositórios de terceiros podem introduzir software não verificado no seu sistema.

4. Instalação e Configuração de uma Firewall com UFW

Ubuntu vem com UFW (Uncomplicated Firewall), uma interface amigável para iptables. Configurar adequadamente sua firewall é um dos passos de segurança mais importantes para qualquer servidor acessível pela internet.

Ativar UFW

sudo ufw enable

Permitir Serviços Essenciais

Sempre permita SSH antes de ativar a firewall para evitar se bloquear:

sudo ufw allow ssh

Ou especifique a porta explicitamente:

sudo ufw allow 22/tcp

Permita tráfego HTTP e HTTPS para servidores web:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Permita perfis de aplicações específicas:

sudo ufw allow 'Nginx Full'
# or
sudo ufw allow 'Apache Full'

Verificar Status da Firewall

sudo ufw status verbose

Comandos UFW Adicionais

# Deny a specific port
sudo ufw deny 8080/tcp

# Delete a rule
sudo ufw delete allow 8080/tcp

# Reset all rules
sudo ufw reset

# Disable UFW
sudo ufw disable

> Melhor Prática: Siga o princípio do menor privilégio — abra apenas as portas explicitamente necessárias para seus serviços. Cada porta aberta desnecessária é uma potencial superfície de ataque.

5. Instalação e Configuração de Servidores de Banco de Dados

Os bancos de dados são a base de praticamente todas as aplicações web. Ubuntu suporta todos os principais sistemas de banco de dados relacionais e NoSQL através dos seus repositórios de pacotes.

5.1. Instalação do MySQL

MySQL é o banco de dados relacional de código aberto mais amplamente implantado do mundo.

sudo apt install mysql-server -y

Após a instalação, execute o script de endurecimento de segurança:

sudo mysql_secure_installation

Este script interativo irá:

  • Definir uma senha de root (ou validar a força da senha)
  • Remover utilizadores anónimos
  • Desabilitar login remoto de root
  • Remover o banco de dados de teste
  • Recarregar as tabelas de privilégios

Inicie e ative o MySQL:

sudo systemctl start mysql
sudo systemctl enable mysql

Verifique se o serviço está em execução:

sudo systemctl status mysql

Conecte-se ao shell do MySQL:

sudo mysql -u root -p

5.2. Instalação do MariaDB (Alternativa Compatível com MySQL)

MariaDB é um fork desenvolvido pela comunidade do MySQL com desempenho aprimorado e recursos adicionais:

sudo apt install mariadb-server mariadb-client -y
sudo mysql_secure_installation
sudo systemctl enable --now mariadb

5.3. Instalação do PostgreSQL

PostgreSQL é um poderoso sistema de banco de dados objeto-relacional de nível empresarial conhecido pela sua conformidade com padrões e extensibilidade.

sudo apt install postgresql postgresql-contrib -y

Inicie e ative o PostgreSQL:

sudo systemctl start postgresql
sudo systemctl enable postgresql

Mude para o utilizador administrativo do PostgreSQL e abra o shell:

sudo -i -u postgres
psql

Crie um novo banco de dados e utilizador:

CREATE DATABASE myapp_db;
CREATE USER myapp_user WITH ENCRYPTED PASSWORD 'strong_password';
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO myapp_user;
q

6. Instalação de Ferramentas e Utilitários Adicionais

Além dos essenciais, as seguintes ferramentas melhoram dramaticamente sua produtividade, visibilidade do sistema e capacidades de implantação.

Docker — Container Runtime

Docker permite que você empacote aplicações e suas dependências em contêineres portáteis, garantindo consistência entre ambientes de desenvolvimento, staging e produção.

sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker

Adicione seu usuário ao grupo Docker para executar comandos sem sudo:

sudo usermod -aG docker $USER
newgrp docker

Verifique se o Docker está funcionando:

docker run hello-world

Para implantações em produção, considere também instalar Docker Compose:

sudo apt install docker-compose -y

htop — Visualizador Interativo de Processos

htop fornece uma visualização em tempo real, codificada por cores, de processos do sistema, uso de CPU, consumo de memória e muito mais — muito superior ao comando padrão top.

sudo apt install htop -y
htop

Atalhos principais do htop:

  • F6 — Ordenar processos por coluna
  • F9 — Encerrar um processo
  • F10 — Sair
  • / — Procurar um processo

Tmux — Multiplexador de Terminal

Tmux permite que você crie, gerencie e persista múltiplas sessões de terminal dentro de uma única conexão SSH — inestimável para tarefas de longa duração em servidores remotos.

sudo apt install tmux -y

Comandos essenciais do Tmux:

# Start a new session
tmux new -s mysession

# Detach from session (keeps it running)
Ctrl+B, then D

# List all sessions
tmux ls

# Reattach to a session
tmux attach -t mysession

Utilitários Adicionais Recomendados

# fail2ban — Intrusion prevention system
sudo apt install fail2ban -y

# unzip — Extract ZIP archives
sudo apt install unzip -y

# tree — Display directory structure
sudo apt install tree -y

# ncdu — Disk usage analyzer
sudo apt install ncdu -y

# jq — JSON processor for the command line
sudo apt install jq -y

7. Personalizar as Definições do Sistema Ubuntu

7.1. Ativar Atualizações de Segurança Automáticas

Manter o seu sistema corrigido é crítico — especialmente em servidores acessíveis publicamente. O pacote unattended-upgrades do Ubuntu automatiza este processo.

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

Para personalizar o comportamento, edite o ficheiro de configuração:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Definições principais a rever:

  • Unattended-Upgrade::Allowed-Origins — Defina quais repositórios acionam atualizações automáticas.
  • Unattended-Upgrade::Automatic-Reboot — Defina como true para permitir reinicializações automáticas após atualizações do kernel.
  • Unattended-Upgrade::Mail — Configure notificações por email para atividade de atualização.

7.2. Gerir Aplicações de Arranque (Ubuntu Desktop)

Controlar quais aplicações são iniciadas no login ajuda a reduzir o tempo de arranque e a conservar recursos do sistema.

  1. Procure por Aplicações de Arranque no menu de aplicações GNOME.
  2. Reveja a lista de programas de arranque ativados.
  3. Desative qualquer aplicação que não necessite no login.
  4. Utilize o botão Adicionar para registar novos scripts de arranque ou aplicações.

Para ambientes de servidor, gerencie serviços com systemd:

# Disable a service from starting at boot
sudo systemctl disable service-name

# Enable a service at boot
sudo systemctl enable service-name

# List all enabled services
sudo systemctl list-unit-files --state=enabled

7.3. Configurar o Fuso Horário do Sistema

A configuração correta do fuso horário é essencial para a precisão dos registos, tarefas agendadas e validação de certificados SSL.

# Check current timezone
timedatectl

# List available timezones
timedatectl list-timezones

# Set timezone
sudo timedatectl set-timezone Europe/London

7.4. Configurar SSH para Acesso Remoto Seguro

Se está a gerir um servidor remoto, reforçar a sua configuração SSH é fundamental.

sudo nano /etc/ssh/sshd_config

Definições de segurança recomendadas:

# Disable root login
PermitRootLogin no

# Disable password authentication (use SSH keys instead)
PasswordAuthentication no

# Change default SSH port (optional but reduces automated scanning)
Port 2222

# Limit login attempts
MaxAuthTries 3

Após fazer alterações, reinicie SSH:

sudo systemctl restart sshd

> Importante: Teste sempre a sua nova configuração SSH numa sessão de terminal separada antes de fechar a sua ligação atual para evitar ficar bloqueado.

8. Configurar Cópias de Segurança Automatizadas

A perda de dados é catastrófica. Quer esteja a executar um projeto pessoal ou uma aplicação crítica para o negócio, as cópias de segurança automatizadas são inegociáveis.

Utilizar a Ferramenta de Cópia de Segurança Integrada do Ubuntu (Desktop)

  1. Procure por Backups (Déjà Dup) no menu de aplicações.
  2. Configure o seu destino de cópia de segurança: unidade externa, partilha de rede ou armazenamento em nuvem.
  3. Defina um calendário de cópia de segurança no separador Agendamento.
  4. Ative Cópia de Segurança Automática e configure períodos de retenção.

Cópia de Segurança da Linha de Comandos com rsync (Recomendado para Servidores)

rsync é o padrão ouro para cópias de segurança de ficheiros eficientes e incrementais em servidores Linux.

# Basic local backup
rsync -avz /source/directory/ /backup/destination/

# Remote backup over SSH
rsync -avz -e ssh /local/directory/ user@remote-server:/backup/path/

# Exclude specific directories
rsync -avz --exclude='*.log' --exclude='tmp/' /source/ /destination/

Automatizar Cópias de Segurança com Cron

crontab -e

Adicione uma tarefa de cópia de segurança diária às 2:00 AM:

0 2 * * * rsync -avz /var/www/ /backup/www/ >> /var/log/backup.log 2>&1

Melhores Práticas de Cópia de Segurança

  • Siga a regra 3-2-1: 3 cópias de dados, em 2 tipos de mídia diferentes, com 1 cópia fora do local.
  • Teste regularmente as suas cópias de segurança realizando simulações de restauro.
  • Encripte dados de cópia de segurança sensíveis.
  • Monitorize registos de cópia de segurança para falhas.

9. Monitorização do Sistema e Otimização de Desempenho

Ferramentas de Monitorização Integradas

GNOME System Monitor (Desktop):

Fornece uma visão gráfica do uso de CPU, memória, I/O de disco e rede. Inicie-o a partir do menu de aplicações ou via:

gnome-system-monitor

htop (Linha de Comando):

htop

vmstat — Estatísticas de Memória Virtual:

vmstat 1 10

iostat — Estatísticas de CPU e I/O:

sudo apt install sysstat -y
iostat -x 1 5

free — Uso de Memória:

free -h

df — Uso de Espaço em Disco:

df -h

netstat / ss — Conexões de Rede:

ss -tuln

9.1. Configuração de Monitorização do Sistema com Prometheus e Node Exporter

Para ambientes de produção, uma stack de monitorização adequada fornece dados históricos, alertas e dashboards.

# Install Node Exporter for system metrics
wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-*.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
sudo cp node_exporter-*/node_exporter /usr/local/bin/
sudo systemctl enable --now node_exporter

10. Otimizando o Desempenho do Sistema

10.1. Desabilitar Serviços de Inicialização Desnecessários

Identifique e desabilite serviços que você não precisa:

# List all running services
sudo systemctl list-units --type=service --state=running

# Disable a specific service
sudo systemctl disable --now bluetooth.service
sudo systemctl disable --now cups.service

10.2. Configurar e Ativar Espaço de Troca

O espaço de troca atua como memória de overflow quando a RAM está esgotada. Em servidores com RAM limitada, a troca adequadamente configurada pode evitar travamentos por falta de memória.

# Create a 2GB swap file
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Make swap permanent across reboots
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Ajuste a agressividade de troca (valor menor = troca menos agressiva):

sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

10.3. Remover Pacotes Não Utilizados e Limpar Cache de Pacotes

Com o tempo, pacotes órfãos e downloads em cache consomem espaço em disco significativo:

# Remove automatically installed packages no longer needed
sudo apt autoremove -y

# Remove cached package files
sudo apt autoclean

# Full clean of the package cache
sudo apt clean

10.4. Otimizar I/O de Disco com o Agendador Deadline

Para SSDs, o agendador none (noop) frequentemente oferece melhor desempenho:

# Check current scheduler
cat /sys/block/sda/queue/scheduler

# Set scheduler temporarily
echo none | sudo tee /sys/block/sda/queue/scheduler

10.5. Ativar e Configurar Fail2Ban

Fail2Ban monitora arquivos de log e bane automaticamente endereços IP que mostram comportamento malicioso (por exemplo, ataques de força bruta SSH):

sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

Crie uma substituição de configuração local:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Configurações principais:

[sshd]
enabled = true
port = ssh
maxretry = 5
bantime = 3600
findtime = 600

Reinicie o Fail2Ban para aplicar as alterações:

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

Alojamento do seu Servidor Ubuntu com AlexHost

Um sistema Ubuntu devidamente configurado é tão bom quanto a infraestrutura em que funciona. Quer esteja a implementar um projeto pessoal, uma aplicação comercial ou uma arquitetura complexa de múltiplas camadas, o alojamento fiável é a base de tudo.

AlexHost oferece um espectro completo de soluções de alojamento concebidas para complementar a sua configuração Ubuntu:

  • Alojamento VPS — Acesso root completo, armazenamento SSD e recursos escaláveis. Perfeito para implementações de servidores Ubuntu com controlo total sobre o seu ambiente.
  • Servidores Dedicados — Desempenho bare-metal para cargas de trabalho exigentes. Ideal quando precisa de máximo CPU, RAM e débito de I/O sem partilhar recursos.
  • VPS com cPanel — Combina a potência de um VPS com a facilidade da interface de gestão baseada na web do cPanel — uma ótima opção se preferir uma GUI em vez da linha de comandos.
  • Certificados SSL — Proteja as suas aplicações web com certificados SSL/TLS fidedignos. Essencial para qualquer servidor web em produção.
  • Alojamento Web Partilhado — Um ponto de entrada acessível para projetos mais pequenos que ainda não requerem um VPS completo.

Todos os servidores AlexHost suportam Ubuntu e podem ser aprovisionados em minutos, dando-lhe uma base limpa e atualizada para aplicar tudo o que foi abordado neste guia.

Conclusão

Instalar e configurar componentes Ubuntu não é uma tarefa única — é uma prática contínua que evolui com as necessidades da sua infraestrutura. Ao trabalhar sistematicamente através de atualizações de sistema, instalação de pacotes essenciais, configuração de repositório, configuração de firewall, implantação de banco de dados, ajuste de desempenho e backups automatizados, você constrói um ambiente Ubuntu robusto, seguro e altamente capaz.

Quer você seja um desenvolvedor configurando uma estação de trabalho local, um sysadmin gerenciando uma frota de servidores em nuvem, ou uma empresa implantando aplicações em produção, os princípios e comandos abordados neste guia fornecem uma base sólida e repetível.

Principais conclusões:

  • Sempre atualize seu sistema antes de instalar novo software.
  • Siga o princípio do menor privilégio para usuários, serviços e regras de firewall.
  • Automatize atualizações de segurança e backups — não confie em processos manuais.
  • Monitore seu sistema proativamente, não reativamente.
  • Escolha sua infraestrutura de hospedagem com sabedoria — ela sustenta tudo o mais.

Aplique essas práticas consistentemente, e seu sistema Ubuntu permanecerá seguro, performático e pronto para qualquer coisa que você jogar nele.