Pular para o conteúdo
Início » Como Construir um Servidor Caseiro com Debian

Como Construir um Servidor Caseiro com Debian

Na era digital atual, gerenciar e centralizar seus dados e serviços está se tornando cada vez mais importante. Seja para armazenar seus arquivos de mídia, rodar sua própria nuvem pessoal ou hospedar várias aplicações, um servidor caseiro pode oferecer maior privacidade, segurança e acessibilidade aos seus dados. Este guia vai te orientar no processo de construção de um servidor caseiro usando Debian, uma das distribuições Linux mais estáveis e versáteis.

Pré-requisitos

Requisitos de Hardware

Requisitos Mínimos

  • CPU: Processador de 1 GHz ou superior
  • RAM: 1 GB (2 GB recomendado)
  • Armazenamento: 20 GB de espaço livre em disco

Hardware Recomendado

  • CPU: Processador multi-core (Intel i3/i5/i7 ou equivalente AMD)
  • RAM: 4 GB ou mais
  • Armazenamento: 500 GB ou mais, preferencialmente um SSD para o sistema operacional e HDDs adicionais para armazenamento de dados
  • Rede: Ethernet Gigabit

Escolhendo o Hardware Adequado

Ao selecionar o hardware para seu servidor caseiro, você tem várias opções. Pode reutilizar um PC antigo, usar hardware dedicado de servidor ou até optar por um dispositivo de pequeno formato como um Raspberry Pi para tarefas básicas. Certifique-se de que o hardware escolhido atende aos requisitos dos serviços que você planeja executar.

Requisitos de Software

Visão Geral do Debian OS

Debian é um sistema operacional gratuito e de código aberto, conhecido por sua estabilidade e grande repositório de software. É uma excelente escolha para um servidor caseiro devido à sua confiabilidade e suporte robusto da comunidade.

Ferramentas e Pacotes Necessários

  • Arquivo ISO do Debian
  • Etcher (ou qualquer ferramenta para criar um pen drive bootável)
  • Cliente SSH (e.g., PuTTY para Windows, terminal para Linux/macOS)
  • Software de servidor web (Apache ou Nginx)
  • Software de servidor de arquivos (Samba ou NFS)
  • Software de servidor de banco de dados (MySQL ou PostgreSQL)
  • Software para serviços adicionais (Nextcloud, Plex, Postfix, etc.)

Configurando Seu Servidor

Passo 1: Preparando o Hardware

Garanta que todos os componentes estão corretamente montados e conectados. Isso inclui instalar a CPU, RAM, discos de armazenamento e conectar todos os periféricos necessários, como teclado, monitor e cabos de rede.

Para a configuração inicial, você precisará de um teclado e monitor conectados ao seu servidor. Após a configuração, você pode gerenciar seu servidor remotamente usando SSH.

Passo 2: Instalando o Debian

Visite o site oficial do Debian e baixe a versão estável mais recente. Escolha a versão apropriada para a arquitetura do seu sistema (e.g., amd64 para sistemas 64-bit).

Use o Etcher ou uma ferramenta similar para criar um pen drive bootável com o ISO do Debian baixado.

Guia de Instalação Passo a Passo

  1. Boot pelo USB: Insira o pen drive bootável no seu servidor e inicie a partir dele. Você pode precisar ajustar as configurações do BIOS para iniciar pelo USB.
  2. Idioma e Localidade: Selecione seu idioma, país e layout de teclado preferidos.
  3. Configurar Rede: Escolha um nome para seu servidor e configure as configurações de rede. Para um endereço IP estático, você pode configurá-lo durante ou após a instalação.
  4. Particionamento de Discos: Particione seu disco conforme necessário. Para uma configuração simples, use o particionamento guiado para instalar o Debian no disco inteiro. Para configurações mais avançadas, você pode configurar partições separadas para /home, /var, etc.
  5. Configurar Usuários e Senhas: Crie uma senha para o root e uma conta de usuário para operações diárias.
  6. Instalar Sistema Base: Siga as instruções para instalar o sistema base. Isso inclui selecionar o software a ser instalado; você pode optar por uma instalação mínima e adicionar mais pacotes posteriormente.
  7. Finalizar Instalação: Após a instalação ser concluída, remova o pen drive e reinicie seu servidor.

Passo 3: Configuração Pós-Instalação

Após o primeiro reinício, atualize a lista de pacotes e atualize os pacotes instalados:

sudo apt update
sudo apt upgrade

Garanta que seu servidor tenha um endereço IP estático para acessibilidade consistente na rede. Edite o arquivo de configuração das interfaces de rede:

sudo nano /etc/network/interfaces

Adicione as seguintes linhas, substituindo pelos detalhes da sua rede:

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4

Reinicie o serviço de rede:

sudo systemctl restart networking

Instale o pacote do servidor OpenSSH para habilitar o acesso remoto:

sudo apt install openssh-server

Habilite e inicie o serviço SSH:

