15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
31.10.2024
1 +1

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 de VPS Hosting na nuvem, saber como instalar e configurar corretamente 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.

Índice

  1. Atualizar Ubuntu Antes de Instalar Qualquer Coisa
  2. Instalar Componentes Essenciais
  3. Configurar Repositórios de Software
  4. Instalar e Configurar uma Firewall com UFW
  5. Instalar e Configurar Servidores de Base de Dados
  6. Instalar Ferramentas e Utilitários Adicionais
  7. Personalizar Definições do Sistema Ubuntu
  8. Configurar Cópias de Segurança Automatizadas
  9. Monitorização do Sistema e Otimização de Desempenho
  10. Dicas Finais para um Sistema Ubuntu Pronto para Produção

1. Atualizar Ubuntu Antes de Instalar Qualquer Coisa

Antes de tocar num único pacote, atualize sempre o seu sistema completamente. Isto garante que está a trabalhar com os patches de segurança mais recentes, correções de erros e melhorias de compatibilidade de software.

sudo apt update && sudo apt upgrade -y

O que isto faz:

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

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

Após a atualização, reinicie se o kernel foi atualizado:

sudo reboot

2. Instalar 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 da fonte, incluindo GCC (GNU Compiler Collection), Make e bibliotecas C/C++ padrão.

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 seu nome de ramo padrão para 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 comando.

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 de diagnóstico de rede adicionais úteis:

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 de 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 comando. Ubuntu suporta várias opções dependendo da sua preferência e fluxo de trabalho.

Nano (amigável para iniciantes):

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 escolhas dominantes no Ubuntu são Nginx e Apache.

#### Instalar Nginx (Recomendado para Alto Desempenho)

sudo apt install nginx -y

Inicie e ative Nginx para iniciar 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

#### Instalar 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 de nuvem VPS Hosting — Nginx é a escolha preferida devido ao seu tratamento superior de conexões simultâneas e menor consumo 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: Usar a GUI (Desktop Ubuntu)

  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: Usar a Linha de Comando (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 licenciamento

Adicionar PPAs de Terceiros

Para software não disponível em 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. Instalar e Configurar uma Firewall com UFW

Ubuntu vem com UFW (Uncomplicated Firewall), uma interface amigável para iptables. Configurar corretamente a 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 ficar bloqueado:

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 Estado 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 que são explicitamente necessárias para os seus serviços. Cada porta aberta desnecessária é uma potencial superfície de ataque.

5. Instalar e Configurar Servidores de Base de Dados

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

5.1. Instalar MySQL

MySQL é o sistema de base de dados relacional de código aberto mais amplamente implementado no 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 palavra-passe de raiz (ou validar a força da palavra-passe)
  • Remover utilizadores anónimos
  • Desativar login remoto de raiz
  • Remover a base de dados de teste
  • Recarregar tabelas de privilégios

Inicie e ative MySQL:

sudo systemctl start mysql
sudo systemctl enable mysql

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

sudo systemctl status mysql

Conecte-se à shell MySQL:

sudo mysql -u root -p

5.2. Instalar MariaDB (Alternativa Compatível com MySQL)

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

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

5.3. Instalar PostgreSQL

PostgreSQL é um poderoso sistema de base 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 PostgreSQL:

sudo systemctl start postgresql
sudo systemctl enable postgresql

Mude para o utilizador administrativo PostgreSQL e abra a shell:

sudo -i -u postgres
psql

Crie uma nova base 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. Instalar Ferramentas e Utilitários Adicionais

Para além do essencial, as seguintes ferramentas melhoram dramaticamente a sua produtividade, visibilidade do sistema e capacidades de implementação.

Docker — Container Runtime

Docker permite-lhe empacotar aplicações e as suas dependências em contentores portáteis, garantindo consistência em ambientes de desenvolvimento, teste e produção.

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

Adicione o seu utilizador ao grupo Docker para executar comandos sem sudo:

sudo usermod -aG docker $USER
newgrp docker

Verifique se Docker está a funcionar:

docker run hello-world

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

sudo apt install docker-compose -y

htop — Visualizador de Processos Interativo

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

sudo apt install htop -y
htop

Atalhos principais de htop:

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

Tmux — Terminal Multiplexer

Tmux permite-lhe criar, gerir e persistir 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 de 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 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 de kernel.
  • Unattended-Upgrade::Mail — Configure notificações por email para atividade de atualização.

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

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 Startup Applications no menu de aplicações GNOME.
  2. Revise a lista de programas de arranque ativados.
  3. Desative qualquer aplicação que não necessite no login.
  4. Use o botão Add 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 precisão de 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, endurecer 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: Sempre teste a sua nova configuração SSH numa sessão de terminal separada antes de fechar a sua conexã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.

Usar 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 na nuvem.
  3. Defina um cronograma de cópia de segurança no separador Scheduling.
  4. Ative Automatic Backup e configure períodos de retenção.

Cópia de Segurança na Linha de Comando 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 exercícios de restauração.
  • Criptografe 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 geral gráfica de CPU, memória, I/O de disco e utilização de 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 — Utilização de Memória:

free -h

df — Utilização de Espaço em Disco:

df -h

netstat / ss — Conexões de Rede:

ss -tuln

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

Para ambientes de produção, uma pilha 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. Otimizar Desempenho do Sistema

10.1. Desativar Serviços de Arranque Desnecessários

Identifique e desative serviços que não necessita:

# 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 transbordamento quando a RAM está esgotada. Em servidores com RAM limitada, a troca adequadamente configurada pode evitar falhas de 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 inferior = 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 descarregamentos 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 fornece 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 ficheiros de registo e bane automaticamente endereços IP que mostram comportamento malicioso (por exemplo, ataques de força br

15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar