<?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>Arquivos Stretch - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/stretch/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/stretch</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Tue, 24 Mar 2026 13:00:23 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.remontti.com.br/wp-content/uploads/2024/09/icone-rr-80x80.png</url>
	<title>Arquivos Stretch - Remontti</title>
	<link>https://blog.remontti.com.br/tag/stretch</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Configurando interface de rede no Debian 10/11/12/13</title>
		<link>https://blog.remontti.com.br/5848</link>
					<comments>https://blog.remontti.com.br/5848#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Sat, 18 Sep 2021 20:14:42 +0000</pubDate>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Active-backup]]></category>
		<category><![CDATA[Administração de Rede]]></category>
		<category><![CDATA[Administração de Sistemas]]></category>
		<category><![CDATA[Administração de Sistemas Linux]]></category>
		<category><![CDATA[Agregação de Portas]]></category>
		<category><![CDATA[Alta Disponibilidade]]></category>
		<category><![CDATA[Balance-alb]]></category>
		<category><![CDATA[Balance-rr]]></category>
		<category><![CDATA[Balance-tlb]]></category>
		<category><![CDATA[Balance-xor]]></category>
		<category><![CDATA[Bonding]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[buster]]></category>
		<category><![CDATA[CLI Linux]]></category>
		<category><![CDATA[configuração de rede]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Ethernet]]></category>
		<category><![CDATA[Gerenciamento de Servidor]]></category>
		<category><![CDATA[ifenslave]]></category>
		<category><![CDATA[LACP]]></category>
		<category><![CDATA[Linux Networking]]></category>
		<category><![CDATA[Otimização de Rede]]></category>
		<category><![CDATA[placa]]></category>
		<category><![CDATA[Protocolos de Rede]]></category>
		<category><![CDATA[rede]]></category>
		<category><![CDATA[Redundância de Rede]]></category>
		<category><![CDATA[routeros]]></category>
		<category><![CDATA[Segurança de Rede]]></category>
		<category><![CDATA[Soluções de Networking]]></category>
		<category><![CDATA[Stretch]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5848</guid>

					<description><![CDATA[<p>Neste tutorial vamos aprender a configurar nossas interfaces de rede no Debian e estar pensando um pouco mais para fazer uma boa escolha na hora de realizar suas configurações. Antes de mais nada você&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5848">Configurando interface de rede no Debian 10/11/12/13</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-7830" src="https://blog.remontti.com.br/wp-content/uploads/2021/09/debian_network_config.webp" alt="" width="1792" height="1024" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/09/debian_network_config.webp 1792w, https://blog.remontti.com.br/wp-content/uploads/2021/09/debian_network_config-300x171.webp 300w, https://blog.remontti.com.br/wp-content/uploads/2021/09/debian_network_config-1024x585.webp 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/09/debian_network_config-768x439.webp 768w, https://blog.remontti.com.br/wp-content/uploads/2021/09/debian_network_config-1536x878.webp 1536w" sizes="(max-width: 1792px) 100vw, 1792px" /></p>
<p>Neste tutorial vamos aprender a configurar nossas interfaces de rede no Debian e estar pensando um pouco mais para fazer uma boa escolha na hora de realizar suas configurações.</p>
<p>Antes de mais nada você precisa saber o que você quer!? Qual será o cenário!? Vejo muitas pessoas cometerem um desastre nos dias hoje quando se trata em colocar um simples IP público em um servidor. E por isso escrevo este &#8220;artigo&#8221; meio que tutorial.</p>
<p>No Debian você pode configurar os endereços IPs bem como algumas regras no arquivo <strong>/etc/network/interfaces</strong>, irei levar como base uma instalação recém-feita:</p>
<p>&#8211; <a href="https://blog.remontti.com.br/8267" target="_blank" rel="noopener">Instalação do Debian 13 Trixie</a><br />
&#8211; <a href="https://blog.remontti.com.br/7236" target="_blank" rel="noopener">Instalação do Debian 12 Bookworm</a><br />
&#8211; <a href="https://blog.remontti.com.br/5792" target="_blank" rel="noopener">Instalação do Debian 11 Bullseye</a><br />
&#8211; <a href="https://blog.remontti.com.br/2966" target="_blank" rel="noopener">Instalação do Debian 10 Buster</a></p>
<p>Irei usar o editor nano que é o que já vem instalado, mas você pode usar o editor de sua escolha.</p>
<pre class="remontti-code"># nano /etc/network/interfaces</pre>
<p>Se em sua instalação você informou o endereço IPv4 seu arquivo será algo como este, ressaltando que <strong>ens18</strong> é o nome da interface, e ela pode ser outra.</p>
<pre class="remontti-code"># This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug ens18
iface ens18 inet static
        address 192.168.87.3/24
        gateway 192.168.87.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 1.1.1.1 8.8.8.8
</pre>
<h4>Alterar DNS</h4>
<p>Por mais que vimos dns-nameserver nesta parte da configuração de rede, o servidor não irá usa-los, o arquivo qual será levado em conta é o <strong>/etc/resolv.conf </strong></p>
<pre class="remontti-code"># nano /etc/resolv.conf</pre>
<pre class="remontti-code">nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 2606:4700:4700::1111
nameserver 2606:4700:4700::1001</pre>
<p>Se sua instalação foi feita com DHCP ativo, sua configuração será:</p>
<pre class="remontti-code"># This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug ens18
iface ens18 inet dhcp</pre>
<h3>E ai, o que queremos ?</h3>
<p>Planejar, é claro! Se você esta montando seu data center onde terá vários servidores, o que será melhor adorar? Quebrar um prefixo /30 para cada servidor que eu for implementar? <strong>NÃO!</strong>. Quer me ver com os olhos sangrando é ver alguém que tem vários servidores e para cada servidor o mesmo quebrou um /30 público. Pense comigo você tem 2 servidores você precisa 2 IPs, se você quebrou 2 /30 você terá sim seus 2 IPs públicos mas você acabou de jogar no LIXO outros 6 endereços IPs, e nos dias de hoje 1 único IP publico é quase como o ditado: <em>Em terra de cego, quem tem um olho é rei?</em></p>
<p>Então o que fazer, o mais sensato é você pensar e quebrar um prefixo maior para que você não precise estar quebrando prefixos a cada servidor. Antes de mais nada imagine onde você quer chegar! Quantos servidores irá montar, quantos IPs publicos e privados irá precisar&#8230; Sempre que dou uma consultoria essa é a primeira coisa faço, &#8220;sento&#8221; com o cliente e estudo. E com base neste estudo reservamos já um/dois prefixo /29, /28 ou 27 até mesmo um /24 público/privado, vai depender muito de cada cenário, se meu cliente tem milhares de hospedagem com certeza o número de servidores em seu data center é enorme.</p>
<p>Outro grande erro em servidores é o <strong>NAT mal aplicado</strong>! Muitas pessoas principalmente pessoal de provedor ainda tem costume de colocar em seu Mikrotik de borda um belo NAT para fornecer internet a um servidor, ou apenas para fazer um redirecionamento de portas. Quando aplicamos regras de NAT em um roteadores causamos muitos malefícios para o bichinho! Então vamos para de fazer isso? Vou lhe ajudar!</p>
<p>É claro que isso é muito relativo de cada empresa, já fiz NAT com borda? Já! Depende do tamanho da empresa e organização de cada um. <strong>Então não leve ao pé da letra! Estou tentando lhe dizer o que é o melhor a ser feito!</strong></p>
<p>Já fui criticado por pedir para cliente comprar uma roteador para ser apenas o gateway dos servidores. <em>&#8220;Rudimar é louco&#8221;</em>. E eu digo: <em>Mais louco é quem faz NAT em roteador de borda! </em>. Em alguns casos eu recomendo um router para ligar os servidores, pois você pode ter diversos recursos na manga, e basta você fechar um iBGP/OSPF entre seu roteador de borda com seu roteador &#8220;data&#8221;.</p>
<h1>Exemplos</h1>
<p><img decoding="async" class="alignnone size-full wp-image-5860" src="https://blog.remontti.com.br/wp-content/uploads/2021/09/teste.drawio.png" alt="" width="809" height="372" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/09/teste.drawio.png 809w, https://blog.remontti.com.br/wp-content/uploads/2021/09/teste.drawio-300x138.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/09/teste.drawio-768x353.png 768w" sizes="(max-width: 809px) 100vw, 809px" /></p>
<h4>Receber IP via DHCP</h4>
<p>O mais simples a ser feito quando seu servidor ira receber IP automaticamente.</p>
<pre class="remontti-code">allow-hotplug ens18
iface ens18 inet dhcp</pre>
<h4>Fixando IPv4 e IPv6</h4>
<p>Basicamente o que iremos usar em 95% das vezes</p>
<pre class="remontti-code">allow-hotplug ens18
iface ens18 inet static
        address 200.200.200.2/28
        gateway 200.200.200.1

iface ens18 inet6 static
        pre-up modprobe ipv6
        address 2804:bebe:cafe::2/64
        gateway 2804:bebe:cafe::1</pre>
<h4>Adicionando Multiplos IPs</h4>
<p>Quando quiser mais de um IP no mesmo servidor, caso for outras interfaces basta ajustar para o nome da interface</p>
<pre class="remontti-code">allow-hotplug ens18
iface ens18 inet static
        address 200.200.200.2/28
        gateway 200.200.200.1

iface ens18 inet static
        address 200.200.200.3/28

iface ens18 inet static
        address 200.200.201.1/32

iface ens18 inet6 static
        pre-up modprobe ipv6
        address 2804:bebe:cafe::2/64
        gateway 2804:bebe:cafe::1

iface ens18 inet6 static
        pre-up modprobe ipv6
        address 2804:bebe:cafe::3/64

iface ens18 inet6 static
        pre-up modprobe ipv6
        address 2804:bebe:ffff:ffff::ffff
        netmask 128</pre>
<h4>IP na Loopback</h4>
<p>Você pode usar quando estiver roteando um IP (OSFP/iBGP), exemplo com <a href="https://blog.remontti.com.br/4771" target="_blank" rel="noopener">FRR</a>, porém neste caso estaria fazendo a adição dos IPs pelo próprio FRR.<br />
Mas se você fará algum tipo de rota estática com intuito exemplo de fazer ECMP (Equal Cost Multi-Path), é importante que os IPs de anycast estejam na interface de loopback para que não tenha conflito.</p>
<pre class="remontti-code">auto lo 
iface lo inet loopback

iface lo inet static
        address 200.200.200.200/32</pre>
<h4>Ponto a ponto &#8211; Pointopoint</h4>
<p>Aqui muitos ficam bugado, no meu cenário perceba que temos um servidor conectado ao roteador de borda, agora imagine, que neste roteador de borda não tem nenhum IP público por politicas de segurança, mas ai vem o estagiário e e te diz: Vamos quebrar um /30 pub! Então saiba que você não precisa fazer isso, você pode adicionar um IP ponto a ponto, onde temos IP diferente dos dois lados, então como no exemplo a baixo podemos add no nosso roteador de borda 10.50.50.1 e no nosso servidor 200.200.200.0.</p>
<pre class="remontti-code">allow-hotplug ens18
iface ens18 inet static
        address 200.200.200.0
        pointopoint 10.50.50.1
        netmask 255.255.255.255
        gateway 10.50.50.1
</pre>
<p>Isso funciona? É claro! E você não irá precisar deixar seu roteador de borda com IP público acessível pelo mundo, e muito menos fazer um NAT! Como sou bonzinho vou deixar aqui como você configuraria isso no seu Mikrotikão! Ficaria assim:</p>
<pre class="remontti-code">RouterOS# /ip address
RouterOS# add address=10.50.50.1 comment=Pointopoint interface=ether1 network=200.200.200.0</pre>
<p>Simples não?! Testa ai! Depois me conta!</p>
<h4>Privado com saída em origem Público</h4>
<p>Quase que como o exemplo do pointopoint, porem em alguns roteadores não temos o suporte para fazer pointopoint, uma saída é você quebrar um prefixo privado (estou usando /30, mas se tivesses vários servidores junto faria já um prefixo maior). No exemplo então meu IP público é o 200.200.200.200/32 qual irei colocar na mesma interface da WAN que tenho o 10.33.33.2/30, logo o roteador é o 10.33.33.1. Desta forma você tem uma conversa entre as interfaces por IP privado, porem os pacotes são originados com o endereço de IP público.</p>
<pre class="remontti-code">allow-hotplug ens18
iface ens18 inet static
    address 200.200.200.200/32
iface ens18 inet static
    address 10.33.33.2/30
    post-up ip route add default via 10.33.33.1 src 200.200.200.200</pre>
<p>Mas ai temos um problema, seu servidor irá gerar os pacotes de origem publico, e irá enviar para internet, mas quando o pacote estiver voltando ao chegar em seu roteador de borda é necessário que você tenha uma rotá para o mesmo. Então crie um rota estática dizendo que Destino 200.200.200.200 o gateway é 10.33.33.2 IP este do seu servidor. Ex.:</p>
<p>Exemplo RouterOS:</p>
<pre class="remontti-code">RouterOS# /ip address add address=10.33.33.1/30 interface=ether2
RouterOS# /ip route add dst-address=200.200.200.200/32 gateway=10.33.33.2</pre>
<p>Exemplo Huawei:</p>
<pre class="remontti-code">ip route-static 200.200.200.200 32 10.33.33.2 preference 1 description SERVIDOR</pre>
<p>É possível fazer isso para IPv6 também? É claro!</p>
<pre class="remontti-code">allow-hotplug ens18

#IPv6 Público
iface ens18 inet6 static
        pre-up modprobe ipv6
        address 2804:bebe:cafe::cafe
        netmask 128

# IPv6 Privado
iface ens18 inet6 static
        pre-up modprobe ipv6
        address fd00:a::2/64
        post-up ip -6 route add default via fd00:a::1 src 2804:bebe:cafe::cafe</pre>
<p>Exemplo RouterOS:</p>
<pre class="remontti-code">RouterOS# /ipv6 address add address=fd00:a::1/64 advertise=no interface=ether2
RouterOS# /ipv6 route add dst-address=2804:bebe:cafe::cafe/128 gateway=fd00:a::2</pre>
<p>Exemplo Huawei:</p>
<pre class="remontti-code">ipv6 route-static 2804:bebe:cafe::cafe 128 fd00:a::2 preference 1 description SERVIDOR</pre>
<h5>Possível problema: Resolução ARP/ND na Inicialização</h5>
<p>Em alguns casos, pode acontecer do IP /32 (no IPv4) ou /128 (no IPv6) só começar a funcionar após um primeiro <em>ping</em> interno. Isso não significa que a configuração da rede esteja errada, mas sim que o kernel e o roteador precisam “descobrir” via ARP/ND como chegar a esse endereço adicional.</p>
<p>Esse comportamento ocorre porque, ao usar um endereço /32 (IPv4) ou /128 (IPv6), o roteador e o kernel do Linux não enviam nem respondem a requisições ARP/ND de forma “espontânea” para esse IP adicional. Somente quando há tráfego partindo do servidor (por exemplo, um ping), a troca de ARP/ND é feita e o roteador “aprende” para onde enviar os pacotes que chegam nesse IP público. Sem essa “ativação” inicial, o roteador não tem como saber que aquele IP /32 ou /128 está associado à interface do servidor.</p>
<p>No Debian 13 eu contornei desta forma:</p>
<pre class="remontti-code-blue">allow-hotplug ens18
iface ens18 inet static
    address 200.200.200.200/32
    up ip addr add 10.33.33.200/24 dev $IFACE
    up ip route replace default via 10.33.33.1 dev $IFACE  src 200.200.200.200
    down ip route del default via 10.33.33.1 dev $IFACE || true
    down ip addr del 10.33.33.2/24 dev $IFACE || true

iface ens18 inet6 static
    address 2804:bebe:cafe::cafe/128
    up ip -6 addr add fd00:a::2/64 dev $IFACE
    up ip -6 route replace default via fd00:a::1 dev $IFACE
    down ip -6 route del default via fd00:a::1 dev $IFACE || true
    down ip -6 addr del fd00:a::1/64 dev $IFACE || true
</pre>
<p>Se ainda não resolver tente com o script:</p>
<p>Crie o serviço systemd</p>
<pre class="remontti-code"># vim /etc/systemd/system/meu_script_rede.service</pre>
<p>Adicione:</p>
<pre class="remontti-code-blue">[Unit]
Description=Rodar script após inicialização da rede
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/meu_script.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
</pre>
<p>Crie o script, nele vamos incluir um ping</p>
<pre class="remontti-code"># vim /usr/local/bin/meu_script.sh</pre>
<p>Ajuste <strong>IPV4_GATEWAY</strong> e <strong>IPV6_GATEWAY</strong> para seus gateway.</p>
<pre class="remontti-code-blue">#!/bin/bash

# IPs
IPV4_GATEWAY=&quot;10.33.33.1&quot;
IPV6_GATEWAY=&quot;fd00:cafe::1&quot;

# Nº de pings
NPING=5

# Registro no log
date &gt; /var/log/rede_inicializada.log
echo &quot;A placa de rede foi inicializada&quot; &gt;&gt; /var/log/rede_inicializada.log

# Enviar pings para forçar ARP/ND
ping -O -4 -c $NPING $IPV4_GATEWAY &gt;&gt; /var/log/rede_inicializada.log
ping -O -6 -c $NPING $IPV6_GATEWAY &gt;&gt; /var/log/rede_inicializada.log

# Espera 1 segundo
sleep 1
</pre>
<p>Dê permissão de execução:</p>
<pre class="remontti-code"># chmod +x /usr/local/bin/meu_script.sh</pre>
<p>Ative o serviço no systemd e reinicie</p>
<pre class="remontti-code"># systemctl daemon-reload
# systemctl enable meu_script_rede
# systemctl start meu_script_rede
# systemctl status meu_script_rede</pre>
<p>Agora, toda vez que o servidor inicializar, este script rodará e enviará alguns pings para “ativar” as tabelas ARP e ND. Você poderá verificar o arquivo /var/log/rede_inicializada.log para ver a saída dos pings. `cat /var/log/rede_inicializada.log`</p>
<h4>Criando VLAN e adicionado IP nela</h4>
<p>Para adicionar um IP a uma VLAN precisamos carregar o módulo 8021q, e coloca-lo para iniciar com sistema.</p>
<pre class="remontti-code"># modprobe 8021q
# echo &quot;8021q&quot; &gt;&gt; /etc/modules</pre>
<p>Agora basta editar sua interface e incluir um ponto e o numero da VLAN. No exemplo VLAN 171</p>
<pre class="remontti-code">allow-hotplug ens18.171
iface ens18.171 inet static
       address 10.88.88.2/24</pre>
<h4>PBR &#8211; Roteamento baseado em políticas</h4>
<p>Eu particularmente uso em Accel-ppp para separar o trafego de IPs publicos de Privados, direcionando apenas os IPs de NAT para a caixa do CGNAT. É necessário criar uma nova tabela de rotas, irei chamar de cgnat no exemplo.</p>
<pre class="remontti-code"># echo &quot;100 cgnat&quot; &gt;&gt; /etc/iproute2/rt_tables
# cat /etc/iproute2/rt_tables
# ip route list table main</pre>
<p>Fecho um /30 entre router e servidor e digo que todos os IPs que 100.64.0.0./10 deve sair pela tabela de rotas com o CGNAT.</p>
<pre class="remontti-code">allow-hotplug ens18
iface ens18 inet static
    address 10.200.200.2/30
    post-up ip route add default via 10.200.200.1 dev ens18 table cgnat
    post-up ip rule add from 100.64.0.0/10 lookup cgnat</pre>
<h4>Blackhole</h4>
<p>Normalmente útil em casos que você usa seu servidor como roteador. Você irá colocar após as configurações da interface o post-up passando o prefixo ou ip qual irá subir em blackhole</p>
<pre class="remontti-code">allow-hotplug ens18
iface ens18 inet static
    address 10.33.33.2/30
    post-up ip route add blackhole 200.200.200.128/26 metric 250 || true</pre>
<h4>Agregação</h4>
<p>Instalar o ifenslave: Este pacote permite configurar a agregação de portas no Linux.</p>
<pre class="remontti-code"># apt install ifenslave</pre>
<p>Carregar o Módulo de Bonding</p>
<pre class="remontti-code"># echo &quot;bonding&quot; | tee -a /etc/modules
# modprobe bonding</pre>
<p>Verificar se o módulo foi carregado corretamente:</p>
<pre class="remontti-code"># lsmod | grep bonding</pre>
<p><strong>802.3ad (LACP):</strong> Ideal para aumentar a largura de banda e fornecer redundância quando conectado a um switch que suporta LACP.<br />
<strong>balance-xor:</strong> Útil para balanceamento de carga baseado em XOR, adequado para ambientes que não suportam LACP.<br />
<strong>balance-rr (Round Robin):</strong> Simples e eficaz para cargas de trabalho que exigem balanceamento de carga sem configuração específica do switch.<br />
<strong>active-backup:</strong> Fornece redundância sem aumento de largura de banda, útil quando a continuidade do serviço é mais crítica do que a capacidade.<br />
<strong>balance-tlb (Transmit Load Balancing) e balance-alb (Adaptive Load Balancing):</strong> Ambos são bons para ambientes onde a configuração do switch não pode ser alterada ou não suporta LACP. O ALB também tenta balancear o tráfego de entrada.</p>
<p>Aqui estão exemplos para vários modos de bonding</p>
<pre class="remontti-code"># vim /etc/network/interfaces</pre>
<h5>802.3ad (LACP)</h5>
<p><em>Aplicação: Ideal para ambientes de alta disponibilidade e alta largura de banda, como data centers ou servidores que precisam de conexões robustas e de alta capacidade. É necessário que ambos os lados (o Debian e o switch/router) suportem LACP.</em></p>
<pre class="remontti-code">auto bond0
iface bond0 inet static
    address 192.168.0.2/24
    bond-slaves enp4s0f0 enp4s0f1
    bond-miimon 100
    bond-mode 802.3ad
    bond-xmit-hash-policy layer2+3
</pre>
<h5>Balance-xor</h5>
<p><em>Aplicação: Bom para ambientes onde o tráfego de rede tem padrões conhecidos que podem ser distribuídos de forma eficaz usando XOR. Pode ser usado para melhorar o desempenho quando LACP não é suportado.</em></p>
<pre class="remontti-code">auto bond0
iface bond0 inet static
    address 192.168.0.2/24
    bond-slaves enp4s0f0 enp4s0f1
    bond-miimon 100
    bond-mode balance-xor
    bond-xmit-hash-policy layer2+3
</pre>
<h5>Balance-rr (Round Robin)</h5>
<p><em>Aplicação: Simples e eficaz para distribuir cargas de forma equitativa sobre as interfaces físicas. Útil em ambientes onde a ordem de chegada dos pacotes não é crítica.</em></p>
<pre class="remontti-code">auto bond0
iface bond0 inet static
    address 192.168.0.2/24
    bond-slaves enp4s0f0 enp4s0f1
    bond-miimon 100
    bond-mode balance-rr
</pre>
<h5>Active-backup</h5>
<p><em>Aplicação: Ideal para redundância sem aumentar a largura de banda. Se a interface primária falhar, outra assumirá. Recomendado para serviços críticos que precisam de alta disponibilidade mais do que de alta capacidade.</em></p>
<pre class="remontti-code">auto bond0
iface bond0 inet static
    address 192.168.0.2/24
    bond-slaves enp4s0f0 enp4s0f1
    bond-miimon 100
    bond-mode active-backup
    bond-primary enp4s0f0
</pre>
<h5>Balance-tlb (Transmit Load Balancing)</h5>
<p><em>Aplicação: Útil quando a modificação de configuração do switch não é possível. Realiza o balanceamento de carga de saída de acordo com a carga atual de cada interface. Não requer suporte específico do switch.</em></p>
<pre class="remontti-code">auto bond0
iface bond0 inet static
    address 192.168.0.2/24
    bond-slaves enp4s0f0 enp4s0f1
    bond-miimon 100
    bond-mode balance-tlb
</pre>
<h5>Balance-alb (Adaptive Load Balancing)</h5>
<p><em>Aplicação: Similar ao balance-tlb, mas também tenta balancear o tráfego de entrada, o que pode ser útil em servidores web ou de aplicativos. Essa modalidade não requer configuração especial do switch.</em></p>
<pre class="remontti-code">auto bond0
iface bond0 inet static
    address 192.168.0.2/24
    bond-slaves enp4s0f0 enp4s0f1
    bond-miimon 100
    bond-mode balance-alb
</pre>
<p>Reiniciar o sistema para aplicar as alterações:</p>
<pre class="remontti-code"># reboot</pre>
<p>Verificar o status do serviço de rede para garantir que não houve erros, e a configuração de bonding.</p>
<pre class="remontti-code"># systemctl status networking
# journalctl -u networking.service
# cat /proc/net/bonding/bond0</pre>
<h4>Considerações finais</h4>
<p>Sempre que editar o arquivo /etc/network/interfaces para que as configurações sejam carregadas será necessário reiniciar seu servidor, você até pode subir a interface com auto ao invés de allow-hotplug, mas não irei abordar aqui.</p>
<p>Caso você queira adicionar/remover IPs manualmente (em memória/perde ao reiniciar) você pode usar o comando <strong>ip</strong>, segue exemplo, onde <strong>ens18</strong> é o nome da interface.<br />
Adicionar:</p>
<pre class="remontti-code"># ip addr add 192.168.7.7/32 dev ens18
# ip -6 addr add 2001:db8:1::1/128 dev ens18</pre>
<p>Visualizar:</p>
<pre class="remontti-code"># ip address</pre>
<p>Remover:</p>
<pre class="remontti-code"># ip addr del 192.168.7.7/32 dev ens18
# ip -6 addr del 2001:db8:1::1/128 dev ens18</pre>
<p>Exibe interfaces / Endereços IPs</p>
<pre class="remontti-code"># ip -br a
# ip -br addr show
# ip -br link
# ip -br link show</pre>
<p>Exibir informações sobre todas as interfaces de rede:</p>
<pre class="remontti-code"># ip a
# ip addr
# ip addr show</pre>
<p>Exibir informações sobre todas as interfaces de rede IPv4:</p>
<pre class="remontti-code"># ip -4 a</pre>
<p>Exibir informações sobre todas as interfaces de rede IPv6:</p>
<pre class="remontti-code"># ip -6 a</pre>
<p>Exibir informações sobre uma interface de rede específica:</p>
<pre class="remontti-code"># ip a show eth0
# ip a list eth0
# ip a show dev eth0</pre>
<p>Mostrar apenas interfaces em execução</p>
<pre class="remontti-code"># ip link ls up</pre>
<p>Adicionar um endereço IPv4/IPv6:</p>
<pre class="remontti-code"># ip a add {ip_addr/mask} dev {interface}
# ip a add 10.0.1.200/255.255.255.0 dev eth0
# ip a add 10.0.1.200/24 dev eth0</pre>
<p>Remover endereço IP</p>
<pre class="remontti-code"># ip a del {ipv6_addr_OR_ipv4_addr} dev {interface}
# ip a del 10.0.1.200/24 dev eth0</pre>
<p>Desligando a interface</p>
<pre class="remontti-code"># ip link set dev eth1 down</pre>
<p>Ligando a interface</p>
<pre class="remontti-code"># ip link set dev eth1 up</pre>
<p>Ajusda</p>
<pre class="remontti-code"># man ip
# ip --help</pre>
<p>Comandos antigos X Novo comando</p>
<pre class="remontti-code">Velho # ifconfig -a
 Novo # ip a

Velho # ifconfig eth0 down
 Novo # ip link set eth0 down

Velho # ifconfig eth0 up
 Novo # ip link set eth0 up

Velho # ifconfig eth0 10.0.2.24
 Novo # ip addr add 10.0.2.24/24 dev eth0

Velho # ifconfig eth0 netmask 255.255.255.0
 Novo # ip addr add 10.0.1.1/24 dev eth0

Velho # ifconfig eth0 mtu 9000
 Novo # ip link set eth0 mtu 9000

Velho # ifconfig eth0:0 10.0.2.25
 Novo # ip addr add 10.0.2.25/24 dev eth0

Velho # netstat -g
 Novo # ip maddr

Velho # route
 Novo # ip r

Velho # route add -net 10.0.2.0 netmask 255.255.255.0 dev eth0
 Novo # ip route add 10.0.2.0/24 dev eth0

Velho # route add default gw 10.0.2.254
 Novo # ip route add default via 10.0.2.254

Velho # arp -a
 Novo # ip neigh

Velho # arp -v
 Novo # ip -s neigh

Velho # arp -s 10.0.2.33 01:02:03:04:05:06
 Novo # ip neigh add 10.0.3.33 lladdr 01:02:03:04:05:06 dev eth0

Velho # arp -i eth0 -d 10.0.2.254
 Novo # ip neigh del 10.0.2.254 dev eth0

Velho # netstat
 Novo # ss

Velho # netstat -tulpn
 Novo # ss -tulpn

Velho # netstat -neopa
 Novo # ss -neopa</pre>
<p>Espero ter colaborado com uma pequena parcela em seu conhecimento! Desculpa o português e as palavras faltando letras, é difícil conseguir tempo para vir aqui escrever e revisar, então abro meu &#8220;bloco de notas&#8221; e vou escrevendo&#8230;</p>
<p>Curtiu o conteúdo? Quer me ajudar manter o blog? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Participe do canal no <a href="https://t.me/blogremontti" target="_blank" rel="noopener noreferrer">telegram</a> para ficar atualizado sempre que publicar um novo tutorial.</p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" target="_blank" rel="noopener noreferrer">clique aqui.</a></p>
<p>Abraço!</p>
<p>O post <a href="https://blog.remontti.com.br/5848">Configurando interface de rede no Debian 10/11/12/13</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5848/feed</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
			</item>
		<item>
		<title>Instalando FreeRadius 3.0.X com integração MySQL ou MariaDB no Debian 9 Stretch</title>
		<link>https://blog.remontti.com.br/2066</link>
					<comments>https://blog.remontti.com.br/2066#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 03 Jul 2017 14:32:32 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[pppoe]]></category>
		<category><![CDATA[provedor]]></category>
		<category><![CDATA[Stretch]]></category>
		<category><![CDATA[ubiquiti]]></category>
		<category><![CDATA[ubnt]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">http://blog.remontti.com.br/?p=2066</guid>

					<description><![CDATA[<p>Neste tutorial vamos configurar o FreeRadius 3 em nosso servidor Debina 9, com integração dos usuários/atributos de configurações em uma base de dados MySQL/MariaDB com o módulo SQL, e ainda o módulos SQLIPPOOL para&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/2066">Instalando FreeRadius 3.0.X com integração MySQL ou MariaDB no Debian 9 Stretch</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/07/freeradius-3.0-debian9.jpg" alt="" width="900" height="428" class="alignnone size-full wp-image-2091" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/07/freeradius-3.0-debian9.jpg 900w, https://blog.remontti.com.br/wp-content/uploads/2017/07/freeradius-3.0-debian9-300x143.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2017/07/freeradius-3.0-debian9-768x365.jpg 768w" sizes="(max-width: 900px) 100vw, 900px" /></p>
<p>Neste tutorial vamos configurar o FreeRadius 3 em nosso servidor Debina 9, com integração dos usuários/atributos de configurações em uma base de dados MySQL/MariaDB com o módulo SQL, e ainda o módulos SQLIPPOOL para armazenar nossa pool de IPs na base de dados.<br />
Esse tutorial é ideal para provedores fazerem autenticação PPPoE, autenticação Wireless PSK e EAP. </p>
<p>Se você gostou do tutorial ou tem dúvidas deixe seu comentário. Se precisar de alguma ajuda ou trocar uma ideia pode me chamar lá no Telegram @remontti</p>
<p>REQUISITOS<br />
1 – Debian 9 Stretch recomendo uma <a href="https://blog.remontti.com.br/1152" target="_blank" rel="noopener noreferrer">instalação limpa do Debian</a><br />
2 – Servidor Atualizado:</p>
<pre class="remontti-code"># apt update</pre>
<p>Mãos à obra!<br />
Primeiramente escolha qual banco de dados você irá instalar:<br />
<strong>MySQL ou MariaDB? </strong><br />
Com o lançamento do Debian 9 ao solicitar a instalação do mysql-server, você irá se deparar com a instalação do MariaDB automaticamente.<br />
MariaDB é um banco de dados que surgiu como fork do MySQL, criado pelo próprio fundador do projeto após sua aquisição pela Oracle. Para saber mais acesse <a href="https://pt.wikipedia.org/wiki/MariaDB" target="_blank" rel="noopener noreferrer">https://pt.wikipedia.org/wiki/MariaDB</a></p>
<p><strong>Para MySQL</strong><br />
A equipe do MySQL Release Engineering fornece repositórios apt para usar com a maioria do software, incluindo o servidor e muitos de seus utilitários. Para instalação com o Mysql então será necessário adicionar em seus repositórios.</p>
<pre class="remontti-code">
# echo -e &quot;deb http://repo.mysql.com/apt/debian/ stretch mysql-5.7\ndeb-src http://repo.mysql.com/apt/debian/ stretch mysql-5.7&quot; &gt; /etc/apt/sources.list.d/mysql.list
# wget -O /tmp/RPM-GPG-KEY-mysql https://repo.mysql.com/RPM-GPG-KEY-mysql --no-check-certificate
# apt-key add /tmp/RPM-GPG-KEY-mysql
# apt update</pre>
<pre class="remontti-code"># apt install mysql-server</pre>
<p><strong>Para MariaDB</strong><br />
Não será necessário alterar nada em seus repositórios.<br />
<em><font color="blue">Note que na instalação do MariaDB ele não irá pedir senha do usuário root como acontece no mysql, por padrão o mesmo vem sem senha com permissão de logar apenas via shell.</font></em></p>
<pre class="remontti-code"># apt install mariadb-client mariadb-server</pre>
<p>Agora que já temos nosso bando de dados instalado MySQL ou MariaDB, vamos instalar uma servidor web junto com o PHPMyAdmin para facilitar nossa vida. </p>
<pre class="remontti-code"># apt install apache2 libapache2-mod-php7.0 php7.0 phpmyadmin</pre>
<p>Após instalar acesse <strong>http://SEU-IP/phpmyadmin</strong> para ver  se tudo esta ok!<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150017.png" data-rel="lightbox-gallery-SY9iCiQk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150017-300x157.png" alt="" width="300" height="157" class="alignnone size-medium wp-image-2036" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150017-300x157.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150017-768x402.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150017-1024x536.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150017.png 1680w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p><strong>Instalação do FreeRadius</strong></p>
<pre class="remontti-code"># apt install freeradius freeradius-mysql freeradius-utils</pre>
<p>Crie um banco de dados e usuário e conceda permissões para acessar sua base.</p>
<p>No MariaDB use o comando:</p>
<pre class="remontti-code"># mariadb -u root</pre>
<p>* Vale lembrar que MariaDB seu usuário root vem sem senha, para setar uma senha faça:</p>
<pre class="remontti-code">USE mysql;
UPDATE user SET password=PASSWORD(&#039;SUA-SENHA-USER-ROOT&#039;) WHERE User=&#039;root&#039;;
UPDATE user SET plugin=&quot;mysql_native_password&quot;;
FLUSH PRIVILEGES;
</pre>
<p>Acesse via linha de comando seu banco de dados, e crie uma base chamada de radius e usuário também chamado de radius, para configurarmos nossa aplicação freeradius.</p>
<pre class="remontti-code">
CREATE DATABASE radius;
GRANT ALL PRIVILEGES ON radius.* TO &#039;radius&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SENHA-DO-USER-RADIUS&#039;;
FLUSH PRIVILEGES;
quit;</pre>
<p>Agora vamos criar nossas tableas</p>
<p>No MariaDB use o comando:</p>
<pre class="remontti-code"># mariadb -u radius -p radius &lt; /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql
# mariadb -u radius -p radius &lt; /etc/freeradius/3.0/mods-config/sql/ippool/mysql/schema.sql</pre>
<p>No MySQL use o comando:</p>
<pre class="remontti-code"># mysql -u radius -p radius &lt; /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql
# mysql -u radius -p radius &lt; /etc/freeradius/3.0/mods-config/sql/ippool/mysql/schema.sql</pre>
<p>Após cada comando será solicitado a senha (SENHA-DO-USER-RADIUS)</p>
<p>Caso deseje logs mais detalhados edite radiusd.conf</p>
<pre class="remontti-code"># cp /etc/freeradius/3.0/radiusd.conf /etc/freeradius/3.0/radiusd.conf.orig
# vim /etc/freeradius/3.0/radiusd.conf</pre>
<p>Localize as variáveis e altere para yes  </p>
<pre class="remontti-code">[...]
log {
    [...]
        stripped_names = yes
        auth = yes
        auth_badpass = yes
        auth_goodpass = yes
    [...]
}
[...]</pre>
<p>Vamos habilitar nosso mod SQL, mas antes precisamos fazer algumas alterações no arquivo</p>
<pre class="remontti-code"># cp /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-available/sql.orig
# vim /etc/freeradius/3.0/mods-available/sql</pre>
<p>Altere:</p>
<pre class="remontti-code">
driver = &quot;rlm_sql_null&quot; por driver = &quot;rlm_sql_mysql&quot;
dialect = &quot;sqlite&quot; por dialect = &quot;mysql&quot;
</pre>
<p>Descemente as linhas e altere a senha:</p>
<pre class="remontti-code">server = &quot;localhost&quot;
port = 3306
login = &quot;radius&quot;
password = &quot;SENHA-DO-USER-RADIUS&quot;</pre>
<p>Descomente:<br />
<strong>read_clients = yes</strong></p>
<p>Habilite o mod:</p>
<pre class="remontti-code"># ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/sql</pre>
<p>Agora no arquivo /etc/freeradius/3.0/sites-enabled/default vamos comentar alguns valores e descomentar outros:</p>
<pre class="remontti-code"># cp /etc/freeradius/3.0/sites-available/default  /etc/freeradius/3.0/sites-available/default.org
# vim /etc/freeradius/3.0/sites-enabled/default</pre>
<pre class="remontti-code">
  authorize {
      #digest
      #suffix
      #files
      sql
      #-ldap
  }

  authenticate {
      #digest
  }

  preacct {
      #suffix
      #files
  }

  accounting {
      sql
      #exec
      #attr_filter.accounting_response
  }
  session {
    # Se você deseja usar o atributo Simultaneous-Use, descomente sql e comente radutmp&lt;/em&gt; 
    #radutmp
    sql
  }

  post-auth {
          sql
          #exec

#        Post-Auth-Type REJECT {
#                # log failed authentications in SQL, too.
#                -sql
#                attr_filter.access_reject
#                # Insert EAP-Failure message if the request was
#                # rejected by policy instead of because of an
#                # authentication failure
#                eap
#
#                #  Remove reply message if the response contains an EAP-Message
#                remove_reply_message_if_eap
#        }
</pre>
<p>Faça o mesmo com inner-tunnel</p>
<pre class="remontti-code"># cp /etc/freeradius/3.0/sites-available/inner-tunnel /etc/freeradius/3.0/sites-available/inner-tunnel.org
# vim /etc/freeradius/3.0/sites-enabled/inner-tunnel</pre>
<pre class="remontti-code">
authorize {
    #suffix
    #files
    sql
    #-ldap
}

authenticate {

}

session { 
    # Se você deseja usar o atributo Simultaneous-Use, descomente sql e comente radutmp
    #radutmp
    sql
}
post-auth {
    sql

#  Post-Auth-Type REJECT {
#      # log failed authentications in SQL, too.
#      -sql
#      attr_filter.access_reject
#
#      #
#      #  Let the outer session know which module failed, and why.
#      #
#      update outer.session-state {
#              &amp;Module-Failure-Message := &amp;request:Module-Failure-Message
#      }
#  }

}</pre>
<p><strong>Habilita mod sqlippool</strong></p>
<pre class="remontti-code"># ln -s /etc/freeradius/3.0/mods-available/sqlippool /etc/freeradius/3.0/mods-enabled/sqlippool
# vim /etc/freeradius/3.0/mods-enabled/sqlippool</pre>
<pre class="remontti-code"># Comente:
# pool_key = &quot;%{NAS-Port}&quot;
# Descomente
pool_key = &quot;%{Calling-Station-Id}&quot;</pre>
<p>Precisamos adicionar o mod sqlippool no nosso arquivo default, você acrescentará sqlippool em accounting e post-auth logo abaixo de sql: </p>
<pre class="remontti-code"># vim /etc/freeradius/3.0/sites-enabled/default</pre>
<pre class="remontti-code">
accounting {
        sql
        sqlippool
}
session {
        sql
}
post-auth {
        sql
        sqlippool
}
</pre>
<p>Uma alteraçõe que acho interessante é para que a cada nova alocação de IP ela seja randômica, isso pode solucionar alguns problemas como o daqueles clientes que jogam online, que fazem download, que estão sendo atacados, que ao reiniciar seu equipamento o mesmo irá receber um novo IP. Para isso vamos editar /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf </p>
<p># vim /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf</p>
<pre class="remontti-code">
#
#  The ORDER BY clause of this query tries to allocate the same IP-address
#  which user had last session...
#COMENTE:
#allocate_find = &quot;\
#        SELECT framedipaddress FROM ${ippool_table} \
#        WHERE pool_name = &#039;%{control:Pool-Name}&#039; \
#        AND (expiry_time &lt; NOW() OR expiry_time IS NULL) \
#        ORDER BY \
#                (username &lt;&gt; &#039;%{User-Name}&#039;), \
#                (callingstationid &lt;&gt; &#039;%{Calling-Station-Id}&#039;), \
#                expiry_time \
#        LIMIT 1 \
#        FOR UPDATE&quot;

#
#  If you prefer to allocate a random IP address every time, use this query instead.
#DESCOMENTE
allocate_find = &quot;\
       SELECT framedipaddress FROM ${ippool_table} \
       WHERE pool_name = &#039;%{control:Pool-Name}&#039; \
       AND expiry_time IS NULL \
       ORDER BY \
               RAND() \
       LIMIT 1 \
       FOR UPDATE&quot;</pre>
<p><strong>Opcional</strong></p>
<p>Inicialmente eu particularmente não gosto da ideia da tabela radusergroup não ter um ID então para alterar isso faça. (Se desejar)</p>
<pre class="remontti-code"># mysql/mariadb -u radius -p</pre>
<p>Entre com SUA-SENHA do radius no MySQL.</p>
<pre class="remontti-code">
USE radius;
ALTER TABLE `radusergroup` ADD `id` INT(20) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`) ;
ALTER TABLE `radusergroup` ADD UNIQUE(`id`);</pre>
<p>Caso você tenha uma alta demanda de requisições você pode fazer algumas alterações no radiusd.conf.<br />
Altere conforme sua necessidade, e hardware de seu servidor. Vale lembrar que fazendo essas alterações será necessário alterar as configurações do MySQL/MariaDB para permitir uma maior número de conexões.<br />
Ex carga de cerca de 1000 Access-Request por segundo:</p>
<pre class="remontti-code"># vim /etc/freeradius/3.0/radiusd.conf</pre>
<pre class="remontti-code">
#...
thread pool {
    start_servers = 256
    max_servers = 512
    min_spare_servers = 256
    max_spare_servers = 512
    max_queue_size = 1048576
    max_requests_per_server = 0
    auto_limit_acct = no
}
#...</pre>
<p>Para conhecer os atributos que você pode usar em sua base recomendo a leitura do tutorial: "ALIMENTANDO NOSSA BASE DE DADOS" em diante.<br />
<strong><a href="https://blog.remontti.com.br/1651">Servidor FreeRadius com integração MySQL + Autenticação PPPoE & Hotspot VS Mikrotik + Ubiquiti EAP/PSK</a></strong></p>
<p>Sugestões ou criticas envie para Telegram: @remontti</p>
<p>Espero ter ajudado!  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h3>ARQUIVOS EDITADOS:</h3>
<pre class="remontti-code"># cat /etc/freeradius/3.0/sites-enabled/default |grep -v &quot;#&quot; |awk &#039;NF&gt;0&#039;</pre>
<pre class="remontti-code">
server default {
listen {
        type = auth
        ipaddr = *
        port = 0
        limit {
              max_connections = 16
              lifetime = 0
              idle_timeout = 30
        }
}
listen {
        ipaddr = *
        port = 0
        type = acct
        limit {
        }
}
listen {
        type = auth
        port = 0
        limit {
              max_connections = 16
              lifetime = 0
              idle_timeout = 30
        }
}
listen {
        ipv6addr = ::
        port = 0
        type = acct
        limit {
        }
}
authorize {
        filter_username
        preprocess
        chap
        mschap
        eap {
                ok = return
        }
        sql
        expiration
        logintime
        pap
}
authenticate {
        Auth-Type PAP {
                pap
        }
        Auth-Type CHAP {
                chap
        }
        Auth-Type MS-CHAP {
                mschap
        }
        mschap
        eap
}
preacct {
        preprocess
        acct_unique
}
accounting {
        detail
        sql
        sqlippool
}
session {
        sql
}
post-auth {
        update {
                &amp;reply: += &amp;session-state:
        }
        sql
        sqlippool
        remove_reply_message_if_eap
}
pre-proxy {
}
post-proxy {
        eap
}
}
</pre>
<pre class="remontti-code"># cat /etc/freeradius/3.0/sites-enabled/inner-tunnel |grep -v &quot;#&quot; |awk &#039;NF&gt;0&#039;</pre>
<pre class="remontti-code">
server inner-tunnel {
listen {
       ipaddr = 127.0.0.1
       port = 18120
       type = auth
}
authorize {
        filter_username
        chap
        mschap
        update control {
                &amp;Proxy-To-Realm := LOCAL
        }
        eap {
                ok = return
        }
        sql
        expiration
        logintime
        pap
}
authenticate {
        Auth-Type PAP {
                pap
        }
        Auth-Type CHAP {
                chap
        }
        Auth-Type MS-CHAP {
                mschap
        }
        mschap
        eap
}
session {
        sql
}
post-auth {
        sql
}
pre-proxy {
}
post-proxy {
        eap
}
</pre>
<pre class="remontti-code"># cat /etc/freeradius/3.0/mods-enabled/sql |grep -v &quot;#&quot; |awk &#039;NF&gt;0&#039;</pre>
<pre class="remontti-code">
sql {
        driver = &quot;rlm_sql_mysql&quot;
        dialect = &quot;mysql&quot;
        server = &quot;localhost&quot;
        port = 3306
        login = &quot;radius&quot;
        password = &quot;SENHA-USUARIO-RADIUS&quot;
        radius_db = &quot;radius&quot;
        acct_table1 = &quot;radacct&quot;
        acct_table2 = &quot;radacct&quot;
        postauth_table = &quot;radpostauth&quot;
        authcheck_table = &quot;radcheck&quot;
        groupcheck_table = &quot;radgroupcheck&quot;
        authreply_table = &quot;radreply&quot;
        groupreply_table = &quot;radgroupreply&quot;
        usergroup_table = &quot;radusergroup&quot;
        delete_stale_sessions = yes
        pool {
                start = ${thread[pool].start_servers}
                min = ${thread[pool].min_spare_servers}
                max = ${thread[pool].max_servers}
                spare = ${thread[pool].max_spare_servers}
                uses = 0
                retry_delay = 30
                lifetime = 0
                idle_timeout = 60
        }
        read_clients = yes
        client_table = &quot;nas&quot;
        group_attribute = &quot;SQL-Group&quot;
        $INCLUDE ${modconfdir}/${.:name}/main/${dialect}/queries.conf
}
</pre>
<pre class="remontti-code"># cat /etc/freeradius/3.0/mods-enabled/sqlippool |grep -v &quot;#&quot; |awk &#039;NF&gt;0&#039;</pre>
<pre class="remontti-code">
sqlippool {
        sql_module_instance = &quot;sql&quot;
        dialect = &quot;mysql&quot;
        ippool_table = &quot;radippool&quot;
        lease_duration = 3600
        pool_key = &quot;%{Calling-Station-Id}&quot;
        messages {
                exists = &quot;Existing IP: %{reply:Framed-IP-Address} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})&quot;
                success = &quot;Allocated IP: %{reply:Framed-IP-Address} from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})&quot;
                clear = &quot;Released IP %{Framed-IP-Address} (did %{Called-Station-Id} cli %{Calling-Station-Id} user %{User-Name})&quot;
                failed = &quot;IP Allocation FAILED from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})&quot;
                nopool = &quot;No Pool-Name defined (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})&quot;
        }
        $INCLUDE ${modconfdir}/sql/ippool/${dialect}/queries.conf
}
</pre>
<pre class="remontti-code"># cat /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf |grep -v &quot;#&quot; |awk &#039;NF&gt;0&#039;</pre>
<pre class="remontti-code">
allocate_clear = &quot;\
        UPDATE ${ippool_table} \
        SET \
                nasipaddress = &#039;&#039;, \
                pool_key = 0, \
                callingstationid = &#039;&#039;, \
                username = &#039;&#039;, \
                expiry_time = NULL \
        WHERE expiry_time &lt;= NOW() - INTERVAL 1 SECOND \
        AND nasipaddress = &#039;%{Nas-IP-Address}&#039;&quot;
allocate_find = &quot;\
        SELECT framedipaddress FROM ${ippool_table} \
        WHERE pool_name = &#039;%{control:Pool-Name}&#039; \
        AND expiry_time IS NULL \
        ORDER BY \
                RAND() \
        LIMIT 1 \
        FOR UPDATE&quot;
pool_check = &quot;\
        SELECT id \
        FROM ${ippool_table} \
        WHERE pool_name=&#039;%{control:Pool-Name}&#039; \
        LIMIT 1&quot;
allocate_update = &quot;\
        UPDATE ${ippool_table} \
        SET \
                nasipaddress = &#039;%{NAS-IP-Address}&#039;, pool_key = &#039;${pool_key}&#039;, \
                callingstationid = &#039;%{Calling-Station-Id}&#039;, \
                username = &#039;%{User-Name}&#039;, expiry_time = NOW() + INTERVAL ${lease_duration} SECOND \
        WHERE framedipaddress = &#039;%I&#039; \
        AND expiry_time IS NULL&quot;
start_update = &quot;\
        UPDATE ${ippool_table} \
        SET \
                expiry_time = NOW() + INTERVAL ${lease_duration} SECOND \
        WHERE nasipaddress = &#039;%{NAS-IP-Address}&#039; \
        AND pool_key = &#039;${pool_key}&#039; \
        AND username = &#039;%{User-Name}&#039; \
        AND callingstationid = &#039;%{Calling-Station-Id}&#039; \
        AND framedipaddress = &#039;%{Framed-IP-Address}&#039;&quot;
stop_clear = &quot;\
        UPDATE ${ippool_table} \
        SET \
                nasipaddress = &#039;&#039;, \
                pool_key = 0, \
                callingstationid = &#039;&#039;, \
                username = &#039;&#039;, \
                expiry_time = NULL \
        WHERE nasipaddress = &#039;%{Nas-IP-Address}&#039; \
        AND pool_key = &#039;${pool_key}&#039; \
        AND username = &#039;%{User-Name}&#039; \
        AND callingstationid = &#039;%{Calling-Station-Id}&#039; \
        AND framedipaddress = &#039;%{Framed-IP-Address}&#039;&quot;
alive_update = &quot;\
        UPDATE ${ippool_table} \
        SET \
                expiry_time = NOW() + INTERVAL ${lease_duration} SECOND \
        WHERE nasipaddress = &#039;%{Nas-IP-Address}&#039; \
        AND pool_key = &#039;${pool_key}&#039; \
        AND username = &#039;%{User-Name}&#039; \
        AND callingstationid = &#039;%{Calling-Station-Id}&#039; \
        AND framedipaddress = &#039;%{Framed-IP-Address}&#039;&quot;
on_clear = &quot;\
        UPDATE ${ippool_table} \
        SET \
                nasipaddress = &#039;&#039;, \
                pool_key = 0, \
                callingstationid = &#039;&#039;, \
                username = &#039;&#039;, \
                expiry_time = NULL \
        WHERE nasipaddress = &#039;%{Nas-IP-Address}&#039;&quot;
off_clear = &quot;\
        UPDATE ${ippool_table} \
        SET \
                nasipaddress = &#039;&#039;, \
                pool_key = 0, \
                callingstationid = &#039;&#039;, \
                username = &#039;&#039;, \
                expiry_time = NULL \
        WHERE nasipaddress = &#039;%{Nas-IP-Address}&#039;&quot;
</pre>
<p>O post <a href="https://blog.remontti.com.br/2066">Instalando FreeRadius 3.0.X com integração MySQL ou MariaDB no Debian 9 Stretch</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/2066/feed</wfw:commentRss>
			<slash:comments>60</slash:comments>
		
		
			</item>
		<item>
		<title>Como instalar o MySQL Server (Oracle) no Debian 9 Stretch</title>
		<link>https://blog.remontti.com.br/2054</link>
					<comments>https://blog.remontti.com.br/2054#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Thu, 29 Jun 2017 19:27:11 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[jessie]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysql-5.7]]></category>
		<category><![CDATA[mysql-primary]]></category>
		<category><![CDATA[mysql-server]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[Stretch]]></category>
		<category><![CDATA[upgrade]]></category>
		<guid isPermaLink="false">http://blog.remontti.com.br/?p=2054</guid>

					<description><![CDATA[<p>Recentemente tivemos o lançamento do Debian 9, e se você solicitar a instalação do mysql-server, você irá se deparar com a instalação do mariadb automaticamente, sem nenhuma maneira (fácil) de instalar o MySQL da&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/2054">Como instalar o MySQL Server (Oracle) no Debian 9 Stretch</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/mysql.jpg" alt="" width="900" height="428" class="alignnone size-full wp-image-2061" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/mysql.jpg 900w, https://blog.remontti.com.br/wp-content/uploads/2017/06/mysql-300x143.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/mysql-768x365.jpg 768w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>Recentemente tivemos o lançamento do Debian 9, e se você solicitar a instalação do mysql-server, você irá se deparar com a instalação do mariadb automaticamente, sem nenhuma maneira (fácil) de instalar o MySQL da Oracle. Qualquer migração importante de base de dados deve ser feita com cuidado, Migrar o MySQL 5.5 para o MariaDB 10.1 pode causar dores de cabeça. </p>
<p>Adicione o Repositórios da Oracle</p>
<p>A equipe do MySQL Release Engineering fornece repositórios apt para usar com a maioria do software, incluindo o servidor e muitos de seus utilitários. Vou optar por instalar o MySQL 5.7, porém 5.6 e 8.0 também estão disponíveis para o Debian stable. Vamos criar o arquivo /etc/apt/sources.list.d/mysql.list.</p>
<pre class="remontti-code"># echo -e &quot;deb http://repo.mysql.com/apt/debian/ stretch mysql-5.7\ndeb-src http://repo.mysql.com/apt/debian/ stretch mysql-5.7&quot; &gt; /etc/apt/sources.list.d/mysql.list</pre>
<p>Antes de atualizar nosso repositório você deve adicionar a chave pública como confiável:</p>
<pre class="remontti-code"># wget -O /tmp/RPM-GPG-KEY-mysql https://repo.mysql.com/RPM-GPG-KEY-mysql --no-check-certificate
# apt-key add /tmp/RPM-GPG-KEY-mysql</pre>
<p>Já pode instale mysql-sever da Oracle</p>
<pre class="remontti-code"># apt update
# apt install mysql-server</pre>
<p>Defina senha para o usuário root do MySQL.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/senha-mysql-root.png" alt="" width="989" height="579" class="alignnone size-full wp-image-2113" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/senha-mysql-root.png 989w, https://blog.remontti.com.br/wp-content/uploads/2017/06/senha-mysql-root-300x176.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/senha-mysql-root-768x450.png 768w" sizes="auto, (max-width: 989px) 100vw, 989px" /></p>
<p>Verifique se o mesmo esta rodando:</p>
<pre class="remontti-code">systemctl status mysql</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170629_151538.png" alt="" width="944" height="253" class="alignnone size-full wp-image-2056" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170629_151538.png 944w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170629_151538-300x80.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170629_151538-768x206.png 768w" sizes="auto, (max-width: 944px) 100vw, 944px" /></p>
<p>Já pode fazer a conexão ao seu banco!</p>
<pre class="remontti-code">mysql -p</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170629_151808.png" alt="" width="802" height="420" class="alignnone size-full wp-image-2057" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170629_151808.png 802w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170629_151808-300x157.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170629_151808-768x402.png 768w" sizes="auto, (max-width: 802px) 100vw, 802px" /></p>
<p>Sugestões ou criticas envie para Telegram: <a href="https://t.me/remontti">@remontti</a></p>
<p>Espero ter ajudado!  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>O post <a href="https://blog.remontti.com.br/2054">Como instalar o MySQL Server (Oracle) no Debian 9 Stretch</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/2054/feed</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title>Passo-a-passo como criar um servidor web Apache2, PHP 7.0, MariaDB, PHPMyAdmin &#8220;LAMP&#8221; no Debian 9 Stretch</title>
		<link>https://blog.remontti.com.br/2024</link>
					<comments>https://blog.remontti.com.br/2024#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 19 Jun 2017 18:55:38 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[Debian 9]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP 7.0]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[Stretch]]></category>
		<category><![CDATA[webserver]]></category>
		<guid isPermaLink="false">http://blog.remontti.com.br/?p=2024</guid>

					<description><![CDATA[<p>Distribuição utilizada: Debian 9 Stretch / Instalação Limpa Com o lançamento do Debian 9 alguns pacotes foram substituído como: PHP5 -> PHP7.0 Mysql -> MariaDB (MariaDB é um banco de dados que surgiu como&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/2024">Passo-a-passo como criar um servidor web Apache2, PHP 7.0, MariaDB, PHPMyAdmin &#8220;LAMP&#8221; no Debian 9 Stretch</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/webdev-debian9.jpg" alt="" width="800" height="376" class="alignnone size-full wp-image-2046" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/webdev-debian9.jpg 800w, https://blog.remontti.com.br/wp-content/uploads/2017/06/webdev-debian9-300x141.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/webdev-debian9-768x361.jpg 768w, https://blog.remontti.com.br/wp-content/uploads/2017/06/webdev-debian9-520x245.jpg 520w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>
<p>Distribuição utilizada: Debian 9 Stretch / <a href="https://blog.remontti.com.br/1152">Instalação Limpa</a></p>
<p>Com o lançamento do Debian 9 alguns pacotes foram substituído como:<br />
<strong>PHP5 -> PHP7.0</strong><br />
<strong>Mysql -> <a href="https://pt.wikipedia.org/wiki/MariaDB" target="_blank" rel="noopener noreferrer">MariaDB</a></strong> (<em>MariaDB é um banco de dados que surgiu como fork do MySQL, criado pelo próprio fundador do projeto após sua aquisição pela Oracle.</em>)</p>
<p>Vamos a instalação</p>
<pre class="remontti-code"># apt update
# apt upgrade
# apt install apache2 libapache2-mod-php7.0 php7.0 mariadb-client mariadb-server phpmyadmin</pre>
<p>Instale todos os pacotes dependentes. (S)</p>
<p><em>OBS: Se você instalar o pacote <strong>mysql-server</strong> ele vai estar instalando o mariadb-client mariadb-server.</em></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_143240.png" data-rel="lightbox-gallery-RnSQ3QkW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_143240-300x199.png" alt="" width="300" height="199" class="alignnone size-medium wp-image-2028" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_143240-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_143240-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_143240-1024x679.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_143240.png 1192w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Na próxima tela selecione a opção apache2.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_143756.png" data-rel="lightbox-gallery-RnSQ3QkW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_143756-300x199.png" alt="" width="300" height="199" class="alignnone size-medium wp-image-2029" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_143756-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_143756-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_143756-1024x679.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_143756.png 1192w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Configurando o banco do phpmyadmin:<br />
Responda Sim.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144016.png" data-rel="lightbox-gallery-RnSQ3QkW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144016-300x199.png" alt="" width="300" height="199" class="alignnone size-medium wp-image-2030" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144016-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144016-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144016-1024x679.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144016.png 1192w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Defina uma senha para a base do phpmyadmin:<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144112.png" data-rel="lightbox-gallery-RnSQ3QkW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144112-300x199.png" alt="" width="300" height="199" class="alignnone size-medium wp-image-2031" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144112-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144112-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144112-1024x679.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144112.png 1192w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Repita a senha:<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144154.png" data-rel="lightbox-gallery-RnSQ3QkW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144154-300x199.png" alt="" width="300" height="199" class="alignnone size-medium wp-image-2032" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144154-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144154-768x509.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144154-1024x679.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144154.png 1192w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Instalação concluída!<br />
Acesse <strong>http://ip-do-seu-servidor/</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150403.png" data-rel="lightbox-gallery-RnSQ3QkW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150403-300x158.png" alt="" width="300" height="158" class="alignnone size-medium wp-image-2039" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150403-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150403-768x403.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150403-1024x538.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150403.png 1680w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p><strong>Não sentiu que faltou algo nessa instalação?</strong><br />
<strong>Sim!</strong> No MySQL você definia uma senha para para o usuário root do mysql na instalação, com o MariaDB isso não acontece pois ele vem sem senha de root! Como usuário root não tem senha você não vai conseguir logar com ele no PHPMyAdmin.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144650.png" data-rel="lightbox-gallery-RnSQ3QkW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144650-202x300.png" alt="" width="202" height="300" class="alignnone size-medium wp-image-2034" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144650-202x300.png 202w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_144650.png 432w" sizes="auto, (max-width: 202px) 100vw, 202px" /></a></p>
<p>Para alterar a senha do usuário root do MariaDB faça:</p>
<pre class="remontti-code"># mariadb -u root</pre>
<pre class="remontti-code">USE mysql;
UPDATE user SET password=PASSWORD(&#039;SUA-SENHA&#039;) WHERE User=&#039;root&#039;;
UPDATE user SET plugin=&quot;mysql_native_password&quot;;
FLUSH PRIVILEGES;
quit;</pre>
<p>Mas não se assuste! MariaDB é praticamente o seu velho MySQL. Para saber mais acesse: <a href="https://mariadb.com/kb/pt-br/mariadb-versus-mysql-compatibility/" target="_blank" rel="noopener noreferrer">MariaDB versus MySQL &#8211; Compatibilidade</a>. Veja pelo lado bom, não permitindo login com root temos mais segurança!<br />
O que fazer então? Simples crie uma base de dados e um usuário para acessa-la. Eu sempre recomendei usar para cada aplicação um usuário com a sua base, assim numa falha você  não deixa exposto o que não deveria!<br />
Acesse via linha de comando nosso o mariadb (o comando mysql -p funciona também) </p>
<pre class="remontti-code"># mariadb -p</pre>
<p>Por padrão vem sem senha.</p>
<pre class="remontti-code">CREATE DATABASE minhabase;
GRANT ALL PRIVILEGES ON minhabase.* TO &#039;meuusuario&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;minhasenha&#039;;
FLUSH PRIVILEGES;
quit;</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_145812.png" data-rel="lightbox-gallery-RnSQ3QkW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_145812-300x106.png" alt="" width="300" height="106" class="alignnone size-medium wp-image-2035" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_145812-300x106.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_145812-768x271.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_145812-1024x362.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_145812.png 1157w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Agora pode acessar seu PHPMyAdmin com seu seu usuário e senha. <strong>http://ip-do-seu-servidor/phpmyadmin</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150017.png" data-rel="lightbox-gallery-RnSQ3QkW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150017-300x157.png" alt="" width="300" height="157" class="alignnone size-medium wp-image-2036" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150017-300x157.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150017-768x402.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150017-1024x536.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150017.png 1680w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><a href="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150027.png" data-rel="lightbox-gallery-RnSQ3QkW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150027-300x158.png" alt="" width="300" height="158" class="alignnone size-medium wp-image-2037" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150027-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150027-768x404.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150027-1024x539.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150027.png 1680w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Agora vamos habilitar o <a href="http://httpd.apache.org/docs/current/mod/mod_rewrite.html">mod_rewrite</a> do Apache que é muito utilizado. Este é um módulo do Apache que utiliza um mecanismo baseado em regras de reescrita.</p>
<p>Diretório de configurações do Apache fica em <strong>/etc/apache2/</strong></p>
<p>Vamos ao comando para habilita-lo:</p>
<pre class="remontti-code"># a2enmod rewrite</pre>
<p>A página que vimos ao abri o ip do nosso servidor no navegador fica no diretório /var/www/html, isso está sendo informado no arquivo default do apache que fica em <em>/etc/apache2/sites-enabled/000-default.conf</em>, e para que nosso <a href="http://httpd.apache.org/docs/current/mod/mod_rewrite.html">mod_rewrite</a> funcione corretamente será necessário adicionar alguma linhas.</p>
<p>Edite o arquivo /etc/apache2/sites-enabled/000-default.conf (vou usar o editor vim, que não vem instalado por padrão no sistema, mas se você pode usar qualquer edito ex o nano)</p>
<pre class="remontti-code"># vim /etc/apache2/sites-enabled/000-default.conf</pre>
<p>Adicione abaixo de &#8220;<span style="color: #000080;"><strong>DocumentRoot /var/www/html</strong>&#8220;</span> o seguinte:</p>
<pre class="remontti-code">	
	&lt;Directory /var/www/html/&gt;
    		Options FollowSymLinks
    		AllowOverride All
	&lt;/Directory&gt;
</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150942.png" data-rel="lightbox-gallery-RnSQ3QkW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150942-300x172.png" alt="" width="300" height="172" class="alignnone size-medium wp-image-2042" srcset="https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150942-300x172.png 300w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150942-768x441.png 768w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150942-1024x588.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2017/06/Screenshot_20170619_150942.png 1192w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Por segurança recomendo remover a assinatura do servidor, evitando os &#8220;espertinhos&#8221;</p>
<pre class="remontti-code"># sed -i &#039;s/ServerTokens OS/ServerTokens Prod/&#039; /etc/apache2/conf-available/security.conf
# sed -i &#039;s/ServerSignature On/ServerSignature Off/&#039; /etc/apache2/conf-available/security.conf</pre>
<p>Agora precisamos restartar o apache para que tenha efeito nossas alterações.</p>
<pre class="remontti-code"># /etc/init.d/apache2 restart</pre>
<p>Ou</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>Parabéns seu servidor está &#8220;Pronto&#8221;!</p>
<p>O post <a href="https://blog.remontti.com.br/2024">Passo-a-passo como criar um servidor web Apache2, PHP 7.0, MariaDB, PHPMyAdmin &#8220;LAMP&#8221; no Debian 9 Stretch</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/2024/feed</wfw:commentRss>
			<slash:comments>47</slash:comments>
		
		
			</item>
		<item>
		<title>Script para limpar memória cache/swap do Linux</title>
		<link>https://blog.remontti.com.br/92</link>
					<comments>https://blog.remontti.com.br/92#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 17 Apr 2009 04:51:57 +0000</pubDate>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[buster]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[cheio]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[jessie]]></category>
		<category><![CDATA[memoria]]></category>
		<category><![CDATA[Stretch]]></category>
		<guid isPermaLink="false">http://remontti.com.br/blog/?p=92</guid>

					<description><![CDATA[<p>Distribuição Testada: Debian 8/9/10/11/12 Vamos criar um arquivinho para checar nossa memória e limpar ela. Comandos: # vim /bin/limpamemoria #!/bin/sh # ********************** # # remontti.com.br # # ********************** # # Porcentagem máxima (mude se&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/92">Script para limpar memória cache/swap do Linux</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Distribuição Testada: Debian 8/9/10/11/12</p>
<p>Vamos criar um arquivinho para checar nossa memória e limpar ela.<br />
Comandos:</p>
<pre class="remontti-code"># vim /bin/limpamemoria</pre>
<p><span id="more-92"></span></p>
<pre class="remontti-code">#!/bin/sh

# ********************** #
#    remontti.com.br     #
# ********************** #

# Porcentagem máxima (mude se você achar necessário)
percent=85

# Total da memoria:
ramtotal=`grep -F &quot;MemTotal:&quot; &lt; /proc/meminfo | awk &#039;{print $2}&#039;`
# Memoria livre:
ramlivre=`grep -F &quot;MemFree:&quot; &lt; /proc/meminfo | awk &#039;{print $2}&#039;`

# RAM utilizada pelo sistema:
ramusada=`expr $ramtotal - $ramlivre`

# Porcentagem de RAM utilizada pelo sistema:
putil=`expr $ramusada \* 100 / $ramtotal`

echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
date
echo
echo &quot;Mem. utilizada: $putil %&quot;;

if [ $putil -gt $percent ]
then
date=`date`
echo $date &gt;&gt; /var/log/memoria.log
echo &quot;Mem. utilizada: $putil %&quot; &gt;&gt; /var/log/memoria.log

echo &quot;Memoria acima de $percent %, cache foi limpado!&quot;;
sync
# &#039;Dropando&#039; cache:
echo 3 &gt; /proc/sys/vm/drop_caches
# Caso nao esteja utilizanod debian, descomente a linha abaixo
# sysctl -w vm.drop_caches=3 
# Zera SWAP
swapoff -a
swapon -a
echo
free -m
echo
echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
else
echo &quot;Cache não foi limpado!&quot;;
echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
unset percent ramtotal ramlivre ramusada putil
exit $?
fi</pre>
<p>De permissão para executá-lo:</p>
<pre class="remontti-code"># chmod +x /bin/limpamemoria</pre>
<p><strong>Agendando no CRON</strong></p>
<p>Vamos adicionar ao cron para rodar a cada 30 min.<br />
Adicione ao final de /etc/crontab:</p>
<pre class="remontti-code"># echo &#039;# Limpa memoria a cada 30min&#039; &gt;&gt; /etc/crontab
# echo &#039;*/30 *  * * *   root   /bin/limpamemoria&#039; &gt;&gt; /etc/crontab</pre>
<p>Verifique se inseriu</p>
<pre class="remontti-code"># cat /etc/crontab</pre>
<p>Reinicie o CRON</p>
<pre class="remontti-code"># systemctl restart cron</pre>
<p>Para distribuição mais antigas</p>
<pre class="remontti-code"># /etc/init.d/cron restart</pre>
<p>Feito, cada vez q ele limpar vai gerar um log em <strong>/var/log/memoria.log</strong></p>
<p>Gostou? Quer me ajudar? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>O post <a href="https://blog.remontti.com.br/92">Script para limpar memória cache/swap do Linux</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/92/feed</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
	</channel>
</rss>
