Instalação Ubuntu Server 24.04 LTS
O Ubuntu atualmente é a distribuição Linux mais popular do mercado, tanto em dispositivos domésticos quanto em servidores. Pensando em servidores, o Ubuntu Server está disponível em duas versões – LTS e a rolling-release.
A versão atual do LTS é a Ubuntu Server 24.04 LTS (Noble Numbat) e o ciclo de apoio de cinco anos, enquanto as versões rolling-release, tem nove meses de atualizações.
Para fazer download da versão LTS, acesse o seguinte link: https://ubuntu.com/download/server
1. PROCESSO DE INSTALAÇÃO BASEADO NO ASSISTENTE GRÁFICO DO UBUNTU
1.1. Inicie seu sistema ou máquina virtual com a mídia de instalação do Ubuntu.
1.2. Na primeira tela que seruge, deve-se escolher o idioma da instalação:
O escolhido pode ser o Português.
1.3. Defina o layout e variante do teclado.
Sugerimos, Portuguese (Brazil) para ambos e clique em [Concluído].
1.4. Na próxima tela deve-se escolher a base para instalação do Ubuntu:
Minha recomendação é escolher a opção “Padrão”, que instala um grupo de pacotes com ferramentas que auxiliam na administração do servidor.
1.5. Na sequência, deve-se configurar a interface de rede, para que o servidor possa se comunicar com outras máquinas e com a internet:
Sugiro configurar com IP manual a sua respectiva interface de rede. Confira o exemplo a seguir e adapte para a sua infraestrutura de redes.
Defina sua subrede (ex: 172.16.1.0/24)
Defina o endereço IP (ex: 172.16.1.12)
Defina o seu respectivo gateway (ex: 172.16.1.1)
Defina os seus servidores DNS (ex: 172.16.1.1, 1.1.1.1, 8.8.8.8)
Defina seu domínio em "Procurar em Domínios" (ex: engesis.intra)
1.6. O instalador irá solicitar o servidor proxy, caso seja utilizado na rede em que o Ubuntu Server está sendo implantado.
Caso não utilize proxy, deixe este campo em branco e clique em [Concluído].
1.7. Na próxima tela será processado um teste de repositórios espelho:
Caso tenha internet, aguarde o processo e confirme em [Concluído].
1.8. Chega o momento para definir como será administrado o armazenamento. O administrador pode escolher se pretende usar todo o disco, ou então, particioná-lo (Caso pretenda particionar, use a opção “Custom storage Layout”).
Vamos utilizar opção “Use An Entire Disk”, a fim de usar todo o disco e marque também a opção “Set up this disk as an LVM group” e clique em [Concluído].
1.9. O assistente da instalação irá apresentar um sumário de todas as configurações realizadas ao nível do sistema de arquivos utilizado.
Se tudo estiver correto, confirme, clicando em [Concluído].
1.10. Na próxima tela, deve-se criar um usuário padrão para acessar o servidor, além de determinar o nome do servidor.
Confira o exemplo a seguir e adapte para o uso em sua respectiva infraestrutura.
Defina o nome de sua empresa ou administrador (ex: ENGESIS Tecnologia ou Marcelo Costa)
Defina o nome do servidor (ex: srvNomeSistema)
Defina o nome de utilizador(ex: marcelocosta)
Defina a respectiva senha do usuário
1.11. Na próxima janela, será referente ao Ubuntu Pro.
Como estamos utilizando a versão comunidade, deixe marcada a opção “Skip for now” e clique em [Continue].
1.12. Na janela seguinte, para poder acessar essa máquina utilizando o ssh de forma segura:
Marque a opção “Instalação do servidor OpenSSH”.
1.13. Finalize a instalação e reinicie seu servidor, lembrando de alterar a ordem de boot, caso seja necessário.
2. CONFIGURAÇÕES INiciais para permitir operação
2.1. Acesse o seu servidor com os dados de usuário criado na etapa 1.10
2.2. Estando no terminal, habilite o usuário root
sudo passwd root
Informe a senha do usuário atual
Informe uma nova senha para o usuário "root" (duas vezes)
* Se desejar, pode sair da conta do usuário atual e continuar os ajustes com o usuário “root”.
2.3. Atualize e instale as versões mais recentes de todos os pacotes atualmente instalados no seu servidor
sudo apt update && sudo apt upgrade
2.4. Habilitar o acesso SSH no Ubuntu
sudo vim /etc/ssh/sshd_config
Coloque a parte de autenticação como o mostrado abaixo:
Authentication: LoginGraceTime 1m StrictModes yes
* Por questões de segurança, não estamos liberando o acesso root via ssh
2.5. Para concluir, reinicie o serviço SSH
sudo systemctl restart ssh
2.5. Configure o firewall UFW para permitir conexões SSH
sudo ufw allow ssh sudo ufw enable
2.6. Atualize o servidor e limpe itens não mais necessários
sudo apt update && sudo apt upgrade && sudo apt autoremove && sudo apt autoclean && sudo apt clean
3. Instalação do Fail2ban para segurança SSH
Fail2ban é uma poderosa ferramenta de segurança, escrita em Python que ajuda a proteger sistemas contra ataques de força bruta, bloqueando endereços IP que tentam fazer login com credenciais incorretas.
Ele monitora os arquivos de log em busca de tentativas de login malsucedidas e outras atividades suspeitas. Ao detectar tais atividades, ele proíbe os endereços IP infratores, modificando as regras do firewall (ipTables, UFW).
3.1. Instalação do Fail2ban
sudo apt install fail2ban
3.2. Após a instalação, confira se o Fail2ban está instalado corretamente
fail2ban-client --version
3.3. Configuração básica do Fail2ban
O arquivo principal de configuração do Fail2ban é o /etc/fail2ban/jail.conf, mas é recomendável criar uma cópia personalizada chamada /etc/fail2ban/jail.local para preservar configurações em futuras atualizações.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Abra o arquivo /etc/fail2ban/jail.local para edição:
sudo nano /etc/fail2ban/jail.local
- Ignore IPs específicos (como IPs da sua rede interna):
ignoreip = 127.0.0.1/8 172.16.9.0/24 192.168.15.0/24
- Ban time: tempo que um IP será bloqueado (em segundos):
bantime = 3600
- Find time: período de monitoramento para detectar tentativas falhas (em segundos):
findtime = 600
- Max retry: número de tentativas permitidas antes do bloqueio:
maxretry = 5
- Habilite e configure as jails (regras de proteção para serviços específicos) conforme o serviço que deseja proteger. Exemplo para SSH:
[sshd] enabled = true port = ssh logpath = %(sshd_log)s maxretry = 3
Após ajustado o arquivo, salve e saia do editor.
3.4. Para que as configurações tenham efeito, reinicialize o Fail2ban
sudo systemctl restart fail2ban
3.5. Verifique o status geral
sudo fail2ban-client status
3.6. Para verificar o status de uma jail específica (por exemplo, SSH):
sudo fail2ban-client status sshd
4. Sincronizar horário do servidor com ntp.br
A sincronização do horário nos servidores é essencial para garantir a consistência e precisão dos logs, facilitar a auditoria e a resolução de problemas e cumprir com requisitos de conformidade. Ela é crucial para a segurança e autenticação, pois assegura a validade de certificados e evita falhas devido a diferenças de horário.
Além disso, permite a coordenação eficaz de tarefas e processos, como backups e replicação de dados, além disso, melhora o desempenho e a funcionalidade de redes ao garantir que os protocolos de comunicação funcionem corretamente.
4.1. Definir a região de fuso horário
sudo dpkg-reconfigure tzdata
Na janela de opções que aparece, escolha o fuso horário. Ex: Americas -> São Paulo
4.2. Instalar o pacote NTP para sincronizar com um servidor desejado (ex: NTP.br)
sudo apt install ntp
4.3. Configurar seus servidores NTP é uma etapa crítica. Abra o arquivo de configuração NTP em um editor de textos. Aqui usamos o Vim para simplificar
sudo vim /etc/ntpsec/ntp.conf
No arquivo de configuração, adicione ou modifique as linhas ao servidor NTP utilizado para especificar seus servidores preferenciais. No exemplo, desabilitamos os servidores NTP da Canonical e adicionamos os servidores do projeto ntp.br
# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board # on 2011-02-08 (LP: #104525). See https://www.pool.ntp.org/join.html for # more information. #pool 0.ubuntu.pool.ntp.org iburst #pool 1.ubuntu.pool.ntp.org iburst #pool 2.ubuntu.pool.ntp.org iburst #pool 3.ubuntu.pool.ntp.org iburst pool a.st1.ntp.br iburst pool b.st1.ntp.br iburst pool c.st1.ntp.br iburst pool d.st1.ntp.br iburst
4.4. Reinicie o serviço NTP
sudo systemctl restart ntp
4.5. Confira o status do serviço NTP
sudo systemctl status ntp
A saída do status deve mostrar os novos servidores sendo utilizados.
● ntpsec.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpsec.service; enabled; preset: enabled)
Active: active (running) since Fri 2024-05-08 19:41:17 -03; 3s ago
Docs: man:ntpd(8)
Process: 17198 ExecStart=/usr/libexec/ntpsec/ntp-systemd-wrapper (code=exited, status=0/SUCCESS)
Main PID: 17201 (ntpd)
Tasks: 1 (limit: 4614)
Memory: 10.5M (peak: 11.0M)
CPU: 204ms
CGroup: /system.slice/ntpsec.service
└─17201 /usr/sbin/ntpd -p /run/ntpd.pid -c /etc/ntpsec/ntp.conf -g -N -u ntpsec:ntpsec
may 08 19:41:18 srvNomeSistema ntpd[17201]: DNS: Pool taking: 2001:12ff:0:7::186
may 08 19:41:18 srvNomeSistema ntpd[17201]: DNS: dns_take_status: a.st1.ntp.br=>good, 8
may 08 19:41:19 srvNomeSistema ntpd[17201]: DNS: dns_probe: b.st1.ntp.br, cast_flags:8, flags:101
may 08 19:41:19 srvNomeSistema ntpd[17201]: DNS: dns_check: processing b.st1.ntp.br, 8, 101
may 08 19:41:19 srvNomeSistema ntpd[17201]: DNS: Pool taking: 201.49.148.135
may 08 19:41:19 srvNomeSistema ntpd[17201]: DNS: dns_take_status: b.st1.ntp.br=>good, 8
may 08 19:41:20 srvNomeSistema ntpd[17201]: DNS: dns_probe: c.st1.ntp.br, cast_flags:8, flags:101
may 08 19:41:20 srvNomeSistema ntpd[17201]: DNS: dns_check: processing c.st1.ntp.br, 8, 101
may 08 19:41:20 srvNomeSistema ntpd[17201]: DNS: Pool taking: 200.186.125.195
may 08 19:41:20 srvNomeSistema ntpd[17201]: DNS: dns_take_status: c.st1.ntp.br=>good, 8
4.6. Caso o seu servidor esteja atrás de um firewall, libere a comunicação do protocolo NTP para a internet através da liberação UDP na porta 123 deste servidor.
sudo ufw allow 123/udp sudo ufw reload
4.7. Faça testes para verificar se o fuso e o horário estão corretos
sudo ntpq -p
sudo date
5. Opções adicionais a instalação
Caso este servidor seja uma máquina virtualizada no hypervisor Proxmox, é ncessário instalar o agente qemu para permitir a execução de comandos na máquina cliente via Proxmox.
5.1. Instalação do agente qemu
sudo apt install qemu-guest-agent
5.2. Habilitar o agente qemu na inicialização do sistema
sudo systemctl enable qemu-guest-agent
5.3. Iniciar imediatamente o agente qemu
sudo systemctl start qemu-guest-agent
5.4. Verfificar o status atual do agente qemu
sudo systemctl status qemu-guest-agent
5.5. Para finalizar, atualize o servidor e limpe itens não mais necessários
sudo apt update && sudo apt upgrade && sudo apt autoremove && sudo apt autoclean && sudo apt clean