Pihole + Nextcloud + Git Network Home

← ← ←   17/09/2022 10:38:18 | Posted by: Demostenes Albert |

Carteira Bitcoin: bc1qju3r9r07vzejdr0uazmdwgcqljt8n2vztyvkfx4gd5k0a97042wqkdwxrl


Fala pessoal! Nesse post quero falar um pouco das coisas que uso em casa para manter uma rede funcional parra meus aquivos (backup de celular e outros) e meus projetinhos...

Para inicio de configuração aqui em casa tenho um router da Vivo (200 mbps bem legal) mesmo, com as configurações padrões 2.4Ghz e 5.8Ghz configurados e tals. Algumas regras de nat configuradas para eu poder configurar acesso aos meus serviços externamente caso eu precise acessá-los em algum momento de fora de casa.

O segundo ponto é maquina que roda meus serviços, tenho uma GSUO H61V10C (o comando dmidecode -t 2 me retornou essa ) versão da placa mãe



O processador é um Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz (comando dmidecode -t 4) e memoria 4GB no segundo slot de memoria (comando dmidecode -17).

Meus discos/ssd's são SSD 2.5 120GB (sda ssd 120GB), P3-128 (sdb ssd 120GB) e ST3500312CS (sdc mecânico de 500GB). Montados em um LVM (por que eu gosto e posso expandir quando eu quiser), com formato xfs para maior segurança. Com isso tenho um total de



Minha placa de rede é 1000 num cabo Cat 6 espetada direto no roteador para ficar mais rápido a troca de arquivos. É bom, mas um dia farei como o Fabio Akita que mete 10000 e boas, com um storage maluco que faz um puta raid foda e fica muito rápido.

Bom de Hardware é isso. Agora vamos falar do que tem dentro disso.

O Pi-Hole servidor de DNS, para doar para os caras clique aqui, no meu caso está configurado com o docker muito simples, veja o docker-compose.yml:

    services:
     pihole:
       container_name: pihole
       image:pihole/pihole:latest
       ports:
         - "53:53/tcp" # porta do dns server
         - "53:53/udp" # porta do dns server
         - "67:67/udp" # para usar o pi-hole como dns server
         - "81:80/tcp" # pi-hole web
       enviroment:
         TZ: 'America/Sao_Paulo'
       volumes:
         - './etc-pihole:/etc/pihole' #vai criar o diretorio etc-pihole no diretorio onde você executar o docker-compose
         - './etc-dnsmasq.d:/etc/dnsmasq.d' #vai criar o diretorio dnsmasq.d no diretorio onde você executar o docker-compose
       cap_add:
         - NET_ADMIN # recomendado mas não precisa, a menos que o pihole vá distribuir dhcp
       restart: unless-stopped
  

se for usar ele para distribuir dhcp inclua (network_mode: host)

Após isso basta rodar um docker-compose up -d, e você vai ter seu servidor de dhcp interno rodando, agora o que você precisa fazer é, no dhcp do seu roteador o ENDEREÇO da sua MAQUINA como DNS, para propagar nos seus dispositivos e pronto você tem seu próprio DNS te protegendo de publicidade e ainda usando DNSSEC.

Outro serviço que uso bastante é o Nextcloud, tem duas coisas que eu gosto nele (muito), funciona e é em PHP, tem outra coisa tambem é GRATIS... e uns puta plugins legais.
Aqui na Digital Ocean tem um tutorial muito legal de como instalar ele via snap (Digital Ocean é top!), e aqui no site da Nextcloud tem como instalar ele "manualmente".

Tenho ele instalado e configurado na minha empresa (manual) para as coisas de lá e tenho na minha casa (snap) para minhas coisas pessoais.

Tambem tenho um servidor GIT configurado, para meus projetinhos e versionamento das minhas coisas. aqui vai um tuto de como configurar o seu, no seu servidor Linux claro.

    $ sudo useradd --comment "Git user" --home-dir /home/git --groups users --shell $(which git-shell) git #começamos criando o usuario git sem permisão de executar o shell
    $ sudo mkdir -p /home/git # criando o home do git
    $ sudo chown -R git:users /home/git # permitindo git e usuarios no home do git
    $ sudo passwd git # senha do git, aqui uso o gerenciador de senha Buttercup para gerenciar as senhas
    $ sudo mkdir -p /home/git/.ssh/ # criando diretorio oculto ssh para armazenar as chaves que o git vai aceitar
    $ sudo chown -R git:users /home/git/.ssh # permitindo git e usuarios no home do git
    $ sudo chmod 700 /home/git/.ssh # alterando permissao do diretorio .ssh
    $ sudo touch /home/git/.ssh/authorized_keys # criando arquivo de chaves autorizadas
    $ sudo chown -R git:users /home/git/.ssh/authorized_keys # permitindo git e usuarios no arquivo de chaves autorizadas
    $ sudo chmod 600 /home/git/.ssh/authorized_keys # apenas o dono lê e escreve o arquivo
    $ sudo mkdir /home/git/meuprojeto.git # criando o diretorio do projeto, coloque o nome do projeto que quiser
    $ cd /home/git/meuprojeto.git # entrando no diretorio para iniciar o repositorio vazio
    $ sudo git init --bare # inciando o repositorio
    $ sudo chown -R git:users /home/git/test.git # dando o diretorio e sub diretorio para o git e usuarios
  

Com isso terminamos o repositorio GIT, agora vamos ao cliente GIT.

Para criar a sua chave basta seguir esse tutorial aqui

Agora vamos enviar a chave (do seu computador) para o servidor onde esta o nosso repositorio git, segue:

    $ scp ~/.ssh/id_rsa.pub seu_usuario@endereco_servidor:~/
  

Esse comando vai subir seu arquivo para o seu servidor. Agora no seu servidor, segue:

    $ sudo cat ~/id_rsa.pub >> /home/git/.ssh/authorized_keys
  

Esse comando acima escreveu no arquivo authorized_keys a chave que você criou, agora basta tentar conectar com o usuario git no seu servidor, ex:

    $ ssh git@endereco_servidor
  

pronto. Basta criar o seu diretorio onde quiser e começar a usar o SEU GIT lá.

Espero que tenham gostado, qualquer duvida, reclamação, conselho, ou qualquer coisa basta deixar um comentario abaixo.