sudo systemctl enable ssh
sudo systemctl start ssh

Agora você pode conectar-se ao seu servidor remotamente usando um cliente SSH.

Passo 4: Instalando Serviços Essenciais

Escolha entre Apache ou Nginx para seu servidor web.

Apache

sudo apt install apache2

Habilite e inicie o serviço Apache:

sudo systemctl enable apache2
sudo systemctl start apache2

Nginx

sudo apt install nginx

Habilite e inicie o serviço Nginx:

sudo systemctl enable nginx
sudo systemctl start nginx

Configurando um Servidor de Arquivos

Samba (para compartilhamento de arquivos com Windows)
sudo apt install samba

Edite o arquivo de configuração do Samba:

sudo nano /etc/samba/smb.conf

Adicione suas pastas compartilhadas:

[shared]
   path = /srv/samba/shared
   read only = no
   browsable = yes

Crie o diretório compartilhado e defina as permissões:

sudo mkdir -p /srv/samba/shared
sudo chown -R nobody:nogroup /srv/samba/shared

Reinicie o serviço Samba:

sudo systemctl restart smbd
NFS (para compartilhamento de arquivos com Linux)
sudo apt install nfs-kernel-server

Edite o arquivo de exportação:

sudo nano /etc/exports

Adicione seus diretórios compartilhados:

/srv/nfs/shared 192.168.1.0/24(rw,sync,no_subtree_check)

Exporte os compartilhamentos e reinicie o serviço NFS:

sudo exportfs -a
sudo systemctl restart nfs-kernel-server

Passo 5: Configurando um Servidor de Banco de Dados

MySQL

sudo apt install mysql-server

Proteja a instalação do MySQL:

sudo mysql_secure_installation

PostgreSQL

sudo apt install postgresql

Acesse o prompt do PostgreSQL para criar bancos de dados e usuários:

sudo -i -u postgres psql

Passo 6: Armazenamento Centralizado de Dados

Para redundância e desempenho melhorado, considere configurar RAID (Redundant Array of Independent Disks). Isso é opcional, mas recomendado para dados críticos.

Crie e gerencie pastas compartilhadas com permissões de usuário adequadas. Use os comandos chown e chmod para definir propriedade e permissões.

Use ferramentas como rsync para backups. Automatize backups com cron:

crontab -e

Adicione um cron job para backups diários:

0 2 * * * rsync -a /caminho/para/origem /caminho/para/destino

Passo 7: Hospedagem de Serviços

Hospedando um Serviço de Nuvem Pessoal (Nextcloud)

Instale o Nextcloud para criar sua nuvem pessoal:

sudo apt install apache2 mariadb-server libapache2-mod-php
sudo apt install php php-mysql php-xml php-mbstring php-zip php-gd php-curl

Baixe e extraia o Nextcloud:

wget https://download.nextcloud.com/server/releases/nextcloud-21.0.1.zip
unzip nextcloud-21.0.1.zip
sudo mv nextcloud /var/www/html/

Configure um banco de dados para o Nextcloud e complete a instalação via web.

Hospedando um Servidor de Mídia (Plex)

Baixe e instale o Plex Media Server:

wget https://downloads.plex.tv/plex-media-server-new/1.23.1.4602-280ab6054/debian/plexmediaserver

_1.23.1.4602-280ab6054_amd64.deb
sudo dpkg -i plexmediaserver_1.23.1.4602-280ab6054_amd64.deb

Acesse a interface web do Plex para completar a configuração.

Considerações de Segurança

Passo 8: Protegendo Seu Servidor

Instale e configure o UFW (Uncomplicated Firewall):

sudo apt install ufw
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

Instale o Fail2ban para prevenir ataques de força bruta:

sudo apt install fail2ban

Configure o Fail2ban para proteger o SSH e outros serviços:

sudo nano /etc/fail2ban/jail.local

Adicione a seguinte configuração:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5

Reinicie o Fail2ban:

sudo systemctl restart fail2ban

Instale o Certbot para obter certificados SSL do Let’s Encrypt:

sudo apt install certbot python3-certbot-apache
sudo certbot --apache

Siga as instruções para proteger seu site com SSL.

Atualize seu sistema regularmente:

sudo apt update
sudo apt upgrade

Use ferramentas de monitoramento como o Nagios para acompanhar o desempenho e a segurança do sistema.

Manutenção e Monitoramento

Passo 9: Manutenção Regular

Mantenha seu sistema atualizado com os patches de segurança e versões de software mais recentes.
Use ferramentas como htop e Nagios para monitorar o desempenho do sistema e o uso de recursos.
Verifique regularmente os logs do sistema e configure mecanismos de alerta para questões críticas.

Construir um servidor caseiro com Debian permite que você tenha controle total sobre seus dados e serviços. Você pode economizar custos em comparação com serviços de nuvem, desfrutar de maior privacidade e segurança, e ter a flexibilidade de expandir e personalizar sua configuração conforme necessário.