// // Chicletes para o Cérebro: Ubuntu Server
Mostrando postagens com marcador Ubuntu Server. Mostrar todas as postagens
Mostrando postagens com marcador Ubuntu Server. Mostrar todas as postagens

domingo, 25 de dezembro de 2022

Resolvido: erro no FireWall após atualização do Ubuntu Server para 22.04 LTS

Pessoal,


Pequena nota mental aqui.

Hoje fui atualizar o Ubuntu Server aqui na VM do Proxmox da 20.04 para a 22.04. Essa atualização foi com o comando:
# do-release-upgrade

Atualização demorada mas bem tranquila. O susto veio após o término. Após o reboot, dei um "apt update" e deu um monte de erro de atualização.



 Aí fui ver se estava pingando. Nada de internet.


Bom, vamos pesquisar. Achei vários lugares citando um erro na criação do arquivo "/etc/netplan/01-network-manager-all.yaml". Alguns lugares citam o nome "01-network-manager-all", outros citam "01-netcfg". No meu estava "00-netcfg". Assim, renomeei o arquivo para "01-netcfg.yaml" mas não alterei o conteúdo já que estava tudo certo:


Depois usei os comandos abaixos para gerar a configuração no sistema e aplicá-la.
# netplan generate
# netplan apply

Dei outro ping e tive o mesmo erro de falha na resolução de nomes e perda de pacotes. Sem conexão ainda. Reiniciei e nada.


Cavucando um pouco mais na internet, achei uma dica de desabilitar o firewall do Ubuntu Server usando:

# ufw disable

O resultado está aqui:


Bom, o problema está no firewall. Testei reiniciar o firewall e rebootar. Mesmo problema. Inclusive, após reiniciar a VM, desligar o firewall e religá-lo novamente, dá esse erro aqui:


Costumo usar o Console do Proxmox para acessar o shell das VM mas para algumas coisas eu prefiro usar o Terminal do MacOS. Interessante, bem interessante, que quando eu ativo o firewall do Ubuntu Server, a conexão via SSH cai. Então realmento o firewall é o vilão dessa história.

Até pensei em fazer as regras "na unha", mas aí procurei um pouco mais sobre esse erro no ufw-init e fiz os seguintes comandos:
# ufw disable
# ufw reset
E apaguei as regras todas do ufw. Depois conferi os requerimentos do ufw:
# /usr/share/ufw/check-requirements
Esse script cria várias regras para IPV4 e IPV6. Muito interessante é o que mostrou no final:


Esse  "netfilter-persistent" é parte, pelo que entendi, de um sistema firewall antigo (junto com o iptables) do Ubuntu e que foi / está sendo substituido pelo ufw (Ubuntu FireWall ou Uncomplicated FireWall). Então, parece que deu pau entre os dois nessa atualização do 20.04 para o 22.04. Vários relatos na internet e fóruns dedicados reforçam essa ideia.

Assim, vou ficar com o ufw e vou apagar o netfilter-persistent:
# apt-get remove --purge netfilter-persistent

Depois fiz o /usr/share/ufw/check-requirements novamente e a resposta agora foi outra:


Agora que o netfilter-persistent foi removido, vamos configurar o ufw com três comandos simples: os dois primeiros configuram os padrões para negar as conexões de entrada e permitir as conexões de saída; o terceiro permite conexões de entrada via SSH que por padrão utiliza a porta 22.


E agora ativamos o ufw com:
# ufw enable

No final deste post deixarei algumas referências para configurar corretamente o ufw.

Para ter certeza que tudo estava funcionando bem, rebootei o Ubuntu Server e testei a internet:


Resumindo: o ufw não conseguia iniciar (ou funcionar adequadamente) como iptables-persistent e/ou netfilter-persistent instalados. A solução era desinstalar um deles. Optei por ficar com ufw por ser mais novo e, teoricamente, mais fácil de configurar / manter / gerir.

É isso então!


Sugestão de leitura:

https://www.cyberithub.com/solved-no-internet-connection-after-installation-of-ubuntu-20-04/

https://www.reddit.com/r/Ubuntu/comments/wpwflx/no_internet_connection_after_upgrading_to_2204/

https://upcloud.com/resources/tutorials/troubleshoot-network-connectivity-linux-server

https://askubuntu.com/questions/585430/error-problem-running-ufw-init

https://www.cyberciti.biz/faq/ubuntu-22-04-lts-set-up-ufw-firewall-in-5-minutes/

https://ubuntuforums.org/showthread.php?t=1660916

https://bugs.launchpad.net/ufw/+bug/1987227

https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-18-04-pt

sexta-feira, 4 de março de 2022

Dica - Limpando o disco no Linux para obter espaço - apt-get

Pessoal,


Hoje fui atualizar o Proxmox e começou a pipocar um monte de mensagem de erro (devia ter tirado um print para colocar aqui mas esqueci 😔).

Olhando esse e esse posts, fui correndo lá ver se estava tudo certo com os links de atualização. Tudo estava, mas comecei a refazer os links, colocar outros links e nada de resolver.

Aí resolvi fazer algo que deveria ter feito da primeira vez: olhar a mensagem de erro!

Bom, as mensagens eram todas de falta de espaço (o disco "local" onde está o nó PVE que utilizo tem apenas 100GB). Menos mal!

Nesse disco estão armazenadas as imagens para criar as VMs e os backups que o Proxmox cria das VMs. Encheu tudo rapidão!

Simplesmente fui no disco e apaguei algumas imagens que não preciso e alguns backups antigos e, em poucos cliques, liberei mas de 50% do disco.

Mandei atualizar tudo de novo e... atualizado!

Essa é uma boa coisa a ser feito de tempos em tempos, além de ser útil após instalações de grandes pacotes (veja mais aqui).

Para esse post, além de contar essa história, serve para me lembrar de 3 comandos do Shell do Ubuntu / Debian:

1 - "apt-get autoremove":

Esse comando remove pacotes que não são mais necessários para o sistema.



2 - "apt-get autoclean":

Remove os pacotes que tiveram algum problema para download e que estão apenas ocupando espaço no disco.



3 - "apt-get clean":

Esse comando limpa o repositório local dos arquivos baixados e que não são mais úteis.



Esse post é só para lembrar isso mesmo!

domingo, 30 de janeiro de 2022

Como configurar fácil seu DNS Local

Pessoal,

Hoje resolvi organizar uma coisa aqui na minha rede que estava incomodando há algum tempo.

Como disse em posts passados, os diversos serviços do meu servidor (Proxmox, OMV e Docker), além do Raspberry Pi com o Pi Hole correm em paralelo e são acessados através do IP do servidor utilizado, geralmente atrás de uma porta.

Isso causa um problema: é preciso memorizar todos os endereços de cada serviço, além das portas.

A minha primeira tentativa de resolver isso foi fixando abas do navegador para as páginas - pouco viável porque isso deixa as abas abertas e consome muito recurso da máquina.

Outra opção é criar "Favoritos". Funcionaria bem, mas precisaria inserir os endereços em cada computador ou dispositivos aqui de casa.

Então pensei: vou fazer uma intranet e publicar uma página para resolver isso. Também resolveria (na verdade resolveu, mas hoje resolvi avançar nisso).

Fuçando no Pi-Hole hoje, percebi uma configuração: Local DNS.

DNS (Domain Name System ou Sistema de Nomes de Domínio) é uma das grandes sacadas do povo que gerencia a internet. Em poucas palavras, cada computador em uma rede recebe um número de localização. Os servidores de DNS basicamente recebem o nome que a gente dá para um site (ex. www.google.com.br) e traduz para o sistema de direcionamento dos dados (142.251.33.67). Aí a requisição do dado é feita para esse endereço na rede (já falei disso aqui).

Assim como o DNS serve para internet, serve para intranet também. E é isso que que esse "Local DNS" do Pi Hole faz.

Entrando em Local DNS -> DNS Records, aparece isso aqui:


É isso mesmo que você está pensando: você vai associar o ip do seu equipamento ou do serviço com um nome que você cria.

Fica assim:


É só isso mesmo, bem simples. Mas tem umas pegadinhas.

Tentei usar o nome proxmox.local, mas não entrava de jeito nenhum. Sempre dava erro na hora de acessar o site.

A mesma coisa aconteceu com o domínio .home. Não rolou bem.

Para saber se o problema era de cache do navegador ou se era porque o Pi Hole não estava conseguindo resolver os nomes, abri o Terminal e digitava "ping <nome do domínio>".

Quando o Pi Hole consegue resolver, aparece assim:

Quando não consegue resolver, fica assim:


Esses erros podem ser por digitar o endereço errada (digite o endereço certo para resolver isso) ou porque o cache não está atualizado (nesse caso é só limpar o cache do navegador).

Por isso resolvi usar o domínio ".jaymebc". Além de ficar "personalizado", não confunde com .local ou .home.

Além disso, tem uma outra vantagem: eu escondo os IPs das minhas máquinas.

Um último detalhe: muitos serviços são acessados através de portas específicas (o Proxmox, por exemplo, é acessado por padrão pelo <IP>:8006. Assim, no meu caso, não adianta eu criar o nome proxmox.jaymebc simplesmente associando ele com 192.168.1.2:8006. Não funciona assim. Apenas os serviços acessados através das portas 80 e 443 são acessados sem precisar colocar a porta. Você tem que associar o nome com o endereço IP e, depois, colocar a porta. Assim, o acesso é através do proxmox.jaymebc:8006. Aí acessa a página. 

Bom, é isso por hoje. 

sábado, 18 de setembro de 2021

Instalando o plugin Plex no TrueNAS

Pessoal,

Confesso que tentei, muito e muito, de verdade, instalar o contêiner do Transmission no Ubuntu.

Tentei montar o disco do TrueNAS no Ubuntu (consegui), tentei acrescentar e apagar arquivos no TrueNAS utilizando o Shell do Ubuntu (consegui) mas não consegui, de jeito nenhum, fazer o Transmission baixar arquivos. Sempre dava o mesmo erro: pasta não encontrada!


A pasta estava lá e eu conseguir acessar pelo Ubuntu, pelo Mac e pelo diabo a quatro, mas o Transmission sempre dava o mesmo erro. Liberei porta no roteador, mudei pasta, instalei e desinstalei o contêiner, apaguei as pastas para que o Docker as criasse, monte e desmontei pasta. Nada.

Interessante é que ele criou as pastas de configuração que foram montadas no mesmo disco... E quando coloco o Transmission no Mac para baixar o mesmo arquivo, o download ocorre sem nenhum problema. E as permissões no TrueNAS para acessar a pasta estão todas corretas.

Imaginei que a mesma coisa ocorreria com o Plex. Aí, para facilitar minha vida, resolvi tentar instalar o Plex direto no TrueNAS.

Pensei comigo: não pode ser tão difícil, o plugin oficial do Plex para o TrueNAS TEM que ser mobral de instalar!

E foi.

Certa vez tinha visto no Youtube alguns tutoriais para instalar esse plugin. Até tinha instalado antes. O cara criava usuário e grupo, criava o jail, instalava o plugin, parava o plugin e o jail, mexia nas permissões, uma confusão de vai pra frente e pra trás. Isso não pode ser tão complicado...

Então fiz diferente. O usuário é o mesmo que eu tenho para acessar o pool pela minha rede doméstica. Esse já estava feito e funcionando normal.

Aí instalei direto o plugin em Plugins -> Plex Media Server -> Install. Aí abre isso aqui:


Deixei esse nome mesmo e coloquei Plex no jail. O jail, pelo que entendi, é o nome que a montagem será feita no sistema de arquivos do TrueNAS. É a mesma coisa que montar o disco no Ubuntu, por exemplo. Deixei também o DHCP, assim o Plex vai criar um IP pra ele diferente do IP do TrueNAS. Enquanto o TrueNAS é acessado pelo 192.168.1.3, o Plex vai ser acessado pelo 192.168.1.35:32400/web. Acredito que se tivesse marcado NAT, seria 192.168.1.3:32400/web o endereço para acessar o Plex.

Aí o plugin e baixado e instado. Depois disso, eu parei o Plex:

(para para o Plex, clique nessa seta primeiro...)

E depois clique em "Stop":

(clique em "Stop" para parar o plugin)

Depois clique em "Mount Points" para acessar o jail diretamente. Clique em "Actions -> Add" para criar um novo jail. Escolha a origem (onde estão seu arquivos de mídia) e o ponto de montagem, ou seja, onde será criado a montagem no TrueNAS (essa montagem não copia nenhum arquivo, só mostra ao plugin onde ele deve buscar no disco remoto os arquivos). No meu caso ficou assim:


Isso aqui tem dois modos de fazer. Um é como eu fiz, criei um jail apenas, um ponto de montagem só. Depois usei o Plex para saber o que deveria buscar em cada pasta (se era filme, clipe de música, documentário, desenho, etc).

Outro modo é criar um jail para cada coisa. Um jail que vai apontar para a pasta "Filmes", outro jail que apontará para "Clipes", outro para "Documentários" e assim por diante. Na hora de criar a biblioteca no Plex, aí você aponta cada coisa para cada jail que criou.

Não sei se uma opção é melhor que outra.

Depois volte aos plugins, selecione o plugin do Plex (já instalado) e mande reiniciar o serviço. Pronto, é só isso. Note que o próprio TrueNAS já mostra qual o endereço para acessar o Plex Server.


No TrueNAS acabou. Agora acesse o endereço do seu Plex no navegador. Vai perguntar se você quer assinar o PlexPass (eu não quis), vai pedir para criar um login/senha para o administrador e depois vai pedir para você criar a biblioteca.

Na coluna da esquerda, desça até "Gerenciar" e clique em "Biblioteca". Escolha "Adicionar Biblioteca":


Escolha o tipo de mídia que você quer criar na biblioteca, depois escolha "Adicionar Pasta" (1) para usar o ponto de montagem que você criou e clique em Próximo (2):


Clique em "Procurar Pasta de Mídia":


Clique no ícone de pasta (1) para navegar até o pasta de montagem (não é a pasta do arquivo, é a pasta de montagem - 2):


E clique em adicionar para... adicionar!


Agora o Plex vai criar os links das mídias.

Depois baixe o aplicativo do Plex para o dispositivo que você vai usar para ver o conteúdo: iPad, iPhone, AppleTV, SmartTV, etc.

O aplicativo é muito bom, caso você não conheça. Quando baixar novas mídias, coloque na pasta lá no pool do TrueNAS, volte ao aplicativo do Plex Server (esse do 192.168.1.35:32400/web), vá novamente em "Gerenciar -> Biblioteca", mas agora clique em "Examinar Arquivos da Biblioteca":


Agora o Plex vai procurar tudo que tem de novo e acrescentar para você poder assistir.

É isso! O objetivo aqui não é explicar o Plex, mas explicar apenas como instalá-lo como plugin do TrueNAS.

Até o próximo post.

terça-feira, 14 de setembro de 2021

Dica - Como montar uma pasta remota no Ubuntu Server

Pessoal,

Tentei instalar o Transmission no Ubuntu Server. Configurei tudo direitinho (igual expliquei aqui), coloquei um Torrent qualquer pra testar e baixou direitinho.

Entretanto, na hora de escolher a pasta para baixar, coloquei o endereço "/mnt/NAS/Transmission/Downloads" do TrueNAS, mas nada do arquivo aparecer no Finder do Mac.

Depois de gastar algum fosfato, entendi o problema. Como o Portainer roda no Ubuntu Server (ip 192.168.1.44), ele criou a pasta acima. NO UBUNTU SERVER. O TrueNAS roda no 192.168.1.3.

Preciso resolver como acessar isso ou vou ter que repensar como usar o Docker no Ubuntu Server (até porque a ideia era fazer isso para o Plex também).

O TrueNAS tem plugins para o Transmission e para o Plex, mas queria fazer isso pelo Docker e gastar menos recursos da máquina.

Consultei um amigo que usa Linux a bastante tempo e ele me passou esse tutorial aqui. Segui e deu certo.

Basicamente é o seguinte:

No meu caso, no Ubuntu (192.168.1.44), em modo superuser, vou criar uma pasta para montar o compartilhamento com o comando:

mkdir -p /mnt/Transmission

Caso não tenha instalado, é necessário ter o CIFS. Instale assim:

apt install cifs-utils

E agora uso o seguinte comando para montar o compartilhamento na pasta que criei:

mount -t cifs //servidor/compartilhamento -o username=usuario,password=senha /mnt/windows

A minha linha fica assim:

mount -t cifs //192.168.1.3/NAS/Transmission -o username=meu_usuário,password=minha_senha /mnt/Transmission

Para que a pasta seja montada automaticamente quando o Ubuntu for inicializado, deve-se incluir esta linha no final do arquivo /etc/fstab:

//192.168.1.3/NAS/Transmission /mnt/Transmission cifs rw,username=meu_usuário,password=minha_senha 0 0

É isso por enquanto.

segunda-feira, 13 de setembro de 2021

Proxmox - instalando o Docker e o Portainer no Ubuntu

Pessoal,

Continuando a migração para o Proxmox, vou instalar o Docker e o Portainer no Ubuntu Server.

O TrueNAS é uma poço sem fundo de memória. Tudo que você colocar de RAM, ele vai usar! O Ubuntu Server, ao contrário, gasta pouco. Qualquer miserê de memória deixa ele feliz e saltitante. Assim, prefiro instalar o Docker e rodar algumas coisas nele que criar outra VM que vai sugar ainda mais memória e espaço em disco. Além disso, com o Portainer (que fui conhecer no OMV), a administração do Docker fica bem legal.

O Portainer é  uma interface para facilitar a instalação e administração dos conteiners do Docker. Fica muito mais fácil.

Assim, para instalar, vá ao Shell do Ubuntu Server e digite os comandos abaixo para instalar o Docker CE (Community Edition), o Docker Compose e, por fim, o Portainer.

Você também pode usar o SSH/Putty para copiar os comandos e colar no Shell do MacOS, Linux ou Windows, a seu gosto.


Instalando o Docker CE:

Primeiro, atualize o Ubuntu Server e instale os pré-requisitos do sistema:
sudo apt update
sudo apt upgrade
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
Agora instale a chave GPG do Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
E agora instale o repositório Docker (eu prefiro sempre a versão estável):
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Atualize novamente o repositório com:
sudo apt update
E agora certifique-se que o Docker está sendo instalado a partir do repositório do Docker e não do repositório do Ubuntu com:
apt-cache policy docker-ce
A saída deve ser assim, mostrando várias versões disponíveis:


Repare na terceira linha que mostra a versão instalada do meu Docker. Se você nunca instalou, deve receber uma coisa mostrando que não está instalado ainda, tipo isso aqui:


Para instalar a versão estável mais recente, use isso:
sudo apt install docker-ce
E verifique o status do serviço com:
sudo systemctl status docker

Deve sair algo assim, mostrando que está ok:


Pronto, Docker instalado. Para testar se está tudo ok, rode um Docker para testar:
sudo docker run hello-world
E deve sair mais ou menos isso:


Fácil, né? Vamos seguir.


Instale o Docker Compose:

Vou instalar o Docker Compose a partir do repositório deles no GitHub. Vá na página deles e descubra qual é a última versão:


Agora instale com:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Depois de instalar, aplique as permissões para o binário e crie o link para /usr/binary:
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Para saber se deu certo, use o comando abaixo:
docker-compose --version
A resposta deve ser algo assim:


Configurar o Portainer:

Para instalar o Portainer, usaremos o Docker:
cd ~/
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Agora acesse o Portainer pela porta 9000. Aqui em casa, o Ubuntu está rodando no 192.168.1.44. Assim, digite:

    <ip_do_seu_Ubuntu>:9000


Pronto! Crie a senha e entre. Como estamos instalando o Portainer na mesma máquina onde está o Docker, escolha para administrar localmente a aplicação:




Pronto!

No próximo post, vamos reinstalar o Plex.

domingo, 5 de setembro de 2021

Instalei o PROXMOX!

Pessoal,

Grandes mudanças aqui.

Comprei  um HD de 8TB e, junto com dois de 4 TB que eu já tinha e um pequeno de 1TB, resolvi instalar o Proxmox e reorganizar todo o meu servidor.

O Proxmox é um ambiente de virtualização, ou seja, ele não é um NAS. Ao contrário, é preciso criar uma VM nele e instalar algum NAS. No caso, vou voltar a usar o FreeNAS (agora TrueNAS).

A vantagem do Proxmox para mim será criar as minhas VMs independente do NAS. O NAS vai ficar para rodar backups e outras coisas, inclusive uma VM com Ubuntu e alguns dockers por esse Ubuntu.

A instalação do Proxmox é bem simples e vai ficar no HD de 500GB que está na máquina. Depois de baixar a ISO no site do Proxmox e gravar um pendrive bootável com a ISO usando o Balena Etcher, coloquei no computador, dei boot e fui seguindo as instruções:




(Escolha uma boa senha aqui: é a senha do root do Proxmox)





A instalação é bem rápida, uns 5 minutos. Depois disso, ela mostra um resumo para você saber qual página vai acessar a interface web do Proxmox:


Aqui no meu roteador, esse é o endereço padrão e já previamente fixado para esta máquina. Veja aqui como fixar o IP da sua máquina, pois isso é fundamentar para o Proxmox e a instalação do NAS.

Agora vamos entrar na interface web do Proxmox. No Mac (não sei outros sistemas, mas imagino que seja a mesma coisa para qualquer sistema e qualquer navegador), vai dar um erro informando que a página não é segura. Vá em frente, é assim mesmo:




("Olá, eu sou o Proxmox!")

Digite "root" para usuário e a senha que você escolheu lá atrás.


Essa aí em cima é a tela inicial do Proxmox. Não tem nada (óbvio, acabei de instalar), mas é onde irão ficar as VM que você criar.

Como é um Debian, a primeira coisa que eu gosto de fazer é atualizar todo o Debian (veja aqui como). Não apareceu na foto, mas tem um botão escrito "Shell" à direita da tela. Clique lá para abrir o Shell do Proxmox e vamos em frente para atualizar tudo (lembre-se que você estará como root, então não será preciso o "sudo").

Feito isso, vamos começar a brincadeira.

O Proxmox faz o download da ISO do sistema que você deseja instalar na VM e vai mantendo tudo organizado. Gostei disso. Para fazer isso, vá em "Datacenter -> local (pve) -> ISO Images" e faça o download da imagem (entrei no site do Ubuntu, downloads, Ubuntu Server LTS e peguei o link para baixar - o Proxmox faz esse download). Essa imagem, no meu caso, será armazenada no HD de 500GB onde está instalado o Proxmox.




Baixada a imagem, vá em Criar VM (à direita da tela) e siga o passo a passo. É realmente muito fácil.








Clicando em "Console", você vê, via VNC, a sua VM. Muito fácil.

Após instalar o Ubuntu Server, entre nesse post aqui para ver o básico do básico que é necessário instalar para o Ubuntu funcionar bem (atualizações, GCC, Net-Tools, VPN, No-IP DUC).

Bom, por hoje é só (já são 3h da madrugada).

Amanhã eu crio a VM com o NAS e mostro para vocês!