<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.ispup.com.br/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gondim</id>
	<title>ISPUP! - Contribuições do usuário [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ispup.com.br/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gondim"/>
	<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/Especial:Contribui%C3%A7%C3%B5es/Gondim"/>
	<updated>2026-06-15T14:05:10Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Portas_Amplificacao_DDoS&amp;diff=1143</id>
		<title>Portas Amplificacao DDoS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Portas_Amplificacao_DDoS&amp;diff=1143"/>
		<updated>2026-06-14T16:44:25Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Portas de Amplificação DDoS e Botnets}}&lt;br /&gt;
__TOC__&lt;br /&gt;
[[Arquivo:Criminal-bandit-hacker-scaled-1.jpg|miniaturadaimagem|nenhum|459x459px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Introdução==&lt;br /&gt;
Para contextualizar nosso artigo precisamos entender basicamente que: &#039;&#039;&#039;amplificação&#039;&#039;&#039; é quando perguntamos algo para algum serviço (porta) e a resposta retornada, é maior que o tamanho da pergunta. Tendo isso em mente, existem alguns &#039;&#039;&#039;serviços abertos na Internet&#039;&#039;&#039; com essa característica e são explorados para realizarem o que conhecemos como &#039;&#039;&#039;Ataques de&#039;&#039;&#039; &#039;&#039;&#039;DDoS (Distributed Denial of Service)&#039;&#039;&#039;. Sabem aqueles ataques que costumam derrubar nossa &#039;&#039;&#039;Operação de Internet&#039;&#039;&#039;, causando indisponibilidade de acesso para nossos assinantes? São esses serviços mal configurados e abertos na Internet, que munem fortemente os cibercriminosos, que usam esses serviços abertos como ferramentas para esse propósito. Não se engane se você acha que na sua Rede, não possa existir esses serviços abertos e que ninguém estaria usando-os para executar esses ataques. Estamos acostumados a sempre reclamar de ataques recebidos, mas você já parou para pensar que você pode estar sendo usado como &#039;&#039;&#039;vetor de ataque&#039;&#039;&#039; e com isso, &#039;&#039;&#039;inconscientemente&#039;&#039;&#039;, atacando alguém na Internet? Tirando o fato da imperícia de quem configurou erradamente o serviço, deixando-o &#039;&#039;&#039;vulnerável&#039;&#039;&#039;, &#039;&#039;&#039;exposto&#039;&#039;&#039; e &#039;&#039;&#039;suscetível&#039;&#039;&#039; a ser explorado, essa pessoa é tanto vítima quanto você.&lt;br /&gt;
&lt;br /&gt;
== Consequências ==&lt;br /&gt;
Quando somos usados como &#039;&#039;&#039;vetor de ataque&#039;&#039;&#039;, nossa Rede se torna instável, nossos clientes reclamam de lentidão no acesso à Internet, nosso &#039;&#039;&#039;Call Center&#039;&#039;&#039; fica atarefado com solicitações que provavelmente eles não conseguirão identificar a causa raiz do problema. Como resultado teremos um aumento da insatisfação dos nossos clientes e muitos cancelamentos (&#039;&#039;&#039;churn&#039;&#039;&#039;). Para evitarmos todos esses males, resolvi escrever esse artigo dando dicas e explicando maneiras de fixarmos esses problemas.&lt;br /&gt;
&lt;br /&gt;
Quanto às &#039;&#039;&#039;Botnets,&#039;&#039;&#039; existem sistemas que foram comprometidos e podem estar sendo explorados para alguma atividade ilícita e que também poderá prejudicar a sua Operação de Internet. Esses casos também precisam ser tratados.&lt;br /&gt;
&lt;br /&gt;
==Portas de Amplificação e de Botnets mais conhecidas==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&#039;&#039;&#039;Porta&#039;&#039;&#039;&lt;br /&gt;
!Descrição&lt;br /&gt;
|-&lt;br /&gt;
|DNS (53/udp)&lt;br /&gt;
|Servidores de DNS Recursivos abertos para o mundo. Não podemos confundir com o serviço de DNS Autoritativo (53/UDP/TCP), este precisa estar aberto à consultas dos domínios de sua autoridade.&lt;br /&gt;
|-&lt;br /&gt;
|SNMP (161/udp)&lt;br /&gt;
|&#039;&#039;&#039;Simple Network Management Protocol&#039;&#039;&#039; ou como costumo brincar dizendo que o significado seria: &#039;&#039;&#039;Security is Not My Problem&#039;&#039;&#039;. Este serviço é muito usado para monitorarmos nossos ativos de Redes e Servidores.&lt;br /&gt;
|-&lt;br /&gt;
|NTP (123/udp)&lt;br /&gt;
|&#039;&#039;&#039;Network Time Protocol&#039;&#039;&#039; é um serviço bastante importante para mantermos nossos sistemas com data e hora corretos.&lt;br /&gt;
|-&lt;br /&gt;
|SSDP (1900/udp)&lt;br /&gt;
|&#039;&#039;&#039;Simple Service Discovery Protocol&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|PORTMAP (111/udp)&lt;br /&gt;
|Daemon que atribui portas dinamicamente para serviços &#039;&#039;&#039;RPC&#039;&#039;&#039; &#039;&#039;&#039;(Remote Procedure Call)&#039;&#039;&#039; como &#039;&#039;&#039;NIS (Network Information Service)&#039;&#039;&#039; e o &#039;&#039;&#039;NFS (Network File System)&#039;&#039;&#039; comumente usados em sistemas Unix Like.&lt;br /&gt;
|-&lt;br /&gt;
|NETBIOS (137/udp)&lt;br /&gt;
|&#039;&#039;&#039;Network Basic Input/Output System&#039;&#039;&#039;, faz parte dos serviços de compartilhamento de Redes baseadas em Microsoft Windows.&lt;br /&gt;
|-&lt;br /&gt;
|UBNT (10001/udp)&lt;br /&gt;
|Serviço de &#039;&#039;&#039;Device Discovery&#039;&#039;&#039; habilitado nos equipamentos da Ubiquiti.&lt;br /&gt;
|-&lt;br /&gt;
|MDNS (5353/udp)&lt;br /&gt;
|Multicast DNS.&lt;br /&gt;
|-&lt;br /&gt;
|LDAP (389/udp)&lt;br /&gt;
|Serviço &#039;&#039;&#039;Lightweight Directory Access Protocol&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|CHARGEN (19/udp)&lt;br /&gt;
|&#039;&#039;&#039;Character Generator Protocol&#039;&#039;&#039;, é um protocolo usado para fins de teste, depuração e medição. Esse serviço gera datagramas contendo um número aleatório de caracteres entre 0 e 252, sempre que requisitado.&lt;br /&gt;
|-&lt;br /&gt;
|QOTD (17/udp)&lt;br /&gt;
|&#039;&#039;&#039;Quote Of The Day&#039;&#039;&#039; outro serviço de teste e medição.&lt;br /&gt;
|-&lt;br /&gt;
|MEMCACHED (11211/udp)&lt;br /&gt;
|Serviço de cache para aceleração de aplicativos Web.&lt;br /&gt;
|-&lt;br /&gt;
|WS-DISCOVERY (3702/udp)&lt;br /&gt;
|&#039;&#039;&#039;Web Services Dynamic Discovery Protocol&#039;&#039;&#039;, é um protocolo de descoberta multicast para localizar serviços em uma Rede local.&lt;br /&gt;
|-&lt;br /&gt;
|TFTP (69/udp)&lt;br /&gt;
|Trivial File Transfer Protocol, é um protocolo bastante utilizado por ativos de redes para por exemplo, transferir uma atualização de firmware.&lt;br /&gt;
|-&lt;br /&gt;
|CoAP (5683/udp)&lt;br /&gt;
|&#039;&#039;&#039;Constrained Application Protocol&#039;&#039;&#039;, é um protocolo de comunicação usado por dispositivos de Internet que possuem pouco recurso de hardware.&lt;br /&gt;
|-&lt;br /&gt;
|SLP (427/udp)&lt;br /&gt;
|&#039;&#039;&#039;Service Location Protocol,&#039;&#039;&#039; é um protocolo que permite computadores e outros dispositivos encontrarem serviços em uma rede local sem a necessidade de configuração prévia.&lt;br /&gt;
|-&lt;br /&gt;
|ARMS (3283/udp)&lt;br /&gt;
|&#039;&#039;&#039;Apple Remote Management Service&#039;&#039;&#039;, serviço utilizado pela Apple para prover acesso remoto e gerenciamento de dispositivos rodando MacOS.&lt;br /&gt;
|-&lt;br /&gt;
|DHCPDiscover (37810/udp)&lt;br /&gt;
|&#039;&#039;&#039;Dynamic Host Configuration Protocol Discover&#039;&#039;&#039;, protocolo utilizado para gerenciar equipamentos DVR.&lt;br /&gt;
|-&lt;br /&gt;
|MT4145 (4145/tcp)&lt;br /&gt;
|Serviço de SOCKS habilitado na porta 4145/tcp, normalmente visto em equipamentos Mikrotiks comprometidos e abusados por Botnet.&lt;br /&gt;
|-&lt;br /&gt;
|MT5678 (5678/tcp)&lt;br /&gt;
|Serviço de SOCKS4 habilitado na porta 5678/tcp, visto em Mikrotiks comprometidos e sendo abusados pela Meris Botnet .&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como saber se temos Portas de Amplificação DDoS e de Botnets em nossa Rede? ==&lt;br /&gt;
Primeiramente saiba que existem entidades que se preocupam com a segurança da &#039;&#039;&#039;Internet&#039;&#039;&#039; e que tem como objetivo extinguir a exposição desses serviços de amplificação da &#039;&#039;&#039;Internet&#039;&#039;&#039;. Uma entidade que podemos citar é o [https://www.shadowserver.org/news/the-scannings-will-continue-until-the-internet-improves/ &#039;&#039;&#039;ShadowServer&#039;&#039;&#039;] e a outra já conhecemos muito bem, que é o nosso valoroso [https://bcp.nic.br/i+seg/acoes/amplificacao/ &#039;&#039;&#039;CERT.br&#039;&#039;&#039;]. Uma maneira bem fácil e simples de sermos reportados sobre esses problemas de segurança, é mantendo nosso &#039;&#039;&#039;Contato de Segurança&#039;&#039;&#039; atualizado no &#039;&#039;&#039;Registro.br&#039;&#039;&#039;. Mostrarei abaixo em telas de exemplo o quanto isso é fácil. Você precisará de ter a &#039;&#039;&#039;credencial de acesso do seu ASN&#039;&#039;&#039; no [https://registro.br/ &#039;&#039;&#039;Registro.br&#039;&#039;&#039;] e já ter criado um &#039;&#039;&#039;ID com seus dados&#039;&#039;&#039; e &#039;&#039;&#039;e-mail,&#039;&#039;&#039; que será usado pelo &#039;&#039;&#039;CERT.br&#039;&#039;&#039; para enviar as &#039;&#039;&#039;notificações de incidentes&#039;&#039;&#039;.&lt;br /&gt;
[[Arquivo:Registrobr1.png|miniaturadaimagem|691x691px|esquerda]][[Arquivo:Registrobr6.png|miniaturadaimagem|691x691px|nenhum]]&lt;br /&gt;
[[Arquivo:Registrobr3.png|miniaturadaimagem|691x691px|esquerda]][[Arquivo:Registrobr4.png|nenhum|miniaturadaimagem|691x691px]]&lt;br /&gt;
[[Arquivo:Registrobr7.png|esquerda|miniaturadaimagem|691x691px]][[Arquivo:Registrobr5.png|miniaturadaimagem|691x691px|nenhum]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== O que vem depois ==&lt;br /&gt;
Após acertar seu contato de segurança, você começará a receber e-mails do &#039;&#039;&#039;CERT.br&#039;&#039;&#039; e de &#039;&#039;&#039;outros ASNs&#039;&#039;&#039; sempre que houver algum incidente de segurança envolvendo o seu ASN e &#039;&#039;&#039;notificações&#039;&#039;&#039; sobre as &#039;&#039;&#039;portas de amplificação/botnets&#039;&#039;&#039;, abertas em sua Rede, inclusive com cada e-mail referente a qual porta está aberta, com o esclarecimento técnico sobre os riscos e instruções de como testar e checar se o problema foi resolvido. Perceba que agora você não estará mais cego quanto aos problemas de segurança que sua Rede vem sofrendo e tenha certeza de que quanto mais limpa ela estiver, mais qualidade de serviço estará entregando ao seu cliente, diminuindo a quantidade de chamados em seu Call Center e consequentemente diminuindo seu &#039;&#039;&#039;churn&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Um exemplo de e-mail que você receberá para cada serviço aberto:&lt;br /&gt;
[[Arquivo:Certbr.png|nenhum|miniaturadaimagem|1122x1122px]]&lt;br /&gt;
&lt;br /&gt;
Até aqui te expliquei sobre o problema, o que ele pode causar ao seu negócio e te mostrei como passar a enxergá-los. Mas como tratá-los?&lt;br /&gt;
&lt;br /&gt;
== Tratando a causa raiz ==&lt;br /&gt;
Como alguns devem ter percebido, nessa nossa relação de portas de amplificação existem portas que se forem bloqueadas te causarão dor de cabeça e muitas reclamações. Vou citar apenas como exemplo: &#039;&#039;&#039;DNS&#039;&#039;&#039;, &#039;&#039;&#039;SNMP&#039;&#039;&#039; e &#039;&#039;&#039;NTP&#039;&#039;&#039;. Três serviços que se você não tiver cuidado, poderá impactar seus assinantes. Temos que entender que podemos ter 2 tipos de clientes: o &#039;&#039;&#039;residencial&#039;&#039;&#039; e o &#039;&#039;&#039;corporativo&#039;&#039;&#039;. O cliente residencial é mais simples de se resolver porque provavelmente ele não terá um servidor DNS rodando em sua residência, nem um SNMP e tão pouco um servidor NTP, porém o serviço de NTP não pode simplesmente ser bloqueado devido sua natureza de funcionamento e necessidade dos dispositivos, na residência, de manterem-se com a data e horário corretos.&lt;br /&gt;
&lt;br /&gt;
Já o cliente corporativo pode possuir todos esses serviços rodando e nesse caso faz-se necessário um maior entendimento junto ao cliente. O que quero dizer com isso é que para ambos os casos, você precisa elaborar um &#039;&#039;&#039;Plano de Ação&#039;&#039;&#039; para tratar cada caso, buscando sempre o resultado mais eficaz e sem causar indisponibilidade para seu cliente. O que vou propor nesse artigo são duas das formas de se tratar o problema, mas precisamos ter bom senso na hora da decisão e termos certeza de como implementar a solução tecnicamente.&lt;br /&gt;
&lt;br /&gt;
A informação contendo os IPs da nossa Rede que estão com as Portas de Amplificação abertas já temos em mãos, agora precisamos tratá-la. Tenho 2 propostas em mente:&lt;br /&gt;
&lt;br /&gt;
* Identificar os clientes com as falhas de segurança e contatá-los um a um, explicar sobre o problema, o que isso pode afetá-los e ajudá-los a resolver a situação. Essa seria a maneira mais correta, uma boa prática, porque implica em melhorar a cultura de segurança, fazendo todos entenderem sobre os riscos envolvidos e aumentando o senso de cuidado. Em contra partida é uma ação muito trabalhosa e dependendo da quantidade de clientes pode ser muito demorada.&lt;br /&gt;
* Aplicar filtros e controles de acordo com o perfil do cliente. Para se ter um resultado mais rápido e efetivo podemos aplicar filtros em nossos &#039;&#039;&#039;BNGs&#039;&#039;&#039;, bloqueando as Portas de Amplificação &#039;&#039;&#039;sempre no sentido Internet para o cliente&#039;&#039;&#039;, mas com alguns cuidados que citarei ainda. Observando sempre os casos de clientes corporativos e que podem necessitar de um tratamento separado.&lt;br /&gt;
&lt;br /&gt;
== Estratégia de bloqueio das Portas de Amplificação/Botnet ==&lt;br /&gt;
Faremos o bloqueio de todas as Portas de Amplificação citadas na tabela desse artigo, sempre no sentido Internet para o cliente. Isso é muito importante! O &#039;&#039;&#039;serviço NTP&#039;&#039;&#039; terá um tratamento diferenciado porque não podemos apenas bloquear o serviço, precisaremos fazer um &#039;&#039;&#039;rate-limit&#039;&#039;&#039; e uma &#039;&#039;&#039;condição especial&#039;&#039;&#039; para que seja feito o drop dos pacotes. Como a quantidade de vendors é grande e cada Provedor escolhe o melhor para a sua Operação, trouxe aqui como exemplo regras para &#039;&#039;&#039;Mikrotik RouterOS&#039;&#039;&#039;, basta entender a lógica como vou explicar e procurar fazer o mesmo em seu equipamento, seja de qual fabricante for. Escolhi este vendor como exemplo pois além de ser muito utilizado no mercado, devido ao seu custo x benefício, será mais fácil de explicar o funcionamento. Entendendo como funciona, você pode implementar no seu Cisco, Huawei, Juniper, etc.&lt;br /&gt;
&lt;br /&gt;
== As regras de bloqueio no RouterOS ==&lt;br /&gt;
 /ip firewall raw&lt;br /&gt;
 add action=drop chain=prerouting comment=&amp;quot;# BLOQUEIA NTP DE ORIGEM NAO NTP&amp;quot; dst-port=123 in-interface=!all-ppp protocol=udp src-port=!123&lt;br /&gt;
 add action=drop chain=prerouting comment=&amp;quot;# DROP ABUSO NTP&amp;quot; limit=!2M,2M:bit protocol=udp src-port=123&lt;br /&gt;
 add action=drop chain=prerouting comment=&amp;quot;# DROP PORTAS UDP DE AMPLIFICACAO&amp;quot; dst-port=53,161,1900,111,137,10001,5353,389 in-interface=!all-ppp protocol=udp&lt;br /&gt;
 add action=drop chain=prerouting comment=&amp;quot;# DROP PORTAS UDP DE AMPLIFICACAO&amp;quot; dst-port=19,17,11211,3702,69,5683,3283,37810 in-interface=!all-ppp protocol=udp&lt;br /&gt;
 add action=drop chain=prerouting comment=&amp;quot;# DROP PORTAS TCP BOTNET&amp;quot; dst-port=4145,5678 in-interface=!all-ppp protocol=tcp tcp-flags=syn&lt;br /&gt;
Estamos fazendo os bloqueios na tabela &#039;&#039;&#039;raw&#039;&#039;&#039; por ocupar menos processamento do sistema e sabemos o quanto isso é importante no RouterOS. Essas regras estão sendo aplicadas em um BNG concentrador PPPoE onde:&lt;br /&gt;
&lt;br /&gt;
* Na primeira linha &#039;&#039;&#039;ADD&#039;&#039;&#039; estamos bloqueando qualquer pacote entrando por qualquer &#039;&#039;&#039;interface que&#039;&#039;&#039; &#039;&#039;&#039;não seja PPP&#039;&#039;&#039;, ou seja, que viria da Internet sentido o cliente, que está atrás de uma interface do tipo PPP. Ainda analisando esse filtro, somente entraria nessa regra se a &#039;&#039;&#039;porta origem&#039;&#039;&#039; do pacote &#039;&#039;&#039;não for a 123/udp&#039;&#039;&#039; e com &#039;&#039;&#039;destino a porta&#039;&#039;&#039; &#039;&#039;&#039;123/udp&#039;&#039;&#039;. Temos que concordar que se um dispositivo do cliente solicitar um sincronismo com algum servidor NTP na Internet, este responderá através da porta 123/udp. Não deve chegar para o cliente uma resposta com origem diferente da porta 123/udp. Por que isso? Algumas implementações do serviço NTP disparam requisições com porta origem 123 ao invés de uma porta origem &amp;gt;= 1024.&lt;br /&gt;
* Na segunda linha &#039;&#039;&#039;ADD&#039;&#039;&#039; estamos fazendo um &#039;&#039;&#039;rate-limit de até 2Mbps&#039;&#039;&#039; para qualquer pacote com a &#039;&#039;&#039;porta origem 123/udp&#039;&#039;&#039; e para &#039;&#039;&#039;qualquer destino&#039;&#039;&#039;. Para evitar que a exploração da vulnerabilidade do serviço cause excesso de tráfego na conexão.&lt;br /&gt;
* A terceira linha &#039;&#039;&#039;ADD&#039;&#039;&#039; bloqueamos o restante das portas udp de amplificação mas com a seguinte condição: pacotes que entrem por qualquer &#039;&#039;&#039;interface que não seja PPP&#039;&#039;&#039;, novamente definindo o sentido Internet para o cliente e que as portas de destino sejam a nossa lista restante de portas de amplificação.&lt;br /&gt;
* Por último no quarto &#039;&#039;&#039;ADD&#039;&#039;&#039;, bloqueamos as portas &#039;&#039;&#039;TCP de Botnet 4145 e 5678&#039;&#039;&#039;, de pacotes que entrem por qualquer interface que não seja do tipo PPP, com destino elas mas com uma condição do &#039;&#039;&#039;pacote estar setado com a tcp flag SYN&#039;&#039;&#039;, que indica um pedido de início de conexão. Se tem alguém na Internet tentando se conectar nessas portas TCP e o sistema por trás for um RouterOS, algo não está bem.&lt;br /&gt;
&lt;br /&gt;
== Checando se o problema foi resolvido ==&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;Obs.: atualmente eu criei uma ferramenta muito mais poderosa e completa que esta abaixo. caso tenha interesse em conhecer e utilizar visite: &#039;&#039;&#039;https://github.com/gondimcodes/ampscan&#039;&#039;&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após aplicarmos os filtros, checaremos se os IPs estão com as portas de amplificação fechadas e para isso fiz um &#039;&#039;&#039;shell script em bash&#039;&#039;&#039;, que usa alguns pacotes para validarmos o serviço. Como sempre estou usando para os nossos artigos a distribuição Debian GNU/Linux. Procure separar um ambiente para instalar esses pacotes e servir como base de testes. O ideal é que esteja de fora na Internet e sem qualquer bloqueio de Operadoras para esses testes poderem funcionar. Para usar o &#039;&#039;&#039;rpcinfo&#039;&#039;&#039; precisaremos do pacote &#039;&#039;&#039;rpcbind&#039;&#039;&#039; instalado, que após a instalação levantará o serviço rpc (111/udp) e na sequência iremos desabilitá-lo.&lt;br /&gt;
 # apt install nmap bind9-host bind9-dnsutils bsdextrautils netcat snmp samba-common-bin rpcbind ntp ldap-utils curl&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop rpcbind.service&lt;br /&gt;
 # systemctl stop rpcbind.socket&lt;br /&gt;
 # systemctl disable rpcbind.service&lt;br /&gt;
 # systemctl disable rpcbind.socket&lt;br /&gt;
O script dei o nome de &#039;&#039;&#039;amplicacao.sh&#039;&#039;&#039; mas fica ao seu critério chamá-lo como quiser. Ele se encontra aqui no Github: &#039;&#039;&#039;https://github.com/gondimcodes/amplificacao&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para usar é bem simples. No exemplo abaixo fiz um cheque no 8.8.8.8:&lt;br /&gt;
[[Arquivo:Amplificacao.png|nenhum|miniaturadaimagem|654x654px]]&lt;br /&gt;
Se você quiser checar apenas um serviço se está aberto, podemos fornecer após o IP, o nome do serviço queremos testar seguindo essa lista de opções:&lt;br /&gt;
&lt;br /&gt;
* netbios&lt;br /&gt;
* rpc&lt;br /&gt;
* arms&lt;br /&gt;
* tftp&lt;br /&gt;
* dns&lt;br /&gt;
* mdns&lt;br /&gt;
* ssdp&lt;br /&gt;
* snmp&lt;br /&gt;
* ntp&lt;br /&gt;
* ldap&lt;br /&gt;
* ubnt&lt;br /&gt;
* chargen&lt;br /&gt;
* qotd&lt;br /&gt;
* memcached&lt;br /&gt;
* ws-discovery&lt;br /&gt;
* coap&lt;br /&gt;
* mt4145&lt;br /&gt;
* mt5678&lt;br /&gt;
* dhcpdiscover&lt;br /&gt;
&lt;br /&gt;
Para fazer o teste de apenas um serviço, só observar o exemplo abaixo:&lt;br /&gt;
[[Arquivo:Amplificacao2.png|nenhum|miniaturadaimagem|560x560px]]&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
Agora que sabemos o que são as Portas de Amplificação DDoS, os riscos para a nossa Operação de Internet, sabemos como ter visibilidade do problema e como checar e tratar esse problema; você ainda vai continuar deixando isso te afetar ou vamos dar aquele UP! na sua Operação e entregar mais qualidade de serviço para seus assinantes?&lt;br /&gt;
&lt;br /&gt;
Essa documentação foi útil? Compartilhe, divulgue e ajude outras pessoas. Meus contatos podem ser vistos [[Sobre mim|aqui]].&lt;br /&gt;
__FORCARTDC__&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;br /&gt;
__INDEXAR__&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Sobre_mim&amp;diff=1142</id>
		<title>Sobre mim</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Sobre_mim&amp;diff=1142"/>
		<updated>2026-04-28T21:38:39Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Marcelo Gondim da Cunha ===&lt;br /&gt;
[[Arquivo:Gondim perfil2026.png|esquerda|miniaturadaimagem|246x246px]]&lt;br /&gt;
&#039;&#039;&#039;Contribuições e trabalhos:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Administração de Sistemas Unix-Like desde 1996.&lt;br /&gt;
* Consultor na Conectiva S/A - Unidade Rio em 2000.&lt;br /&gt;
* Autor do projeto TuxFrw - https://github.com/gondimcodes/tuxfrw e https://github.com/gondimcodes/tuxfrw-nft&lt;br /&gt;
* Administração de sistemas BSD pela FreeBSD Brasil em 2010.&lt;br /&gt;
* Direção do AS53135 - Nettel Telecomunicações entre 2003 e 2021 atingindo a marca de 41.000 assinantes. Gerando qualidade na entrega de serviços e implantando boas práticas como: &lt;br /&gt;
&lt;br /&gt;
a) IPv6.&lt;br /&gt;
&lt;br /&gt;
b) MANRS.&lt;br /&gt;
&lt;br /&gt;
c) RPKI.&lt;br /&gt;
&lt;br /&gt;
d) CPEs com firmware baseada na BCOP &amp;lt;nowiki&amp;gt;https://www.m3aawg.org/sites/default/files/lac-bcop-1-m3aawg-v1-portuguese-final.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* SOC Specialist na Brasil TecPar (AS262907) de 2022 a 2025. Um milhão de clientes. Responsável pelas estratégias de mitigação anti-DDoS atendendo as Operações de RJ, SP, RS, SC, MT e MS. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Palestras ministradas:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Semana da Informática UERJ 2002 - TuxFrw.&lt;br /&gt;
* CONISLI 2003 - TuxFrw.&lt;br /&gt;
* CONISLI 2004 - Fazendo compras com Gentoo Linux - Palestra sobre a distribuição Linux e suas ferramentas fantásticas.&lt;br /&gt;
* CONISLI 2004 - OpenVPN - Palestra sobre como criar VPNs seguras com OpenVPN e diferenças entre ele e o IPSec.&lt;br /&gt;
* CONISLI 2005 - SPoP (Security Point of Presence) com OpenVPN - Como utilizar túneis encriptados do OpenVPN para acessar a Internet de forma segura, onde quer que esteja.&lt;br /&gt;
* SECOMP 2005 UNIFEI - TuxFrw.&lt;br /&gt;
&lt;br /&gt;
* Debconf19 2019 - [https://debconf19.debconf.org/talks/4-debian-na-vida-de-uma-operadora-de-telecom/ Debian na vida de uma operadora de Telecom], [https://www.youtube.com/watch?v=vQSTslUZy8k&amp;amp;list=PLYUtdmpYPTTJDtwgD8AtxzFJ9t_URhFMK&amp;amp;index=35 vídeo] e [https://salsa.debian.org/debconf-team/public/share/debconf19/raw/master/slides/4-debian-na-vida-de-uma-operadora-de-telecom.pdf?inline=false pdf].&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=5uOFtkplDts FiqueEmCasaUseDebian - CGNAT com NFTables] e [https://www.youtube.com/watch?v=Wz2IAg6MMlU SysAdmin apps].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artigos desenvolvidos para a comunidade do Brasil Peering Fórum:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/CGNAT_na_pratica CGNAT na pratica].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Acesso_via_IPv6_Link-Local Acesso via IPv6 Link-Local].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/MANRS MANRS].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/CGNAT_Bulk_Port_Allocation_com_DPDK CGNAT Bulk Port Allocation com DPDK].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Servidor_de_Logs Servidor de Logs].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/DNS_Recursivo_Anycast_Hyperlocal DNS Anycast com Hyperlocal].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Portas_de_Amplifica%C3%A7%C3%A3o_DDoS_e_Botnets Portas de Amplificação DDoS e Botnets]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Static_Loop_-_um_erro_que_pode_matar_seu_ISP/ITP Static Loop - um erro que pode matar seu ISP/ITP]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Recomenda%C3%A7%C3%B5es_sobre_Mitiga%C3%A7%C3%A3o_DDoS Recomendações sobre Mitigação DDoS]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Vazamento_de_prefixos_na_mitiga%C3%A7%C3%A3o_DDoS Vazamento de prefixos na mitigação DDoS]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Identificando_e_neutralizando_uma_Botnet Identificando e neutralizando uma Botnet]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://bit.ly/2saumHK Segurança de roteamento: MANRS (Mutually Agreed Norms for Routing Security) - Tutoriais NIC.br em 09/12/2019].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://www.manrs.org/about/advisory-group/members/ MANRS Advisory Group Member (2020-2021)]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=oahQkGx8urY &#039;&#039;&#039;Live sobre MANRS com Leonardo Furtado&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
Criação da Wiki ISPUP! em 24/12/2022.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Semana de Capacitação 6 do NIC.br 28/04/2023&#039;&#039;&#039; - &amp;quot;&#039;&#039;&#039;CONCEITOS E IMPLEMENTAÇÃO DE CGNAT&amp;quot;&#039;&#039;&#039;. Material [https://semanacap.bcp.nic.br/6-online/ aqui] e vídeo aula [https://www.youtube.com/watch?v=1q7J3NkQVSc aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Semana de Capacitação 10 do NIC.br 01/07/2025&#039;&#039;&#039; - &amp;quot;&#039;&#039;&#039;Teste para padrões técnicos modernos de Internet e segurança: IPv6, DNSSEC, TLS, HTTPS e HSTS&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;.&#039;&#039;&#039; Material [https://semanacap.bcp.nic.br/semana-de-capacitacao-online-edicao-10-2025/ aqui] e vídeo aula [https://www.youtube.com/watch?v=55RBnGQhi2o aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IX Fórum Regional Sudeste (Rio de Janeiro) 24/10/2025&#039;&#039;&#039; com a palestra &amp;quot;&#039;&#039;&#039;Segurança com o pé direito&#039;&#039;&#039;&amp;quot; pode ser baixada [https://regional.forum.ix.br/files/apresentacao/arquivo/2307/gondim.pdf aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fórum BCOP-ICANN Edição Especial DNS 19/12/2025&#039;&#039;&#039; com o painel &amp;quot;&#039;&#039;&#039;DNS em Ação: Como os provedores estão implantando as Boas Práticas&amp;quot;&#039;&#039;&#039; com &#039;&#039;&#039;apresentação&#039;&#039;&#039; [https://forumbcop.nic.br/files/apresentacao/arquivo/2428/DNS_KINDNS_Reduzido.pdf aqui] e vídeo [https://www.youtube.com/live/GnYK9UOLXr4?t=10257s aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fórum BCOP Fortaleza&#039;&#039;&#039; com a palestra: &amp;quot;&#039;&#039;&#039;Recomendações de segurança para provedores&amp;quot;&#039;&#039;&#039; com apresentação [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2487/Marcelo_Gondim_Recomendacoes_seguranca_provedores.pdf aqui] e vídeo [https://youtu.be/Qjgb7P3cG8k?t=9237 aqui]&#039;&#039;&#039;.&#039;&#039;&#039; Os arquivos anexos de configuração: [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2489/Marcelo_Gondim_filtros_edge_huawei.pdf filtros_edge_huawei], [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2490/spoofer.pdf spoofer] e [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2491/filtros_bng_huawei.pdf filtros_bng_huawei]. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moeda recebida pelo NIC.br por contribuir com conhecimento palestrando na Semana de Infraestrutura da Internet no Brasil em 2025:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Moeda1.jpg|nenhum|miniaturadaimagem|407x407px]]&lt;br /&gt;
&#039;&#039;&#039;Moeda comemorativa de 5 anos recebida pelo NIC.br em 2025 por contribuir com conhecimento para a Semana de Capacitação e Camada 8:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Moeda2.jpg|nenhum|miniaturadaimagem|407x407px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moeda IX Fórum Fortaleza 2026:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Frum-bcop-fortaleza-2026 55178462504 o.jpg|esquerda|miniaturadaimagem|470x470px]]&lt;br /&gt;
[[Arquivo:Frum-bcop-fortaleza-2026 55178206816 o.jpg|nenhum|miniaturadaimagem|447x447px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Webinar:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Proteção e Mitigação de ataques DDoS em 10/09/2024 às 20:00 UTC -3. Site da chamada [https://gdg.community.dev/events/details/google-gdg-sinop-presents-webinar-ao-vivo-protecao-e-mitigacao-de-ataques-ddos/ aqui] e o vídeo da live no Youtube [https://www.youtube.com/live/7VIaoDQaLQE aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Podcast:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/live/x4fxtma4eyQ Segurança de Rede e Infraestrutura para 2025: Preparando os ISPs para o futuro!] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contatos:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Telegram: &#039;&#039;&#039;@Marcelo_Gondim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
WhatsApp: +55 (22) 99743-9060&lt;br /&gt;
&lt;br /&gt;
E-mail: &#039;&#039;&#039;gondim at gmail.com&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Linkedin: https://www.linkedin.com/in/marcelo-gondim-sysadmin/&lt;br /&gt;
&lt;br /&gt;
Meu Github: https://github.com/gondimcodes&lt;br /&gt;
==Mini-CV==&lt;br /&gt;
&#039;&#039;&#039;Marcelo Gondim&#039;&#039;&#039; começou sua carreira como desenvolvedor de software em COBOL e Clipper entre 1992 e 1995. Em 1996 foi responsável por desenvolver um sistema concorrente com o RENPAC da Embratel para acesso ao SISCOMEX e implantou a Internet para fins comerciais na empresa DATABRAS. Trabalhou como consultor e instrutor de GNU/Linux na Conectiva S/A em 2000. Em 2003 se tornou consultor de diversos Provedores de Internet na Região dos Lagos - RJ e onde acabou se tornando CTO da Nettel Telecomunicações (AS53135) com 42.000 assinantes. Implantou IPv6 iniciando em 2013 e se tornou participante do MANRS com diversas contribuições com artigos e palestras. Trabalhou como Especialista em Redes e SOC (Security Operations Center) na Brasil TecPar AS262907 entre 2022 e 2025, onde implementou boas práticas, tratamentos de incidentes relacionados ao ASN, desenvolveu as estratégias de Mitigação DDoS e uma Rede de DNS Recursivo Anycast espalhada pelo RS, RJ, SP, SC MT e MS, também certificada KINDNS. Fundador da empresa ISPFocus especializada em Tecnologia da Informação e boas práticas para ISPs.&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Gondim_perfil2026.png&amp;diff=1141</id>
		<title>Arquivo:Gondim perfil2026.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Gondim_perfil2026.png&amp;diff=1141"/>
		<updated>2026-04-28T21:37:49Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gondim_perfil2026&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1140</id>
		<title>Debian Cluster CEPH</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1140"/>
		<updated>2026-04-16T16:57:30Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &#039;&#039;&#039;Cluster&#039;&#039;&#039; deve ser composto de no &#039;&#039;&#039;mínimo 3 nodes&#039;&#039;&#039; para que possa dar segurança, existir &#039;&#039;&#039;quorum&#039;&#039;&#039; e quando usamos &#039;&#039;&#039;CEPH&#039;&#039;&#039; também precisamos de pelo menos 3 nodes com &#039;&#039;&#039;OSDs&#039;&#039;&#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no &#039;&#039;&#039;Cluster&#039;&#039;&#039; para servir de quorum e de disco &#039;&#039;&#039;CEPH&#039;&#039;&#039;.  Dessa maneira você consegue com 2 servidores &#039;&#039;&#039;Proxmox&#039;&#039;&#039; e uma máquina que chamei de &#039;&#039;&#039;Quorum Device&#039;&#039;&#039;, colocar em produção um Cluster com HA funcional.&lt;br /&gt;
&lt;br /&gt;
== Diagrama ==&lt;br /&gt;
O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em &#039;&#039;&#039;Cluster&#039;&#039;&#039; com &#039;&#039;&#039;CEPH&#039;&#039;&#039;. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.&lt;br /&gt;
[[Arquivo:Diagrama cluster ceph.png|nenhum|miniaturadaimagem|522x522px]]&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux 13 (Trixie).&lt;br /&gt;
* Uma máquina com 4G ou 8G de ram.&lt;br /&gt;
* 1 SSD para instalar o sistema.&lt;br /&gt;
* 1 SSD para servir de &#039;&#039;&#039;OSD&#039;&#039;&#039; no &#039;&#039;&#039;CEPH&#039;&#039;&#039;.&lt;br /&gt;
*3 interfaces de rede. Uma para o acesso, outra para o &#039;&#039;&#039;Cluster&#039;&#039;&#039; e outra para o &#039;&#039;&#039;CEPH&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Configurando o Qdevice no Debian ==&lt;br /&gt;
Uma vez instalado o Debian, precisamos configurar as 3 interfaces para a comunicação com seu Cluster Proxmox. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
* ens18 - IP 10.254.254.27/24 GW 10.254.254.1 (essa seria a interface com acesso à Internet para instalar os programas).&lt;br /&gt;
* ens19 - IP 192.168.1.3/24 (interface que deve se comunicar com a rede do Cluster, com os IPs dos nodes 192.168.1.1 e 192.168.1.2.&lt;br /&gt;
* ens20 - IP 192.168.2.3/24 (interface que se comunica com a rede CEPH, com os IPs 192.168.2.1 e 192.168.2.2.&lt;br /&gt;
&lt;br /&gt;
Precisamos configurar o serviço SSHD para permitir conexão com root, pois o Proxmox vai precisar acessar o Debian. Para isso altere o arquivo &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; o parâmetro abaixo:&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
Reinicie o serviço:&lt;br /&gt;
 # systemctl restart sshd&lt;br /&gt;
No Debian vamos instalar o pacote &#039;&#039;&#039;corosync-qnetd&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qnetd&lt;br /&gt;
Nos dois servidores Proxmox, no nosso exemplo PVE01 e PVE02 instalaremos o pacote &#039;&#039;&#039;corosync-qdevice&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qdevice&lt;br /&gt;
Agora vá para o shell do seu &#039;&#039;&#039;Proxmox principal&#039;&#039;&#039;, no meu caso o &#039;&#039;&#039;PVE01&#039;&#039;&#039; e adicione o Debian ao Cluster com o seguinte comando: &lt;br /&gt;
 # pvecm qdevice setup 192.168.1.3&lt;br /&gt;
Com o comando &#039;&#039;&#039;pvecm status&#039;&#039;&#039; podemos ver como está o quorum e se tudo ocorreu bem, verá que agora temos 3 votos no lugar de 2 e um &#039;&#039;&#039;Qdevice&#039;&#039;&#039; no membership:&lt;br /&gt;
[[Arquivo:Qdevice.png|nenhum|miniaturadaimagem|748x748px]]&lt;br /&gt;
Agora em se tratando de Cluster, você tem o mínimo de votantes para o bom funcionamento e usando uma máquina simples com Debian.&lt;br /&gt;
&lt;br /&gt;
== Adicionando um CEPH monitor e OSD ==&lt;br /&gt;
Agora precisamos tornar nosso &#039;&#039;&#039;CEPH&#039;&#039;&#039; saudável também e para isso vamos instalar os pacotes do CEPH do Proxmox no Debian. O CEPH precisa ser da mesma versão usada no Cluster Proxmox. Para os meus testes utilizei um &#039;&#039;&#039;Cluster Proxmox 9&#039;&#039;&#039; no &#039;&#039;&#039;PVE01&#039;&#039;&#039; e &#039;&#039;&#039;PVE02&#039;&#039;&#039; que utiliza o &#039;&#039;&#039;CEPH Squid 19.2&#039;&#039;&#039;. Então vamos adicionar o repositório:&lt;br /&gt;
 # echo &amp;quot;deb &amp;lt;nowiki&amp;gt;http://download.proxmox.com/debian/ceph-squid&amp;lt;/nowiki&amp;gt; trixie no-subscription&amp;quot; &amp;gt; /etc/apt/sources.list.d/ceph.list&lt;br /&gt;
 # wget &amp;lt;nowiki&amp;gt;https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg&amp;lt;/nowiki&amp;gt; -O /etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg&lt;br /&gt;
Instalando os pacotes do CEPH:&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install ceph ceph-common&lt;br /&gt;
Antes de prosseguir adicione no &#039;&#039;&#039;/etc/hosts&#039;&#039;&#039; do Debian:&lt;br /&gt;
 192.168.2.1 node1&lt;br /&gt;
 192.168.2.2 node2&lt;br /&gt;
 192.168.2.3 nodeq&lt;br /&gt;
Estou chamando nosso &#039;&#039;&#039;Quorum Device&#039;&#039;&#039; com o hostname &#039;&#039;&#039;nodeq&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Agora precisaremos executar algumas tarefas no nosso &#039;&#039;&#039;PVE01&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon getmap -o /tmp/monmap&lt;br /&gt;
 &lt;br /&gt;
 # monmaptool \&lt;br /&gt;
   --add nodeq 192.168.2.3:6789 \&lt;br /&gt;
   /tmp/monmap&lt;br /&gt;
Vamos checar se adicionamos o &#039;&#039;&#039;nodeq&#039;&#039;&#039; ao &#039;&#039;&#039;monmap&#039;&#039;&#039; com o comando: &#039;&#039;&#039;monmaptool --print /tmp/monmap&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Monmap.png|nenhum|miniaturadaimagem|677x677px]]&lt;br /&gt;
Vamos gerar o &#039;&#039;&#039;keyring&#039;&#039;&#039; para usarmos no Debian:&lt;br /&gt;
 # ceph auth get mon. -o /tmp/ceph.mon.keyring&lt;br /&gt;
Agora precisamos copiar todos os arquivos necessários do &#039;&#039;&#039;PVE01&#039;&#039;&#039; para o nosso Debian:&lt;br /&gt;
 # scp /tmp/monmap root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /tmp/ceph.mon.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/ceph.conf root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/priv/ceph.client.admin.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 &lt;br /&gt;
 # scp /var/lib/ceph/bootstrap-osd/ceph.keyring \&lt;br /&gt;
 root@192.168.2.3:/var/lib/ceph/bootstrap-osd/&lt;br /&gt;
&#039;&#039;&#039;Atenção&#039;&#039;&#039; &#039;&#039;&#039;agora&#039;&#039;&#039; pois vamos no nosso Debian alterar o arquivo &#039;&#039;&#039;/etc/ceph/ceph.conf&#039;&#039;&#039;. Primeiro modifique  o parâmetro abaixo para incluir o IP &#039;&#039;&#039;192.168.2.3&#039;&#039;&#039;:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
Modifique os dois parâmetros abaixo e deixe eles iguais a estes:&amp;lt;pre&amp;gt;&lt;br /&gt;
[client]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&lt;br /&gt;
[client.crash]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&amp;lt;/pre&amp;gt;Adicione no final deste mesmo arquivo a configuração abaixo:&amp;lt;pre&amp;gt;&lt;br /&gt;
[mon.nodeq]&lt;br /&gt;
	public_addr = 192.168.2.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;Ainda no &#039;&#039;&#039;Debian&#039;&#039;&#039; execute os comandos abaixo para prepararmos o ambiente pro &#039;&#039;&#039;CEPH&#039;&#039;&#039;:&lt;br /&gt;
 # mkdir -p /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown ceph:ceph /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chmod 750 /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
Vamos criar o monitor:&lt;br /&gt;
 # ceph-mon --mkfs \&lt;br /&gt;
 -i nodeq \&lt;br /&gt;
 --monmap /etc/ceph/monmap \&lt;br /&gt;
 --keyring /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 &lt;br /&gt;
 # chown -R ceph: /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown -R ceph: /etc/ceph/&lt;br /&gt;
 # chmod 640 /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 # chmod 640 /etc/ceph/monmap&lt;br /&gt;
Este é o momento crucial para que tenhamos mais um monitor no nosso CEPH do Proxmox:&lt;br /&gt;
 # systemctl enable ceph-mon@nodeq&lt;br /&gt;
 # systemctl start ceph-mon@nodeq&lt;br /&gt;
Precisamos checar se o serviço subiu com o comando: &#039;&#039;&#039;systemctl status ceph-mon@nodeq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Se aparecer algo assim então parabéns, até aqui foi tudo OK:&lt;br /&gt;
[[Arquivo:Nodeq ceph.png|nenhum|miniaturadaimagem|806x806px]]Volte no Proxmox PVE01 e altere o &#039;&#039;&#039;/etc/pve/ceph.conf&#039;&#039;&#039; modificando para:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
E adicionando no final do arquivo:&lt;br /&gt;
 [mon.nodeq]&lt;br /&gt;
         public_addr = 192.168.2.3&lt;br /&gt;
Agora ativamos, ainda no &#039;&#039;&#039;Proxmox PVE01&#039;&#039;&#039;, o &#039;&#039;&#039;msgr2&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon enable-msgr2&lt;br /&gt;
No Debian reinicie o serviço:&lt;br /&gt;
 # systemctl restart ceph-mon@nodeq&lt;br /&gt;
No &#039;&#039;&#039;Proxmox&#039;&#039;&#039; em &#039;&#039;&#039;CEPH&#039;&#039;&#039; verá um novo Monitor adicionado:&lt;br /&gt;
[[Arquivo:Mon ceph.png|nenhum|miniaturadaimagem|598x598px]]&lt;br /&gt;
&lt;br /&gt;
== Adicionando o OSD no Debian ==&lt;br /&gt;
Agora vamos aos procedimentos para usarmos aquele SSD como OSD no CEPH. Vamos supor que o &#039;&#039;&#039;SSD livre&#039;&#039;&#039; seja o &#039;&#039;&#039;/dev/sdb&#039;&#039;&#039;:&lt;br /&gt;
 # apt install gdisk util-linux&lt;br /&gt;
 &lt;br /&gt;
 # wipefs -a /dev/sdb&lt;br /&gt;
 # sgdisk --zap-all /dev/sdb&lt;br /&gt;
&lt;br /&gt;
Feito isso só precisamos criar o volume CEPH com o comando:&lt;br /&gt;
 # ceph-volume lvm create --data /dev/sdb&lt;br /&gt;
Se tudo foi bem, nesse momento verá o &#039;&#039;&#039;OSD&#039;&#039;&#039; no seu &#039;&#039;&#039;Cluster Proxmox&#039;&#039;&#039;:&lt;br /&gt;
[[Arquivo:Osd img.png|nenhum|miniaturadaimagem|1234x1234px]]&lt;br /&gt;
Olhando a saúde do nosso Cluster veremos:&lt;br /&gt;
[[Arquivo:Resultado ceph.png|nenhum|miniaturadaimagem|1235x1235px]]&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
Aqui vemos em funcionamento um &#039;&#039;&#039;Cluster Proxmox + HA&#039;&#039;&#039; com 2 nós apenas e uma máquina Debian servindo como apoio no funcionamento e segurança do Cluster.&lt;br /&gt;
&lt;br /&gt;
Gostou do artigo? Compartilhe!&lt;br /&gt;
&lt;br /&gt;
Autor: [[Sobre mim|Marcelo Gondim]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1139</id>
		<title>Debian Cluster CEPH</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1139"/>
		<updated>2026-04-16T16:57:20Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &#039;&#039;&#039;Cluster&#039;&#039;&#039; deve ser composto de no &#039;&#039;&#039;mínimo 3 nodes&#039;&#039;&#039; para que possa dar segurança, existir &#039;&#039;&#039;quorum&#039;&#039;&#039; e quando usamos &#039;&#039;&#039;CEPH&#039;&#039;&#039; também precisamos de pelo menos 3 nodes com &#039;&#039;&#039;OSDs&#039;&#039;&#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no &#039;&#039;&#039;Cluster&#039;&#039;&#039; para servir de quorum e de disco &#039;&#039;&#039;CEPH&#039;&#039;&#039;.  Dessa maneira você consegue com 2 servidores &#039;&#039;&#039;Proxmox&#039;&#039;&#039; e uma máquina que chamei de &#039;&#039;&#039;Quorum Device&#039;&#039;&#039;, colocar em produção um Cluster com HA funcional.t&lt;br /&gt;
&lt;br /&gt;
== Diagrama ==&lt;br /&gt;
O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em &#039;&#039;&#039;Cluster&#039;&#039;&#039; com &#039;&#039;&#039;CEPH&#039;&#039;&#039;. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.&lt;br /&gt;
[[Arquivo:Diagrama cluster ceph.png|nenhum|miniaturadaimagem|522x522px]]&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux 13 (Trixie).&lt;br /&gt;
* Uma máquina com 4G ou 8G de ram.&lt;br /&gt;
* 1 SSD para instalar o sistema.&lt;br /&gt;
* 1 SSD para servir de &#039;&#039;&#039;OSD&#039;&#039;&#039; no &#039;&#039;&#039;CEPH&#039;&#039;&#039;.&lt;br /&gt;
*3 interfaces de rede. Uma para o acesso, outra para o &#039;&#039;&#039;Cluster&#039;&#039;&#039; e outra para o &#039;&#039;&#039;CEPH&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Configurando o Qdevice no Debian ==&lt;br /&gt;
Uma vez instalado o Debian, precisamos configurar as 3 interfaces para a comunicação com seu Cluster Proxmox. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
* ens18 - IP 10.254.254.27/24 GW 10.254.254.1 (essa seria a interface com acesso à Internet para instalar os programas).&lt;br /&gt;
* ens19 - IP 192.168.1.3/24 (interface que deve se comunicar com a rede do Cluster, com os IPs dos nodes 192.168.1.1 e 192.168.1.2.&lt;br /&gt;
* ens20 - IP 192.168.2.3/24 (interface que se comunica com a rede CEPH, com os IPs 192.168.2.1 e 192.168.2.2.&lt;br /&gt;
&lt;br /&gt;
Precisamos configurar o serviço SSHD para permitir conexão com root, pois o Proxmox vai precisar acessar o Debian. Para isso altere o arquivo &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; o parâmetro abaixo:&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
Reinicie o serviço:&lt;br /&gt;
 # systemctl restart sshd&lt;br /&gt;
No Debian vamos instalar o pacote &#039;&#039;&#039;corosync-qnetd&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qnetd&lt;br /&gt;
Nos dois servidores Proxmox, no nosso exemplo PVE01 e PVE02 instalaremos o pacote &#039;&#039;&#039;corosync-qdevice&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qdevice&lt;br /&gt;
Agora vá para o shell do seu &#039;&#039;&#039;Proxmox principal&#039;&#039;&#039;, no meu caso o &#039;&#039;&#039;PVE01&#039;&#039;&#039; e adicione o Debian ao Cluster com o seguinte comando: &lt;br /&gt;
 # pvecm qdevice setup 192.168.1.3&lt;br /&gt;
Com o comando &#039;&#039;&#039;pvecm status&#039;&#039;&#039; podemos ver como está o quorum e se tudo ocorreu bem, verá que agora temos 3 votos no lugar de 2 e um &#039;&#039;&#039;Qdevice&#039;&#039;&#039; no membership:&lt;br /&gt;
[[Arquivo:Qdevice.png|nenhum|miniaturadaimagem|748x748px]]&lt;br /&gt;
Agora em se tratando de Cluster, você tem o mínimo de votantes para o bom funcionamento e usando uma máquina simples com Debian.&lt;br /&gt;
&lt;br /&gt;
== Adicionando um CEPH monitor e OSD ==&lt;br /&gt;
Agora precisamos tornar nosso &#039;&#039;&#039;CEPH&#039;&#039;&#039; saudável também e para isso vamos instalar os pacotes do CEPH do Proxmox no Debian. O CEPH precisa ser da mesma versão usada no Cluster Proxmox. Para os meus testes utilizei um &#039;&#039;&#039;Cluster Proxmox 9&#039;&#039;&#039; no &#039;&#039;&#039;PVE01&#039;&#039;&#039; e &#039;&#039;&#039;PVE02&#039;&#039;&#039; que utiliza o &#039;&#039;&#039;CEPH Squid 19.2&#039;&#039;&#039;. Então vamos adicionar o repositório:&lt;br /&gt;
 # echo &amp;quot;deb &amp;lt;nowiki&amp;gt;http://download.proxmox.com/debian/ceph-squid&amp;lt;/nowiki&amp;gt; trixie no-subscription&amp;quot; &amp;gt; /etc/apt/sources.list.d/ceph.list&lt;br /&gt;
 # wget &amp;lt;nowiki&amp;gt;https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg&amp;lt;/nowiki&amp;gt; -O /etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg&lt;br /&gt;
Instalando os pacotes do CEPH:&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install ceph ceph-common&lt;br /&gt;
Antes de prosseguir adicione no &#039;&#039;&#039;/etc/hosts&#039;&#039;&#039; do Debian:&lt;br /&gt;
 192.168.2.1 node1&lt;br /&gt;
 192.168.2.2 node2&lt;br /&gt;
 192.168.2.3 nodeq&lt;br /&gt;
Estou chamando nosso &#039;&#039;&#039;Quorum Device&#039;&#039;&#039; com o hostname &#039;&#039;&#039;nodeq&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Agora precisaremos executar algumas tarefas no nosso &#039;&#039;&#039;PVE01&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon getmap -o /tmp/monmap&lt;br /&gt;
 &lt;br /&gt;
 # monmaptool \&lt;br /&gt;
   --add nodeq 192.168.2.3:6789 \&lt;br /&gt;
   /tmp/monmap&lt;br /&gt;
Vamos checar se adicionamos o &#039;&#039;&#039;nodeq&#039;&#039;&#039; ao &#039;&#039;&#039;monmap&#039;&#039;&#039; com o comando: &#039;&#039;&#039;monmaptool --print /tmp/monmap&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Monmap.png|nenhum|miniaturadaimagem|677x677px]]&lt;br /&gt;
Vamos gerar o &#039;&#039;&#039;keyring&#039;&#039;&#039; para usarmos no Debian:&lt;br /&gt;
 # ceph auth get mon. -o /tmp/ceph.mon.keyring&lt;br /&gt;
Agora precisamos copiar todos os arquivos necessários do &#039;&#039;&#039;PVE01&#039;&#039;&#039; para o nosso Debian:&lt;br /&gt;
 # scp /tmp/monmap root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /tmp/ceph.mon.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/ceph.conf root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/priv/ceph.client.admin.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 &lt;br /&gt;
 # scp /var/lib/ceph/bootstrap-osd/ceph.keyring \&lt;br /&gt;
 root@192.168.2.3:/var/lib/ceph/bootstrap-osd/&lt;br /&gt;
&#039;&#039;&#039;Atenção&#039;&#039;&#039; &#039;&#039;&#039;agora&#039;&#039;&#039; pois vamos no nosso Debian alterar o arquivo &#039;&#039;&#039;/etc/ceph/ceph.conf&#039;&#039;&#039;. Primeiro modifique  o parâmetro abaixo para incluir o IP &#039;&#039;&#039;192.168.2.3&#039;&#039;&#039;:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
Modifique os dois parâmetros abaixo e deixe eles iguais a estes:&amp;lt;pre&amp;gt;&lt;br /&gt;
[client]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&lt;br /&gt;
[client.crash]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&amp;lt;/pre&amp;gt;Adicione no final deste mesmo arquivo a configuração abaixo:&amp;lt;pre&amp;gt;&lt;br /&gt;
[mon.nodeq]&lt;br /&gt;
	public_addr = 192.168.2.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;Ainda no &#039;&#039;&#039;Debian&#039;&#039;&#039; execute os comandos abaixo para prepararmos o ambiente pro &#039;&#039;&#039;CEPH&#039;&#039;&#039;:&lt;br /&gt;
 # mkdir -p /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown ceph:ceph /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chmod 750 /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
Vamos criar o monitor:&lt;br /&gt;
 # ceph-mon --mkfs \&lt;br /&gt;
 -i nodeq \&lt;br /&gt;
 --monmap /etc/ceph/monmap \&lt;br /&gt;
 --keyring /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 &lt;br /&gt;
 # chown -R ceph: /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown -R ceph: /etc/ceph/&lt;br /&gt;
 # chmod 640 /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 # chmod 640 /etc/ceph/monmap&lt;br /&gt;
Este é o momento crucial para que tenhamos mais um monitor no nosso CEPH do Proxmox:&lt;br /&gt;
 # systemctl enable ceph-mon@nodeq&lt;br /&gt;
 # systemctl start ceph-mon@nodeq&lt;br /&gt;
Precisamos checar se o serviço subiu com o comando: &#039;&#039;&#039;systemctl status ceph-mon@nodeq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Se aparecer algo assim então parabéns, até aqui foi tudo OK:&lt;br /&gt;
[[Arquivo:Nodeq ceph.png|nenhum|miniaturadaimagem|806x806px]]Volte no Proxmox PVE01 e altere o &#039;&#039;&#039;/etc/pve/ceph.conf&#039;&#039;&#039; modificando para:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
E adicionando no final do arquivo:&lt;br /&gt;
 [mon.nodeq]&lt;br /&gt;
         public_addr = 192.168.2.3&lt;br /&gt;
Agora ativamos, ainda no &#039;&#039;&#039;Proxmox PVE01&#039;&#039;&#039;, o &#039;&#039;&#039;msgr2&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon enable-msgr2&lt;br /&gt;
No Debian reinicie o serviço:&lt;br /&gt;
 # systemctl restart ceph-mon@nodeq&lt;br /&gt;
No &#039;&#039;&#039;Proxmox&#039;&#039;&#039; em &#039;&#039;&#039;CEPH&#039;&#039;&#039; verá um novo Monitor adicionado:&lt;br /&gt;
[[Arquivo:Mon ceph.png|nenhum|miniaturadaimagem|598x598px]]&lt;br /&gt;
&lt;br /&gt;
== Adicionando o OSD no Debian ==&lt;br /&gt;
Agora vamos aos procedimentos para usarmos aquele SSD como OSD no CEPH. Vamos supor que o &#039;&#039;&#039;SSD livre&#039;&#039;&#039; seja o &#039;&#039;&#039;/dev/sdb&#039;&#039;&#039;:&lt;br /&gt;
 # apt install gdisk util-linux&lt;br /&gt;
 &lt;br /&gt;
 # wipefs -a /dev/sdb&lt;br /&gt;
 # sgdisk --zap-all /dev/sdb&lt;br /&gt;
&lt;br /&gt;
Feito isso só precisamos criar o volume CEPH com o comando:&lt;br /&gt;
 # ceph-volume lvm create --data /dev/sdb&lt;br /&gt;
Se tudo foi bem, nesse momento verá o &#039;&#039;&#039;OSD&#039;&#039;&#039; no seu &#039;&#039;&#039;Cluster Proxmox&#039;&#039;&#039;:&lt;br /&gt;
[[Arquivo:Osd img.png|nenhum|miniaturadaimagem|1234x1234px]]&lt;br /&gt;
Olhando a saúde do nosso Cluster veremos:&lt;br /&gt;
[[Arquivo:Resultado ceph.png|nenhum|miniaturadaimagem|1235x1235px]]&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
Aqui vemos em funcionamento um &#039;&#039;&#039;Cluster Proxmox + HA&#039;&#039;&#039; com 2 nós apenas e uma máquina Debian servindo como apoio no funcionamento e segurança do Cluster.&lt;br /&gt;
&lt;br /&gt;
Gostou do artigo? Compartilhe!&lt;br /&gt;
&lt;br /&gt;
Autor: [[Sobre mim|Marcelo Gondim]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Artigos_Tecnicos&amp;diff=1138</id>
		<title>Artigos Tecnicos</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Artigos_Tecnicos&amp;diff=1138"/>
		<updated>2026-04-12T20:50:26Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Artigos Técnicos}}&lt;br /&gt;
[[Arquivo:Tecnico.png|nenhum|miniaturadaimagem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[IPv6 Por onde comecar|IPv6 - Por onde começar]]&lt;br /&gt;
&lt;br /&gt;
[[Debian Cluster CEPH]]&lt;br /&gt;
&lt;br /&gt;
[[Autenticacao TOTP Radius Tacacs Debian|Autenticação TOTP + Radius/Tacacs no Debian]]&lt;br /&gt;
&lt;br /&gt;
[[Static Loop|Static Loop - um erro que pode matar seu ISP/ITP]]&lt;br /&gt;
&lt;br /&gt;
[[Portas Amplificacao DDoS|Portas de Amplificação DDoS e Botnets]]&lt;br /&gt;
&lt;br /&gt;
[[POC DNS Anycast TCP|PoC - Quebra do TCP em DNS Anycast Balanceado]]&lt;br /&gt;
&lt;br /&gt;
[[Template Servidor Debian|Template de Servidor Debian GNU/Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Policy Based Routing|Policy Based Routing (PBR)]]&lt;br /&gt;
&lt;br /&gt;
[[PHPIPAM|DCIM/IPAM com phpIPAM]]&lt;br /&gt;
&lt;br /&gt;
[[Vazamento de prefixos na mitigação DDoS]]&lt;br /&gt;
&lt;br /&gt;
[[Enviando mensagens para o Discord]]&lt;br /&gt;
&lt;br /&gt;
[[Recomendacao Mitigacao DDoS|Recomendações sobre Mitigação DDoS]]&lt;br /&gt;
&lt;br /&gt;
[[Identificando e neutralizando uma Botnet]]&lt;br /&gt;
&lt;br /&gt;
[[MSMTP com OAuth2|MSMTP com OAuth2 no Debian 12]]&lt;br /&gt;
&lt;br /&gt;
[[Geolocalizacao|Geolocalização e a Internet]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Artigos_Tecnicos&amp;diff=1137</id>
		<title>Artigos Tecnicos</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Artigos_Tecnicos&amp;diff=1137"/>
		<updated>2026-04-12T20:49:35Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Artigos Técnicos}}&lt;br /&gt;
[[Arquivo:Tecnico.png|nenhum|miniaturadaimagem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[IPv6 Por onde comecar|IPv6 - Por onde começar]]&lt;br /&gt;
&lt;br /&gt;
[[Debian Cluster CEPH]]&lt;br /&gt;
&lt;br /&gt;
[[Static Loop|Static Loop - um erro que pode matar seu ISP/ITP]]&lt;br /&gt;
&lt;br /&gt;
[[Portas Amplificacao DDoS|Portas de Amplificação DDoS e Botnets]]&lt;br /&gt;
&lt;br /&gt;
[[POC DNS Anycast TCP|PoC - Quebra do TCP em DNS Anycast Balanceado]]&lt;br /&gt;
&lt;br /&gt;
[[Template Servidor Debian|Template de Servidor Debian GNU/Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Policy Based Routing|Policy Based Routing (PBR)]]&lt;br /&gt;
&lt;br /&gt;
[[PHPIPAM|DCIM/IPAM com phpIPAM]]&lt;br /&gt;
&lt;br /&gt;
[[Vazamento de prefixos na mitigação DDoS]]&lt;br /&gt;
&lt;br /&gt;
[[Enviando mensagens para o Discord]]&lt;br /&gt;
&lt;br /&gt;
[[Recomendacao Mitigacao DDoS|Recomendações sobre Mitigação DDoS]]&lt;br /&gt;
&lt;br /&gt;
[[Identificando e neutralizando uma Botnet]]&lt;br /&gt;
&lt;br /&gt;
[[MSMTP com OAuth2|MSMTP com OAuth2 no Debian 12]]&lt;br /&gt;
&lt;br /&gt;
[[Geolocalizacao|Geolocalização e a Internet]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1136</id>
		<title>Debian Cluster CEPH</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1136"/>
		<updated>2026-04-10T16:46:10Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &#039;&#039;&#039;Cluster&#039;&#039;&#039; deve ser composto de no &#039;&#039;&#039;mínimo 3 nodes&#039;&#039;&#039; para que possa dar segurança, existir &#039;&#039;&#039;quorum&#039;&#039;&#039; e quando usamos &#039;&#039;&#039;CEPH&#039;&#039;&#039; também precisamos de pelo menos 3 nodes com &#039;&#039;&#039;OSDs&#039;&#039;&#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no &#039;&#039;&#039;Cluster&#039;&#039;&#039; para servir de quorum e de disco &#039;&#039;&#039;CEPH&#039;&#039;&#039;.  Dessa maneira você consegue com 2 servidores &#039;&#039;&#039;Proxmox&#039;&#039;&#039; e uma máquina que chamei de &#039;&#039;&#039;Quorum Device&#039;&#039;&#039;, colocar em produção um Cluster com HA funcional.&lt;br /&gt;
&lt;br /&gt;
== Diagrama ==&lt;br /&gt;
O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em &#039;&#039;&#039;Cluster&#039;&#039;&#039; com &#039;&#039;&#039;CEPH&#039;&#039;&#039;. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.&lt;br /&gt;
[[Arquivo:Diagrama cluster ceph.png|nenhum|miniaturadaimagem|522x522px]]&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux 13 (Trixie).&lt;br /&gt;
* Uma máquina com 4G ou 8G de ram.&lt;br /&gt;
* 1 SSD para instalar o sistema.&lt;br /&gt;
* 1 SSD para servir de &#039;&#039;&#039;OSD&#039;&#039;&#039; no &#039;&#039;&#039;CEPH&#039;&#039;&#039;.&lt;br /&gt;
*3 interfaces de rede. Uma para o acesso, outra para o &#039;&#039;&#039;Cluster&#039;&#039;&#039; e outra para o &#039;&#039;&#039;CEPH&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Configurando o Qdevice no Debian ==&lt;br /&gt;
Uma vez instalado o Debian, precisamos configurar as 3 interfaces para a comunicação com seu Cluster Proxmox. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
* ens18 - IP 10.254.254.27/24 GW 10.254.254.1 (essa seria a interface com acesso à Internet para instalar os programas).&lt;br /&gt;
* ens19 - IP 192.168.1.3/24 (interface que deve se comunicar com a rede do Cluster, com os IPs dos nodes 192.168.1.1 e 192.168.1.2.&lt;br /&gt;
* ens20 - IP 192.168.2.3/24 (interface que se comunica com a rede CEPH, com os IPs 192.168.2.1 e 192.168.2.2.&lt;br /&gt;
&lt;br /&gt;
Precisamos configurar o serviço SSHD para permitir conexão com root, pois o Proxmox vai precisar acessar o Debian. Para isso altere o arquivo &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; o parâmetro abaixo:&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
Reinicie o serviço:&lt;br /&gt;
 # systemctl restart sshd&lt;br /&gt;
No Debian vamos instalar o pacote &#039;&#039;&#039;corosync-qnetd&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qnetd&lt;br /&gt;
Nos dois servidores Proxmox, no nosso exemplo PVE01 e PVE02 instalaremos o pacote &#039;&#039;&#039;corosync-qdevice&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qdevice&lt;br /&gt;
Agora vá para o shell do seu &#039;&#039;&#039;Proxmox principal&#039;&#039;&#039;, no meu caso o &#039;&#039;&#039;PVE01&#039;&#039;&#039; e adicione o Debian ao Cluster com o seguinte comando: &lt;br /&gt;
 # pvecm qdevice setup 192.168.1.3&lt;br /&gt;
Com o comando &#039;&#039;&#039;pvecm status&#039;&#039;&#039; podemos ver como está o quorum e se tudo ocorreu bem, verá que agora temos 3 votos no lugar de 2 e um &#039;&#039;&#039;Qdevice&#039;&#039;&#039; no membership:&lt;br /&gt;
[[Arquivo:Qdevice.png|nenhum|miniaturadaimagem|748x748px]]&lt;br /&gt;
Agora em se tratando de Cluster, você tem o mínimo de votantes para o bom funcionamento e usando uma máquina simples com Debian.&lt;br /&gt;
&lt;br /&gt;
== Adicionando um CEPH monitor e OSD ==&lt;br /&gt;
Agora precisamos tornar nosso &#039;&#039;&#039;CEPH&#039;&#039;&#039; saudável também e para isso vamos instalar os pacotes do CEPH do Proxmox no Debian. O CEPH precisa ser da mesma versão usada no Cluster Proxmox. Para os meus testes utilizei um &#039;&#039;&#039;Cluster Proxmox 9&#039;&#039;&#039; no &#039;&#039;&#039;PVE01&#039;&#039;&#039; e &#039;&#039;&#039;PVE02&#039;&#039;&#039; que utiliza o &#039;&#039;&#039;CEPH Squid 19.2&#039;&#039;&#039;. Então vamos adicionar o repositório:&lt;br /&gt;
 # echo &amp;quot;deb &amp;lt;nowiki&amp;gt;http://download.proxmox.com/debian/ceph-squid&amp;lt;/nowiki&amp;gt; trixie no-subscription&amp;quot; &amp;gt; /etc/apt/sources.list.d/ceph.list&lt;br /&gt;
 # wget &amp;lt;nowiki&amp;gt;https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg&amp;lt;/nowiki&amp;gt; -O /etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg&lt;br /&gt;
Instalando os pacotes do CEPH:&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install ceph ceph-common&lt;br /&gt;
Antes de prosseguir adicione no &#039;&#039;&#039;/etc/hosts&#039;&#039;&#039; do Debian:&lt;br /&gt;
 192.168.2.1 node1&lt;br /&gt;
 192.168.2.2 node2&lt;br /&gt;
 192.168.2.3 nodeq&lt;br /&gt;
Estou chamando nosso &#039;&#039;&#039;Quorum Device&#039;&#039;&#039; com o hostname &#039;&#039;&#039;nodeq&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Agora precisaremos executar algumas tarefas no nosso &#039;&#039;&#039;PVE01&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon getmap -o /tmp/monmap&lt;br /&gt;
 &lt;br /&gt;
 # monmaptool \&lt;br /&gt;
   --add nodeq 192.168.2.3:6789 \&lt;br /&gt;
   /tmp/monmap&lt;br /&gt;
Vamos checar se adicionamos o &#039;&#039;&#039;nodeq&#039;&#039;&#039; ao &#039;&#039;&#039;monmap&#039;&#039;&#039; com o comando: &#039;&#039;&#039;monmaptool --print /tmp/monmap&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Monmap.png|nenhum|miniaturadaimagem|677x677px]]&lt;br /&gt;
Vamos gerar o &#039;&#039;&#039;keyring&#039;&#039;&#039; para usarmos no Debian:&lt;br /&gt;
 # ceph auth get mon. -o /tmp/ceph.mon.keyring&lt;br /&gt;
Agora precisamos copiar todos os arquivos necessários do &#039;&#039;&#039;PVE01&#039;&#039;&#039; para o nosso Debian:&lt;br /&gt;
 # scp /tmp/monmap root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /tmp/ceph.mon.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/ceph.conf root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/priv/ceph.client.admin.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 &lt;br /&gt;
 # scp /var/lib/ceph/bootstrap-osd/ceph.keyring \&lt;br /&gt;
 root@192.168.2.3:/var/lib/ceph/bootstrap-osd/&lt;br /&gt;
&#039;&#039;&#039;Atenção&#039;&#039;&#039; &#039;&#039;&#039;agora&#039;&#039;&#039; pois vamos no nosso Debian alterar o arquivo &#039;&#039;&#039;/etc/ceph/ceph.conf&#039;&#039;&#039;. Primeiro modifique  o parâmetro abaixo para incluir o IP &#039;&#039;&#039;192.168.2.3&#039;&#039;&#039;:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
Modifique os dois parâmetros abaixo e deixe eles iguais a estes:&amp;lt;pre&amp;gt;&lt;br /&gt;
[client]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&lt;br /&gt;
[client.crash]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&amp;lt;/pre&amp;gt;Adicione no final deste mesmo arquivo a configuração abaixo:&amp;lt;pre&amp;gt;&lt;br /&gt;
[mon.nodeq]&lt;br /&gt;
	public_addr = 192.168.2.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;Ainda no &#039;&#039;&#039;Debian&#039;&#039;&#039; execute os comandos abaixo para prepararmos o ambiente pro &#039;&#039;&#039;CEPH&#039;&#039;&#039;:&lt;br /&gt;
 # mkdir -p /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown ceph:ceph /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chmod 750 /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
Vamos criar o monitor:&lt;br /&gt;
 # ceph-mon --mkfs \&lt;br /&gt;
 -i nodeq \&lt;br /&gt;
 --monmap /etc/ceph/monmap \&lt;br /&gt;
 --keyring /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 &lt;br /&gt;
 # chown -R ceph: /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown -R ceph: /etc/ceph/&lt;br /&gt;
 # chmod 640 /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 # chmod 640 /etc/ceph/monmap&lt;br /&gt;
Este é o momento crucial para que tenhamos mais um monitor no nosso CEPH do Proxmox:&lt;br /&gt;
 # systemctl enable ceph-mon@nodeq&lt;br /&gt;
 # systemctl start ceph-mon@nodeq&lt;br /&gt;
Precisamos checar se o serviço subiu com o comando: &#039;&#039;&#039;systemctl status ceph-mon@nodeq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Se aparecer algo assim então parabéns, até aqui foi tudo OK:&lt;br /&gt;
[[Arquivo:Nodeq ceph.png|nenhum|miniaturadaimagem|806x806px]]Volte no Proxmox PVE01 e altere o &#039;&#039;&#039;/etc/pve/ceph.conf&#039;&#039;&#039; modificando para:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
E adicionando no final do arquivo:&lt;br /&gt;
 [mon.nodeq]&lt;br /&gt;
         public_addr = 192.168.2.3&lt;br /&gt;
Agora ativamos, ainda no &#039;&#039;&#039;Proxmox PVE01&#039;&#039;&#039;, o &#039;&#039;&#039;msgr2&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon enable-msgr2&lt;br /&gt;
No Debian reinicie o serviço:&lt;br /&gt;
 # systemctl restart ceph-mon@nodeq&lt;br /&gt;
No &#039;&#039;&#039;Proxmox&#039;&#039;&#039; em &#039;&#039;&#039;CEPH&#039;&#039;&#039; verá um novo Monitor adicionado:&lt;br /&gt;
[[Arquivo:Mon ceph.png|nenhum|miniaturadaimagem|598x598px]]&lt;br /&gt;
&lt;br /&gt;
== Adicionando o OSD no Debian ==&lt;br /&gt;
Agora vamos aos procedimentos para usarmos aquele SSD como OSD no CEPH. Vamos supor que o &#039;&#039;&#039;SSD livre&#039;&#039;&#039; seja o &#039;&#039;&#039;/dev/sdb&#039;&#039;&#039;:&lt;br /&gt;
 # apt install gdisk util-linux&lt;br /&gt;
 &lt;br /&gt;
 # wipefs -a /dev/sdb&lt;br /&gt;
 # sgdisk --zap-all /dev/sdb&lt;br /&gt;
&lt;br /&gt;
Feito isso só precisamos criar o volume CEPH com o comando:&lt;br /&gt;
 # ceph-volume lvm create --data /dev/sdb&lt;br /&gt;
Se tudo foi bem, nesse momento verá o &#039;&#039;&#039;OSD&#039;&#039;&#039; no seu &#039;&#039;&#039;Cluster Proxmox&#039;&#039;&#039;:&lt;br /&gt;
[[Arquivo:Osd img.png|nenhum|miniaturadaimagem|1234x1234px]]&lt;br /&gt;
Olhando a saúde do nosso Cluster veremos:&lt;br /&gt;
[[Arquivo:Resultado ceph.png|nenhum|miniaturadaimagem|1235x1235px]]&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
Aqui vemos em funcionamento um &#039;&#039;&#039;Cluster Proxmox + HA&#039;&#039;&#039; com 2 nós apenas e uma máquina Debian servindo como apoio no funcionamento e segurança do Cluster.&lt;br /&gt;
&lt;br /&gt;
Gostou do artigo? Compartilhe!&lt;br /&gt;
&lt;br /&gt;
Autor: [[Sobre mim|Marcelo Gondim]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1135</id>
		<title>Debian Cluster CEPH</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1135"/>
		<updated>2026-04-10T15:28:43Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &#039;&#039;&#039;Cluster&#039;&#039;&#039; deve ser composto de no &#039;&#039;&#039;mínimo 3 nodes&#039;&#039;&#039; para que possa dar segurança, existir &#039;&#039;&#039;quorum&#039;&#039;&#039; e quando usamos &#039;&#039;&#039;CEPH&#039;&#039;&#039; também precisamos de pelo menos 3 nodes com &#039;&#039;&#039;OSDs&#039;&#039;&#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no &#039;&#039;&#039;Cluster&#039;&#039;&#039; para servir de quorum e de disco &#039;&#039;&#039;CEPH&#039;&#039;&#039;.  Dessa maneira você consegue com 2 servidores &#039;&#039;&#039;Proxmox&#039;&#039;&#039; e uma máquina que chamei de &#039;&#039;&#039;Quorum Device&#039;&#039;&#039;, colocar em produção um Cluster com HA funcional.&lt;br /&gt;
&lt;br /&gt;
== Diagrama ==&lt;br /&gt;
O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em &#039;&#039;&#039;Cluster&#039;&#039;&#039; com &#039;&#039;&#039;CEPH&#039;&#039;&#039;. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.&lt;br /&gt;
[[Arquivo:Diagrama cluster ceph.png|nenhum|miniaturadaimagem|522x522px]]&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux 13 (Trixie).&lt;br /&gt;
* Uma máquina com 4G ou 8G de ram.&lt;br /&gt;
* 1 SSD para instalar o sistema.&lt;br /&gt;
* 1 SSD para servir de &#039;&#039;&#039;OSD&#039;&#039;&#039; no &#039;&#039;&#039;CEPH&#039;&#039;&#039;.&lt;br /&gt;
*3 interfaces de rede. Uma para o acesso, outra para o &#039;&#039;&#039;Cluster&#039;&#039;&#039; e outra para o &#039;&#039;&#039;CEPH&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Configurando o Qdevice no Debian ==&lt;br /&gt;
Uma vez instalado o Debian, precisamos configurar as 3 interfaces para a comunicação com seu Cluster Proxmox. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
* ens18 - IP 10.254.254.27/24 GW 10.254.254.1 (essa seria a interface com acesso à Internet para instalar os programas).&lt;br /&gt;
* ens19 - IP 192.168.1.3/24 (interface que deve se comunicar com a rede do Cluster, com os IPs dos nodes 192.168.1.1 e 192.168.1.2.&lt;br /&gt;
* ens20 - IP 192.168.2.3/24 (interface que se comunica com a rede CEPH, com os IPs 192.168.2.1 e 192.168.2.2.&lt;br /&gt;
&lt;br /&gt;
Precisamos configurar o serviço SSHD para permitir conexão com root, pois o Proxmox vai precisar acessar o Debian. Para isso altere o arquivo &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; o parâmetro abaixo:&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
Reinicie o serviço:&lt;br /&gt;
 # systemctl restart sshd&lt;br /&gt;
No Debian vamos instalar o pacote &#039;&#039;&#039;corosync-qnetd&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qnetd&lt;br /&gt;
Nos dois servidores Proxmox, no nosso exemplo PVE01 e PVE02 instalaremos o pacote &#039;&#039;&#039;corosync-qdevice&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qdevice&lt;br /&gt;
Agora vá para o shell do seu &#039;&#039;&#039;Proxmox principal&#039;&#039;&#039;, no meu caso o &#039;&#039;&#039;PVE01&#039;&#039;&#039; e adicione o Debian ao Cluster com o seguinte comando: &lt;br /&gt;
 # pvecm qdevice setup 192.168.1.3&lt;br /&gt;
Com o comando &#039;&#039;&#039;pvecm status&#039;&#039;&#039; podemos ver como está o quorum e se tudo ocorreu bem, verá que agora temos 3 votos no lugar de 2 e um &#039;&#039;&#039;Qdevice&#039;&#039;&#039; no membership:&lt;br /&gt;
[[Arquivo:Qdevice.png|nenhum|miniaturadaimagem|748x748px]]&lt;br /&gt;
Agora em se tratando de Cluster, você tem o mínimo de votantes para o bom funcionamento e usando uma máquina simples com Debian.&lt;br /&gt;
&lt;br /&gt;
== Adicionando um CEPH monitor e OSD ==&lt;br /&gt;
Agora precisamos tornar nosso &#039;&#039;&#039;CEPH&#039;&#039;&#039; saudável também e para isso vamos instalar os pacotes do CEPH do Proxmox no Debian. O CEPH precisa ser da mesma versão usada no Cluster Proxmox. Para os meus testes utilizei um &#039;&#039;&#039;Cluster Proxmox 9&#039;&#039;&#039; no &#039;&#039;&#039;PVE01&#039;&#039;&#039; e &#039;&#039;&#039;PVE02&#039;&#039;&#039; que utiliza o &#039;&#039;&#039;CEPH Squid 19.2&#039;&#039;&#039;. Então vamos adicionar o repositório:&lt;br /&gt;
 # echo &amp;quot;deb &amp;lt;nowiki&amp;gt;http://download.proxmox.com/debian/ceph-squid&amp;lt;/nowiki&amp;gt; trixie no-subscription&amp;quot; &amp;gt; /etc/apt/sources.list.d/ceph.list&lt;br /&gt;
 # wget &amp;lt;nowiki&amp;gt;https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg&amp;lt;/nowiki&amp;gt; -O /etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg&lt;br /&gt;
Instalando os pacotes do CEPH:&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install ceph ceph-common&lt;br /&gt;
Antes de prosseguir adicione no &#039;&#039;&#039;/etc/hosts&#039;&#039;&#039; do Debian:&lt;br /&gt;
 192.168.2.1 node1&lt;br /&gt;
 192.168.2.2 node2&lt;br /&gt;
 192.168.2.3 nodeq&lt;br /&gt;
Estou chamando nosso &#039;&#039;&#039;Quorum Device&#039;&#039;&#039; com o hostname &#039;&#039;&#039;nodeq&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Agora precisaremos executar algumas tarefas no nosso &#039;&#039;&#039;PVE01&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon getmap -o /tmp/monmap&lt;br /&gt;
 &lt;br /&gt;
 # monmaptool \&lt;br /&gt;
   --add nodeq 192.168.2.3:6789 \&lt;br /&gt;
   /tmp/monmap&lt;br /&gt;
Vamos checar se adicionamos o &#039;&#039;&#039;nodeq&#039;&#039;&#039; ao &#039;&#039;&#039;monmap&#039;&#039;&#039; com o comando: &#039;&#039;&#039;monmaptool --print /tmp/monmap&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Monmap.png|nenhum|miniaturadaimagem|677x677px]]&lt;br /&gt;
Vamos gerar o &#039;&#039;&#039;keyring&#039;&#039;&#039; para usarmos no Debian:&lt;br /&gt;
 # ceph auth get mon. -o /tmp/ceph.mon.keyring&lt;br /&gt;
Agora precisamos copiar todos os arquivos necessários do &#039;&#039;&#039;PVE01&#039;&#039;&#039; para o nosso Debian:&lt;br /&gt;
 # scp /tmp/monmap root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /tmp/ceph.mon.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/ceph.conf root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/priv/ceph.client.admin.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 &lt;br /&gt;
 # scp /var/lib/ceph/bootstrap-osd/ceph.keyring \&lt;br /&gt;
 root@192.168.2.3:/var/lib/ceph/bootstrap-osd/&lt;br /&gt;
&#039;&#039;&#039;Atenção&#039;&#039;&#039; &#039;&#039;&#039;agora&#039;&#039;&#039; pois vamos no nosso Debian alterar o arquivo &#039;&#039;&#039;/etc/ceph/ceph.conf&#039;&#039;&#039;. Primeiro modifique  o parâmetro abaixo para incluir o IP &#039;&#039;&#039;192.168.2.3&#039;&#039;&#039;:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
Modifique os dois parâmetros abaixo e deixe eles iguais a estes:&amp;lt;pre&amp;gt;&lt;br /&gt;
[client]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&lt;br /&gt;
[client.crash]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&amp;lt;/pre&amp;gt;Adicione no final deste mesmo arquivo a configuração abaixo:&amp;lt;pre&amp;gt;&lt;br /&gt;
[mon.nodeq]&lt;br /&gt;
	public_addr = 192.168.2.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;Ainda no &#039;&#039;&#039;Debian&#039;&#039;&#039; execute os comandos abaixo para prepararmos o ambiente pro &#039;&#039;&#039;CEPH&#039;&#039;&#039;:&lt;br /&gt;
 # mkdir -p /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown ceph:ceph /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chmod 750 /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
Vamos criar o monitor:&lt;br /&gt;
 # ceph-mon --mkfs \&lt;br /&gt;
 -i nodeq \&lt;br /&gt;
 --monmap /etc/ceph/monmap \&lt;br /&gt;
 --keyring /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 &lt;br /&gt;
 # chown -R ceph: /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown -R ceph: /etc/ceph/&lt;br /&gt;
 # chmod 640 /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 # chmod 640 /etc/ceph/monmap&lt;br /&gt;
Este é o momento crucial para que tenhamos mais um monitor no nosso CEPH do Proxmox:&lt;br /&gt;
 # systemctl enable ceph-mon@nodeq&lt;br /&gt;
 # systemctl start ceph-mon@nodeq&lt;br /&gt;
Precisamos checar se o serviço subiu com o comando: &#039;&#039;&#039;systemctl status ceph-mon@nodeq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Se aparecer algo assim então parabéns, até aqui foi tudo OK:&lt;br /&gt;
[[Arquivo:Nodeq ceph.png|nenhum|miniaturadaimagem|806x806px]]Volte no Proxmox PVE01 e altere o &#039;&#039;&#039;/etc/pve/ceph.conf&#039;&#039;&#039; modificando para:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
E adicionando no final do arquivo:&lt;br /&gt;
 [mon.nodeq]&lt;br /&gt;
         public_addr = 192.168.2.3&lt;br /&gt;
Agora ativamos, ainda no &#039;&#039;&#039;Proxmox PVE01&#039;&#039;&#039;, o &#039;&#039;&#039;msgr2&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon enable-msgr2&lt;br /&gt;
No Debian reinicie o serviço:&lt;br /&gt;
 # systemctl restart ceph-mon@nodeq&lt;br /&gt;
No &#039;&#039;&#039;Proxmox&#039;&#039;&#039; em &#039;&#039;&#039;CEPH&#039;&#039;&#039; verá um novo Monitor adicionado:&lt;br /&gt;
[[Arquivo:Mon ceph.png|nenhum|miniaturadaimagem|598x598px]]&lt;br /&gt;
&lt;br /&gt;
== Adicionando o OSD no Debian ==&lt;br /&gt;
Agora vamos aos procedimentos para usarmos aquele SSD como OSD no CEPH. Vamos supor que o &#039;&#039;&#039;SSD livre&#039;&#039;&#039; seja o &#039;&#039;&#039;/dev/sdb&#039;&#039;&#039;:&lt;br /&gt;
 # apt install gdisk&lt;br /&gt;
 &lt;br /&gt;
 # wipefs -a /dev/sdb&lt;br /&gt;
 # sgdisk --zap-all /dev/sdb&lt;br /&gt;
&lt;br /&gt;
Feito isso só precisamos criar o volume CEPH com o comando:&lt;br /&gt;
 # ceph-volume lvm create --data /dev/sdb&lt;br /&gt;
Se tudo foi bem, nesse momento verá o &#039;&#039;&#039;OSD&#039;&#039;&#039; no seu &#039;&#039;&#039;Cluster Proxmox&#039;&#039;&#039;:&lt;br /&gt;
[[Arquivo:Osd img.png|nenhum|miniaturadaimagem|1234x1234px]]&lt;br /&gt;
Olhando a saúde do nosso Cluster veremos:&lt;br /&gt;
[[Arquivo:Resultado ceph.png|nenhum|miniaturadaimagem|1235x1235px]]&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
Aqui vemos em funcionamento um &#039;&#039;&#039;Cluster Proxmox + HA&#039;&#039;&#039; com 2 nós apenas e uma máquina Debian servindo como apoio no funcionamento e segurança do Cluster.&lt;br /&gt;
&lt;br /&gt;
Gostou do artigo? Compartilhe!&lt;br /&gt;
&lt;br /&gt;
Autor: [[Sobre mim|Marcelo Gondim]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1134</id>
		<title>Debian Cluster CEPH</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1134"/>
		<updated>2026-04-10T15:27:59Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &#039;&#039;&#039;Cluster&#039;&#039;&#039; deve ser composto de no &#039;&#039;&#039;mínimo 3 nodes&#039;&#039;&#039; para que possa dar segurança, existir &#039;&#039;&#039;quorum&#039;&#039;&#039; e quando usamos &#039;&#039;&#039;CEPH&#039;&#039;&#039; também precisamos de pelo menos 3 nodes com &#039;&#039;&#039;OSDs&#039;&#039;&#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no &#039;&#039;&#039;Cluster&#039;&#039;&#039; para servir de quorum e de disco &#039;&#039;&#039;CEPH&#039;&#039;&#039;.  Dessa maneira você consegue com 2 servidores &#039;&#039;&#039;Proxmox&#039;&#039;&#039; e uma máquina que chamei de &#039;&#039;&#039;Quorum Device&#039;&#039;&#039;, colocar em produção um Cluster com HA funcional.&lt;br /&gt;
&lt;br /&gt;
== Diagrama ==&lt;br /&gt;
O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em &#039;&#039;&#039;Cluster&#039;&#039;&#039; com &#039;&#039;&#039;CEPH&#039;&#039;&#039;. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.&lt;br /&gt;
[[Arquivo:Diagrama cluster ceph.png|nenhum|miniaturadaimagem|522x522px]]&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux 13 (Trixie).&lt;br /&gt;
* Uma máquina com 4G ou 8G de ram.&lt;br /&gt;
* 1 SSD para instalar o sistema.&lt;br /&gt;
* 1 SSD para servir de &#039;&#039;&#039;OSD&#039;&#039;&#039; no &#039;&#039;&#039;CEPH&#039;&#039;&#039;.&lt;br /&gt;
*3 interfaces de rede. Uma para o acesso, outra para o &#039;&#039;&#039;Cluster&#039;&#039;&#039; e outra para o &#039;&#039;&#039;CEPH&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Configurando o Qdevice no Debian ==&lt;br /&gt;
Uma vez instalado o Debian, precisamos configurar as 3 interfaces para a comunicação com seu Cluster Proxmox. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
* ens18 - IP 10.254.254.27/24 GW 10.254.254.1 (essa seria a interface com acesso à Internet para instalar os programas).&lt;br /&gt;
* ens19 - IP 192.168.1.3/24 (interface que deve se comunicar com a rede do Cluster, com os IPs dos nodes 192.168.1.1 e 192.168.1.2.&lt;br /&gt;
* ens20 - IP 192.168.2.3/24 (interface que se comunica com a rede CEPH, com os IPs 192.168.2.1 e 192.168.2.2.&lt;br /&gt;
&lt;br /&gt;
Precisamos configurar o serviço SSHD para permitir conexão com root, pois o Proxmox vai precisar acessar o Debian. Para isso altere o arquivo &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; o parâmetro abaixo:&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
Reinicie o serviço:&lt;br /&gt;
 # systemctl restart sshd&lt;br /&gt;
No Debian vamos instalar o pacote &#039;&#039;&#039;corosync-qnetd&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qnetd&lt;br /&gt;
Nos dois servidores Proxmox, no nosso exemplo PVE01 e PVE02 instalaremos o pacote &#039;&#039;&#039;corosync-qdevice&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qdevice&lt;br /&gt;
Agora vá para o shell do seu &#039;&#039;&#039;Proxmox principal&#039;&#039;&#039;, no meu caso o &#039;&#039;&#039;PVE01&#039;&#039;&#039; e adicione o Debian ao Cluster com o seguinte comando: &lt;br /&gt;
 # pvecm qdevice setup 192.168.1.3&lt;br /&gt;
Com o comando &#039;&#039;&#039;pvecm status&#039;&#039;&#039; podemos ver como está o quorum e se tudo ocorreu bem, verá que agora temos 3 votos no lugar de 2 e um &#039;&#039;&#039;Qdevice&#039;&#039;&#039; no membership:&lt;br /&gt;
[[Arquivo:Qdevice.png|nenhum|miniaturadaimagem|748x748px]]&lt;br /&gt;
Agora em se tratando de Cluster, você tem o mínimo de votantes para o bom funcionamento e usando uma máquina simples com Debian.&lt;br /&gt;
&lt;br /&gt;
== Adicionando um CEPH monitor e OSD ==&lt;br /&gt;
Agora precisamos tornar nosso &#039;&#039;&#039;CEPH&#039;&#039;&#039; saudável também e para isso vamos instalar os pacotes do CEPH do Proxmox no Debian. O CEPH precisa ser da mesma versão usada no Cluster Proxmox. Para os meus testes utilizei um &#039;&#039;&#039;Cluster Proxmox 9&#039;&#039;&#039; no &#039;&#039;&#039;PVE01&#039;&#039;&#039; e &#039;&#039;&#039;PVE02&#039;&#039;&#039; que utiliza o &#039;&#039;&#039;CEPH Squid 19.2&#039;&#039;&#039;. Então vamos adicionar o repositório:&lt;br /&gt;
 # echo &amp;quot;deb &amp;lt;nowiki&amp;gt;http://download.proxmox.com/debian/ceph-squid&amp;lt;/nowiki&amp;gt; trixie no-subscription&amp;quot; &amp;gt; /etc/apt/sources.list.d/ceph.list&lt;br /&gt;
 # wget &amp;lt;nowiki&amp;gt;https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg&amp;lt;/nowiki&amp;gt; -O /etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg&lt;br /&gt;
Instalando os pacotes do CEPH:&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install ceph ceph-common&lt;br /&gt;
Antes de prosseguir adicione no &#039;&#039;&#039;/etc/hosts&#039;&#039;&#039; do Debian:&lt;br /&gt;
 192.168.2.1 node1&lt;br /&gt;
 192.168.2.2 node2&lt;br /&gt;
 192.168.2.3 nodeq&lt;br /&gt;
Estou chamando nosso &#039;&#039;&#039;Quorum Device&#039;&#039;&#039; com o hostname &#039;&#039;&#039;nodeq&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Agora precisaremos executar algumas tarefas no nosso &#039;&#039;&#039;PVE01&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon getmap -o /tmp/monmap&lt;br /&gt;
 &lt;br /&gt;
 # monmaptool \&lt;br /&gt;
   --add nodeq 192.168.2.3:6789 \&lt;br /&gt;
   /tmp/monmap&lt;br /&gt;
Vamos checar se adicionamos o &#039;&#039;&#039;nodeq&#039;&#039;&#039; ao &#039;&#039;&#039;monmap&#039;&#039;&#039; com o comando: &#039;&#039;&#039;monmaptool --print /tmp/monmap&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Monmap.png|nenhum|miniaturadaimagem|677x677px]]&lt;br /&gt;
Vamos gerar o &#039;&#039;&#039;keyring&#039;&#039;&#039; para usarmos no Debian:&lt;br /&gt;
 # ceph auth get mon. -o /tmp/ceph.mon.keyring&lt;br /&gt;
Agora precisamos copiar todos os arquivos necessários do &#039;&#039;&#039;PVE01&#039;&#039;&#039; para o nosso Debian:&lt;br /&gt;
 # scp /tmp/monmap root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /tmp/ceph.mon.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/ceph.conf root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/priv/ceph.client.admin.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 &lt;br /&gt;
 # scp /var/lib/ceph/bootstrap-osd/ceph.keyring \&lt;br /&gt;
 root@192.168.2.3:/var/lib/ceph/bootstrap-osd/&lt;br /&gt;
&#039;&#039;&#039;Atenção&#039;&#039;&#039; &#039;&#039;&#039;agora&#039;&#039;&#039; pois vamos no nosso Debian alterar o arquivo &#039;&#039;&#039;/etc/ceph/ceph.conf&#039;&#039;&#039;. Primeiro modifique  o parâmetro abaixo para incluir o IP &#039;&#039;&#039;192.168.2.3&#039;&#039;&#039;:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
Modifique os dois parâmetros abaixo e deixe eles iguais a estes:&amp;lt;pre&amp;gt;&lt;br /&gt;
[client]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&lt;br /&gt;
[client.crash]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&amp;lt;/pre&amp;gt;Adicione no final deste mesmo arquivo a configuração abaixo:&amp;lt;pre&amp;gt;&lt;br /&gt;
[mon.nodeq]&lt;br /&gt;
	public_addr = 192.168.2.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;Ainda no &#039;&#039;&#039;Debian&#039;&#039;&#039; execute os comandos abaixo para prepararmos o ambiente pro &#039;&#039;&#039;CEPH&#039;&#039;&#039;:&lt;br /&gt;
 # mkdir -p /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown ceph:ceph /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chmod 750 /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
Vamos criar o monitor:&lt;br /&gt;
 # ceph-mon --mkfs \&lt;br /&gt;
 -i nodeq \&lt;br /&gt;
 --monmap /etc/ceph/monmap \&lt;br /&gt;
 --keyring /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 &lt;br /&gt;
 # chown -R ceph: /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown -R ceph: /etc/ceph/&lt;br /&gt;
 # chmod 640 /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 # chmod 640 /etc/ceph/monmap&lt;br /&gt;
Este é o momento crucial para que tenhamos mais um monitor no nosso CEPH do Proxmox:&lt;br /&gt;
 # systemctl enable ceph-mon@nodeq&lt;br /&gt;
 # systemctl start ceph-mon@nodeq&lt;br /&gt;
Precisamos checar se o serviço subiu com o comando: &#039;&#039;&#039;systemctl status ceph-mon@nodeq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Se aparecer algo assim então parabéns, até aqui foi tudo OK:&lt;br /&gt;
[[Arquivo:Nodeq ceph.png|nenhum|miniaturadaimagem|806x806px]]Volte no Proxmox PVE01 e altere o &#039;&#039;&#039;/etc/pve/ceph.conf&#039;&#039;&#039; modificando para:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
E adicionando no final do arquivo:&lt;br /&gt;
 [mon.nodeq]&lt;br /&gt;
         public_addr = 192.168.2.3&lt;br /&gt;
Agora ativamos, ainda no &#039;&#039;&#039;Proxmox PVE01&#039;&#039;&#039;, o &#039;&#039;&#039;msgr2&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon enable-msgr2&lt;br /&gt;
No Debian reinicie o serviço:&lt;br /&gt;
 # systemctl restart ceph-mon@nodeq&lt;br /&gt;
No &#039;&#039;&#039;Proxmox&#039;&#039;&#039; em &#039;&#039;&#039;CEPH&#039;&#039;&#039; verá um novo Monitor adicionado:&lt;br /&gt;
[[Arquivo:Mon ceph.png|nenhum|miniaturadaimagem|598x598px]]&lt;br /&gt;
&lt;br /&gt;
== Adicionando o OSD no Debian ==&lt;br /&gt;
Agora vamos aos procedimentos para usarmos aquele SSD como OSD no CEPH. Vamos supor que o &#039;&#039;&#039;SSD livre&#039;&#039;&#039; seja o &#039;&#039;&#039;/dev/sdb&#039;&#039;&#039;:&lt;br /&gt;
 # apt install gdisk&lt;br /&gt;
 &lt;br /&gt;
 # wipefs -a /dev/sdb&lt;br /&gt;
 # sgdisk --zap&lt;br /&gt;
&lt;br /&gt;
Feito isso só precisamos criar o volume CEPH com o comando:&lt;br /&gt;
 # ceph-volume lvm create --data /dev/sdb&lt;br /&gt;
Se tudo foi bem, nesse momento verá o &#039;&#039;&#039;OSD&#039;&#039;&#039; no seu &#039;&#039;&#039;Cluster Proxmox&#039;&#039;&#039;:&lt;br /&gt;
[[Arquivo:Osd img.png|nenhum|miniaturadaimagem|1234x1234px]]&lt;br /&gt;
Olhando a saúde do nosso Cluster veremos:&lt;br /&gt;
[[Arquivo:Resultado ceph.png|nenhum|miniaturadaimagem|1235x1235px]]&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
Aqui vemos em funcionamento um &#039;&#039;&#039;Cluster Proxmox + HA&#039;&#039;&#039; com 2 nós apenas e uma máquina Debian servindo como apoio no funcionamento e segurança do Cluster.&lt;br /&gt;
&lt;br /&gt;
Gostou do artigo? Compartilhe!&lt;br /&gt;
&lt;br /&gt;
Autor: [[Sobre mim|Marcelo Gondim]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1133</id>
		<title>Debian Cluster CEPH</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1133"/>
		<updated>2026-04-08T23:33:14Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &#039;&#039;&#039;Cluster&#039;&#039;&#039; deve ser composto de no &#039;&#039;&#039;mínimo 3 nodes&#039;&#039;&#039; para que possa dar segurança, existir &#039;&#039;&#039;quorum&#039;&#039;&#039; e quando usamos &#039;&#039;&#039;CEPH&#039;&#039;&#039; também precisamos de pelo menos 3 nodes com &#039;&#039;&#039;OSDs&#039;&#039;&#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no &#039;&#039;&#039;Cluster&#039;&#039;&#039; para servir de quorum e de disco &#039;&#039;&#039;CEPH&#039;&#039;&#039;.  Dessa maneira você consegue com 2 servidores &#039;&#039;&#039;Proxmox&#039;&#039;&#039; e uma máquina que chamei de &#039;&#039;&#039;Quorum Device&#039;&#039;&#039;, colocar em produção um Cluster com HA funcional.&lt;br /&gt;
&lt;br /&gt;
== Diagrama ==&lt;br /&gt;
O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em &#039;&#039;&#039;Cluster&#039;&#039;&#039; com &#039;&#039;&#039;CEPH&#039;&#039;&#039;. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.&lt;br /&gt;
[[Arquivo:Diagrama cluster ceph.png|nenhum|miniaturadaimagem|522x522px]]&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux 13 (Trixie).&lt;br /&gt;
* Uma máquina com 4G ou 8G de ram.&lt;br /&gt;
* 1 SSD para instalar o sistema.&lt;br /&gt;
* 1 SSD para servir de &#039;&#039;&#039;OSD&#039;&#039;&#039; no &#039;&#039;&#039;CEPH&#039;&#039;&#039;.&lt;br /&gt;
*3 interfaces de rede. Uma para o acesso, outra para o &#039;&#039;&#039;Cluster&#039;&#039;&#039; e outra para o &#039;&#039;&#039;CEPH&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Configurando o Qdevice no Debian ==&lt;br /&gt;
Uma vez instalado o Debian, precisamos configurar as 3 interfaces para a comunicação com seu Cluster Proxmox. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
* ens18 - IP 10.254.254.27/24 GW 10.254.254.1 (essa seria a interface com acesso à Internet para instalar os programas).&lt;br /&gt;
* ens19 - IP 192.168.1.3/24 (interface que deve se comunicar com a rede do Cluster, com os IPs dos nodes 192.168.1.1 e 192.168.1.2.&lt;br /&gt;
* ens20 - IP 192.168.2.3/24 (interface que se comunica com a rede CEPH, com os IPs 192.168.2.1 e 192.168.2.2.&lt;br /&gt;
&lt;br /&gt;
Precisamos configurar o serviço SSHD para permitir conexão com root, pois o Proxmox vai precisar acessar o Debian. Para isso altere o arquivo &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; o parâmetro abaixo:&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
Reinicie o serviço:&lt;br /&gt;
 # systemctl restart sshd&lt;br /&gt;
No Debian vamos instalar o pacote &#039;&#039;&#039;corosync-qnetd&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qnetd&lt;br /&gt;
Nos dois servidores Proxmox, no nosso exemplo PVE01 e PVE02 instalaremos o pacote &#039;&#039;&#039;corosync-qdevice&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qdevice&lt;br /&gt;
Agora vá para o shell do seu &#039;&#039;&#039;Proxmox principal&#039;&#039;&#039;, no meu caso o &#039;&#039;&#039;PVE01&#039;&#039;&#039; e adicione o Debian ao Cluster com o seguinte comando: &lt;br /&gt;
 # pvecm qdevice setup 192.168.1.3&lt;br /&gt;
Com o comando &#039;&#039;&#039;pvecm status&#039;&#039;&#039; podemos ver como está o quorum e se tudo ocorreu bem, verá que agora temos 3 votos no lugar de 2 e um &#039;&#039;&#039;Qdevice&#039;&#039;&#039; no membership:&lt;br /&gt;
[[Arquivo:Qdevice.png|nenhum|miniaturadaimagem|748x748px]]&lt;br /&gt;
Agora em se tratando de Cluster, você tem o mínimo de votantes para o bom funcionamento e usando uma máquina simples com Debian.&lt;br /&gt;
&lt;br /&gt;
== Adicionando um CEPH monitor e OSD ==&lt;br /&gt;
Agora precisamos tornar nosso &#039;&#039;&#039;CEPH&#039;&#039;&#039; saudável também e para isso vamos instalar os pacotes do CEPH do Proxmox no Debian. O CEPH precisa ser da mesma versão usada no Cluster Proxmox. Para os meus testes utilizei um &#039;&#039;&#039;Cluster Proxmox 9&#039;&#039;&#039; no &#039;&#039;&#039;PVE01&#039;&#039;&#039; e &#039;&#039;&#039;PVE02&#039;&#039;&#039; que utiliza o &#039;&#039;&#039;CEPH Squid 19.2&#039;&#039;&#039;. Então vamos adicionar o repositório:&lt;br /&gt;
 # echo &amp;quot;deb &amp;lt;nowiki&amp;gt;http://download.proxmox.com/debian/ceph-squid&amp;lt;/nowiki&amp;gt; trixie no-subscription&amp;quot; &amp;gt; /etc/apt/sources.list.d/ceph.list&lt;br /&gt;
 # wget &amp;lt;nowiki&amp;gt;https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg&amp;lt;/nowiki&amp;gt; -O /etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg&lt;br /&gt;
Instalando os pacotes do CEPH:&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install ceph ceph-common&lt;br /&gt;
Antes de prosseguir adicione no &#039;&#039;&#039;/etc/hosts&#039;&#039;&#039; do Debian:&lt;br /&gt;
 192.168.2.1 node1&lt;br /&gt;
 192.168.2.2 node2&lt;br /&gt;
 192.168.2.3 nodeq&lt;br /&gt;
Estou chamando nosso &#039;&#039;&#039;Quorum Device&#039;&#039;&#039; com o hostname &#039;&#039;&#039;nodeq&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Agora precisaremos executar algumas tarefas no nosso &#039;&#039;&#039;PVE01&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon getmap -o /tmp/monmap&lt;br /&gt;
 &lt;br /&gt;
 # monmaptool \&lt;br /&gt;
   --add nodeq 192.168.2.3:6789 \&lt;br /&gt;
   /tmp/monmap&lt;br /&gt;
Vamos checar se adicionamos o &#039;&#039;&#039;nodeq&#039;&#039;&#039; ao &#039;&#039;&#039;monmap&#039;&#039;&#039; com o comando: &#039;&#039;&#039;monmaptool --print /tmp/monmap&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Monmap.png|nenhum|miniaturadaimagem|677x677px]]&lt;br /&gt;
Vamos gerar o &#039;&#039;&#039;keyring&#039;&#039;&#039; para usarmos no Debian:&lt;br /&gt;
 # ceph auth get mon. -o /tmp/ceph.mon.keyring&lt;br /&gt;
Agora precisamos copiar todos os arquivos necessários do &#039;&#039;&#039;PVE01&#039;&#039;&#039; para o nosso Debian:&lt;br /&gt;
 # scp /tmp/monmap root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /tmp/ceph.mon.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/ceph.conf root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/priv/ceph.client.admin.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 &lt;br /&gt;
 # scp /var/lib/ceph/bootstrap-osd/ceph.keyring \&lt;br /&gt;
 root@192.168.2.3:/var/lib/ceph/bootstrap-osd/&lt;br /&gt;
&#039;&#039;&#039;Atenção&#039;&#039;&#039; &#039;&#039;&#039;agora&#039;&#039;&#039; pois vamos no nosso Debian alterar o arquivo &#039;&#039;&#039;/etc/ceph/ceph.conf&#039;&#039;&#039;. Primeiro modifique  o parâmetro abaixo para incluir o IP &#039;&#039;&#039;192.168.2.3&#039;&#039;&#039;:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
Modifique os dois parâmetros abaixo e deixe eles iguais a estes:&amp;lt;pre&amp;gt;&lt;br /&gt;
[client]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&lt;br /&gt;
[client.crash]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&amp;lt;/pre&amp;gt;Adicione no final deste mesmo arquivo a configuração abaixo:&amp;lt;pre&amp;gt;&lt;br /&gt;
[mon.nodeq]&lt;br /&gt;
	public_addr = 192.168.2.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;Ainda no &#039;&#039;&#039;Debian&#039;&#039;&#039; execute os comandos abaixo para prepararmos o ambiente pro &#039;&#039;&#039;CEPH&#039;&#039;&#039;:&lt;br /&gt;
 # mkdir -p /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown ceph:ceph /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chmod 750 /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
Vamos criar o monitor:&lt;br /&gt;
 # ceph-mon --mkfs \&lt;br /&gt;
 -i nodeq \&lt;br /&gt;
 --monmap /etc/ceph/monmap \&lt;br /&gt;
 --keyring /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 &lt;br /&gt;
 # chown -R ceph: /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown -R ceph: /etc/ceph/&lt;br /&gt;
 # chmod 640 /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 # chmod 640 /etc/ceph/monmap&lt;br /&gt;
Este é o momento crucial para que tenhamos mais um monitor no nosso CEPH do Proxmox:&lt;br /&gt;
 # systemctl enable ceph-mon@nodeq&lt;br /&gt;
 # systemctl start ceph-mon@nodeq&lt;br /&gt;
Precisamos checar se o serviço subiu com o comando: &#039;&#039;&#039;systemctl status ceph-mon@nodeq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Se aparecer algo assim então parabéns, até aqui foi tudo OK:&lt;br /&gt;
[[Arquivo:Nodeq ceph.png|nenhum|miniaturadaimagem|806x806px]]Volte no Proxmox PVE01 e altere o &#039;&#039;&#039;/etc/pve/ceph.conf&#039;&#039;&#039; modificando para:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
E adicionando no final do arquivo:&lt;br /&gt;
 [mon.nodeq]&lt;br /&gt;
         public_addr = 192.168.2.3&lt;br /&gt;
Agora ativamos, ainda no &#039;&#039;&#039;Proxmox PVE01&#039;&#039;&#039;, o &#039;&#039;&#039;msgr2&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon enable-msgr2&lt;br /&gt;
No Debian reinicie o serviço:&lt;br /&gt;
 # systemctl restart ceph-mon@nodeq&lt;br /&gt;
No &#039;&#039;&#039;Proxmox&#039;&#039;&#039; em &#039;&#039;&#039;CEPH&#039;&#039;&#039; verá um novo Monitor adicionado:&lt;br /&gt;
[[Arquivo:Mon ceph.png|nenhum|miniaturadaimagem|598x598px]]&lt;br /&gt;
&lt;br /&gt;
== Adicionando o OSD no Debian ==&lt;br /&gt;
Agora vamos aos procedimentos para usarmos aquele SSD como OSD no CEPH. Vamos supor que o &#039;&#039;&#039;SSD livre&#039;&#039;&#039; seja o &#039;&#039;&#039;/dev/sdb&#039;&#039;&#039;:&lt;br /&gt;
 # apt install parted&lt;br /&gt;
 &lt;br /&gt;
 # parted /dev/sdb --script mklabel gpt&lt;br /&gt;
 &lt;br /&gt;
 # parted /dev/sdb --script \&lt;br /&gt;
 mkpart primary 0% 100%&lt;br /&gt;
Feito isso só precisamos criar o volume CEPH com o comando:&lt;br /&gt;
 # ceph-volume lvm create --data /dev/sdb1&lt;br /&gt;
Se tudo foi bem, nesse momento verá o &#039;&#039;&#039;OSD&#039;&#039;&#039; no seu &#039;&#039;&#039;Cluster Proxmox&#039;&#039;&#039;:&lt;br /&gt;
[[Arquivo:Osd img.png|nenhum|miniaturadaimagem|1234x1234px]]&lt;br /&gt;
Olhando a saúde do nosso Cluster veremos:&lt;br /&gt;
[[Arquivo:Resultado ceph.png|nenhum|miniaturadaimagem|1235x1235px]]&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
Aqui vemos em funcionamento um &#039;&#039;&#039;Cluster Proxmox + HA&#039;&#039;&#039; com 2 nós apenas e uma máquina Debian servindo como apoio no funcionamento e segurança do Cluster.&lt;br /&gt;
&lt;br /&gt;
Gostou do artigo? Compartilhe!&lt;br /&gt;
&lt;br /&gt;
Autor: [[Sobre mim|Marcelo Gondim]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=P%C3%A1gina_principal&amp;diff=1132</id>
		<title>Página principal</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=P%C3%A1gina_principal&amp;diff=1132"/>
		<updated>2026-04-08T23:27:53Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Pascal.png|esquerda|semmoldura|554x554px]]&lt;br /&gt;
&lt;br /&gt;
= Bem vindo à Wiki ISPUP! =&lt;br /&gt;
Durante 29 anos trabalhando como &#039;&#039;&#039;sysadmin&#039;&#039;&#039; em ambientes &#039;&#039;&#039;Unix Like&#039;&#039;&#039; e com Redes em Provedores de Internet, acabei guardando algum conhecimento e essa Wiki é uma forma de disponibilizar para a comunidade, uma fonte de consulta de soluções para diversos problemas que encontrei ao longo da minha vida como profissional. Espero que te ajude assim como sempre me ajudou. Tenho muita documentação para postar aqui e por isso irei revisar e disponibilizar aos poucos. Vamos dar um UP! no seu ISP?&lt;br /&gt;
&lt;br /&gt;
Aqui veremos assuntos relacionados a &#039;&#039;&#039;Servidores GNU/Linux&#039;&#039;&#039;, &#039;&#039;&#039;Telecom&#039;&#039;&#039;, &#039;&#039;&#039;Serviços de Redes&#039;&#039;&#039;, &#039;&#039;&#039;Segurança da Informação&#039;&#039;&#039; e &#039;&#039;&#039;Boas Práticas&#039;&#039;&#039;. Os artigos e documentações serão voltados paras as comunidades &#039;&#039;&#039;ISP (Internet Service Provider)&#039;&#039;&#039;, &#039;&#039;&#039;ITP (Internet Transit Provider)&#039;&#039;&#039; e &#039;&#039;&#039;Debian&#039;&#039;&#039;.  &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Enquanto for &amp;quot;&#039;&#039;&#039;pequeno&#039;&#039;&#039;&amp;quot;, precisa pensar como um &amp;quot;&#039;&#039;&#039;grande&#039;&#039;&#039;&amp;quot;: precisa pensar nas boas práticas, se estruturar para o futuro e aí quando crescer e ficar &amp;quot;&#039;&#039;&#039;grande&#039;&#039;&#039;&amp;quot;, precisará pensar como um &amp;quot;&#039;&#039;&#039;pequeno&#039;&#039;&#039;&amp;quot;, para continuar melhorando a sua agilidade nos processos, na qualidade do atendimento e nos serviços entregues aos seus clientes.  &lt;br /&gt;
&lt;br /&gt;
As boas práticas trazem: &#039;&#039;&#039;segurança&#039;&#039;&#039;, &#039;&#039;&#039;credibilidade&#039;&#039;&#039;, &#039;&#039;&#039;estabilidade&#039;&#039;&#039; e &#039;&#039;&#039;qualidade&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;UNIX is very simple, it just needs a genius to understand its simplicity.&amp;quot;&#039;&#039;&#039; Dennis Ritchie.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Índice ==&lt;br /&gt;
* [[Artigos Tecnicos|Artigos Técnicos]]&lt;br /&gt;
* [[Servicos de Redes e Servidores|Serviços de Redes e Servidores]]&lt;br /&gt;
* [[Dicas Tecnicas|Dicas Técnicas]]&lt;br /&gt;
* [[Links Uteis|Links úteis]]&lt;br /&gt;
* [[Sobre mim]]&lt;br /&gt;
&lt;br /&gt;
== Destaques ==&lt;br /&gt;
[[Debian Cluster CEPH]]&lt;br /&gt;
&lt;br /&gt;
[[Autenticacao TOTP Radius Tacacs Debian|Autenticação TOTP + Radius/Tacacs no Debian]]&lt;br /&gt;
&lt;br /&gt;
[[SSH SERVER 2FA|SSH Server com Autenticação 2FA]]&lt;br /&gt;
&lt;br /&gt;
[[Certificado TLS com ACME-DNS e DNS-01]]&lt;br /&gt;
&lt;br /&gt;
[[RPKI|RPKI (Resource Public Key Infrastructure)]]&lt;br /&gt;
&lt;br /&gt;
[[Recomendacao Mitigacao DDoS|Recomendações sobre Mitigação DDoS]]&lt;br /&gt;
&lt;br /&gt;
[[DNS Recursivo Anycast HyperLocal|DNS Recursivo Anycast com Hyperlocal]]&lt;br /&gt;
&lt;br /&gt;
[[Static Loop|Static Loop - um erro que pode matar seu ISP/ITP]]&lt;br /&gt;
&lt;br /&gt;
[[Portas Amplificacao DDoS|Portas de Amplificação DDoS e Botnets]]&lt;br /&gt;
&lt;br /&gt;
[[Servidor Logs CGNAT|Servidor de logs CGNAT]]&lt;br /&gt;
&lt;br /&gt;
[[Template Servidor Debian|Template de Servidor Debian GNU/Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Policy Based Routing|Policy Based Routing (PBR)]]&lt;br /&gt;
&lt;br /&gt;
[[Compilando Bash|Compilando Shell Scripts com o SHC]]&lt;br /&gt;
&lt;br /&gt;
[[PHPIPAM|DCIM/IPAM com phpIPAM]]&lt;br /&gt;
&lt;br /&gt;
[[MSMTP com OAuth2|MSMTP com OAuth2 no Debian 12]]&lt;br /&gt;
&lt;br /&gt;
[[Geolocalizacao|Geolocalização e a Internet]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Debian powered.png|miniaturadaimagem|83x83px]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1131</id>
		<title>Debian Cluster CEPH</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1131"/>
		<updated>2026-04-08T23:26:01Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &#039;&#039;&#039;Cluster&#039;&#039;&#039; deve ser composto de no &#039;&#039;&#039;mínimo 3 nodes&#039;&#039;&#039; para que possa dar segurança, existir &#039;&#039;&#039;quorum&#039;&#039;&#039; e quando usamos &#039;&#039;&#039;CEPH&#039;&#039;&#039; também precisamos de pelo menos 3 &#039;&#039;&#039;OSDs&#039;&#039;&#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no &#039;&#039;&#039;Cluster&#039;&#039;&#039; para servir de quorum e de disco &#039;&#039;&#039;CEPH&#039;&#039;&#039;.  Dessa maneira você consegue com 2 servidores &#039;&#039;&#039;Proxmox&#039;&#039;&#039; e uma máquina que chamei de &#039;&#039;&#039;Quorum Device&#039;&#039;&#039;, colocar em produção um Cluster com HA funcional.&lt;br /&gt;
&lt;br /&gt;
== Diagrama ==&lt;br /&gt;
O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em &#039;&#039;&#039;Cluster&#039;&#039;&#039; com &#039;&#039;&#039;CEPH&#039;&#039;&#039;. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.&lt;br /&gt;
[[Arquivo:Diagrama cluster ceph.png|nenhum|miniaturadaimagem|522x522px]]&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux 13 (Trixie).&lt;br /&gt;
* Uma máquina com 4G ou 8G de ram.&lt;br /&gt;
* 1 SSD para instalar o sistema.&lt;br /&gt;
* 1 SSD para servir de &#039;&#039;&#039;OSD&#039;&#039;&#039; no &#039;&#039;&#039;CEPH&#039;&#039;&#039;.&lt;br /&gt;
*3 interfaces de rede. Uma para o acesso, outra para o &#039;&#039;&#039;Cluster&#039;&#039;&#039; e outra para o &#039;&#039;&#039;CEPH&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Configurando o Qdevice no Debian ==&lt;br /&gt;
Uma vez instalado o Debian, precisamos configurar as 3 interfaces para a comunicação com seu Cluster Proxmox. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
* ens18 - IP 10.254.254.27/24 GW 10.254.254.1 (essa seria a interface com acesso à Internet para instalar os programas).&lt;br /&gt;
* ens19 - IP 192.168.1.3/24 (interface que deve se comunicar com a rede do Cluster, com os IPs dos nodes 192.168.1.1 e 192.168.1.2.&lt;br /&gt;
* ens20 - IP 192.168.2.3/24 (interface que se comunica com a rede CEPH, com os IPs 192.168.2.1 e 192.168.2.2.&lt;br /&gt;
&lt;br /&gt;
Precisamos configurar o serviço SSHD para permitir conexão com root, pois o Proxmox vai precisar acessar o Debian. Para isso altere o arquivo &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; o parâmetro abaixo:&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
Reinicie o serviço:&lt;br /&gt;
 # systemctl restart sshd&lt;br /&gt;
No Debian vamos instalar o pacote &#039;&#039;&#039;corosync-qnetd&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qnetd&lt;br /&gt;
Nos dois servidores Proxmox, no nosso exemplo PVE01 e PVE02 instalaremos o pacote &#039;&#039;&#039;corosync-qdevice&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qdevice&lt;br /&gt;
Agora vá para o shell do seu &#039;&#039;&#039;Proxmox principal&#039;&#039;&#039;, no meu caso o &#039;&#039;&#039;PVE01&#039;&#039;&#039; e adicione o Debian ao Cluster com o seguinte comando: &lt;br /&gt;
 # pvecm qdevice setup 192.168.1.3&lt;br /&gt;
Com o comando &#039;&#039;&#039;pvecm status&#039;&#039;&#039; podemos ver como está o quorum e se tudo ocorreu bem, verá que agora temos 3 votos no lugar de 2 e um &#039;&#039;&#039;Qdevice&#039;&#039;&#039; no membership:&lt;br /&gt;
[[Arquivo:Qdevice.png|nenhum|miniaturadaimagem|748x748px]]&lt;br /&gt;
Agora em se tratando de Cluster, você tem o mínimo de votantes para o bom funcionamento e usando uma máquina simples com Debian.&lt;br /&gt;
&lt;br /&gt;
== Adicionando um CEPH monitor e OSD ==&lt;br /&gt;
Agora precisamos tornar nosso &#039;&#039;&#039;CEPH&#039;&#039;&#039; saudável também e para isso vamos instalar os pacotes do CEPH do Proxmox no Debian. O CEPH precisa ser da mesma versão usada no Cluster Proxmox. Para os meus testes utilizei um &#039;&#039;&#039;Cluster Proxmox 9&#039;&#039;&#039; no &#039;&#039;&#039;PVE01&#039;&#039;&#039; e &#039;&#039;&#039;PVE02&#039;&#039;&#039; que utiliza o &#039;&#039;&#039;CEPH Squid 19.2&#039;&#039;&#039;. Então vamos adicionar o repositório:&lt;br /&gt;
 # echo &amp;quot;deb &amp;lt;nowiki&amp;gt;http://download.proxmox.com/debian/ceph-squid&amp;lt;/nowiki&amp;gt; trixie no-subscription&amp;quot; &amp;gt; /etc/apt/sources.list.d/ceph.list&lt;br /&gt;
 # wget &amp;lt;nowiki&amp;gt;https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg&amp;lt;/nowiki&amp;gt; -O /etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg&lt;br /&gt;
Instalando os pacotes do CEPH:&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install ceph ceph-common&lt;br /&gt;
Antes de prosseguir adicione no &#039;&#039;&#039;/etc/hosts&#039;&#039;&#039; do Debian:&lt;br /&gt;
 192.168.2.1 node1&lt;br /&gt;
 192.168.2.2 node2&lt;br /&gt;
 192.168.2.3 nodeq&lt;br /&gt;
Estou chamando nosso &#039;&#039;&#039;Quorum Device&#039;&#039;&#039; com o hostname &#039;&#039;&#039;nodeq&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Agora precisaremos executar algumas tarefas no nosso &#039;&#039;&#039;PVE01&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon getmap -o /tmp/monmap&lt;br /&gt;
 &lt;br /&gt;
 # monmaptool \&lt;br /&gt;
   --add nodeq 192.168.2.3:6789 \&lt;br /&gt;
   /tmp/monmap&lt;br /&gt;
Vamos checar se adicionamos o &#039;&#039;&#039;nodeq&#039;&#039;&#039; ao &#039;&#039;&#039;monmap&#039;&#039;&#039; com o comando: &#039;&#039;&#039;monmaptool --print /tmp/monmap&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Monmap.png|nenhum|miniaturadaimagem|677x677px]]&lt;br /&gt;
Vamos gerar o &#039;&#039;&#039;keyring&#039;&#039;&#039; para usarmos no Debian:&lt;br /&gt;
 # ceph auth get mon. -o /tmp/ceph.mon.keyring&lt;br /&gt;
Agora precisamos copiar todos os arquivos necessários do &#039;&#039;&#039;PVE01&#039;&#039;&#039; para o nosso Debian:&lt;br /&gt;
 # scp /tmp/monmap root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /tmp/ceph.mon.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/ceph.conf root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/priv/ceph.client.admin.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 &lt;br /&gt;
 # scp /var/lib/ceph/bootstrap-osd/ceph.keyring \&lt;br /&gt;
 root@192.168.2.3:/var/lib/ceph/bootstrap-osd/&lt;br /&gt;
&#039;&#039;&#039;Atenção&#039;&#039;&#039; &#039;&#039;&#039;agora&#039;&#039;&#039; pois vamos no nosso Debian alterar o arquivo &#039;&#039;&#039;/etc/ceph/ceph.conf&#039;&#039;&#039;. Primeiro modifique  o parâmetro abaixo para incluir o IP &#039;&#039;&#039;192.168.2.3&#039;&#039;&#039;:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
Modifique os dois parâmetros abaixo e deixe eles iguais a estes:&amp;lt;pre&amp;gt;&lt;br /&gt;
[client]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&lt;br /&gt;
[client.crash]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&amp;lt;/pre&amp;gt;Adicione no final deste mesmo arquivo a configuração abaixo:&amp;lt;pre&amp;gt;&lt;br /&gt;
[mon.nodeq]&lt;br /&gt;
	public_addr = 192.168.2.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;Ainda no &#039;&#039;&#039;Debian&#039;&#039;&#039; execute os comandos abaixo para prepararmos o ambiente pro &#039;&#039;&#039;CEPH&#039;&#039;&#039;:&lt;br /&gt;
 # mkdir -p /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown ceph:ceph /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chmod 750 /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
Vamos criar o monitor:&lt;br /&gt;
 # ceph-mon --mkfs \&lt;br /&gt;
 -i nodeq \&lt;br /&gt;
 --monmap /etc/ceph/monmap \&lt;br /&gt;
 --keyring /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 &lt;br /&gt;
 # chown -R ceph: /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown -R ceph: /etc/ceph/&lt;br /&gt;
 # chmod 640 /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 # chmod 640 /etc/ceph/monmap&lt;br /&gt;
Este é o momento crucial para que tenhamos mais um monitor no nosso CEPH do Proxmox:&lt;br /&gt;
 # systemctl enable ceph-mon@nodeq&lt;br /&gt;
 # systemctl start ceph-mon@nodeq&lt;br /&gt;
Precisamos checar se o serviço subiu com o comando: &#039;&#039;&#039;systemctl status ceph-mon@nodeq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Se aparecer algo assim então parabéns, até aqui foi tudo OK:&lt;br /&gt;
[[Arquivo:Nodeq ceph.png|nenhum|miniaturadaimagem|806x806px]]Volte no Proxmox PVE01 e altere o &#039;&#039;&#039;/etc/pve/ceph.conf&#039;&#039;&#039; modificando para:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
E adicionando no final do arquivo:&lt;br /&gt;
 [mon.nodeq]&lt;br /&gt;
         public_addr = 192.168.2.3&lt;br /&gt;
Agora ativamos, ainda no &#039;&#039;&#039;Proxmox PVE01&#039;&#039;&#039;, o &#039;&#039;&#039;msgr2&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon enable-msgr2&lt;br /&gt;
No Debian reinicie o serviço:&lt;br /&gt;
 # systemctl restart ceph-mon@nodeq&lt;br /&gt;
No &#039;&#039;&#039;Proxmox&#039;&#039;&#039; em &#039;&#039;&#039;CEPH&#039;&#039;&#039; verá um novo Monitor adicionado:&lt;br /&gt;
[[Arquivo:Mon ceph.png|nenhum|miniaturadaimagem|598x598px]]&lt;br /&gt;
&lt;br /&gt;
== Adicionando o OSD no Debian ==&lt;br /&gt;
Agora vamos aos procedimentos para usarmos aquele SSD como OSD no CEPH. Vamos supor que o &#039;&#039;&#039;SSD livre&#039;&#039;&#039; seja o &#039;&#039;&#039;/dev/sdb&#039;&#039;&#039;:&lt;br /&gt;
 # apt install parted&lt;br /&gt;
 &lt;br /&gt;
 # parted /dev/sdb --script mklabel gpt&lt;br /&gt;
 &lt;br /&gt;
 # parted /dev/sdb --script \&lt;br /&gt;
 mkpart primary 0% 100%&lt;br /&gt;
Feito isso só precisamos criar o volume CEPH com o comando:&lt;br /&gt;
 # ceph-volume lvm create --data /dev/sdb1&lt;br /&gt;
Se tudo foi bem, nesse momento verá o &#039;&#039;&#039;OSD&#039;&#039;&#039; no seu &#039;&#039;&#039;Cluster Proxmox&#039;&#039;&#039;:&lt;br /&gt;
[[Arquivo:Osd img.png|nenhum|miniaturadaimagem|1234x1234px]]&lt;br /&gt;
Olhando a saúde do nosso Cluster veremos:&lt;br /&gt;
[[Arquivo:Resultado ceph.png|nenhum|miniaturadaimagem|1235x1235px]]&lt;br /&gt;
&lt;br /&gt;
== Conclusão ==&lt;br /&gt;
Aqui vemos em funcionamento um &#039;&#039;&#039;Cluster Proxmox + HA&#039;&#039;&#039; com 2 nós apenas e uma máquina Debian servindo como apoio no funcionamento e segurança do Cluster.&lt;br /&gt;
&lt;br /&gt;
Gostou do artigo? Compartilhe!&lt;br /&gt;
&lt;br /&gt;
Autor: [[Sobre mim|Marcelo Gondim]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Resultado_ceph.png&amp;diff=1130</id>
		<title>Arquivo:Resultado ceph.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Resultado_ceph.png&amp;diff=1130"/>
		<updated>2026-04-08T23:20:57Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;resultado_ceph&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Osd_img.png&amp;diff=1129</id>
		<title>Arquivo:Osd img.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Osd_img.png&amp;diff=1129"/>
		<updated>2026-04-08T23:18:52Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;osd_img&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Mon_ceph.png&amp;diff=1128</id>
		<title>Arquivo:Mon ceph.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Mon_ceph.png&amp;diff=1128"/>
		<updated>2026-04-08T23:11:34Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mon_ceph&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1127</id>
		<title>Debian Cluster CEPH</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1127"/>
		<updated>2026-04-08T23:03:43Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &#039;&#039;&#039;Cluster&#039;&#039;&#039; deve ser composto de no &#039;&#039;&#039;mínimo 3 nodes&#039;&#039;&#039; para que possa dar segurança, existir &#039;&#039;&#039;quorum&#039;&#039;&#039; e quando usamos &#039;&#039;&#039;CEPH&#039;&#039;&#039; também precisamos de pelo menos 3 &#039;&#039;&#039;OSDs&#039;&#039;&#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no &#039;&#039;&#039;Cluster&#039;&#039;&#039; para servir de quorum e de disco &#039;&#039;&#039;CEPH&#039;&#039;&#039;.  Dessa maneira você consegue com 2 servidores &#039;&#039;&#039;Proxmox&#039;&#039;&#039; e uma máquina que chamei de &#039;&#039;&#039;Quorum Device&#039;&#039;&#039;, colocar em produção um Cluster com HA funcional.&lt;br /&gt;
&lt;br /&gt;
== Diagrama ==&lt;br /&gt;
O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em &#039;&#039;&#039;Cluster&#039;&#039;&#039; com &#039;&#039;&#039;CEPH&#039;&#039;&#039;. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.&lt;br /&gt;
[[Arquivo:Diagrama cluster ceph.png|nenhum|miniaturadaimagem|522x522px]]&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux 13 (Trixie).&lt;br /&gt;
* Uma máquina com 4G ou 8G de ram.&lt;br /&gt;
* 1 SSD para instalar o sistema.&lt;br /&gt;
* 1 SSD para servir de &#039;&#039;&#039;OSD&#039;&#039;&#039; no &#039;&#039;&#039;CEPH&#039;&#039;&#039;.&lt;br /&gt;
*3 interfaces de rede. Uma para o acesso, outra para o &#039;&#039;&#039;Cluster&#039;&#039;&#039; e outra para o &#039;&#039;&#039;CEPH&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Configurando o Qdevice no Debian ==&lt;br /&gt;
Uma vez instalado o Debian, precisamos configurar as 3 interfaces para a comunicação com seu Cluster Proxmox. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
* ens18 - IP 10.254.254.27/24 GW 10.254.254.1 (essa seria a interface com acesso à Internet para instalar os programas).&lt;br /&gt;
* ens19 - IP 192.168.1.3/24 (interface que deve se comunicar com a rede do Cluster, com os IPs dos nodes 192.168.1.1 e 192.168.1.2.&lt;br /&gt;
* ens20 - IP 192.168.2.3/24 (interface que se comunica com a rede CEPH, com os IPs 192.168.2.1 e 192.168.2.2.&lt;br /&gt;
&lt;br /&gt;
Precisamos configurar o serviço SSHD para permitir conexão com root, pois o Proxmox vai precisar acessar o Debian. Para isso altere o arquivo &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; o parâmetro abaixo:&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
Reinicie o serviço:&lt;br /&gt;
 # systemctl restart sshd&lt;br /&gt;
No Debian vamos instalar o pacote &#039;&#039;&#039;corosync-qnetd&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qnetd&lt;br /&gt;
Nos dois servidores Proxmox, no nosso exemplo PVE01 e PVE02 instalaremos o pacote &#039;&#039;&#039;corosync-qdevice&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qdevice&lt;br /&gt;
Agora vá para o shell do seu &#039;&#039;&#039;Proxmox principal&#039;&#039;&#039;, no meu caso o &#039;&#039;&#039;PVE01&#039;&#039;&#039; e adicione o Debian ao Cluster com o seguinte comando: &lt;br /&gt;
 # pvecm qdevice setup 192.168.1.3&lt;br /&gt;
Com o comando &#039;&#039;&#039;pvecm status&#039;&#039;&#039; podemos ver como está o quorum e se tudo ocorreu bem, verá que agora temos 3 votos no lugar de 2 e um &#039;&#039;&#039;Qdevice&#039;&#039;&#039; no membership:&lt;br /&gt;
[[Arquivo:Qdevice.png|nenhum|miniaturadaimagem|748x748px]]&lt;br /&gt;
Agora em se tratando de Cluster, você tem o mínimo de votantes para o bom funcionamento e usando uma máquina simples com Debian.&lt;br /&gt;
&lt;br /&gt;
== Adicionando um CEPH monitor e OSD ==&lt;br /&gt;
Agora precisamos tornar nosso &#039;&#039;&#039;CEPH&#039;&#039;&#039; saudável também e para isso vamos instalar os pacotes do CEPH do Proxmox no Debian. O CEPH precisa ser da mesma versão usada no Cluster Proxmox. Para os meus testes utilizei um &#039;&#039;&#039;Cluster Proxmox 9&#039;&#039;&#039; no &#039;&#039;&#039;PVE01&#039;&#039;&#039; e &#039;&#039;&#039;PVE02&#039;&#039;&#039; que utiliza o &#039;&#039;&#039;CEPH Squid 19.2&#039;&#039;&#039;. Então vamos adicionar o repositório:&lt;br /&gt;
 # echo &amp;quot;deb &amp;lt;nowiki&amp;gt;http://download.proxmox.com/debian/ceph-squid&amp;lt;/nowiki&amp;gt; trixie no-subscription&amp;quot; &amp;gt; /etc/apt/sources.list.d/ceph.list&lt;br /&gt;
 # wget &amp;lt;nowiki&amp;gt;https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg&amp;lt;/nowiki&amp;gt; -O /etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg&lt;br /&gt;
Instalando os pacotes do CEPH:&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install ceph ceph-common&lt;br /&gt;
Antes de prosseguir adicione no &#039;&#039;&#039;/etc/hosts&#039;&#039;&#039; do Debian:&lt;br /&gt;
 192.168.2.1 node1&lt;br /&gt;
 192.168.2.2 node2&lt;br /&gt;
 192.168.2.3 nodeq&lt;br /&gt;
Estou chamando nosso &#039;&#039;&#039;Quorum Device&#039;&#039;&#039; com o hostname &#039;&#039;&#039;nodeq&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Agora precisaremos executar algumas tarefas no nosso &#039;&#039;&#039;PVE01&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon getmap -o /tmp/monmap&lt;br /&gt;
 &lt;br /&gt;
 # monmaptool \&lt;br /&gt;
   --add nodeq 192.168.2.3:6789 \&lt;br /&gt;
   /tmp/monmap&lt;br /&gt;
Vamos checar se adicionamos o &#039;&#039;&#039;nodeq&#039;&#039;&#039; ao &#039;&#039;&#039;monmap&#039;&#039;&#039; com o comando: &#039;&#039;&#039;monmaptool --print /tmp/monmap&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Monmap.png|nenhum|miniaturadaimagem|677x677px]]&lt;br /&gt;
Vamos gerar o &#039;&#039;&#039;keyring&#039;&#039;&#039; para usarmos no Debian:&lt;br /&gt;
 # ceph auth get mon. -o /tmp/ceph.mon.keyring&lt;br /&gt;
Agora precisamos copiar todos os arquivos necessários do &#039;&#039;&#039;PVE01&#039;&#039;&#039; para o nosso Debian:&lt;br /&gt;
 # scp /tmp/monmap root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /tmp/ceph.mon.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/ceph.conf root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 # scp /etc/pve/priv/ceph.client.admin.keyring root@192.168.2.3:/etc/ceph/&lt;br /&gt;
 &lt;br /&gt;
 # scp /var/lib/ceph/bootstrap-osd/ceph.keyring \&lt;br /&gt;
 root@192.168.2.3:/var/lib/ceph/bootstrap-osd/&lt;br /&gt;
&#039;&#039;&#039;Atenção&#039;&#039;&#039; &#039;&#039;&#039;agora&#039;&#039;&#039; pois vamos no nosso Debian alterar o arquivo &#039;&#039;&#039;/etc/ceph/ceph.conf&#039;&#039;&#039;. Primeiro modifique  o parâmetro abaixo para incluir o IP &#039;&#039;&#039;192.168.2.3&#039;&#039;&#039;:&lt;br /&gt;
 mon_host = 192.168.2.1 192.168.2.2 192.168.2.3&lt;br /&gt;
Modifique os dois parâmetros abaixo e deixe eles iguais a estes:&amp;lt;pre&amp;gt;&lt;br /&gt;
[client]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&lt;br /&gt;
[client.crash]&lt;br /&gt;
	keyring = /etc/ceph/$cluster.$name.keyring&lt;br /&gt;
&amp;lt;/pre&amp;gt;Adicione no final deste mesmo arquivo a configuração abaixo:&amp;lt;pre&amp;gt;&lt;br /&gt;
[mon.nodeq]&lt;br /&gt;
	public_addr = 192.168.2.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;Ainda no &#039;&#039;&#039;Debian&#039;&#039;&#039; execute os comandos abaixo para prepararmos o ambiente pro &#039;&#039;&#039;CEPH&#039;&#039;&#039;:&lt;br /&gt;
 # mkdir -p /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown ceph:ceph /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chmod 750 /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
Vamos criar o monitor:&lt;br /&gt;
 # ceph-mon --mkfs \&lt;br /&gt;
 -i nodeq \&lt;br /&gt;
 --monmap /etc/ceph/monmap \&lt;br /&gt;
 --keyring /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 &lt;br /&gt;
 # chown -R ceph: /var/lib/ceph/mon/ceph-nodeq&lt;br /&gt;
 # chown -R ceph: /etc/ceph/&lt;br /&gt;
 # chmod 640 /etc/ceph/ceph.mon.keyring&lt;br /&gt;
 # chmod 640 /etc/ceph/monmap&lt;br /&gt;
Este é o momento crucial para que tenhamos mais um monitor no nosso CEPH do Proxmox:&lt;br /&gt;
 # systemctl enable ceph-mon@nodeq&lt;br /&gt;
 # systemctl start ceph-mon@nodeq&lt;br /&gt;
Precisamos checar se o serviço subiu com o comando: &#039;&#039;&#039;systemctl status ceph-mon@nodeq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Se aparecer algo assim então parabéns, até aqui foi tudo OK:&lt;br /&gt;
[[Arquivo:Nodeq ceph.png|nenhum|miniaturadaimagem|806x806px]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Nodeq_ceph.png&amp;diff=1126</id>
		<title>Arquivo:Nodeq ceph.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Nodeq_ceph.png&amp;diff=1126"/>
		<updated>2026-04-08T23:03:18Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;nodeq_ceph&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Monmap.png&amp;diff=1125</id>
		<title>Arquivo:Monmap.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Monmap.png&amp;diff=1125"/>
		<updated>2026-04-08T22:46:47Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;monmap&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1124</id>
		<title>Debian Cluster CEPH</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1124"/>
		<updated>2026-04-08T22:43:49Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &#039;&#039;&#039;Cluster&#039;&#039;&#039; deve ser composto de no &#039;&#039;&#039;mínimo 3 nodes&#039;&#039;&#039; para que possa dar segurança, existir &#039;&#039;&#039;quorum&#039;&#039;&#039; e quando usamos &#039;&#039;&#039;CEPH&#039;&#039;&#039; também precisamos de pelo menos 3 &#039;&#039;&#039;OSDs&#039;&#039;&#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no &#039;&#039;&#039;Cluster&#039;&#039;&#039; para servir de quorum e de disco &#039;&#039;&#039;CEPH&#039;&#039;&#039;.  Dessa maneira você consegue com 2 servidores &#039;&#039;&#039;Proxmox&#039;&#039;&#039; e uma máquina que chamei de &#039;&#039;&#039;Quorum Device&#039;&#039;&#039;, colocar em produção um Cluster com HA funcional.&lt;br /&gt;
&lt;br /&gt;
== Diagrama ==&lt;br /&gt;
O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em &#039;&#039;&#039;Cluster&#039;&#039;&#039; com &#039;&#039;&#039;CEPH&#039;&#039;&#039;. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.&lt;br /&gt;
[[Arquivo:Diagrama cluster ceph.png|nenhum|miniaturadaimagem|522x522px]]&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux 13 (Trixie).&lt;br /&gt;
* Uma máquina com 4G ou 8G de ram.&lt;br /&gt;
* 1 SSD para instalar o sistema.&lt;br /&gt;
* 1 SSD para servir de &#039;&#039;&#039;OSD&#039;&#039;&#039; no &#039;&#039;&#039;CEPH&#039;&#039;&#039;.&lt;br /&gt;
*3 interfaces de rede. Uma para o acesso, outra para o &#039;&#039;&#039;Cluster&#039;&#039;&#039; e outra para o &#039;&#039;&#039;CEPH&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Configurando o Qdevice no Debian ==&lt;br /&gt;
Uma vez instalado o Debian, precisamos configurar as 3 interfaces para a comunicação com seu Cluster Proxmox. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
* ens18 - IP 10.254.254.27/24 GW 10.254.254.1 (essa seria a interface com acesso à Internet para instalar os programas).&lt;br /&gt;
* ens19 - IP 192.168.1.3/24 (interface que deve se comunicar com a rede do Cluster, com os IPs dos nodes 192.168.1.1 e 192.168.1.2.&lt;br /&gt;
* ens20 - IP 192.168.2.3/24 (interface que se comunica com a rede CEPH, com os IPs 192.168.2.1 e 192.168.2.2.&lt;br /&gt;
&lt;br /&gt;
Precisamos configurar o serviço SSHD para permitir conexão com root, pois o Proxmox vai precisar acessar o Debian. Para isso altere o arquivo &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; o parâmetro abaixo:&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
Reinicie o serviço:&lt;br /&gt;
 # systemctl restart sshd&lt;br /&gt;
No Debian vamos instalar o pacote &#039;&#039;&#039;corosync-qnetd&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qnetd&lt;br /&gt;
Nos dois servidores Proxmox, no nosso exemplo PVE01 e PVE02 instalaremos o pacote &#039;&#039;&#039;corosync-qdevice&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qdevice&lt;br /&gt;
Agora vá para o shell do seu &#039;&#039;&#039;Proxmox principal&#039;&#039;&#039;, no meu caso o &#039;&#039;&#039;PVE01&#039;&#039;&#039; e adicione o Debian ao Cluster com o seguinte comando: &lt;br /&gt;
 # pvecm qdevice setup 192.168.1.3&lt;br /&gt;
Com o comando &#039;&#039;&#039;pvecm status&#039;&#039;&#039; podemos ver como está o quorum e se tudo ocorreu bem, verá que agora temos 3 votos no lugar de 2 e um &#039;&#039;&#039;Qdevice&#039;&#039;&#039; no membership:&lt;br /&gt;
[[Arquivo:Qdevice.png|nenhum|miniaturadaimagem|748x748px]]&lt;br /&gt;
Agora em se tratando de Cluster, você tem o mínimo de votantes para o bom funcionamento e usando uma máquina simples com Debian.&lt;br /&gt;
&lt;br /&gt;
== Adicionando um CEPH monitor e OSD ==&lt;br /&gt;
Agora precisamos tornar nosso &#039;&#039;&#039;CEPH&#039;&#039;&#039; saudável também e para isso vamos instalar os pacotes do CEPH do Proxmox no Debian. O CEPH precisa ser da mesma versão usada no Cluster Proxmox. Para os meus testes utilizei um &#039;&#039;&#039;Cluster Proxmox 9&#039;&#039;&#039; no &#039;&#039;&#039;PVE01&#039;&#039;&#039; e &#039;&#039;&#039;PVE02&#039;&#039;&#039; que utiliza o &#039;&#039;&#039;CEPH Squid 19.2&#039;&#039;&#039;. Então vamos adicionar o repositório:&lt;br /&gt;
 # echo &amp;quot;deb &amp;lt;nowiki&amp;gt;http://download.proxmox.com/debian/ceph-squid&amp;lt;/nowiki&amp;gt; trixie no-subscription&amp;quot; &amp;gt; /etc/apt/sources.list.d/ceph.list&lt;br /&gt;
 # wget &amp;lt;nowiki&amp;gt;https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg&amp;lt;/nowiki&amp;gt; -O /etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg&lt;br /&gt;
Instalando os pacotes do CEPH:&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install ceph ceph-common&lt;br /&gt;
Antes de prosseguir adicione no &#039;&#039;&#039;/etc/hosts&#039;&#039;&#039; do Debian:&lt;br /&gt;
 192.168.2.1 node1&lt;br /&gt;
 192.168.2.2 node2&lt;br /&gt;
 192.168.2.3 nodeq&lt;br /&gt;
Estou chamando nosso &#039;&#039;&#039;Quorum Device&#039;&#039;&#039; com o hostname &#039;&#039;&#039;nodeq&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Agora precisaremos executar algumas tarefas no nosso &#039;&#039;&#039;PVE01&#039;&#039;&#039;:&lt;br /&gt;
 # ceph mon getmap -o /tmp/monmap&lt;br /&gt;
 &lt;br /&gt;
 # monmaptool \&lt;br /&gt;
   --add nodeq 192.168.2.3:6789 \&lt;br /&gt;
   /tmp/monmap&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1123</id>
		<title>Debian Cluster CEPH</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1123"/>
		<updated>2026-04-08T22:32:54Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &#039;&#039;&#039;Cluster&#039;&#039;&#039; deve ser composto de no &#039;&#039;&#039;mínimo 3 nodes&#039;&#039;&#039; para que possa dar segurança, existir &#039;&#039;&#039;quorum&#039;&#039;&#039; e quando usamos &#039;&#039;&#039;CEPH&#039;&#039;&#039; também precisamos de pelo menos 3 &#039;&#039;&#039;OSDs&#039;&#039;&#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no &#039;&#039;&#039;Cluster&#039;&#039;&#039; para servir de quorum e de disco &#039;&#039;&#039;CEPH&#039;&#039;&#039;.  Dessa maneira você consegue com 2 servidores &#039;&#039;&#039;Proxmox&#039;&#039;&#039; e uma máquina que chamei de &#039;&#039;&#039;Quorum Device&#039;&#039;&#039;, colocar em produção um Cluster com HA funcional.&lt;br /&gt;
&lt;br /&gt;
== Diagrama ==&lt;br /&gt;
O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em &#039;&#039;&#039;Cluster&#039;&#039;&#039; com &#039;&#039;&#039;CEPH&#039;&#039;&#039;. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.&lt;br /&gt;
[[Arquivo:Diagrama cluster ceph.png|nenhum|miniaturadaimagem|522x522px]]&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux 13 (Trixie).&lt;br /&gt;
* Uma máquina com 4G ou 8G de ram.&lt;br /&gt;
* 1 SSD para instalar o sistema.&lt;br /&gt;
* 1 SSD para servir de &#039;&#039;&#039;OSD&#039;&#039;&#039; no &#039;&#039;&#039;CEPH&#039;&#039;&#039;.&lt;br /&gt;
*3 interfaces de rede. Uma para o acesso, outra para o &#039;&#039;&#039;Cluster&#039;&#039;&#039; e outra para o &#039;&#039;&#039;CEPH&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Configurando o Qdevice no Debian ==&lt;br /&gt;
Uma vez instalado o Debian, precisamos configurar as 3 interfaces para a comunicação com seu Cluster Proxmox. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
* ens18 - IP 10.254.254.27/24 GW 10.254.254.1 (essa seria a interface com acesso à Internet para instalar os programas).&lt;br /&gt;
* ens19 - IP 192.168.1.3/24 (interface que deve se comunicar com a rede do Cluster, com os IPs dos nodes 192.168.1.1 e 192.168.1.2.&lt;br /&gt;
* ens20 - IP 192.168.2.3/24 (interface que se comunica com a rede CEPH, com os IPs 192.168.2.1 e 192.168.2.2.&lt;br /&gt;
&lt;br /&gt;
Precisamos configurar o serviço SSHD para permitir conexão com root, pois o Proxmox vai precisar acessar o Debian. Para isso altere o arquivo &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; o parâmetro abaixo:&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
Reinicie o serviço:&lt;br /&gt;
 # systemctl restart sshd&lt;br /&gt;
No Debian vamos instalar o pacote &#039;&#039;&#039;corosync-qnetd&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qnetd&lt;br /&gt;
Nos dois servidores Proxmox, no nosso exemplo PVE01 e PVE02 instalaremos o pacote &#039;&#039;&#039;corosync-qdevice&#039;&#039;&#039;:&lt;br /&gt;
 # apt install corosync-qdevice&lt;br /&gt;
Agora vá para o shell do seu &#039;&#039;&#039;Proxmox principal&#039;&#039;&#039;, no meu caso o &#039;&#039;&#039;PVE01&#039;&#039;&#039; e adicione o Debian ao Cluster com o seguinte comando: &lt;br /&gt;
 # pvecm qdevice setup 192.168.1.3&lt;br /&gt;
Com o comando &#039;&#039;&#039;pvecm status&#039;&#039;&#039; podemos ver como está o quorum e se tudo ocorreu bem, verá que agora temos 3 votos no lugar de 2 e um &#039;&#039;&#039;Qdevice&#039;&#039;&#039; no membership:&lt;br /&gt;
[[Arquivo:Qdevice.png|nenhum|miniaturadaimagem|748x748px]]&lt;br /&gt;
Agora em se tratando de Cluster, você tem o mínimo de votantes para o bom funcionamento e usando uma máquina simples com Debian.&lt;br /&gt;
&lt;br /&gt;
== Adicionando um CEPH monitor e OSD ==&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Qdevice.png&amp;diff=1122</id>
		<title>Arquivo:Qdevice.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Qdevice.png&amp;diff=1122"/>
		<updated>2026-04-08T22:28:18Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;qdevice&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1121</id>
		<title>Debian Cluster CEPH</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1121"/>
		<updated>2026-04-08T22:21:18Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &#039;&#039;&#039;Cluster&#039;&#039;&#039; deve ser composto de no &#039;&#039;&#039;mínimo 3 nodes&#039;&#039;&#039; para que possa dar segurança, existir &#039;&#039;&#039;quorum&#039;&#039;&#039; e quando usamos &#039;&#039;&#039;CEPH&#039;&#039;&#039; também precisamos de pelo menos 3 &#039;&#039;&#039;OSDs&#039;&#039;&#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no &#039;&#039;&#039;Cluster&#039;&#039;&#039; para servir de quorum e de disco &#039;&#039;&#039;CEPH&#039;&#039;&#039;.  Dessa maneira você consegue com 2 servidores &#039;&#039;&#039;Proxmox&#039;&#039;&#039; e uma máquina que chamei de &#039;&#039;&#039;Quorum Device&#039;&#039;&#039;, colocar em produção um Cluster com HA funcional.&lt;br /&gt;
&lt;br /&gt;
== Diagrama ==&lt;br /&gt;
O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em &#039;&#039;&#039;Cluster&#039;&#039;&#039; com &#039;&#039;&#039;CEPH&#039;&#039;&#039;. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.&lt;br /&gt;
[[Arquivo:Diagrama cluster ceph.png|nenhum|miniaturadaimagem|522x522px]]&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux 13 (Trixie).&lt;br /&gt;
* Uma máquina com 4G ou 8G de ram.&lt;br /&gt;
* 1 SSD para instalar o sistema.&lt;br /&gt;
* 1 SSD para servir de &#039;&#039;&#039;OSD&#039;&#039;&#039; no &#039;&#039;&#039;CEPH&#039;&#039;&#039;.&lt;br /&gt;
*3 interfaces de rede. Uma para o acesso, outra para o &#039;&#039;&#039;Cluster&#039;&#039;&#039; e outra para o &#039;&#039;&#039;CEPH&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Configurando o Qdevice no Debian ==&lt;br /&gt;
Uma vez instalado o Debian, precisamos configurar as 3 interfaces para a comunicação com seu Cluster Proxmox. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
* ens18 - IP 10.254.254.27/24 GW 10.254.254.1 (essa seria a interface com acesso à Internet para instalar os programas).&lt;br /&gt;
* ens19 - IP 192.168.1.3/24 (interface que deve se comunicar com a rede do Cluster, com os IPs dos nodes 192.168.1.1 e 192.168.1.2.&lt;br /&gt;
* ens20 - IP 192.168.2.3/24 (interface que se comunica com a rede CEPH, com os IPs 192.168.2.1 e 192.168.2.2.&lt;br /&gt;
&lt;br /&gt;
Precisamos configurar o serviço SSHD para permitir conexão com root, pois o Proxmox vai precisar acessar o Debian. Para isso altere o arquivo &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; o parâmetro abaixo:&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
Reinicie o serviço:&lt;br /&gt;
 # systemctl restart sshd&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1120</id>
		<title>Debian Cluster CEPH</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Debian_Cluster_CEPH&amp;diff=1120"/>
		<updated>2026-04-08T22:06:58Z</updated>

		<summary type="html">&lt;p&gt;Gondim: Criou página com &amp;#039;== Introdução == Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &amp;#039;&amp;#039;&amp;#039;Cluster&amp;#039;&amp;#039;&amp;#039; deve ser composto de no &amp;#039;&amp;#039;&amp;#039;mínimo 3 nodes&amp;#039;&amp;#039;&amp;#039; para que possa dar segurança, existir &amp;#039;&amp;#039;&amp;#039;quorum&amp;#039;&amp;#039;&amp;#039; e quando usamos &amp;#039;&amp;#039;&amp;#039;CEPH&amp;#039;&amp;#039;&amp;#039; também precisamos de pelo menos 3 &amp;#039;&amp;#039;&amp;#039;OSDs&amp;#039;&amp;#039;&amp;#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
Este artigo tem como foco explicar como adicionar um Debian GNU/Linux em um Proxmox Cluster + HA com 2 nodes. Como muitos sabem, um &#039;&#039;&#039;Cluster&#039;&#039;&#039; deve ser composto de no &#039;&#039;&#039;mínimo 3 nodes&#039;&#039;&#039; para que possa dar segurança, existir &#039;&#039;&#039;quorum&#039;&#039;&#039; e quando usamos &#039;&#039;&#039;CEPH&#039;&#039;&#039; também precisamos de pelo menos 3 &#039;&#039;&#039;OSDs&#039;&#039;&#039; para termos uma estabilidade e segurança no sistema. O problema é quando se quer fazer  isso com apenas 2 servidores Proxmox. Comprar um terceiro servidor às vezes ainda não está nos planos mas você tem uma máquina parada, onde você pode adicionar 2 SSDs e com 4G de ram você pode adicionar ela no &#039;&#039;&#039;Cluster&#039;&#039;&#039; para servir de quorum e de disco &#039;&#039;&#039;CEPH&#039;&#039;&#039;.  Dessa maneira você consegue com 2 servidores &#039;&#039;&#039;Proxmox&#039;&#039;&#039; e uma máquina que chamei de &#039;&#039;&#039;Quorum Device&#039;&#039;&#039;, colocar em produção um Cluster com HA funcional.&lt;br /&gt;
&lt;br /&gt;
== Diagrama ==&lt;br /&gt;
O diagrama abaixo será o ambiente de exemplo mas não falaremos de como construir um Cluster + HA com Proxmox. Nesse caso você precisará ter os 2 servidores já instalados e configurados em &#039;&#039;&#039;Cluster&#039;&#039;&#039; com &#039;&#039;&#039;CEPH&#039;&#039;&#039;. Aqui vamos apenas mostrar como adicionar um Debian GNU/Linux nesse Cluster e no CEPH.&lt;br /&gt;
[[Arquivo:Diagrama cluster ceph.png|nenhum|miniaturadaimagem|522x522px]]&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux 13 (Trixie).&lt;br /&gt;
* Uma máquina com 4G ou 8G de ram.&lt;br /&gt;
* 1 SSD para instalar o sistema.&lt;br /&gt;
* 1 SSD para servir de OSD no CEPH.&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Diagrama_cluster_ceph.png&amp;diff=1119</id>
		<title>Arquivo:Diagrama cluster ceph.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Diagrama_cluster_ceph.png&amp;diff=1119"/>
		<updated>2026-04-08T21:58:17Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;diagrama_cluster_ceph&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Sobre_mim&amp;diff=1118</id>
		<title>Sobre mim</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Sobre_mim&amp;diff=1118"/>
		<updated>2026-04-01T20:15:05Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Marcelo Gondim da Cunha ===&lt;br /&gt;
[[Arquivo:Gondim paisagem.jpg|esquerda|miniaturadaimagem]]&lt;br /&gt;
&#039;&#039;&#039;Contribuições e trabalhos:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Administração de Sistemas Unix-Like desde 1996.&lt;br /&gt;
* Consultor na Conectiva S/A - Unidade Rio em 2000.&lt;br /&gt;
* Autor do projeto TuxFrw - https://github.com/gondimcodes/tuxfrw e https://github.com/gondimcodes/tuxfrw-nft&lt;br /&gt;
* Administração de sistemas BSD pela FreeBSD Brasil em 2010.&lt;br /&gt;
* Direção do AS53135 - Nettel Telecomunicações entre 2003 e 2021 atingindo a marca de 41.000 assinantes. Gerando qualidade na entrega de serviços e implantando boas práticas como: &lt;br /&gt;
&lt;br /&gt;
a) IPv6.&lt;br /&gt;
&lt;br /&gt;
b) MANRS.&lt;br /&gt;
&lt;br /&gt;
c) RPKI.&lt;br /&gt;
&lt;br /&gt;
d) CPEs com firmware baseada na BCOP &amp;lt;nowiki&amp;gt;https://www.m3aawg.org/sites/default/files/lac-bcop-1-m3aawg-v1-portuguese-final.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* SOC Specialist na Brasil TecPar (AS262907) de 2022 a 2025. Um milhão de clientes. Responsável pelas estratégias de mitigação anti-DDoS atendendo as Operações de RJ, SP, RS, SC, MT e MS. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Palestras ministradas:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Semana da Informática UERJ 2002 - TuxFrw.&lt;br /&gt;
* CONISLI 2003 - TuxFrw.&lt;br /&gt;
* CONISLI 2004 - Fazendo compras com Gentoo Linux - Palestra sobre a distribuição Linux e suas ferramentas fantásticas.&lt;br /&gt;
* CONISLI 2004 - OpenVPN - Palestra sobre como criar VPNs seguras com OpenVPN e diferenças entre ele e o IPSec.&lt;br /&gt;
* CONISLI 2005 - SPoP (Security Point of Presence) com OpenVPN - Como utilizar túneis encriptados do OpenVPN para acessar a Internet de forma segura, onde quer que esteja.&lt;br /&gt;
* SECOMP 2005 UNIFEI - TuxFrw.&lt;br /&gt;
&lt;br /&gt;
* Debconf19 2019 - [https://debconf19.debconf.org/talks/4-debian-na-vida-de-uma-operadora-de-telecom/ Debian na vida de uma operadora de Telecom], [https://www.youtube.com/watch?v=vQSTslUZy8k&amp;amp;list=PLYUtdmpYPTTJDtwgD8AtxzFJ9t_URhFMK&amp;amp;index=35 vídeo] e [https://salsa.debian.org/debconf-team/public/share/debconf19/raw/master/slides/4-debian-na-vida-de-uma-operadora-de-telecom.pdf?inline=false pdf].&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=5uOFtkplDts FiqueEmCasaUseDebian - CGNAT com NFTables] e [https://www.youtube.com/watch?v=Wz2IAg6MMlU SysAdmin apps].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artigos desenvolvidos para a comunidade do Brasil Peering Fórum:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/CGNAT_na_pratica CGNAT na pratica].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Acesso_via_IPv6_Link-Local Acesso via IPv6 Link-Local].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/MANRS MANRS].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/CGNAT_Bulk_Port_Allocation_com_DPDK CGNAT Bulk Port Allocation com DPDK].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Servidor_de_Logs Servidor de Logs].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/DNS_Recursivo_Anycast_Hyperlocal DNS Anycast com Hyperlocal].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Portas_de_Amplifica%C3%A7%C3%A3o_DDoS_e_Botnets Portas de Amplificação DDoS e Botnets]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Static_Loop_-_um_erro_que_pode_matar_seu_ISP/ITP Static Loop - um erro que pode matar seu ISP/ITP]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Recomenda%C3%A7%C3%B5es_sobre_Mitiga%C3%A7%C3%A3o_DDoS Recomendações sobre Mitigação DDoS]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Vazamento_de_prefixos_na_mitiga%C3%A7%C3%A3o_DDoS Vazamento de prefixos na mitigação DDoS]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Identificando_e_neutralizando_uma_Botnet Identificando e neutralizando uma Botnet]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://bit.ly/2saumHK Segurança de roteamento: MANRS (Mutually Agreed Norms for Routing Security) - Tutoriais NIC.br em 09/12/2019].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://www.manrs.org/about/advisory-group/members/ MANRS Advisory Group Member (2020-2021)]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=oahQkGx8urY &#039;&#039;&#039;Live sobre MANRS com Leonardo Furtado&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
Criação da Wiki ISPUP! em 24/12/2022.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Semana de Capacitação 6 do NIC.br 28/04/2023&#039;&#039;&#039; - &amp;quot;&#039;&#039;&#039;CONCEITOS E IMPLEMENTAÇÃO DE CGNAT&amp;quot;&#039;&#039;&#039;. Material [https://semanacap.bcp.nic.br/6-online/ aqui] e vídeo aula [https://www.youtube.com/watch?v=1q7J3NkQVSc aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Semana de Capacitação 10 do NIC.br 01/07/2025&#039;&#039;&#039; - &amp;quot;&#039;&#039;&#039;Teste para padrões técnicos modernos de Internet e segurança: IPv6, DNSSEC, TLS, HTTPS e HSTS&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;.&#039;&#039;&#039; Material [https://semanacap.bcp.nic.br/semana-de-capacitacao-online-edicao-10-2025/ aqui] e vídeo aula [https://www.youtube.com/watch?v=55RBnGQhi2o aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IX Fórum Regional Sudeste (Rio de Janeiro) 24/10/2025&#039;&#039;&#039; com a palestra &amp;quot;&#039;&#039;&#039;Segurança com o pé direito&#039;&#039;&#039;&amp;quot; pode ser baixada [https://regional.forum.ix.br/files/apresentacao/arquivo/2307/gondim.pdf aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fórum BCOP-ICANN Edição Especial DNS 19/12/2025&#039;&#039;&#039; com o painel &amp;quot;&#039;&#039;&#039;DNS em Ação: Como os provedores estão implantando as Boas Práticas&amp;quot;&#039;&#039;&#039; com &#039;&#039;&#039;apresentação&#039;&#039;&#039; [https://forumbcop.nic.br/files/apresentacao/arquivo/2428/DNS_KINDNS_Reduzido.pdf aqui] e vídeo [https://www.youtube.com/live/GnYK9UOLXr4?t=10257s aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fórum BCOP Fortaleza&#039;&#039;&#039; com a palestra: &amp;quot;&#039;&#039;&#039;Recomendações de segurança para provedores&amp;quot;&#039;&#039;&#039; com apresentação [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2487/Marcelo_Gondim_Recomendacoes_seguranca_provedores.pdf aqui] e vídeo [https://youtu.be/Qjgb7P3cG8k?t=9237 aqui]&#039;&#039;&#039;.&#039;&#039;&#039; Os arquivos anexos de configuração: [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2489/Marcelo_Gondim_filtros_edge_huawei.pdf filtros_edge_huawei], [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2490/spoofer.pdf spoofer] e [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2491/filtros_bng_huawei.pdf filtros_bng_huawei]. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moeda recebida pelo NIC.br por contribuir com conhecimento palestrando na Semana de Infraestrutura da Internet no Brasil em 2025:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Moeda1.jpg|nenhum|miniaturadaimagem|407x407px]]&lt;br /&gt;
&#039;&#039;&#039;Moeda comemorativa de 5 anos recebida pelo NIC.br em 2025 por contribuir com conhecimento para a Semana de Capacitação e Camada 8:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Moeda2.jpg|nenhum|miniaturadaimagem|407x407px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moeda IX Fórum Fortaleza 2026:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Frum-bcop-fortaleza-2026 55178462504 o.jpg|esquerda|miniaturadaimagem|470x470px]]&lt;br /&gt;
[[Arquivo:Frum-bcop-fortaleza-2026 55178206816 o.jpg|nenhum|miniaturadaimagem|447x447px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Webinar:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Proteção e Mitigação de ataques DDoS em 10/09/2024 às 20:00 UTC -3. Site da chamada [https://gdg.community.dev/events/details/google-gdg-sinop-presents-webinar-ao-vivo-protecao-e-mitigacao-de-ataques-ddos/ aqui] e o vídeo da live no Youtube [https://www.youtube.com/live/7VIaoDQaLQE aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Podcast:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/live/x4fxtma4eyQ Segurança de Rede e Infraestrutura para 2025: Preparando os ISPs para o futuro!] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contatos:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Telegram: &#039;&#039;&#039;@Marcelo_Gondim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
WhatsApp: +55 (22) 99743-9060&lt;br /&gt;
&lt;br /&gt;
E-mail: &#039;&#039;&#039;gondim at gmail.com&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Linkedin: https://www.linkedin.com/in/marcelo-gondim-sysadmin/&lt;br /&gt;
&lt;br /&gt;
Meu Github: https://github.com/gondimcodes&lt;br /&gt;
==Mini-CV==&lt;br /&gt;
&#039;&#039;&#039;Marcelo Gondim&#039;&#039;&#039; começou sua carreira como desenvolvedor de software em COBOL e Clipper entre 1992 e 1995. Em 1996 foi responsável por desenvolver um sistema concorrente com o RENPAC da Embratel para acesso ao SISCOMEX e implantou a Internet para fins comerciais na empresa DATABRAS. Trabalhou como consultor e instrutor de GNU/Linux na Conectiva S/A em 2000. Em 2003 se tornou consultor de diversos Provedores de Internet na Região dos Lagos - RJ e onde acabou se tornando CTO da Nettel Telecomunicações (AS53135) com 42.000 assinantes. Implantou IPv6 iniciando em 2013 e se tornou participante do MANRS com diversas contribuições com artigos e palestras. Trabalhou como Especialista em Redes e SOC (Security Operations Center) na Brasil TecPar AS262907 entre 2022 e 2025, onde implementou boas práticas, tratamentos de incidentes relacionados ao ASN, desenvolveu as estratégias de Mitigação DDoS e uma Rede de DNS Recursivo Anycast espalhada pelo RS, RJ, SP, SC MT e MS, também certificada KINDNS. Fundador da empresa ISPFocus especializada em Tecnologia da Informação e boas práticas para ISPs.&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Sobre_mim&amp;diff=1117</id>
		<title>Sobre mim</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Sobre_mim&amp;diff=1117"/>
		<updated>2026-04-01T20:14:29Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Marcelo Gondim da Cunha ===&lt;br /&gt;
[[Arquivo:Gondim paisagem.jpg|esquerda|miniaturadaimagem]]&lt;br /&gt;
&#039;&#039;&#039;Contribuições e trabalhos:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Administração de Sistemas Unix-Like desde 1996.&lt;br /&gt;
* Consultor na Conectiva S/A - Unidade Rio em 2000.&lt;br /&gt;
* Autor do projeto TuxFrw - https://github.com/gondimcodes/tuxfrw e https://github.com/gondimcodes/tuxfrw-nft&lt;br /&gt;
* Administração de sistemas BSD pela FreeBSD Brasil em 2010.&lt;br /&gt;
* Direção do AS53135 - Nettel Telecomunicações entre 2003 e 2021 atingindo a marca de 41.000 assinantes. Gerando qualidade na entrega de serviços e implantando boas práticas como: &lt;br /&gt;
&lt;br /&gt;
a) IPv6.&lt;br /&gt;
&lt;br /&gt;
b) MANRS.&lt;br /&gt;
&lt;br /&gt;
c) RPKI.&lt;br /&gt;
&lt;br /&gt;
d) CPEs com firmware baseada na BCOP &amp;lt;nowiki&amp;gt;https://www.m3aawg.org/sites/default/files/lac-bcop-1-m3aawg-v1-portuguese-final.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* SOC Specialist na Brasil TecPar (AS262907) de 2022 a 2025. Um milhão de clientes. Responsável pelas estratégias de mitigação anti-DDoS atendendo as Operações de RJ, SP, RS, SC, MT e MS. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Palestras ministradas:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Semana da Informática UERJ 2002 - TuxFrw.&lt;br /&gt;
* CONISLI 2003 - TuxFrw.&lt;br /&gt;
* CONISLI 2004 - Fazendo compras com Gentoo Linux - Palestra sobre a distribuição Linux e suas ferramentas fantásticas.&lt;br /&gt;
* CONISLI 2004 - OpenVPN - Palestra sobre como criar VPNs seguras com OpenVPN e diferenças entre ele e o IPSec.&lt;br /&gt;
* CONISLI 2005 - SPoP (Security Point of Presence) com OpenVPN - Como utilizar túneis encriptados do OpenVPN para acessar a Internet de forma segura, onde quer que esteja.&lt;br /&gt;
* SECOMP 2005 UNIFEI - TuxFrw.&lt;br /&gt;
&lt;br /&gt;
* Debconf19 2019 - [https://debconf19.debconf.org/talks/4-debian-na-vida-de-uma-operadora-de-telecom/ Debian na vida de uma operadora de Telecom], [https://www.youtube.com/watch?v=vQSTslUZy8k&amp;amp;list=PLYUtdmpYPTTJDtwgD8AtxzFJ9t_URhFMK&amp;amp;index=35 vídeo] e [https://salsa.debian.org/debconf-team/public/share/debconf19/raw/master/slides/4-debian-na-vida-de-uma-operadora-de-telecom.pdf?inline=false pdf].&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=5uOFtkplDts FiqueEmCasaUseDebian - CGNAT com NFTables] e [https://www.youtube.com/watch?v=Wz2IAg6MMlU SysAdmin apps].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artigos desenvolvidos para a comunidade do Brasil Peering Fórum:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/CGNAT_na_pratica CGNAT na pratica].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Acesso_via_IPv6_Link-Local Acesso via IPv6 Link-Local].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/MANRS MANRS].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/CGNAT_Bulk_Port_Allocation_com_DPDK CGNAT Bulk Port Allocation com DPDK].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Servidor_de_Logs Servidor de Logs].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/DNS_Recursivo_Anycast_Hyperlocal DNS Anycast com Hyperlocal].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Portas_de_Amplifica%C3%A7%C3%A3o_DDoS_e_Botnets Portas de Amplificação DDoS e Botnets]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Static_Loop_-_um_erro_que_pode_matar_seu_ISP/ITP Static Loop - um erro que pode matar seu ISP/ITP]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Recomenda%C3%A7%C3%B5es_sobre_Mitiga%C3%A7%C3%A3o_DDoS Recomendações sobre Mitigação DDoS]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Vazamento_de_prefixos_na_mitiga%C3%A7%C3%A3o_DDoS Vazamento de prefixos na mitigação DDoS]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Identificando_e_neutralizando_uma_Botnet Identificando e neutralizando uma Botnet]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://bit.ly/2saumHK Segurança de roteamento: MANRS (Mutually Agreed Norms for Routing Security) - Tutoriais NIC.br em 09/12/2019].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://www.manrs.org/about/advisory-group/members/ MANRS Advisory Group Member (2020-2021)]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=oahQkGx8urY &#039;&#039;&#039;Live sobre MANRS com Leonardo Furtado&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
Criação da Wiki ISPUP! em 24/12/2022.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Semana de Capacitação 6 do NIC.br 28/04/2023&#039;&#039;&#039; - &amp;quot;&#039;&#039;&#039;CONCEITOS E IMPLEMENTAÇÃO DE CGNAT&amp;quot;&#039;&#039;&#039;. Material [https://semanacap.bcp.nic.br/6-online/ aqui] e vídeo aula [https://www.youtube.com/watch?v=1q7J3NkQVSc aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Semana de Capacitação 10 do NIC.br 01/07/2025&#039;&#039;&#039; - &amp;quot;&#039;&#039;&#039;Teste para padrões técnicos modernos de Internet e segurança: IPv6, DNSSEC, TLS, HTTPS e HSTS&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;.&#039;&#039;&#039; Material [https://semanacap.bcp.nic.br/semana-de-capacitacao-online-edicao-10-2025/ aqui] e vídeo aula [https://www.youtube.com/watch?v=55RBnGQhi2o aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IX Fórum Regional Sudeste (Rio de Janeiro) 24/10/2025&#039;&#039;&#039; com a palestra &amp;quot;&#039;&#039;&#039;Segurança com o pé direito&#039;&#039;&#039;&amp;quot; pode ser baixada [https://regional.forum.ix.br/files/apresentacao/arquivo/2307/gondim.pdf aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fórum BCOP-ICANN Edição Especial DNS 19/12/2025&#039;&#039;&#039; com o painel &amp;quot;&#039;&#039;&#039;DNS em Ação: Como os provedores estão implantando as Boas Práticas&amp;quot;&#039;&#039;&#039; com &#039;&#039;&#039;apresentação&#039;&#039;&#039; [https://forumbcop.nic.br/files/apresentacao/arquivo/2428/DNS_KINDNS_Reduzido.pdf aqui] e vídeo [https://www.youtube.com/live/GnYK9UOLXr4?t=10257s aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fórum BCOP Fortaleza&#039;&#039;&#039; com a palestra: &amp;quot;&#039;&#039;&#039;Recomendações de segurança para provedores&amp;quot;&#039;&#039;&#039; com apresentação [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2487/Marcelo_Gondim_Recomendacoes_seguranca_provedores.pdf aqui] e vídeo [https://youtu.be/Qjgb7P3cG8k?t=9237 aqui]&#039;&#039;&#039;.&#039;&#039;&#039; Os arquivos anexos de configuração: [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2489/Marcelo_Gondim_filtros_edge_huawei.pdf filtros_edge_huawei], [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2490/spoofer.pdf spoofer] e [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2491/filtros_bng_huawei.pdf filtros_bng_huawei]. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moeda recebida pelo NIC.br por contribuir com conhecimento palestrando na Semana de Infraestrutura da Internet no Brasil em 2025:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Moeda1.jpg|nenhum|miniaturadaimagem|407x407px]]&lt;br /&gt;
&#039;&#039;&#039;Moeda comemorativa de 5 anos recebida pelo NIC.br em 2025 por contribuir com conhecimento para a Semana de Capacitação e Camada 8:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Moeda2.jpg|nenhum|miniaturadaimagem|407x407px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moeda IX Fórum Fortaleza 2026:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Frum-bcop-fortaleza-2026 55178462504 o.jpg|esquerda|miniaturadaimagem|470x470px]]&lt;br /&gt;
[[Arquivo:Frum-bcop-fortaleza-2026 55178206816 o.jpg|nenhum|miniaturadaimagem|447x447px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Webinar:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Proteção e Mitigação de ataques DDoS em 10/09/2024 às 20:00 UTC -3. Site da chamada [https://gdg.community.dev/events/details/google-gdg-sinop-presents-webinar-ao-vivo-protecao-e-mitigacao-de-ataques-ddos/ aqui] e o vídeo da live no Youtube [https://www.youtube.com/live/7VIaoDQaLQE aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Podcast:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/live/x4fxtma4eyQ Segurança de Rede e Infraestrutura para 2025: Preparando os ISPs para o futuro!] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contatos:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Telegram: &#039;&#039;&#039;@Marcelo_Gondim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
WhatsApp: +55 (22) 99743-9060&lt;br /&gt;
&lt;br /&gt;
E-mail: &#039;&#039;&#039;gondim at gmail.com&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Linkedin: https://www.linkedin.com/in/marcelo-gondim-sysadmin/&lt;br /&gt;
&lt;br /&gt;
Meu Github: https://github.com/gondimcodes&lt;br /&gt;
==Mini-CV==&lt;br /&gt;
&#039;&#039;&#039;Marcelo Gondim&#039;&#039;&#039; começou sua carreira como desenvolvedor de software em COBOL e Clipper entre 1992 e 1995. Em 1996 foi responsável por desenvolver um sistema concorrente com o RENPAC da Embratel para acesso ao SISCOMEX e implantou a Internet para fins comerciais na empresa DATABRAS. Trabalhou como consultor e instrutor de GNU/Linux na Conectiva S/A em 2000. Em 2003 se tornou consultor de diversos Provedores de Internet na Região dos Lagos - RJ e onde acabou se tornando CTO da Nettel Telecomunicações (AS53135) com 42.000 assinantes. Implantou IPv6 iniciando em 2013 e se tornou participante do MANRS com diversas contribuições com artigos e palestras. Trabalhou como Especialista em Redes e SOC (Security Operations Center) na Brasil TecPar AS262907 entre 2022 e 2025, onde implementou boas práticas, tratamentos de incidentes relacionados ao ASN, desenvolveu as estratégias de Mitigação DDoS e uma Rede de DNS Recursivo Anycast espalhada pelo RS, RJ, SP, SC MT e MS, também certificada KINDNS. Fundador da empresa ISPFocus especializada em Tecnologia da Informação e boas práticas para ISPs.&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Sobre_mim&amp;diff=1116</id>
		<title>Sobre mim</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Sobre_mim&amp;diff=1116"/>
		<updated>2026-04-01T20:11:27Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Marcelo Gondim da Cunha ===&lt;br /&gt;
[[Arquivo:Gondim paisagem.jpg|esquerda|miniaturadaimagem]]&lt;br /&gt;
&#039;&#039;&#039;Contribuições e trabalhos:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Administração de Sistemas Unix-Like desde 1996.&lt;br /&gt;
* Consultor na Conectiva S/A - Unidade Rio em 2000.&lt;br /&gt;
* Autor do projeto TuxFrw - https://github.com/gondimcodes/tuxfrw e https://github.com/gondimcodes/tuxfrw-nft&lt;br /&gt;
* Administração de sistemas BSD pela FreeBSD Brasil em 2010.&lt;br /&gt;
* Direção do AS53135 - Nettel Telecomunicações entre 2003 e 2021 atingindo a marca de 41.000 assinantes. Gerando qualidade na entrega de serviços e implantando boas práticas como: &lt;br /&gt;
&lt;br /&gt;
a) IPv6.&lt;br /&gt;
&lt;br /&gt;
b) MANRS.&lt;br /&gt;
&lt;br /&gt;
c) RPKI.&lt;br /&gt;
&lt;br /&gt;
d) CPEs com firmware baseada na BCOP &amp;lt;nowiki&amp;gt;https://www.m3aawg.org/sites/default/files/lac-bcop-1-m3aawg-v1-portuguese-final.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* SOC Specialist na Brasil TecPar (AS262907) de 2022 a 2025. Um milhão de clientes. Responsável pelas estratégias de mitigação anti-DDoS atendendo as Operações de RJ, SP, RS, SC, MT e MS. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Palestras ministradas:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Semana da Informática UERJ 2002 - TuxFrw.&lt;br /&gt;
* CONISLI 2003 - TuxFrw.&lt;br /&gt;
* CONISLI 2004 - Fazendo compras com Gentoo Linux - Palestra sobre a distribuição Linux e suas ferramentas fantásticas.&lt;br /&gt;
* CONISLI 2004 - OpenVPN - Palestra sobre como criar VPNs seguras com OpenVPN e diferenças entre ele e o IPSec.&lt;br /&gt;
* CONISLI 2005 - SPoP (Security Point of Presence) com OpenVPN - Como utilizar túneis encriptados do OpenVPN para acessar a Internet de forma segura, onde quer que esteja.&lt;br /&gt;
* SECOMP 2005 UNIFEI - TuxFrw.&lt;br /&gt;
&lt;br /&gt;
* Debconf19 2019 - [https://debconf19.debconf.org/talks/4-debian-na-vida-de-uma-operadora-de-telecom/ Debian na vida de uma operadora de Telecom], [https://www.youtube.com/watch?v=vQSTslUZy8k&amp;amp;list=PLYUtdmpYPTTJDtwgD8AtxzFJ9t_URhFMK&amp;amp;index=35 vídeo] e [https://salsa.debian.org/debconf-team/public/share/debconf19/raw/master/slides/4-debian-na-vida-de-uma-operadora-de-telecom.pdf?inline=false pdf].&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=5uOFtkplDts FiqueEmCasaUseDebian - CGNAT com NFTables] e [https://www.youtube.com/watch?v=Wz2IAg6MMlU SysAdmin apps].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artigos desenvolvidos para a comunidade do Brasil Peering Fórum:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/CGNAT_na_pratica CGNAT na pratica].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Acesso_via_IPv6_Link-Local Acesso via IPv6 Link-Local].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/MANRS MANRS].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/CGNAT_Bulk_Port_Allocation_com_DPDK CGNAT Bulk Port Allocation com DPDK].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Servidor_de_Logs Servidor de Logs].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/DNS_Recursivo_Anycast_Hyperlocal DNS Anycast com Hyperlocal].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Portas_de_Amplifica%C3%A7%C3%A3o_DDoS_e_Botnets Portas de Amplificação DDoS e Botnets]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Static_Loop_-_um_erro_que_pode_matar_seu_ISP/ITP Static Loop - um erro que pode matar seu ISP/ITP]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Recomenda%C3%A7%C3%B5es_sobre_Mitiga%C3%A7%C3%A3o_DDoS Recomendações sobre Mitigação DDoS]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Vazamento_de_prefixos_na_mitiga%C3%A7%C3%A3o_DDoS Vazamento de prefixos na mitigação DDoS]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Identificando_e_neutralizando_uma_Botnet Identificando e neutralizando uma Botnet]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://bit.ly/2saumHK Segurança de roteamento: MANRS (Mutually Agreed Norms for Routing Security) - Tutoriais NIC.br em 09/12/2019].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://www.manrs.org/about/advisory-group/members/ MANRS Advisory Group Member (2020-2021)]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=oahQkGx8urY &#039;&#039;&#039;Live sobre MANRS com Leonardo Furtado&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
Criação da Wiki ISPUP! em 24/12/2022.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Semana de Capacitação 6 do NIC.br 28/04/2023&#039;&#039;&#039; - &amp;quot;&#039;&#039;&#039;CONCEITOS E IMPLEMENTAÇÃO DE CGNAT&amp;quot;&#039;&#039;&#039;. Material [https://semanacap.bcp.nic.br/6-online/ aqui] e vídeo aula [https://www.youtube.com/watch?v=1q7J3NkQVSc aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Semana de Capacitação 10 do NIC.br 01/07/2025&#039;&#039;&#039; - &amp;quot;&#039;&#039;&#039;Teste para padrões técnicos modernos de Internet e segurança: IPv6, DNSSEC, TLS, HTTPS e HSTS&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;.&#039;&#039;&#039; Material [https://semanacap.bcp.nic.br/semana-de-capacitacao-online-edicao-10-2025/ aqui] e vídeo aula [https://www.youtube.com/watch?v=55RBnGQhi2o aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IX Fórum Regional Sudeste (Rio de Janeiro) 24/10/2025&#039;&#039;&#039; com a palestra &amp;quot;&#039;&#039;&#039;Segurança com o pé direito&#039;&#039;&#039;&amp;quot; pode ser baixada [https://regional.forum.ix.br/files/apresentacao/arquivo/2307/gondim.pdf aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fórum BCOP-ICANN Edição Especial DNS 19/12/2025&#039;&#039;&#039; com o painel &amp;quot;&#039;&#039;&#039;DNS em Ação: Como os provedores estão implantando as Boas Práticas&amp;quot;&#039;&#039;&#039; com &#039;&#039;&#039;apresentação&#039;&#039;&#039; [https://forumbcop.nic.br/files/apresentacao/arquivo/2428/DNS_KINDNS_Reduzido.pdf aqui] e vídeo [https://www.youtube.com/live/GnYK9UOLXr4?t=10257s aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fórum BCOP Fortaleza&#039;&#039;&#039; com a palestra: &amp;quot;&#039;&#039;&#039;Recomendações de segurança para provedores&amp;quot;&#039;&#039;&#039; com apresentação [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2487/Marcelo_Gondim_Recomendacoes_seguranca_provedores.pdf aqui] e vídeo [https://youtu.be/Qjgb7P3cG8k?t=9237 aqui]&#039;&#039;&#039;.&#039;&#039;&#039; Os arquivos anexos de configuração: [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2489/Marcelo_Gondim_filtros_edge_huawei.pdf filtros_edge_huawei], [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2490/spoofer.pdf spoofer] e [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2491/filtros_bng_huawei.pdf filtros_bng_huawei]. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moeda recebida pelo NIC.br por contribuir com conhecimento palestrando na Semana de Infraestrutura da Internet no Brasil em 2025:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Moeda1.jpg|nenhum|miniaturadaimagem|407x407px]]&lt;br /&gt;
&#039;&#039;&#039;Moeda comemorativa de 5 anos recebida pelo NIC.br em 2025 por contribuir com conhecimento para a Semana de Capacitação e Camada 8:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Moeda2.jpg|nenhum|miniaturadaimagem|407x407px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moeda IX Fórum Fortaleza 2026:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Frum-bcop-fortaleza-2026 55178462504 o.jpg|esquerda|miniaturadaimagem|470x470px]]&lt;br /&gt;
[[Arquivo:Frum-bcop-fortaleza-2026 55178206816 o.jpg|nenhum|miniaturadaimagem|447x447px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Webinar:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Proteção e Mitigação de ataques DDoS em 10/09/2024 às 20:00 UTC -3. Site da chamada [https://gdg.community.dev/events/details/google-gdg-sinop-presents-webinar-ao-vivo-protecao-e-mitigacao-de-ataques-ddos/ aqui] e o vídeo da live no Youtube [https://www.youtube.com/live/7VIaoDQaLQE aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Podcast:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/live/x4fxtma4eyQ Segurança de Rede e Infraestrutura para 2025: Preparando os ISPs para o futuro!] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contatos:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Telegram: &#039;&#039;&#039;@Marcelo_Gondim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
WhatsApp: +55 (22) 99743-9060&lt;br /&gt;
&lt;br /&gt;
E-mail: &#039;&#039;&#039;gondim at gmail.com&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Linkedin: https://www.linkedin.com/in/marcelo-gondim-sysadmin/&lt;br /&gt;
&lt;br /&gt;
Meu Github: https://github.com/gondimcodes&lt;br /&gt;
==Mini-CV==&lt;br /&gt;
&#039;&#039;&#039;Marcelo Gondim&#039;&#039;&#039; começou sua carreira como desenvolvedor de software em COBOL e Clipper entre 1992 e 1995. Em 1996 foi responsável por desenvolver um sistema concorrente com o RENPAC da Embratel para acesso ao SISCOMEX e implantou a Internet para fins comerciais na empresa DATABRAS. Trabalhou como consultor e instrutor de GNU/Linux na Conectiva S/A em 2000. Em 2003 se tornou consultor de diversos Provedores de Internet na Região dos Lagos - RJ e onde acabou se tornando CTO da Nettel Telecomunicações (AS53135) com 42.000 assinantes. Implantou IPv6 iniciando em 2013 e se tornou participante do MANRS com diversas contribuições com artigos e palestras. Trabalhou como Especialista em Redes e SOC (Security Operations Center) na Brasil TecPar AS262907 entre 2022 e 2025, onde implementou boas práticas, tratamentos de incidentes relacionados ao ASN, desenvolveu as estratégias de Mitigação DDoS e uma Rede de DNS Recursivo Anycast espalhada pelo RS, RJ, SP, SC MT e MS, também certificada KINDNS. Fundador da empresa ISPFocus especializada em Tecnologia da Informação e boas práticas para ISPs.&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Sobre_mim&amp;diff=1115</id>
		<title>Sobre mim</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Sobre_mim&amp;diff=1115"/>
		<updated>2026-04-01T20:05:11Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Marcelo Gondim da Cunha ===&lt;br /&gt;
[[Arquivo:Gondim paisagem.jpg|esquerda|miniaturadaimagem]]&lt;br /&gt;
&#039;&#039;&#039;Contribuições e trabalhos:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Administração de Sistemas Unix-Like desde 1996.&lt;br /&gt;
* Consultor na Conectiva S/A - Unidade Rio em 2000.&lt;br /&gt;
* Autor do projeto TuxFrw - https://github.com/gondimcodes/tuxfrw e https://github.com/gondimcodes/tuxfrw-nft&lt;br /&gt;
* Administração de sistemas BSD pela FreeBSD Brasil em 2010.&lt;br /&gt;
* Direção do AS53135 - Nettel Telecomunicações entre 2003 e 2021 atingindo a marca de 41.000 assinantes. Gerando qualidade na entrega de serviços e implantando boas práticas como: &lt;br /&gt;
&lt;br /&gt;
a) IPv6.&lt;br /&gt;
&lt;br /&gt;
b) MANRS.&lt;br /&gt;
&lt;br /&gt;
c) RPKI.&lt;br /&gt;
&lt;br /&gt;
d) CPEs com firmware baseada na BCOP &amp;lt;nowiki&amp;gt;https://www.m3aawg.org/sites/default/files/lac-bcop-1-m3aawg-v1-portuguese-final.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* SOC Specialist na Brasil TecPar (AS262907) de 2022 a 2025. Um milhão de clientes. Responsável pelas estratégias de mitigação anti-DDoS atendendo as Operações de RJ, SP, RS, SC, MT e MS. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Palestras ministradas:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Semana da Informática UERJ 2002 - TuxFrw.&lt;br /&gt;
* CONISLI 2003 - TuxFrw.&lt;br /&gt;
* CONISLI 2004 - Fazendo compras com Gentoo Linux - Palestra sobre a distribuição Linux e suas ferramentas fantásticas.&lt;br /&gt;
* CONISLI 2004 - OpenVPN - Palestra sobre como criar VPNs seguras com OpenVPN e diferenças entre ele e o IPSec.&lt;br /&gt;
* CONISLI 2005 - SPoP (Security Point of Presence) com OpenVPN - Como utilizar túneis encriptados do OpenVPN para acessar a Internet de forma segura, onde quer que esteja.&lt;br /&gt;
* SECOMP 2005 UNIFEI - TuxFrw.&lt;br /&gt;
&lt;br /&gt;
* Debconf19 2019 - [https://debconf19.debconf.org/talks/4-debian-na-vida-de-uma-operadora-de-telecom/ Debian na vida de uma operadora de Telecom], [https://www.youtube.com/watch?v=vQSTslUZy8k&amp;amp;list=PLYUtdmpYPTTJDtwgD8AtxzFJ9t_URhFMK&amp;amp;index=35 vídeo] e [https://salsa.debian.org/debconf-team/public/share/debconf19/raw/master/slides/4-debian-na-vida-de-uma-operadora-de-telecom.pdf?inline=false pdf].&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=5uOFtkplDts FiqueEmCasaUseDebian - CGNAT com NFTables] e [https://www.youtube.com/watch?v=Wz2IAg6MMlU SysAdmin apps].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artigos desenvolvidos para a comunidade do Brasil Peering Fórum:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/CGNAT_na_pratica CGNAT na pratica].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Acesso_via_IPv6_Link-Local Acesso via IPv6 Link-Local].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/MANRS MANRS].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/CGNAT_Bulk_Port_Allocation_com_DPDK CGNAT Bulk Port Allocation com DPDK].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Servidor_de_Logs Servidor de Logs].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/DNS_Recursivo_Anycast_Hyperlocal DNS Anycast com Hyperlocal].&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Portas_de_Amplifica%C3%A7%C3%A3o_DDoS_e_Botnets Portas de Amplificação DDoS e Botnets]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Static_Loop_-_um_erro_que_pode_matar_seu_ISP/ITP Static Loop - um erro que pode matar seu ISP/ITP]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Recomenda%C3%A7%C3%B5es_sobre_Mitiga%C3%A7%C3%A3o_DDoS Recomendações sobre Mitigação DDoS]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Vazamento_de_prefixos_na_mitiga%C3%A7%C3%A3o_DDoS Vazamento de prefixos na mitigação DDoS]&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Identificando_e_neutralizando_uma_Botnet Identificando e neutralizando uma Botnet]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://bit.ly/2saumHK Segurança de roteamento: MANRS (Mutually Agreed Norms for Routing Security) - Tutoriais NIC.br em 09/12/2019].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://www.manrs.org/about/advisory-group/members/ MANRS Advisory Group Member (2020-2021)]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=oahQkGx8urY &#039;&#039;&#039;Live sobre MANRS com Leonardo Furtado&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
Criação da Wiki ISPUP! em 24/12/2022.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Semana de Capacitação 6 do NIC.br 28/04/2023&#039;&#039;&#039; - &amp;quot;&#039;&#039;&#039;CONCEITOS E IMPLEMENTAÇÃO DE CGNAT&amp;quot;&#039;&#039;&#039;. Material [https://semanacap.bcp.nic.br/6-online/ aqui] e vídeo aula [https://www.youtube.com/watch?v=1q7J3NkQVSc aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Semana de Capacitação 10 do NIC.br 01/07/2025&#039;&#039;&#039; - &amp;quot;&#039;&#039;&#039;Teste para padrões técnicos modernos de Internet e segurança: IPv6, DNSSEC, TLS, HTTPS e HSTS&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;.&#039;&#039;&#039; Material [https://semanacap.bcp.nic.br/semana-de-capacitacao-online-edicao-10-2025/ aqui] e vídeo aula [https://www.youtube.com/watch?v=55RBnGQhi2o aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IX Fórum Regional Sudeste (Rio de Janeiro) 24/10/2025&#039;&#039;&#039; com a palestra &amp;quot;&#039;&#039;&#039;Segurança com o pé direito&#039;&#039;&#039;&amp;quot; pode ser baixada [https://regional.forum.ix.br/files/apresentacao/arquivo/2307/gondim.pdf aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fórum BCOP-ICANN Edição Especial DNS 19/12/2025&#039;&#039;&#039; com o painel &amp;quot;&#039;&#039;&#039;DNS em Ação: Como os provedores estão implantando as Boas Práticas&amp;quot;&#039;&#039;&#039; com &#039;&#039;&#039;apresentação&#039;&#039;&#039; [https://forumbcop.nic.br/files/apresentacao/arquivo/2428/DNS_KINDNS_Reduzido.pdf aqui] e vídeo [https://www.youtube.com/live/GnYK9UOLXr4?t=10257s aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fórum BCOP Fortaleza&#039;&#039;&#039; com a palestra: &amp;quot;&#039;&#039;&#039;Recomendações de segurança para provedores&amp;quot;&#039;&#039;&#039; com apresentação [https://fortaleza.forumbcop.nic.br/files/apresentacao/arquivo/2487/Marcelo_Gondim_Recomendacoes_seguranca_provedores.pdf aqui] e vídeo [https://youtu.be/Qjgb7P3cG8k?t=9237 aqui]&#039;&#039;&#039;.&#039;&#039;&#039; Os arquivos anexos de configuração: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moeda recebida pelo NIC.br por contribuir com conhecimento palestrando na Semana de Infraestrutura da Internet no Brasil em 2025:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Moeda1.jpg|nenhum|miniaturadaimagem|407x407px]]&lt;br /&gt;
&#039;&#039;&#039;Moeda comemorativa de 5 anos recebida pelo NIC.br em 2025 por contribuir com conhecimento para a Semana de Capacitação e Camada 8:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Moeda2.jpg|nenhum|miniaturadaimagem|407x407px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moeda IX Fórum Fortaleza 2026:&#039;&#039;&#039;&lt;br /&gt;
[[Arquivo:Frum-bcop-fortaleza-2026 55178462504 o.jpg|esquerda|miniaturadaimagem|470x470px]]&lt;br /&gt;
[[Arquivo:Frum-bcop-fortaleza-2026 55178206816 o.jpg|nenhum|miniaturadaimagem|447x447px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Webinar:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Proteção e Mitigação de ataques DDoS em 10/09/2024 às 20:00 UTC -3. Site da chamada [https://gdg.community.dev/events/details/google-gdg-sinop-presents-webinar-ao-vivo-protecao-e-mitigacao-de-ataques-ddos/ aqui] e o vídeo da live no Youtube [https://www.youtube.com/live/7VIaoDQaLQE aqui].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Podcast:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/live/x4fxtma4eyQ Segurança de Rede e Infraestrutura para 2025: Preparando os ISPs para o futuro!] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contatos:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Telegram: &#039;&#039;&#039;@Marcelo_Gondim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
WhatsApp: +55 (22) 99743-9060&lt;br /&gt;
&lt;br /&gt;
E-mail: &#039;&#039;&#039;gondim at gmail.com&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Linkedin: https://www.linkedin.com/in/marcelo-gondim-sysadmin/&lt;br /&gt;
&lt;br /&gt;
Meu Github: https://github.com/gondimcodes&lt;br /&gt;
==Mini-CV==&lt;br /&gt;
&#039;&#039;&#039;Marcelo Gondim&#039;&#039;&#039; começou sua carreira como desenvolvedor de software em COBOL e Clipper entre 1992 e 1995. Em 1996 foi responsável por desenvolver um sistema concorrente com o RENPAC da Embratel para acesso ao SISCOMEX e implantou a Internet para fins comerciais na empresa DATABRAS. Trabalhou como consultor e instrutor de GNU/Linux na Conectiva S/A em 2000. Em 2003 se tornou consultor de diversos Provedores de Internet na Região dos Lagos - RJ e onde acabou se tornando CTO da Nettel Telecomunicações (AS53135) com 42.000 assinantes. Implantou IPv6 iniciando em 2013 e se tornou participante do MANRS com diversas contribuições com artigos e palestras. Trabalhou como Especialista em Redes e SOC (Security Operations Center) na Brasil TecPar AS262907 entre 2022 e 2025, onde implementou boas práticas, tratamentos de incidentes relacionados ao ASN, desenvolveu as estratégias de Mitigação DDoS e uma Rede de DNS Recursivo Anycast espalhada pelo RS, RJ, SP, SC MT e MS, também certificada KINDNS. Fundador da empresa ISPFocus especializada em Tecnologia da Informação e boas práticas para ISPs.&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Frum-bcop-fortaleza-2026_55178206816_o.jpg&amp;diff=1114</id>
		<title>Arquivo:Frum-bcop-fortaleza-2026 55178206816 o.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Frum-bcop-fortaleza-2026_55178206816_o.jpg&amp;diff=1114"/>
		<updated>2026-04-01T19:21:32Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Frum-bcop-fortaleza-2026 55178206816 o&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Frum-bcop-fortaleza-2026_55178462504_o.jpg&amp;diff=1113</id>
		<title>Arquivo:Frum-bcop-fortaleza-2026 55178462504 o.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Frum-bcop-fortaleza-2026_55178462504_o.jpg&amp;diff=1113"/>
		<updated>2026-04-01T19:20:49Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Frum-bcop-fortaleza-2026 55178462504 o&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1112</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1112"/>
		<updated>2026-02-07T23:23:51Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Banner no SSH ==&lt;br /&gt;
Primeiramente é interessante comentar que ter um banner informando que o acesso só é permitido para pessoas autorizadas, é uma boa prática. Então aqui vai um exemplo de banner, basta criar o arquivo &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039; com o conteúdo abaixo e alterado para o nome da sua Organização e adicionar em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; com o parâmetro: &#039;&#039;&#039;Banner&#039;&#039;&#039; &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039;. Na sequência só reiniciar o serviço sshd com: &#039;&#039;&#039;systemctl restart sshd&#039;&#039;&#039;. &lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * Este acesso e unica e exclusivamente para pessoas autorizadas.              *&lt;br /&gt;
 * Voce esta prestes a acessar uma area Restrita/Privada, podendo conter       *&lt;br /&gt;
 * informacao confidencial e/ou privilegiada. Este acesso sera monitorado.     *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Se voce nao foi autorizado, desde ja fica notificado de abster-se a         *&lt;br /&gt;
 * divulgar, copiar, distribuir, examinar, de qualquer forma, utilizar a       *&lt;br /&gt;
 * informacao contida neste servidor, por ser ilegal, sujeitando o infrator as *&lt;br /&gt;
 * penas da lei.                                                               *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Precione &amp;lt;Ctrl-D&amp;gt; se voce NAO foi autorizado.                               *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * This access is solely and exclusively for authorized personnel.             *&lt;br /&gt;
 * You are about to access a Restricted/Private area, which may contain        *&lt;br /&gt;
 * confidential and/or privileged information. This access will be monitored.  *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * If you are not authorized, you are hereby notified to refrain from          *&lt;br /&gt;
 * disclosing, copying, distributing, reviewing, or otherwise using the        *&lt;br /&gt;
 * information contained on this server, as it is illegal and will subject     *&lt;br /&gt;
 * the violator to penalties under the law.                                    *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Press &amp;lt;Ctrl-D&amp;gt; if you are NOT authorized.                                   *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no servidor Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Altere em &#039;&#039;&#039;/etc/ssh/sshd&#039;&#039;&#039; para que esses parâmetros fiquem assim:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;br /&gt;
Para essa configuração precisaremos do módulo &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; só que ele não está mais presente nos pacotes do Debian. Nesse caso baixaremos o código fonte do &#039;&#039;&#039;Github&#039;&#039;&#039;, compilaremos e instalaremos no &#039;&#039;&#039;Debian&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instalando os pacotes que precisaremos:&lt;br /&gt;
 # apt install git autoconf build-essential libtool automake libpam-dev libssl-dev gnulib&lt;br /&gt;
Baixando do repositório do &#039;&#039;&#039;Github&#039;&#039;&#039;:&lt;br /&gt;
 # cd /usr/local/src&lt;br /&gt;
 # git clone &amp;lt;nowiki&amp;gt;https://github.com/kravietz/pam_tacplus.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Compilando e instalando o &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039;:&lt;br /&gt;
 # cd pam-tacplus&lt;br /&gt;
 # gnulib-tool --makefile-name=Makefile.gnulib --libtool --import fcntl crypto/md5 array-list list xlist getrandom realloc-posix explicit_bzero xalloc getopt-gnu&lt;br /&gt;
 # autoreconf -f -v -i&lt;br /&gt;
 # ./configure --libdir=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
O módulo usa o serviço PAP no Tacacs+ para autenticação e por isso precisa configurar no seu servidor Tacacs+. Caso esteja usando um servidor Tacacs+ em um GNU/Linux,  precisará definir no arquivo de configuração &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039; se o &#039;&#039;&#039;pap&#039;&#039;&#039; usará usuários criados localmente no servidor pelo &#039;&#039;&#039;useradd&#039;&#039;&#039; ou se usará usuários no próprio arquivo &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039;. Abaixo mostro os 2 exemplos:&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = file /etc/passwd&lt;br /&gt;
 }&lt;br /&gt;
Neste exemplo acima o usuário foi criado no servidor Tacacs+ com o comando: &#039;&#039;&#039;useradd -s /bin/false &amp;lt;user&amp;gt;&#039;&#039;&#039; e depois setada a senha com: &#039;&#039;&#039;passwd &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
OU&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = cleartext &amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
Nesse último exemplo você precisará definir a senha do usuário no lugar de &#039;&#039;&#039;&amp;lt;senha_forte&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Radius Server ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039;, comente a linha com &#039;&#039;&#039;@include common-auth&#039;&#039;&#039; e adicione antes:&lt;br /&gt;
 auth    required                        pam_radius_auth.so&lt;br /&gt;
 auth    required                        pam_google_authenticator.so&lt;br /&gt;
Nesse momento você poderá testar o &#039;&#039;&#039;SSH&#039;&#039;&#039; para o seu servidor e verá algo assim:&lt;br /&gt;
[[Arquivo:Tela autenticacao2.png|nenhum|miniaturadaimagem|740x740px]]&lt;br /&gt;
Primeiro o sistema irá pedir a sua &#039;&#039;&#039;senha cadastrada no seu Radius Server&#039;&#039;&#039; e depois o seu &#039;&#039;&#039;token&#039;&#039;&#039; do &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; e somente se passar o correto em ambas é que será liberado o acesso.&lt;br /&gt;
&lt;br /&gt;
Caso necessite que o usuário se torne root utilizando &#039;&#039;&#039;sudo&#039;&#039;&#039;, faça a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; e adicione o usuário no &#039;&#039;&#039;grupo sudo&#039;&#039;&#039; com o comando: &#039;&#039;&#039;usermod -aG sudo &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Tacacs+ Server ==&lt;br /&gt;
Para configurarmos a autenticação usando &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, faremos a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039; e &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; só que um pouco diferente e não esquecer de comentar a linha &#039;&#039;&#039;@include common-auth&#039;&#039;&#039;.&lt;br /&gt;
 auth       required pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 account    required pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt; service=shell&lt;br /&gt;
 session    required pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt; service=shell&lt;br /&gt;
 auth       required pam_google_authenticator.so&lt;br /&gt;
Acima o parâmetro &#039;&#039;&#039;server=&#039;&#039;&#039; é o IP do seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;secret=&#039;&#039;&#039; é a &#039;&#039;&#039;secret key&#039;&#039;&#039; utilizada no seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Gostou deste artigo? Se lhe foi útil compartilhe também com seus colegas este conteúdo. Precisa de configurar um servidor Radius/Tacacs+ para autenticar usuários em seus sistemas e equipamentos? Nos procure em https://ispfocus.net.br ou através do QR Code abaixo.&lt;br /&gt;
[[Arquivo:Qrcode ispfocus.png|nenhum|miniaturadaimagem|283x283px]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1111</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1111"/>
		<updated>2026-02-07T16:57:43Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Banner no SSH ==&lt;br /&gt;
Primeiramente é interessante comentar que ter um banner informando que o acesso só é permitido para pessoas autorizadas, é uma boa prática. Então aqui vai um exemplo de banner, basta criar o arquivo &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039; com o conteúdo abaixo e alterado para o nome da sua Organização e adicionar em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; com o parâmetro: &#039;&#039;&#039;Banner&#039;&#039;&#039; &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039;. Na sequência só reiniciar o serviço sshd com: &#039;&#039;&#039;systemctl restart sshd&#039;&#039;&#039;. &lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * Este acesso e unica e exclusivamente para pessoas autorizadas.              *&lt;br /&gt;
 * Voce esta prestes a acessar uma area Restrita/Privada, podendo conter       *&lt;br /&gt;
 * informacao confidencial e/ou privilegiada. Este acesso sera monitorado.     *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Se voce nao foi autorizado, desde ja fica notificado de abster-se a         *&lt;br /&gt;
 * divulgar, copiar, distribuir, examinar, de qualquer forma, utilizar a       *&lt;br /&gt;
 * informacao contida neste servidor, por ser ilegal, sujeitando o infrator as *&lt;br /&gt;
 * penas da lei.                                                               *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Precione &amp;lt;Ctrl-D&amp;gt; se voce NAO foi autorizado.                               *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * This access is solely and exclusively for authorized personnel.             *&lt;br /&gt;
 * You are about to access a Restricted/Private area, which may contain        *&lt;br /&gt;
 * confidential and/or privileged information. This access will be monitored.  *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * If you are not authorized, you are hereby notified to refrain from          *&lt;br /&gt;
 * disclosing, copying, distributing, reviewing, or otherwise using the        *&lt;br /&gt;
 * information contained on this server, as it is illegal and will subject     *&lt;br /&gt;
 * the violator to penalties under the law.                                    *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Press &amp;lt;Ctrl-D&amp;gt; if you are NOT authorized.                                   *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no servidor Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Altere em &#039;&#039;&#039;/etc/ssh/sshd&#039;&#039;&#039; para que esses parâmetros fiquem assim:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;br /&gt;
Para essa configuração precisaremos do módulo &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; só que ele não está mais presente nos pacotes do Debian. Nesse caso baixaremos o código fonte do &#039;&#039;&#039;Github&#039;&#039;&#039;, compilaremos e instalaremos no &#039;&#039;&#039;Debian&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instalando os pacotes que precisaremos:&lt;br /&gt;
 # apt install git autoconf build-essential libtool automake libpam-dev libssl-dev gnulib&lt;br /&gt;
Baixando do repositório do &#039;&#039;&#039;Github&#039;&#039;&#039;:&lt;br /&gt;
 # cd /usr/local/src&lt;br /&gt;
 # git clone &amp;lt;nowiki&amp;gt;https://github.com/kravietz/pam_tacplus.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Compilando e instalando o &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039;:&lt;br /&gt;
 # cd pam-tacplus&lt;br /&gt;
 # gnulib-tool --makefile-name=Makefile.gnulib --libtool --import fcntl crypto/md5 array-list list xlist getrandom realloc-posix explicit_bzero xalloc getopt-gnu&lt;br /&gt;
 # autoreconf -f -v -i&lt;br /&gt;
 # ./configure --libdir=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
O módulo usa o serviço PAP no Tacacs+ para autenticação e por isso precisa configurar no seu servidor Tacacs+. Caso esteja usando um servidor Tacacs+ em um GNU/Linux,  precisará definir no arquivo de configuração &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039; se o &#039;&#039;&#039;pap&#039;&#039;&#039; usará usuários criados localmente no servidor pelo &#039;&#039;&#039;useradd&#039;&#039;&#039; ou se usará usuários no próprio arquivo &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039;. Abaixo mostro os 2 exemplos:&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = file /etc/passwd&lt;br /&gt;
 }&lt;br /&gt;
Neste exemplo acima o usuário foi criado no servidor Tacacs+ com o comando: &#039;&#039;&#039;useradd -s /bin/false &amp;lt;user&amp;gt;&#039;&#039;&#039; e depois setada a senha com: &#039;&#039;&#039;passwd &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
OU&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = cleartext &amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
Nesse último exemplo você precisará definir a senha do usuário no lugar de &#039;&#039;&#039;&amp;lt;senha_forte&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Radius Server ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039;, comente a linha com &#039;&#039;&#039;@include common-auth&#039;&#039;&#039; e adicione antes:&lt;br /&gt;
 auth    required                        pam_radius_auth.so&lt;br /&gt;
 auth    required                        pam_google_authenticator.so&lt;br /&gt;
Nesse momento você poderá testar o &#039;&#039;&#039;SSH&#039;&#039;&#039; para o seu servidor e verá algo assim:&lt;br /&gt;
[[Arquivo:Tela autenticacao2.png|nenhum|miniaturadaimagem|740x740px]]&lt;br /&gt;
Primeiro o sistema irá pedir a sua &#039;&#039;&#039;senha cadastrada no seu Radius Server&#039;&#039;&#039; e depois o seu &#039;&#039;&#039;token&#039;&#039;&#039; do &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; e somente se passar o correto em ambas é que será liberado o acesso.&lt;br /&gt;
&lt;br /&gt;
Caso necessite que o usuário se torne root utilizando &#039;&#039;&#039;sudo&#039;&#039;&#039;, faça a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; e adicione o usuário no &#039;&#039;&#039;grupo sudo&#039;&#039;&#039; com o comando: &#039;&#039;&#039;usermod -aG sudo &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Tacacs+ Server ==&lt;br /&gt;
Para configurarmos a autenticação usando &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, faremos a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039; e &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; só que um pouco diferente e não esquecer de comentar a linha &#039;&#039;&#039;@include common-auth&#039;&#039;&#039;.&lt;br /&gt;
 auth       required pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 account    sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt; service=shell&lt;br /&gt;
 session    sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt; service=shell&lt;br /&gt;
 auth       required pam_google_authenticator.so&lt;br /&gt;
Acima o parâmetro &#039;&#039;&#039;server=&#039;&#039;&#039; é o IP do seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;secret=&#039;&#039;&#039; é a &#039;&#039;&#039;secret key&#039;&#039;&#039; utilizada no seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Gostou deste artigo? Se lhe foi útil compartilhe também com seus colegas este conteúdo. Precisa de configurar um servidor Radius/Tacacs+ para autenticar usuários em seus sistemas e equipamentos? Nos procure em https://ispfocus.net.br ou através do QR Code abaixo.&lt;br /&gt;
[[Arquivo:Qrcode ispfocus.png|nenhum|miniaturadaimagem|283x283px]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1110</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1110"/>
		<updated>2026-02-07T16:53:21Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Banner no SSH ==&lt;br /&gt;
Primeiramente é interessante comentar que ter um banner informando que o acesso só é permitido para pessoas autorizadas, é uma boa prática. Então aqui vai um exemplo de banner, basta criar o arquivo &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039; com o conteúdo abaixo e alterado para o nome da sua Organização e adicionar em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; com o parâmetro: &#039;&#039;&#039;Banner&#039;&#039;&#039; &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039;. Na sequência só reiniciar o serviço sshd com: &#039;&#039;&#039;systemctl restart sshd&#039;&#039;&#039;. &lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * Este acesso e unica e exclusivamente para pessoas autorizadas.              *&lt;br /&gt;
 * Voce esta prestes a acessar uma area Restrita/Privada, podendo conter       *&lt;br /&gt;
 * informacao confidencial e/ou privilegiada. Este acesso sera monitorado.     *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Se voce nao foi autorizado, desde ja fica notificado de abster-se a         *&lt;br /&gt;
 * divulgar, copiar, distribuir, examinar, de qualquer forma, utilizar a       *&lt;br /&gt;
 * informacao contida neste servidor, por ser ilegal, sujeitando o infrator as *&lt;br /&gt;
 * penas da lei.                                                               *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Precione &amp;lt;Ctrl-D&amp;gt; se voce NAO foi autorizado.                               *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * This access is solely and exclusively for authorized personnel.             *&lt;br /&gt;
 * You are about to access a Restricted/Private area, which may contain        *&lt;br /&gt;
 * confidential and/or privileged information. This access will be monitored.  *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * If you are not authorized, you are hereby notified to refrain from          *&lt;br /&gt;
 * disclosing, copying, distributing, reviewing, or otherwise using the        *&lt;br /&gt;
 * information contained on this server, as it is illegal and will subject     *&lt;br /&gt;
 * the violator to penalties under the law.                                    *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Press &amp;lt;Ctrl-D&amp;gt; if you are NOT authorized.                                   *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no servidor Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Altere em &#039;&#039;&#039;/etc/ssh/sshd&#039;&#039;&#039; para que esses parâmetros fiquem assim:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;br /&gt;
Para essa configuração precisaremos do módulo &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; só que ele não está mais presente nos pacotes do Debian. Nesse caso baixaremos o código fonte do &#039;&#039;&#039;Github&#039;&#039;&#039;, compilaremos e instalaremos no &#039;&#039;&#039;Debian&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instalando os pacotes que precisaremos:&lt;br /&gt;
 # apt install git autoconf build-essential libtool automake libpam-dev libssl-dev gnulib&lt;br /&gt;
Baixando do repositório do &#039;&#039;&#039;Github&#039;&#039;&#039;:&lt;br /&gt;
 # cd /usr/local/src&lt;br /&gt;
 # git clone &amp;lt;nowiki&amp;gt;https://github.com/kravietz/pam_tacplus.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Compilando e instalando o &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039;:&lt;br /&gt;
 # cd pam-tacplus&lt;br /&gt;
 # gnulib-tool --makefile-name=Makefile.gnulib --libtool --import fcntl crypto/md5 array-list list xlist getrandom realloc-posix explicit_bzero xalloc getopt-gnu&lt;br /&gt;
 # autoreconf -f -v -i&lt;br /&gt;
 # ./configure --libdir=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
O módulo usa o serviço PAP no Tacacs+ para autenticação e por isso precisa configurar no seu servidor Tacacs+. Caso esteja usando um servidor Tacacs+ em um GNU/Linux,  precisará definir no arquivo de configuração &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039; se o &#039;&#039;&#039;pap&#039;&#039;&#039; usará usuários criados localmente no servidor pelo &#039;&#039;&#039;useradd&#039;&#039;&#039; ou se usará usuários no próprio arquivo &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039;. Abaixo mostro os 2 exemplos:&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = file /etc/passwd&lt;br /&gt;
 }&lt;br /&gt;
Neste exemplo acima o usuário foi criado no servidor Tacacs+ com o comando: &#039;&#039;&#039;useradd -s /bin/false &amp;lt;user&amp;gt;&#039;&#039;&#039; e depois setada a senha com: &#039;&#039;&#039;passwd &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
OU&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = cleartext &amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
Nesse último exemplo você precisará definir a senha do usuário no lugar de &#039;&#039;&#039;&amp;lt;senha_forte&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Radius Server ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039;, comente a linha com &#039;&#039;&#039;@include common-auth&#039;&#039;&#039; e adicione antes:&lt;br /&gt;
 auth    required                        pam_radius_auth.so&lt;br /&gt;
 auth    required                        pam_google_authenticator.so&lt;br /&gt;
Nesse momento você poderá testar o &#039;&#039;&#039;SSH&#039;&#039;&#039; para o seu servidor e verá algo assim:&lt;br /&gt;
[[Arquivo:Tela autenticacao2.png|nenhum|miniaturadaimagem|740x740px]]&lt;br /&gt;
Primeiro o sistema irá pedir a sua &#039;&#039;&#039;senha cadastrada no seu Radius Server&#039;&#039;&#039; e depois o seu &#039;&#039;&#039;token&#039;&#039;&#039; do &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; e somente se passar o correto em ambas é que será liberado o acesso.&lt;br /&gt;
&lt;br /&gt;
Caso necessite que o usuário se torne root utilizando &#039;&#039;&#039;sudo&#039;&#039;&#039;, faça a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; e adicione o usuário no &#039;&#039;&#039;grupo sudo&#039;&#039;&#039; com o comando: &#039;&#039;&#039;usermod -aG sudo &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Tacacs+ Server ==&lt;br /&gt;
Para configurarmos a autenticação usando &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, faremos a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039; e &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; só que um pouco diferente e não esquecer de comentar a linha &#039;&#039;&#039;@include common-auth&#039;&#039;&#039;.&lt;br /&gt;
 auth       required pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 auth       required pam_google_authenticator.so&lt;br /&gt;
 account    sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt; service=shell&lt;br /&gt;
 session    sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt; service=shell&lt;br /&gt;
Acima o parâmetro &#039;&#039;&#039;server=&#039;&#039;&#039; é o IP do seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;secret=&#039;&#039;&#039; é a &#039;&#039;&#039;secret key&#039;&#039;&#039; utilizada no seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Gostou deste artigo? Se lhe foi útil compartilhe também com seus colegas este conteúdo. Precisa de configurar um servidor Radius/Tacacs+ para autenticar usuários em seus sistemas e equipamentos? Nos procure em https://ispfocus.net.br ou através do QR Code abaixo.&lt;br /&gt;
[[Arquivo:Qrcode ispfocus.png|nenhum|miniaturadaimagem|283x283px]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1109</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1109"/>
		<updated>2026-02-06T16:14:30Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Banner no SSH ==&lt;br /&gt;
Primeiramente é interessante comentar que ter um banner informando que o acesso só é permitido para pessoas autorizadas, é uma boa prática. Então aqui vai um exemplo de banner, basta criar o arquivo &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039; com o conteúdo abaixo e alterado para o nome da sua Organização e adicionar em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; com o parâmetro: &#039;&#039;&#039;Banner&#039;&#039;&#039; &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039;. Na sequência só reiniciar o serviço sshd com: &#039;&#039;&#039;systemctl restart sshd&#039;&#039;&#039;. &lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * Este acesso e unica e exclusivamente para pessoas autorizadas.              *&lt;br /&gt;
 * Voce esta prestes a acessar uma area Restrita/Privada, podendo conter       *&lt;br /&gt;
 * informacao confidencial e/ou privilegiada. Este acesso sera monitorado.     *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Se voce nao foi autorizado, desde ja fica notificado de abster-se a         *&lt;br /&gt;
 * divulgar, copiar, distribuir, examinar, de qualquer forma, utilizar a       *&lt;br /&gt;
 * informacao contida neste servidor, por ser ilegal, sujeitando o infrator as *&lt;br /&gt;
 * penas da lei.                                                               *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Precione &amp;lt;Ctrl-D&amp;gt; se voce NAO foi autorizado.                               *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * This access is solely and exclusively for authorized personnel.             *&lt;br /&gt;
 * You are about to access a Restricted/Private area, which may contain        *&lt;br /&gt;
 * confidential and/or privileged information. This access will be monitored.  *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * If you are not authorized, you are hereby notified to refrain from          *&lt;br /&gt;
 * disclosing, copying, distributing, reviewing, or otherwise using the        *&lt;br /&gt;
 * information contained on this server, as it is illegal and will subject     *&lt;br /&gt;
 * the violator to penalties under the law.                                    *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Press &amp;lt;Ctrl-D&amp;gt; if you are NOT authorized.                                   *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no servidor Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Altere em &#039;&#039;&#039;/etc/ssh/sshd&#039;&#039;&#039; para que esses parâmetros fiquem assim:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;br /&gt;
Para essa configuração precisaremos do módulo &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; só que ele não está mais presente nos pacotes do Debian. Nesse caso baixaremos o código fonte do &#039;&#039;&#039;Github&#039;&#039;&#039;, compilaremos e instalaremos no &#039;&#039;&#039;Debian&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instalando os pacotes que precisaremos:&lt;br /&gt;
 # apt install git autoconf build-essential libtool automake libpam-dev libssl-dev gnulib&lt;br /&gt;
Baixando do repositório do &#039;&#039;&#039;Github&#039;&#039;&#039;:&lt;br /&gt;
 # cd /usr/local/src&lt;br /&gt;
 # git clone &amp;lt;nowiki&amp;gt;https://github.com/kravietz/pam_tacplus.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Compilando e instalando o &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039;:&lt;br /&gt;
 # cd pam-tacplus&lt;br /&gt;
 # gnulib-tool --makefile-name=Makefile.gnulib --libtool --import fcntl crypto/md5 array-list list xlist getrandom realloc-posix explicit_bzero xalloc getopt-gnu&lt;br /&gt;
 # autoreconf -f -v -i&lt;br /&gt;
 # ./configure --libdir=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
O módulo usa o serviço PAP no Tacacs+ para autenticação e por isso precisa configurar no seu servidor Tacacs+. Caso esteja usando um servidor Tacacs+ em um GNU/Linux,  precisará definir no arquivo de configuração &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039; se o &#039;&#039;&#039;pap&#039;&#039;&#039; usará usuários criados localmente no servidor pelo &#039;&#039;&#039;useradd&#039;&#039;&#039; ou se usará usuários no próprio arquivo &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039;. Abaixo mostro os 2 exemplos:&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = file /etc/passwd&lt;br /&gt;
 }&lt;br /&gt;
Neste exemplo acima o usuário foi criado no servidor Tacacs+ com o comando: &#039;&#039;&#039;useradd -s /bin/false &amp;lt;user&amp;gt;&#039;&#039;&#039; e depois setada a senha com: &#039;&#039;&#039;passwd &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
OU&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = cleartext &amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
Nesse último exemplo você precisará definir a senha do usuário no lugar de &#039;&#039;&#039;&amp;lt;senha_forte&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Radius Server ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039;, comente a linha com &#039;&#039;&#039;@include common-auth&#039;&#039;&#039; e adicione antes:&lt;br /&gt;
 auth    required                        pam_radius_auth.so&lt;br /&gt;
 auth    required                        pam_google_authenticator.so&lt;br /&gt;
Nesse momento você poderá testar o &#039;&#039;&#039;SSH&#039;&#039;&#039; para o seu servidor e verá algo assim:&lt;br /&gt;
[[Arquivo:Tela autenticacao2.png|nenhum|miniaturadaimagem|740x740px]]&lt;br /&gt;
Primeiro o sistema irá pedir a sua &#039;&#039;&#039;senha cadastrada no seu Radius Server&#039;&#039;&#039; e depois o seu &#039;&#039;&#039;token&#039;&#039;&#039; do &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; e somente se passar o correto em ambas é que será liberado o acesso.&lt;br /&gt;
&lt;br /&gt;
Caso necessite que o usuário se torne root utilizando &#039;&#039;&#039;sudo&#039;&#039;&#039;, faça a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; e adicione o usuário no &#039;&#039;&#039;grupo sudo&#039;&#039;&#039; com o comando: &#039;&#039;&#039;usermod -aG sudo &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Tacacs+ Server ==&lt;br /&gt;
Para configurarmos a autenticação usando &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, faremos a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039; e &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; só que um pouco diferente e não esquecer de comentar a linha &#039;&#039;&#039;@include common-auth&#039;&#039;&#039;.&lt;br /&gt;
 auth       required pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 auth       required pam_google_authenticator.so&lt;br /&gt;
Acima o parâmetro &#039;&#039;&#039;server=&#039;&#039;&#039; é o IP do seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;secret=&#039;&#039;&#039; é a &#039;&#039;&#039;secret key&#039;&#039;&#039; utilizada no seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Gostou deste artigo? Se lhe foi útil compartilhe também com seus colegas este conteúdo. Precisa de configurar um servidor Radius/Tacacs+ para autenticar usuários em seus sistemas e equipamentos? Nos procure em https://ispfocus.net.br ou através do QR Code abaixo.&lt;br /&gt;
[[Arquivo:Qrcode ispfocus.png|nenhum|miniaturadaimagem|283x283px]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1108</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1108"/>
		<updated>2026-02-06T16:13:00Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Banner no SSH ==&lt;br /&gt;
Primeiramente é interessante comentar que ter um banner informando que o acesso só é permitido para pessoas autorizadas, é uma boa prática. Então aqui vai um exemplo de banner, basta criar o arquivo &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039; com o conteúdo abaixo e alterado para o nome da sua Organização e adicionar em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; com o parâmetro: &#039;&#039;&#039;Banner&#039;&#039;&#039; &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039;. Na sequência só reiniciar o serviço sshd com: &#039;&#039;&#039;systemctl restart sshd&#039;&#039;&#039;. &lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * Este acesso e unica e exclusivamente para pessoas autorizadas.              *&lt;br /&gt;
 * Voce esta prestes a acessar uma area Restrita/Privada, podendo conter       *&lt;br /&gt;
 * informacao confidencial e/ou privilegiada. Este acesso sera monitorado.     *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Se voce nao foi autorizado, desde ja fica notificado de abster-se a         *&lt;br /&gt;
 * divulgar, copiar, distribuir, examinar, de qualquer forma, utilizar a       *&lt;br /&gt;
 * informacao contida neste servidor, por ser ilegal, sujeitando o infrator as *&lt;br /&gt;
 * penas da lei.                                                               *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Precione &amp;lt;Ctrl-D&amp;gt; se voce NAO foi autorizado.                               *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * This access is solely and exclusively for authorized personnel.             *&lt;br /&gt;
 * You are about to access a Restricted/Private area, which may contain        *&lt;br /&gt;
 * confidential and/or privileged information. This access will be monitored.  *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * If you are not authorized, you are hereby notified to refrain from          *&lt;br /&gt;
 * disclosing, copying, distributing, reviewing, or otherwise using the        *&lt;br /&gt;
 * information contained on this server, as it is illegal and will subject     *&lt;br /&gt;
 * the violator to penalties under the law.                                    *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Press &amp;lt;Ctrl-D&amp;gt; if you are NOT authorized.                                   *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no servidor Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Altere em &#039;&#039;&#039;/etc/ssh/sshd&#039;&#039;&#039; para que esses parâmetros fiquem assim:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;br /&gt;
Para essa configuração precisaremos do módulo &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; só que ele não está mais presente nos pacotes do Debian. Nesse caso baixaremos o código fonte do &#039;&#039;&#039;Github&#039;&#039;&#039;, compilaremos e instalaremos no &#039;&#039;&#039;Debian&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instalando os pacotes que precisaremos:&lt;br /&gt;
 # apt install git autoconf build-essential libtool automake libpam-dev libssl-dev gnulib&lt;br /&gt;
Baixando do repositório do &#039;&#039;&#039;Github&#039;&#039;&#039;:&lt;br /&gt;
 # cd /usr/local/src&lt;br /&gt;
 # git clone &amp;lt;nowiki&amp;gt;https://github.com/kravietz/pam_tacplus.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Compilando e instalando o &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039;:&lt;br /&gt;
 # cd pam-tacplus&lt;br /&gt;
 # gnulib-tool --makefile-name=Makefile.gnulib --libtool --import fcntl crypto/md5 array-list list xlist getrandom realloc-posix explicit_bzero xalloc getopt-gnu&lt;br /&gt;
 # autoreconf -f -v -i&lt;br /&gt;
 # ./configure --libdir=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
O módulo usa o serviço PAP no Tacacs+ para autenticação e por isso precisa configurar no seu servidor Tacacs+. Caso esteja usando um servidor Tacacs+ em um GNU/Linux,  precisará definir no arquivo de configuração &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039; se o &#039;&#039;&#039;pap&#039;&#039;&#039; usará usuários criados localmente no servidor pelo &#039;&#039;&#039;useradd&#039;&#039;&#039; ou se usará usuários no próprio arquivo &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039;. Abaixo mostro os 2 exemplos:&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = file /etc/passwd&lt;br /&gt;
 }&lt;br /&gt;
Neste exemplo acima o usuário foi criado no servidor Tacacs+ com o comando: &#039;&#039;&#039;useradd -s /bin/false &amp;lt;user&amp;gt;&#039;&#039;&#039; e depois setada a senha com: &#039;&#039;&#039;passwd &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
OU&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = cleartext &amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
Nesse último exemplo você precisará definir a senha do usuário no lugar de &#039;&#039;&#039;&amp;lt;senha_forte&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Radius Server ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039;, comente a linha com &#039;&#039;&#039;@include common-auth&#039;&#039;&#039; e adicione antes:&lt;br /&gt;
 auth    required                        pam_radius_auth.so&lt;br /&gt;
 auth    required                        pam_google_authenticator.so&lt;br /&gt;
Nesse momento você poderá testar o &#039;&#039;&#039;SSH&#039;&#039;&#039; para o seu servidor e verá algo assim:&lt;br /&gt;
[[Arquivo:Tela autenticacao2.png|nenhum|miniaturadaimagem|740x740px]]&lt;br /&gt;
Primeiro o sistema irá pedir seu &#039;&#039;&#039;token&#039;&#039;&#039; do &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; e somente se passar o correto é que será solicitada a &#039;&#039;&#039;senha cadastrada no seu Radius Server&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Caso necessite que o usuário se torne root utilizando &#039;&#039;&#039;sudo&#039;&#039;&#039;, faça a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; e adicione o usuário no &#039;&#039;&#039;grupo sudo&#039;&#039;&#039; com o comando: &#039;&#039;&#039;usermod -aG sudo &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Tacacs+ Server ==&lt;br /&gt;
Para configurarmos a autenticação usando &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, faremos a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039; e &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; só que um pouco diferente e não esquecer de comentar a linha &#039;&#039;&#039;@include common-auth&#039;&#039;&#039;.&lt;br /&gt;
 auth       required pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 auth       required pam_google_authenticator.so&lt;br /&gt;
Acima o parâmetro &#039;&#039;&#039;server=&#039;&#039;&#039; é o IP do seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;secret=&#039;&#039;&#039; é a &#039;&#039;&#039;secret key&#039;&#039;&#039; utilizada no seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Gostou deste artigo? Se lhe foi útil compartilhe também com seus colegas este conteúdo. Precisa de configurar um servidor Radius/Tacacs+ para autenticar usuários em seus sistemas e equipamentos? Nos procure em https://ispfocus.net.br ou através do QR Code abaixo.&lt;br /&gt;
[[Arquivo:Qrcode ispfocus.png|nenhum|miniaturadaimagem|283x283px]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Tela_autenticacao2.png&amp;diff=1107</id>
		<title>Arquivo:Tela autenticacao2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Tela_autenticacao2.png&amp;diff=1107"/>
		<updated>2026-02-06T16:11:55Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1104</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1104"/>
		<updated>2026-02-06T15:58:52Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Banner no SSH ==&lt;br /&gt;
Primeiramente é interessante comentar que ter um banner informando que o acesso só é permitido para pessoas autorizadas, é uma boa prática. Então aqui vai um exemplo de banner, basta criar o arquivo &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039; com o conteúdo abaixo e alterado para o nome da sua Organização e adicionar em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; com o parâmetro: &#039;&#039;&#039;Banner&#039;&#039;&#039; &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039;. Na sequência só reiniciar o serviço sshd com: &#039;&#039;&#039;systemctl restart sshd&#039;&#039;&#039;. &lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * Este acesso e unica e exclusivamente para pessoas autorizadas.              *&lt;br /&gt;
 * Voce esta prestes a acessar uma area Restrita/Privada, podendo conter       *&lt;br /&gt;
 * informacao confidencial e/ou privilegiada. Este acesso sera monitorado.     *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Se voce nao foi autorizado, desde ja fica notificado de abster-se a         *&lt;br /&gt;
 * divulgar, copiar, distribuir, examinar, de qualquer forma, utilizar a       *&lt;br /&gt;
 * informacao contida neste servidor, por ser ilegal, sujeitando o infrator as *&lt;br /&gt;
 * penas da lei.                                                               *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Precione &amp;lt;Ctrl-D&amp;gt; se voce NAO foi autorizado.                               *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * This access is solely and exclusively for authorized personnel.             *&lt;br /&gt;
 * You are about to access a Restricted/Private area, which may contain        *&lt;br /&gt;
 * confidential and/or privileged information. This access will be monitored.  *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * If you are not authorized, you are hereby notified to refrain from          *&lt;br /&gt;
 * disclosing, copying, distributing, reviewing, or otherwise using the        *&lt;br /&gt;
 * information contained on this server, as it is illegal and will subject     *&lt;br /&gt;
 * the violator to penalties under the law.                                    *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Press &amp;lt;Ctrl-D&amp;gt; if you are NOT authorized.                                   *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no servidor Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Altere em &#039;&#039;&#039;/etc/ssh/sshd&#039;&#039;&#039; para que esses parâmetros fiquem assim:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;br /&gt;
Para essa configuração precisaremos do módulo &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; só que ele não está mais presente nos pacotes do Debian. Nesse caso baixaremos o código fonte do &#039;&#039;&#039;Github&#039;&#039;&#039;, compilaremos e instalaremos no &#039;&#039;&#039;Debian&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instalando os pacotes que precisaremos:&lt;br /&gt;
 # apt install git autoconf build-essential libtool automake libpam-dev libssl-dev gnulib&lt;br /&gt;
Baixando do repositório do &#039;&#039;&#039;Github&#039;&#039;&#039;:&lt;br /&gt;
 # cd /usr/local/src&lt;br /&gt;
 # git clone &amp;lt;nowiki&amp;gt;https://github.com/kravietz/pam_tacplus.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Compilando e instalando o &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039;:&lt;br /&gt;
 # cd pam-tacplus&lt;br /&gt;
 # gnulib-tool --makefile-name=Makefile.gnulib --libtool --import fcntl crypto/md5 array-list list xlist getrandom realloc-posix explicit_bzero xalloc getopt-gnu&lt;br /&gt;
 # autoreconf -f -v -i&lt;br /&gt;
 # ./configure --libdir=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
O módulo usa o serviço PAP no Tacacs+ para autenticação e por isso precisa configurar no seu servidor Tacacs+. Caso esteja usando um servidor Tacacs+ em um GNU/Linux,  precisará definir no arquivo de configuração &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039; se o &#039;&#039;&#039;pap&#039;&#039;&#039; usará usuários criados localmente no servidor pelo &#039;&#039;&#039;useradd&#039;&#039;&#039; ou se usará usuários no próprio arquivo &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039;. Abaixo mostro os 2 exemplos:&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = file /etc/passwd&lt;br /&gt;
 }&lt;br /&gt;
Neste exemplo acima o usuário foi criado no servidor Tacacs+ com o comando: &#039;&#039;&#039;useradd -s /bin/false &amp;lt;user&amp;gt;&#039;&#039;&#039; e depois setada a senha com: &#039;&#039;&#039;passwd &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
OU&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = cleartext &amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
Nesse último exemplo você precisará definir a senha do usuário no lugar de &#039;&#039;&#039;&amp;lt;senha_forte&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Radius Server ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039;, comente a linha com &#039;&#039;&#039;@include common-auth&#039;&#039;&#039; e adicione antes:&lt;br /&gt;
 auth    required                        pam_radius_auth.so&lt;br /&gt;
 auth    required                        pam_google_authenticator.so&lt;br /&gt;
Nesse momento você poderá testar o &#039;&#039;&#039;SSH&#039;&#039;&#039; para o seu servidor e verá algo assim:&lt;br /&gt;
[[Arquivo:Tela autenticacao.png|nenhum|miniaturadaimagem|740x740px]]&lt;br /&gt;
Primeiro o sistema irá pedir seu &#039;&#039;&#039;token&#039;&#039;&#039; do &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; e somente se passar o correto é que será solicitada a &#039;&#039;&#039;senha cadastrada no seu Radius Server&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Caso necessite que o usuário se torne root utilizando &#039;&#039;&#039;sudo&#039;&#039;&#039;, faça a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; e adicione o usuário no &#039;&#039;&#039;grupo sudo&#039;&#039;&#039; com o comando: &#039;&#039;&#039;usermod -aG sudo &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Tacacs+ Server ==&lt;br /&gt;
Para configurarmos a autenticação usando &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, faremos a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039; e &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; só que um pouco diferente e não esquecer de comentar a linha &#039;&#039;&#039;@include common-auth&#039;&#039;&#039;.&lt;br /&gt;
 auth       required pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 auth       required pam_google_authenticator.so&lt;br /&gt;
Acima o parâmetro &#039;&#039;&#039;server=&#039;&#039;&#039; é o IP do seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;secret=&#039;&#039;&#039; é a &#039;&#039;&#039;secret key&#039;&#039;&#039; utilizada no seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Gostou deste artigo? Se lhe foi útil compartilhe também com seus colegas este conteúdo. Precisa de configurar um servidor Radius/Tacacs+ para autenticar usuários em seus sistemas e equipamentos? Nos procure em https://ispfocus.net.br ou através do QR Code abaixo.&lt;br /&gt;
[[Arquivo:Qrcode ispfocus.png|nenhum|miniaturadaimagem|283x283px]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1103</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1103"/>
		<updated>2026-02-06T15:31:23Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Banner no SSH ==&lt;br /&gt;
Primeiramente é interessante comentar que ter um banner informando que o acesso só é permitido para pessoas autorizadas, é uma boa prática. Então aqui vai um exemplo de banner, basta criar o arquivo &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039; com o conteúdo abaixo e alterado para o nome da sua Organização e adicionar em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; com o parâmetro: &#039;&#039;&#039;Banner&#039;&#039;&#039; &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039;. Na sequência só reiniciar o serviço sshd com: &#039;&#039;&#039;systemctl restart sshd&#039;&#039;&#039;. &lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * Este acesso e unica e exclusivamente para pessoas autorizadas.              *&lt;br /&gt;
 * Voce esta prestes a acessar uma area Restrita/Privada, podendo conter       *&lt;br /&gt;
 * informacao confidencial e/ou privilegiada. Este acesso sera monitorado.     *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Se voce nao foi autorizado, desde ja fica notificado de abster-se a         *&lt;br /&gt;
 * divulgar, copiar, distribuir, examinar, de qualquer forma, utilizar a       *&lt;br /&gt;
 * informacao contida neste servidor, por ser ilegal, sujeitando o infrator as *&lt;br /&gt;
 * penas da lei.                                                               *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Precione &amp;lt;Ctrl-D&amp;gt; se voce NAO foi autorizado.                               *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * This access is solely and exclusively for authorized personnel.             *&lt;br /&gt;
 * You are about to access a Restricted/Private area, which may contain        *&lt;br /&gt;
 * confidential and/or privileged information. This access will be monitored.  *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * If you are not authorized, you are hereby notified to refrain from          *&lt;br /&gt;
 * disclosing, copying, distributing, reviewing, or otherwise using the        *&lt;br /&gt;
 * information contained on this server, as it is illegal and will subject     *&lt;br /&gt;
 * the violator to penalties under the law.                                    *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Press &amp;lt;Ctrl-D&amp;gt; if you are NOT authorized.                                   *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no servidor Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Altere em &#039;&#039;&#039;/etc/ssh/sshd&#039;&#039;&#039; para que esses parâmetros fiquem assim:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;br /&gt;
Para essa configuração precisaremos do módulo &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; só que ele não está mais presente nos pacotes do Debian. Nesse caso baixaremos o código fonte do &#039;&#039;&#039;Github&#039;&#039;&#039;, compilaremos e instalaremos no &#039;&#039;&#039;Debian&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instalando os pacotes que precisaremos:&lt;br /&gt;
 # apt install git autoconf build-essential libtool automake libpam-dev libssl-dev gnulib&lt;br /&gt;
Baixando do repositório do &#039;&#039;&#039;Github&#039;&#039;&#039;:&lt;br /&gt;
 # cd /usr/local/src&lt;br /&gt;
 # git clone &amp;lt;nowiki&amp;gt;https://github.com/kravietz/pam_tacplus.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Compilando e instalando o &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039;:&lt;br /&gt;
 # cd pam-tacplus&lt;br /&gt;
 # gnulib-tool --makefile-name=Makefile.gnulib --libtool --import fcntl crypto/md5 array-list list xlist getrandom realloc-posix explicit_bzero xalloc getopt-gnu&lt;br /&gt;
 # autoreconf -f -v -i&lt;br /&gt;
 # ./configure --libdir=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
O módulo usa o serviço PAP no Tacacs+ para autenticação e por isso precisa configurar no seu servidor Tacacs+. Caso esteja usando um servidor Tacacs+ em um GNU/Linux,  precisará definir no arquivo de configuração &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039; se o &#039;&#039;&#039;pap&#039;&#039;&#039; usará usuários criados localmente no servidor pelo &#039;&#039;&#039;useradd&#039;&#039;&#039; ou se usará usuários no próprio arquivo &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039;. Abaixo mostro os 2 exemplos:&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = file /etc/passwd&lt;br /&gt;
 }&lt;br /&gt;
Neste exemplo acima o usuário foi criado no servidor Tacacs+ com o comando: &#039;&#039;&#039;useradd -s /bin/false &amp;lt;user&amp;gt;&#039;&#039;&#039; e depois setada a senha com: &#039;&#039;&#039;passwd &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
OU&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = cleartext &amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
Nesse último exemplo você precisará definir a senha do usuário no lugar de &#039;&#039;&#039;&amp;lt;senha_forte&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Radius Server ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039;, comente a linha com &#039;&#039;&#039;@include common-auth&#039;&#039;&#039; e adicione antes:&lt;br /&gt;
 auth    required                        pam_radius_auth.so&lt;br /&gt;
 auth    required                        pam_google_authenticator.so&lt;br /&gt;
Nesse momento você poderá testar o &#039;&#039;&#039;SSH&#039;&#039;&#039; para o seu servidor e verá algo assim:&lt;br /&gt;
[[Arquivo:Tela autenticacao.png|nenhum|miniaturadaimagem|740x740px]]&lt;br /&gt;
Primeiro o sistema irá pedir seu &#039;&#039;&#039;token&#039;&#039;&#039; do &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; e somente se passar o correto é que será solicitada a &#039;&#039;&#039;senha cadastrada no seu Radius Server&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Caso necessite que o usuário se torne root utilizando &#039;&#039;&#039;sudo&#039;&#039;&#039;, faça a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; e adicione o usuário no &#039;&#039;&#039;grupo sudo&#039;&#039;&#039; com o comando: &#039;&#039;&#039;usermod -aG sudo &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Tacacs+ Server ==&lt;br /&gt;
Para configurarmos a autenticação usando &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, faremos a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039; e &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; só que um pouco diferente.&lt;br /&gt;
 auth       requisite  pam_google_authenticator.so&lt;br /&gt;
 auth       sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 account    sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 session    sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
Acima o parâmetro &#039;&#039;&#039;server=&#039;&#039;&#039; é o IP do seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;secret=&#039;&#039;&#039; é a &#039;&#039;&#039;secret key&#039;&#039;&#039; utilizada no seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Gostou deste artigo? Se lhe foi útil compartilhe também com seus colegas este conteúdo. Precisa de configurar um servidor Radius/Tacacs+ para autenticar usuários em seus sistemas e equipamentos? Nos procure em https://ispfocus.net.br ou através do QR Code abaixo.&lt;br /&gt;
[[Arquivo:Qrcode ispfocus.png|nenhum|miniaturadaimagem|283x283px]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=P%C3%A1gina_principal&amp;diff=1102</id>
		<title>Página principal</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=P%C3%A1gina_principal&amp;diff=1102"/>
		<updated>2026-02-06T03:38:49Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Pascal.png|esquerda|semmoldura|554x554px]]&lt;br /&gt;
&lt;br /&gt;
= Bem vindo à Wiki ISPUP! =&lt;br /&gt;
Durante 29 anos trabalhando como &#039;&#039;&#039;sysadmin&#039;&#039;&#039; em ambientes &#039;&#039;&#039;Unix Like&#039;&#039;&#039; e com Redes em Provedores de Internet, acabei guardando algum conhecimento e essa Wiki é uma forma de disponibilizar para a comunidade, uma fonte de consulta de soluções para diversos problemas que encontrei ao longo da minha vida como profissional. Espero que te ajude assim como sempre me ajudou. Tenho muita documentação para postar aqui e por isso irei revisar e disponibilizar aos poucos. Vamos dar um UP! no seu ISP?&lt;br /&gt;
&lt;br /&gt;
Aqui veremos assuntos relacionados a &#039;&#039;&#039;Servidores GNU/Linux&#039;&#039;&#039;, &#039;&#039;&#039;Telecom&#039;&#039;&#039;, &#039;&#039;&#039;Serviços de Redes&#039;&#039;&#039;, &#039;&#039;&#039;Segurança da Informação&#039;&#039;&#039; e &#039;&#039;&#039;Boas Práticas&#039;&#039;&#039;. Os artigos e documentações serão voltados paras as comunidades &#039;&#039;&#039;ISP (Internet Service Provider)&#039;&#039;&#039;, &#039;&#039;&#039;ITP (Internet Transit Provider)&#039;&#039;&#039; e &#039;&#039;&#039;Debian&#039;&#039;&#039;.  &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Enquanto for &amp;quot;&#039;&#039;&#039;pequeno&#039;&#039;&#039;&amp;quot;, precisa pensar como um &amp;quot;&#039;&#039;&#039;grande&#039;&#039;&#039;&amp;quot;: precisa pensar nas boas práticas, se estruturar para o futuro e aí quando crescer e ficar &amp;quot;&#039;&#039;&#039;grande&#039;&#039;&#039;&amp;quot;, precisará pensar como um &amp;quot;&#039;&#039;&#039;pequeno&#039;&#039;&#039;&amp;quot;, para continuar melhorando a sua agilidade nos processos, na qualidade do atendimento e nos serviços entregues aos seus clientes.  &lt;br /&gt;
&lt;br /&gt;
As boas práticas trazem: &#039;&#039;&#039;segurança&#039;&#039;&#039;, &#039;&#039;&#039;credibilidade&#039;&#039;&#039;, &#039;&#039;&#039;estabilidade&#039;&#039;&#039; e &#039;&#039;&#039;qualidade&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;UNIX is very simple, it just needs a genius to understand its simplicity.&amp;quot;&#039;&#039;&#039; Dennis Ritchie.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Índice ==&lt;br /&gt;
* [[Artigos Tecnicos|Artigos Técnicos]]&lt;br /&gt;
* [[Servicos de Redes e Servidores|Serviços de Redes e Servidores]]&lt;br /&gt;
* [[Dicas Tecnicas|Dicas Técnicas]]&lt;br /&gt;
* [[Links Uteis|Links úteis]]&lt;br /&gt;
* [[Sobre mim]]&lt;br /&gt;
&lt;br /&gt;
== Destaques ==&lt;br /&gt;
[[Autenticacao TOTP Radius Tacacs Debian|Autenticação TOTP + Radius/Tacacs no Debian]]&lt;br /&gt;
&lt;br /&gt;
[[SSH SERVER 2FA|SSH Server com Autenticação 2FA]]&lt;br /&gt;
&lt;br /&gt;
[[Certificado TLS com ACME-DNS e DNS-01]]&lt;br /&gt;
&lt;br /&gt;
[[RPKI|RPKI (Resource Public Key Infrastructure)]]&lt;br /&gt;
&lt;br /&gt;
[[Recomendacao Mitigacao DDoS|Recomendações sobre Mitigação DDoS]]&lt;br /&gt;
&lt;br /&gt;
[[DNS Recursivo Anycast HyperLocal|DNS Recursivo Anycast com Hyperlocal]]&lt;br /&gt;
&lt;br /&gt;
[[Static Loop|Static Loop - um erro que pode matar seu ISP/ITP]]&lt;br /&gt;
&lt;br /&gt;
[[Portas Amplificacao DDoS|Portas de Amplificação DDoS e Botnets]]&lt;br /&gt;
&lt;br /&gt;
[[Servidor Logs CGNAT|Servidor de logs CGNAT]]&lt;br /&gt;
&lt;br /&gt;
[[Template Servidor Debian|Template de Servidor Debian GNU/Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Policy Based Routing|Policy Based Routing (PBR)]]&lt;br /&gt;
&lt;br /&gt;
[[Compilando Bash|Compilando Shell Scripts com o SHC]]&lt;br /&gt;
&lt;br /&gt;
[[PHPIPAM|DCIM/IPAM com phpIPAM]]&lt;br /&gt;
&lt;br /&gt;
[[MSMTP com OAuth2|MSMTP com OAuth2 no Debian 12]]&lt;br /&gt;
&lt;br /&gt;
[[Geolocalizacao|Geolocalização e a Internet]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Debian powered.png|miniaturadaimagem|83x83px]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1101</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1101"/>
		<updated>2026-02-06T03:33:44Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Banner no SSH ==&lt;br /&gt;
Primeiramente é interessante comentar que ter um banner informando que o acesso só é permitido para pessoas autorizadas, é uma boa prática. Então aqui vai um exemplo de banner, basta criar o arquivo &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039; com o conteúdo abaixo e alterado para o nome da sua Organização e adicionar em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; com o parâmetro: &#039;&#039;&#039;Banner&#039;&#039;&#039; &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039;. Na sequência só reiniciar o serviço sshd com: &#039;&#039;&#039;systemctl restart sshd&#039;&#039;&#039;. &lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * Este acesso e unica e exclusivamente para pessoas autorizadas.              *&lt;br /&gt;
 * Voce esta prestes a acessar uma area Restrita/Privada, podendo conter       *&lt;br /&gt;
 * informacao confidencial e/ou privilegiada. Este acesso sera monitorado.     *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Se voce nao foi autorizado, desde ja fica notificado de abster-se a         *&lt;br /&gt;
 * divulgar, copiar, distribuir, examinar, de qualquer forma, utilizar a       *&lt;br /&gt;
 * informacao contida neste servidor, por ser ilegal, sujeitando o infrator as *&lt;br /&gt;
 * penas da lei.                                                               *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Precione &amp;lt;Ctrl-D&amp;gt; se voce NAO foi autorizado.                               *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * This access is solely and exclusively for authorized personnel.             *&lt;br /&gt;
 * You are about to access a Restricted/Private area, which may contain        *&lt;br /&gt;
 * confidential and/or privileged information. This access will be monitored.  *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * If you are not authorized, you are hereby notified to refrain from          *&lt;br /&gt;
 * disclosing, copying, distributing, reviewing, or otherwise using the        *&lt;br /&gt;
 * information contained on this server, as it is illegal and will subject     *&lt;br /&gt;
 * the violator to penalties under the law.                                    *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Press &amp;lt;Ctrl-D&amp;gt; if you are NOT authorized.                                   *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no servidor Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Altere em &#039;&#039;&#039;/etc/ssh/sshd&#039;&#039;&#039; para que esses parâmetros fiquem assim:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;br /&gt;
Para essa configuração precisaremos do módulo &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; só que ele não está mais presente nos pacotes do Debian. Nesse caso baixaremos o código fonte do &#039;&#039;&#039;Github&#039;&#039;&#039;, compilaremos e instalaremos no &#039;&#039;&#039;Debian&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instalando os pacotes que precisaremos:&lt;br /&gt;
 # apt install git autoconf build-essential libtool automake libpam-dev libssl-dev gnulib&lt;br /&gt;
Baixando do repositório do &#039;&#039;&#039;Github&#039;&#039;&#039;:&lt;br /&gt;
 # cd /usr/local/src&lt;br /&gt;
 # git clone &amp;lt;nowiki&amp;gt;https://github.com/kravietz/pam_tacplus.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Compilando e instalando o &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039;:&lt;br /&gt;
 # cd pam-tacplus&lt;br /&gt;
 # gnulib-tool --makefile-name=Makefile.gnulib --libtool --import fcntl crypto/md5 array-list list xlist getrandom realloc-posix explicit_bzero xalloc getopt-gnu&lt;br /&gt;
 # autoreconf -f -v -i&lt;br /&gt;
 # ./configure --libdir=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
O módulo usa o serviço PAP no Tacacs+ para autenticação e por isso precisa configurar no seu servidor Tacacs+. Caso esteja usando um servidor Tacacs+ em um GNU/Linux,  precisará definir no arquivo de configuração &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039; se o &#039;&#039;&#039;pap&#039;&#039;&#039; usará usuários criados localmente no servidor pelo &#039;&#039;&#039;useradd&#039;&#039;&#039; ou se usará usuários no próprio arquivo &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039;. Abaixo mostro os 2 exemplos:&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = file /etc/passwd&lt;br /&gt;
 }&lt;br /&gt;
Neste exemplo acima o usuário foi criado no servidor Tacacs+ com o comando: &#039;&#039;&#039;useradd -s /bin/false &amp;lt;user&amp;gt;&#039;&#039;&#039; e depois setada a senha com: &#039;&#039;&#039;passwd &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
OU&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = cleartext &amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
Nesse último exemplo você precisará definir a senha do usuário no lugar de &#039;&#039;&#039;&amp;lt;senha_forte&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Radius Server ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039;, antes da linha com &#039;&#039;&#039;@include common-auth&#039;&#039;&#039;, adicione:&lt;br /&gt;
 auth    requisite                       pam_google_authenticator.so&lt;br /&gt;
 auth    sufficient                      pam_radius_auth.so&lt;br /&gt;
Nesse momento você poderá testar o &#039;&#039;&#039;SSH&#039;&#039;&#039; para o seu servidor e verá algo assim:&lt;br /&gt;
[[Arquivo:Tela autenticacao.png|nenhum|miniaturadaimagem|740x740px]]&lt;br /&gt;
Primeiro o sistema irá pedir seu &#039;&#039;&#039;token&#039;&#039;&#039; do &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; e somente se passar o correto é que será solicitada a &#039;&#039;&#039;senha cadastrada no seu Radius Server&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Caso necessite que o usuário se torne root utilizando &#039;&#039;&#039;sudo&#039;&#039;&#039;, faça a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; e adicione o usuário no &#039;&#039;&#039;grupo sudo&#039;&#039;&#039; com o comando: &#039;&#039;&#039;usermod -aG sudo &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Tacacs+ Server ==&lt;br /&gt;
Para configurarmos a autenticação usando &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, faremos a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039; e &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; só que um pouco diferente.&lt;br /&gt;
 auth       requisite  pam_google_authenticator.so&lt;br /&gt;
 auth       sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 account    sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 session    sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
Acima o parâmetro &#039;&#039;&#039;server=&#039;&#039;&#039; é o IP do seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;secret=&#039;&#039;&#039; é a &#039;&#039;&#039;secret key&#039;&#039;&#039; utilizada no seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Gostou deste artigo? Se lhe foi útil compartilhe também com seus colegas este conteúdo. Precisa de configurar um servidor Radius/Tacacs+ para autenticar usuários em seus sistemas e equipamentos? Nos procure em https://ispfocus.net.br ou através do QR Code abaixo.&lt;br /&gt;
[[Arquivo:Qrcode ispfocus.png|nenhum|miniaturadaimagem|283x283px]]&lt;br /&gt;
[[Categoria:Artigos Técnicos]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Qrcode_ispfocus.png&amp;diff=1100</id>
		<title>Arquivo:Qrcode ispfocus.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Qrcode_ispfocus.png&amp;diff=1100"/>
		<updated>2026-02-06T03:33:06Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Qrcode ispfocus&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1099</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1099"/>
		<updated>2026-02-06T03:29:05Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Banner no SSH ==&lt;br /&gt;
Primeiramente é interessante comentar que ter um banner informando que o acesso só é permitido para pessoas autorizadas, é uma boa prática. Então aqui vai um exemplo de banner, basta criar o arquivo &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039; com o conteúdo abaixo e alterado para o nome da sua Organização e adicionar em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; com o parâmetro: &#039;&#039;&#039;Banner&#039;&#039;&#039; &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039;. Na sequência só reiniciar o serviço sshd com: &#039;&#039;&#039;systemctl restart sshd&#039;&#039;&#039;. &lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * Este acesso e unica e exclusivamente para pessoas autorizadas.              *&lt;br /&gt;
 * Voce esta prestes a acessar uma area Restrita/Privada, podendo conter       *&lt;br /&gt;
 * informacao confidencial e/ou privilegiada. Este acesso sera monitorado.     *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Se voce nao foi autorizado, desde ja fica notificado de abster-se a         *&lt;br /&gt;
 * divulgar, copiar, distribuir, examinar, de qualquer forma, utilizar a       *&lt;br /&gt;
 * informacao contida neste servidor, por ser ilegal, sujeitando o infrator as *&lt;br /&gt;
 * penas da lei.                                                               *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Precione &amp;lt;Ctrl-D&amp;gt; se voce NAO foi autorizado.                               *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * This access is solely and exclusively for authorized personnel.             *&lt;br /&gt;
 * You are about to access a Restricted/Private area, which may contain        *&lt;br /&gt;
 * confidential and/or privileged information. This access will be monitored.  *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * If you are not authorized, you are hereby notified to refrain from          *&lt;br /&gt;
 * disclosing, copying, distributing, reviewing, or otherwise using the        *&lt;br /&gt;
 * information contained on this server, as it is illegal and will subject     *&lt;br /&gt;
 * the violator to penalties under the law.                                    *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Press &amp;lt;Ctrl-D&amp;gt; if you are NOT authorized.                                   *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no servidor Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Altere em &#039;&#039;&#039;/etc/ssh/sshd&#039;&#039;&#039; para que esses parâmetros fiquem assim:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;br /&gt;
Para essa configuração precisaremos do módulo &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; só que ele não está mais presente nos pacotes do Debian. Nesse caso baixaremos o código fonte do &#039;&#039;&#039;Github&#039;&#039;&#039;, compilaremos e instalaremos no &#039;&#039;&#039;Debian&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instalando os pacotes que precisaremos:&lt;br /&gt;
 # apt install git autoconf build-essential libtool automake libpam-dev libssl-dev gnulib&lt;br /&gt;
Baixando do repositório do &#039;&#039;&#039;Github&#039;&#039;&#039;:&lt;br /&gt;
 # cd /usr/local/src&lt;br /&gt;
 # git clone &amp;lt;nowiki&amp;gt;https://github.com/kravietz/pam_tacplus.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Compilando e instalando o &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039;:&lt;br /&gt;
 # cd pam-tacplus&lt;br /&gt;
 # gnulib-tool --makefile-name=Makefile.gnulib --libtool --import fcntl crypto/md5 array-list list xlist getrandom realloc-posix explicit_bzero xalloc getopt-gnu&lt;br /&gt;
 # autoreconf -f -v -i&lt;br /&gt;
 # ./configure --libdir=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
O módulo usa o serviço PAP no Tacacs+ para autenticação e por isso precisa configurar no seu servidor Tacacs+. Caso esteja usando um servidor Tacacs+ em um GNU/Linux,  precisará definir no arquivo de configuração &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039; se o &#039;&#039;&#039;pap&#039;&#039;&#039; usará usuários criados localmente no servidor pelo &#039;&#039;&#039;useradd&#039;&#039;&#039; ou se usará usuários no próprio arquivo &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039;. Abaixo mostro os 2 exemplos:&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = file /etc/passwd&lt;br /&gt;
 }&lt;br /&gt;
Neste exemplo acima o usuário foi criado no servidor Tacacs+ com o comando: &#039;&#039;&#039;useradd -s /bin/false &amp;lt;user&amp;gt;&#039;&#039;&#039; e depois setada a senha com: &#039;&#039;&#039;passwd &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
OU&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = cleartext &amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
Nesse último exemplo você precisará definir a senha do usuário no lugar de &#039;&#039;&#039;&amp;lt;senha_forte&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Radius Server ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039;, antes da linha com &#039;&#039;&#039;@include common-auth&#039;&#039;&#039;, adicione:&lt;br /&gt;
 auth    requisite                       pam_google_authenticator.so&lt;br /&gt;
 auth    sufficient                      pam_radius_auth.so&lt;br /&gt;
Nesse momento você poderá testar o &#039;&#039;&#039;SSH&#039;&#039;&#039; para o seu servidor e verá algo assim:&lt;br /&gt;
[[Arquivo:Tela autenticacao.png|nenhum|miniaturadaimagem|740x740px]]&lt;br /&gt;
Primeiro o sistema irá pedir seu &#039;&#039;&#039;token&#039;&#039;&#039; do &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; e somente se passar o correto é que será solicitada a &#039;&#039;&#039;senha cadastrada no seu Radius Server&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Caso necessite que o usuário se torne root utilizando &#039;&#039;&#039;sudo&#039;&#039;&#039;, faça a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; e adicione o usuário no &#039;&#039;&#039;grupo sudo&#039;&#039;&#039; com o comando: &#039;&#039;&#039;usermod -aG sudo &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Tacacs+ Server ==&lt;br /&gt;
Para configurarmos a autenticação usando &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, faremos a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039; e &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; só que um pouco diferente.&lt;br /&gt;
 auth       requisite  pam_google_authenticator.so&lt;br /&gt;
 auth       sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 account    sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 session    sufficient pam_tacplus.so server=10.254.254.6 secret=&amp;lt;senha_forte&amp;gt;&lt;br /&gt;
Acima o parâmetro &#039;&#039;&#039;server=&#039;&#039;&#039; é o IP do seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;secret=&#039;&#039;&#039; é a &#039;&#039;&#039;secret key&#039;&#039;&#039; utilizada no seu servidor &#039;&#039;&#039;Tacacs+&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1098</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1098"/>
		<updated>2026-02-06T03:25:43Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Banner no SSH ==&lt;br /&gt;
Primeiramente é interessante comentar que ter um banner informando que o acesso só é permitido para pessoas autorizadas, é uma boa prática. Então aqui vai um exemplo de banner, basta criar o arquivo &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039; com o conteúdo abaixo e alterado para o nome da sua Organização e adicionar em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; com o parâmetro: &#039;&#039;&#039;Banner&#039;&#039;&#039; &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039;. Na sequência só reiniciar o serviço sshd com: &#039;&#039;&#039;systemctl restart sshd&#039;&#039;&#039;. &lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * Este acesso e unica e exclusivamente para pessoas autorizadas.              *&lt;br /&gt;
 * Voce esta prestes a acessar uma area Restrita/Privada, podendo conter       *&lt;br /&gt;
 * informacao confidencial e/ou privilegiada. Este acesso sera monitorado.     *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Se voce nao foi autorizado, desde ja fica notificado de abster-se a         *&lt;br /&gt;
 * divulgar, copiar, distribuir, examinar, de qualquer forma, utilizar a       *&lt;br /&gt;
 * informacao contida neste servidor, por ser ilegal, sujeitando o infrator as *&lt;br /&gt;
 * penas da lei.                                                               *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Precione &amp;lt;Ctrl-D&amp;gt; se voce NAO foi autorizado.                               *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * This access is solely and exclusively for authorized personnel.             *&lt;br /&gt;
 * You are about to access a Restricted/Private area, which may contain        *&lt;br /&gt;
 * confidential and/or privileged information. This access will be monitored.  *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * If you are not authorized, you are hereby notified to refrain from          *&lt;br /&gt;
 * disclosing, copying, distributing, reviewing, or otherwise using the        *&lt;br /&gt;
 * information contained on this server, as it is illegal and will subject     *&lt;br /&gt;
 * the violator to penalties under the law.                                    *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Press &amp;lt;Ctrl-D&amp;gt; if you are NOT authorized.                                   *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no servidor Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Altere em &#039;&#039;&#039;/etc/ssh/sshd&#039;&#039;&#039; para que esses parâmetros fiquem assim:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;br /&gt;
Para essa configuração precisaremos do módulo &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; só que ele não está mais presente nos pacotes do Debian. Nesse caso baixaremos o código fonte do &#039;&#039;&#039;Github&#039;&#039;&#039;, compilaremos e instalaremos no &#039;&#039;&#039;Debian&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instalando os pacotes que precisaremos:&lt;br /&gt;
 # apt install git autoconf build-essential libtool automake libpam-dev libssl-dev gnulib&lt;br /&gt;
Baixando do repositório do &#039;&#039;&#039;Github&#039;&#039;&#039;:&lt;br /&gt;
 # cd /usr/local/src&lt;br /&gt;
 # git clone &amp;lt;nowiki&amp;gt;https://github.com/kravietz/pam_tacplus.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Compilando e instalando o &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039;:&lt;br /&gt;
 # cd pam-tacplus&lt;br /&gt;
 # gnulib-tool --makefile-name=Makefile.gnulib --libtool --import fcntl crypto/md5 array-list list xlist getrandom realloc-posix explicit_bzero xalloc getopt-gnu&lt;br /&gt;
 # autoreconf -f -v -i&lt;br /&gt;
 # ./configure --libdir=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
O módulo usa o serviço PAP no Tacacs+ para autenticação e por isso precisa configurar no seu servidor Tacacs+. Caso esteja usando um servidor Tacacs+ em um GNU/Linux,  precisará definir no arquivo de configuração &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039; se o &#039;&#039;&#039;pap&#039;&#039;&#039; usará usuários criados localmente no servidor pelo &#039;&#039;&#039;useradd&#039;&#039;&#039; ou se usará usuários no próprio arquivo &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039;. Abaixo mostro os 2 exemplos:&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = file /etc/passwd&lt;br /&gt;
 }&lt;br /&gt;
Neste exemplo acima o usuário foi criado no servidor Tacacs+ com o comando: &#039;&#039;&#039;useradd -s /bin/false &amp;lt;user&amp;gt;&#039;&#039;&#039; e depois setada a senha com: &#039;&#039;&#039;passwd &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
OU&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = cleartext &amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
Nesse último exemplo você precisará definir a senha do usuário no lugar de &#039;&#039;&#039;&amp;lt;senha_forte&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Radius Server ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039;, antes da linha com &#039;&#039;&#039;@include common-auth&#039;&#039;&#039;, adicione:&lt;br /&gt;
 auth    requisite                       pam_google_authenticator.so&lt;br /&gt;
 auth    sufficient                      pam_radius_auth.so&lt;br /&gt;
Nesse momento você poderá testar o &#039;&#039;&#039;SSH&#039;&#039;&#039; para o seu servidor e verá algo assim:&lt;br /&gt;
[[Arquivo:Tela autenticacao.png|nenhum|miniaturadaimagem|740x740px]]&lt;br /&gt;
Primeiro o sistema irá pedir seu &#039;&#039;&#039;token&#039;&#039;&#039; do &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; e somente se passar o correto é que será solicitada a &#039;&#039;&#039;senha cadastrada no seu Radius Server&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Caso necessite que o usuário se torne root utilizando &#039;&#039;&#039;sudo&#039;&#039;&#039;, faça a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; e adicione o usuário no &#039;&#039;&#039;grupo sudo&#039;&#039;&#039; com o comando: &#039;&#039;&#039;usermod -aG sudo &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Tacacs+ Server ==&lt;br /&gt;
Para configurarmos a autenticação usando &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, faremos a mesma configuração em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039; e &#039;&#039;&#039;/etc/pam.d/sudo-i&#039;&#039;&#039; só que um pouco diferente.&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1097</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1097"/>
		<updated>2026-02-06T03:21:01Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Banner no SSH ==&lt;br /&gt;
Primeiramente é interessante comentar que ter um banner informando que o acesso só é permitido para pessoas autorizadas, é uma boa prática. Então aqui vai um exemplo de banner, basta criar o arquivo &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039; com o conteúdo abaixo e alterado para o nome da sua Organização e adicionar em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; com o parâmetro: &#039;&#039;&#039;Banner&#039;&#039;&#039; &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039;. Na sequência só reiniciar o serviço sshd com: &#039;&#039;&#039;systemctl restart sshd&#039;&#039;&#039;. &lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * Este acesso e unica e exclusivamente para pessoas autorizadas.              *&lt;br /&gt;
 * Voce esta prestes a acessar uma area Restrita/Privada, podendo conter       *&lt;br /&gt;
 * informacao confidencial e/ou privilegiada. Este acesso sera monitorado.     *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Se voce nao foi autorizado, desde ja fica notificado de abster-se a         *&lt;br /&gt;
 * divulgar, copiar, distribuir, examinar, de qualquer forma, utilizar a       *&lt;br /&gt;
 * informacao contida neste servidor, por ser ilegal, sujeitando o infrator as *&lt;br /&gt;
 * penas da lei.                                                               *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Precione &amp;lt;Ctrl-D&amp;gt; se voce NAO foi autorizado.                               *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * This access is solely and exclusively for authorized personnel.             *&lt;br /&gt;
 * You are about to access a Restricted/Private area, which may contain        *&lt;br /&gt;
 * confidential and/or privileged information. This access will be monitored.  *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * If you are not authorized, you are hereby notified to refrain from          *&lt;br /&gt;
 * disclosing, copying, distributing, reviewing, or otherwise using the        *&lt;br /&gt;
 * information contained on this server, as it is illegal and will subject     *&lt;br /&gt;
 * the violator to penalties under the law.                                    *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Press &amp;lt;Ctrl-D&amp;gt; if you are NOT authorized.                                   *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no servidor Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Altere em &#039;&#039;&#039;/etc/ssh/sshd&#039;&#039;&#039; para que esses parâmetros fiquem assim:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;br /&gt;
Para essa configuração precisaremos do módulo &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; só que ele não está mais presente nos pacotes do Debian. Nesse caso baixaremos o código fonte do &#039;&#039;&#039;Github&#039;&#039;&#039;, compilaremos e instalaremos no &#039;&#039;&#039;Debian&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instalando os pacotes que precisaremos:&lt;br /&gt;
 # apt install git autoconf build-essential libtool automake libpam-dev libssl-dev gnulib&lt;br /&gt;
Baixando do repositório do &#039;&#039;&#039;Github&#039;&#039;&#039;:&lt;br /&gt;
 # cd /usr/local/src&lt;br /&gt;
 # git clone &amp;lt;nowiki&amp;gt;https://github.com/kravietz/pam_tacplus.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Compilando e instalando o &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039;:&lt;br /&gt;
 # cd pam-tacplus&lt;br /&gt;
 # gnulib-tool --makefile-name=Makefile.gnulib --libtool --import fcntl crypto/md5 array-list list xlist getrandom realloc-posix explicit_bzero xalloc getopt-gnu&lt;br /&gt;
 # autoreconf -f -v -i&lt;br /&gt;
 # ./configure --libdir=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
O módulo usa o serviço PAP no Tacacs+ para autenticação e por isso precisa configurar no seu servidor Tacacs+. Caso esteja usando um servidor Tacacs+ em um GNU/Linux,  precisará definir no arquivo de configuração &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039; se o &#039;&#039;&#039;pap&#039;&#039;&#039; usará usuários criados localmente no servidor pelo &#039;&#039;&#039;useradd&#039;&#039;&#039; ou se usará usuários no próprio arquivo &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039;. Abaixo mostro os 2 exemplos:&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = file /etc/passwd&lt;br /&gt;
 }&lt;br /&gt;
Neste exemplo acima o usuário foi criado no servidor Tacacs+ com o comando: &#039;&#039;&#039;useradd -s /bin/false &amp;lt;user&amp;gt;&#039;&#039;&#039; e depois setada a senha com: &#039;&#039;&#039;passwd &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
OU&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = cleartext &amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
Nesse último exemplo você precisará definir a senha do usuário no lugar de &#039;&#039;&#039;&amp;lt;senha_forte&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Radius Server ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039;, antes da linha com &#039;&#039;&#039;@include common-auth&#039;&#039;&#039;, adicione:&lt;br /&gt;
 auth    requisite                       pam_google_authenticator.so&lt;br /&gt;
 auth    sufficient                      pam_radius_auth.so&lt;br /&gt;
Nesse momento você poderá testar o &#039;&#039;&#039;SSH&#039;&#039;&#039; para o seu servidor e verá algo assim:&lt;br /&gt;
[[Arquivo:Tela autenticacao.png|nenhum|miniaturadaimagem|740x740px]]&lt;br /&gt;
Primeiro o sistema irá pedir seu &#039;&#039;&#039;token&#039;&#039;&#039; do &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; e somente se passar o correto é que será solicitada a &#039;&#039;&#039;senha cadastrada no seu Radius Server&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Tacacs+ Server ==&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1096</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1096"/>
		<updated>2026-02-06T02:53:04Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Banner no SSH ==&lt;br /&gt;
Primeiramente é interessante comentar que ter um banner informando que o acesso só é permitido para pessoas autorizadas, é uma boa prática. Então aqui vai um exemplo de banner, basta criar o arquivo &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039; com o conteúdo abaixo e alterado para o nome da sua Organização e adicionar em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; com o parâmetro: &#039;&#039;&#039;Banner&#039;&#039;&#039; &#039;&#039;&#039;/etc/ssh/banner&#039;&#039;&#039;. Na sequência só reiniciar o serviço sshd com: &#039;&#039;&#039;systemctl restart sshd&#039;&#039;&#039;. &lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * Este acesso e unica e exclusivamente para pessoas autorizadas.              *&lt;br /&gt;
 * Voce esta prestes a acessar uma area Restrita/Privada, podendo conter       *&lt;br /&gt;
 * informacao confidencial e/ou privilegiada. Este acesso sera monitorado.     *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Se voce nao foi autorizado, desde ja fica notificado de abster-se a         *&lt;br /&gt;
 * divulgar, copiar, distribuir, examinar, de qualquer forma, utilizar a       *&lt;br /&gt;
 * informacao contida neste servidor, por ser ilegal, sujeitando o infrator as *&lt;br /&gt;
 * penas da lei.                                                               *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Precione &amp;lt;Ctrl-D&amp;gt; se voce NAO foi autorizado.                               *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
 *                                 ISPFocus                                    *&lt;br /&gt;
 * This access is solely and exclusively for authorized personnel.             *&lt;br /&gt;
 * You are about to access a Restricted/Private area, which may contain        *&lt;br /&gt;
 * confidential and/or privileged information. This access will be monitored.  *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * If you are not authorized, you are hereby notified to refrain from          *&lt;br /&gt;
 * disclosing, copying, distributing, reviewing, or otherwise using the        *&lt;br /&gt;
 * information contained on this server, as it is illegal and will subject     *&lt;br /&gt;
 * the violator to penalties under the law.                                    *&lt;br /&gt;
 *                                                                             *&lt;br /&gt;
 * Press &amp;lt;Ctrl-D&amp;gt; if you are NOT authorized.                                   *&lt;br /&gt;
 *******************************************************************************&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no servidor Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Altere em &#039;&#039;&#039;/etc/ssh/sshd&#039;&#039;&#039; para que esses parâmetros fiquem assim:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
 UsePAM yes&lt;br /&gt;
 PasswordAuthentication yes&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;br /&gt;
Para essa configuração precisaremos do módulo &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; só que ele não está mais presente nos pacotes do Debian. Nesse caso baixaremos o código fonte do &#039;&#039;&#039;Github&#039;&#039;&#039;, compilaremos e instalaremos no &#039;&#039;&#039;Debian&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instalando os pacotes que precisaremos:&lt;br /&gt;
 # apt install git autoconf build-essential libtool automake libpam-dev libssl-dev gnulib&lt;br /&gt;
Baixando do repositório do &#039;&#039;&#039;Github&#039;&#039;&#039;:&lt;br /&gt;
 # cd /usr/local/src&lt;br /&gt;
 # git clone &amp;lt;nowiki&amp;gt;https://github.com/kravietz/pam_tacplus.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Compilando e instalando o &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039;:&lt;br /&gt;
 # cd pam-tacplus&lt;br /&gt;
 # gnulib-tool --makefile-name=Makefile.gnulib --libtool --import fcntl crypto/md5 array-list list xlist getrandom realloc-posix explicit_bzero xalloc getopt-gnu&lt;br /&gt;
 # autoreconf -f -v -i&lt;br /&gt;
 # ./configure --libdir=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
O módulo usa o serviço PAP no Tacacs+ para autenticação e por isso precisa configurar no seu servidor Tacacs+. Caso esteja usando um servidor Tacacs+ em um GNU/Linux,  precisará definir no arquivo de configuração &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039; se o &#039;&#039;&#039;pap&#039;&#039;&#039; usará usuários criados localmente no servidor pelo &#039;&#039;&#039;useradd&#039;&#039;&#039; ou se usará usuários no próprio arquivo &#039;&#039;&#039;tac_plus.conf&#039;&#039;&#039;. Abaixo mostro os 2 exemplos:&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = file /etc/passwd&lt;br /&gt;
 }&lt;br /&gt;
Neste exemplo acima o usuário foi criado no servidor Tacacs+ com o comando: &#039;&#039;&#039;useradd -s /bin/false &amp;lt;user&amp;gt;&#039;&#039;&#039; e depois setada a senha com: &#039;&#039;&#039;passwd &amp;lt;user&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
OU&lt;br /&gt;
 user = gondim {&lt;br /&gt;
      member = cgr&lt;br /&gt;
      pap = cleartext &amp;lt;senha_forte&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
Nesse último exemplo você precisará definir a senha do usuário no lugar de &#039;&#039;&#039;&amp;lt;senha_forte&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Alterando o PAM do Debian GNU/Linux para autenticar usando Google Authenticator e Radius Server ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039;, antes da linha com &#039;&#039;&#039;@include common-auth&#039;&#039;&#039;, adicione:&lt;br /&gt;
 auth    requisite                       pam_google_authenticator.so&lt;br /&gt;
 auth    sufficient                      pam_radius_auth.so&lt;br /&gt;
Nesse momento você poderá testar o &#039;&#039;&#039;SSH&#039;&#039;&#039; para o seu servidor e verá algo assim:&lt;br /&gt;
[[Arquivo:Tela autenticacao.png|nenhum|miniaturadaimagem|740x740px]]&lt;br /&gt;
Primeiro o sistema irá pedir seu &#039;&#039;&#039;token&#039;&#039;&#039; do &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; e somente se passar o correto é que será solicitada a &#039;&#039;&#039;senha cadastrada no seu Radius Server&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1094</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1094"/>
		<updated>2026-02-06T01:59:34Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Instalando o Google Authenticator no Debian ==&lt;br /&gt;
 # apt-get install libpam-google-authenticator -y&lt;br /&gt;
É necessário que o usuário seja criado localmente no sistema. Exemplo:&lt;br /&gt;
 # useradd -m -s /bin/bash gondim&lt;br /&gt;
Agora vamos gerar os dados para cadastro no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no smartphone do usuário &#039;&#039;&#039;gondim&#039;&#039;&#039;:&lt;br /&gt;
 # su - gondim&lt;br /&gt;
 $ google-authenticator -C -t -d -f -w 3 -Q UTF8 -r 3 -R 30&lt;br /&gt;
[[Arquivo:Qrcode.png|nenhum|miniaturadaimagem|916x916px]]&lt;br /&gt;
Quando executamos o comando acima, ele gera informações como neste exemplo. Nele temos o &#039;&#039;&#039;QR Code&#039;&#039;&#039; que facilita a configuração no &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;, temos a &#039;&#039;&#039;secret key&#039;&#039;&#039; que também pode ser usado para cadastro e os códigos de emergência para em caso de perda ou roubo do &#039;&#039;&#039;smartphone&#039;&#039;&#039;, o usuário ainda conseguir logar no sistema. &lt;br /&gt;
&lt;br /&gt;
Seguiremos agora com um exemplo de configuração para autenticação em Servidor Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Radius Server ==&lt;br /&gt;
 # apt install libpam-radius-auth&lt;br /&gt;
Edite o arquivo &#039;&#039;&#039;/etc/pam_radius_auth.conf&#039;&#039;&#039; e deixe configurado nele o apontamento para seu servidor Radius com a secret:&lt;br /&gt;
 # server[:port]             shared_secret      timeout (s)&lt;br /&gt;
 10.254.254.6 C5or4Zc49z2R 3&lt;br /&gt;
Obs.: no seu servidor Radius você precisará liberar em NAS o IP do seu servidor Debian, senão ele não terá autorização para acessar o Radius.&lt;br /&gt;
&lt;br /&gt;
== Instalando e configurando o módulo PAM para autenticação em Tacacs+ Server ==&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Arquivo:Qrcode.png&amp;diff=1093</id>
		<title>Arquivo:Qrcode.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Arquivo:Qrcode.png&amp;diff=1093"/>
		<updated>2026-02-06T01:42:07Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;qrcode&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1092</id>
		<title>Autenticacao TOTP Radius Tacacs Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=Autenticacao_TOTP_Radius_Tacacs_Debian&amp;diff=1092"/>
		<updated>2026-02-06T00:37:04Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arquivo:Ssh_totp_radius_tacacs.png|semmoldura|482x482px]]{{DISPLAYTITLE:Autenticação TOTP + Radius/Tacacs no Debian}}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
A administração remota de servidores &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039; é algo que precisamos estar sempre atentos com a segurança. Filtros de pacotes para bloquear e/ou liberar acessos, ajustes para serviços não ficarem expostos sem necessidade, uso de IPs privados quando possível, aplicar atualizações quando disponíveis, monitoramento dos logs e file system são coisas básicas para todo sysadmin. Boa parte destas tarefas necessitam de acesso remoto aos servidores via &#039;&#039;&#039;SSH&#039;&#039;&#039; e esse serviço precisa ser bem cuidado para que seu servidor não seja comprometido. Outro fator importante é quando administra diversos servidores em uma empresa juntamente com outros sysadmins e em algum momento alguém é desligado da empresa ou entrou de férias. Imagina ter que entrar em cada servidor para remover ou bloquear os acessos.  Imagina fazer isso com 100, 500, 1000 VMs. Neste artigo iremos configurar um servidor Debian para autenticar via &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; e ainda usar 2FA com Google Authenticator. O &#039;&#039;&#039;Radius&#039;&#039;&#039; e o &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; darão controle para administração centralizada da autenticação dos usuários e o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; adiciona uma camada de segurança no acesso &#039;&#039;&#039;SSH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Pré-requisitos ==&lt;br /&gt;
Para que nosso ambiente funcione precisaremos:&lt;br /&gt;
&lt;br /&gt;
* Um servidor &#039;&#039;&#039;Radius&#039;&#039;&#039; ou &#039;&#039;&#039;Tacacs+&#039;&#039;&#039; já em produção. Melhor ainda se estiverem em &#039;&#039;&#039;HA (High Availability)&#039;&#039;&#039;, pois como estamos lidando com acessos críticos de equipamentos e servidores, precisamos garantir que em caso de falha no autenticador principal, um secundário assuma essa função e a operação não seja impactada.&lt;br /&gt;
* O servidor precisar ter acesso sainte para a &#039;&#039;&#039;Internet&#039;&#039;&#039;, pode ser através de &#039;&#039;&#039;NAT&#039;&#039;&#039;. Se faz necessário para instalação dos pacotes e download do projeto &#039;&#039;&#039;pam_tacplus&#039;&#039;&#039; via &#039;&#039;&#039;Github&#039;&#039;&#039; caso use autenticação via &#039;&#039;&#039;Tacacs+.&#039;&#039;&#039;&lt;br /&gt;
* Os comandos aqui serão executados em um &#039;&#039;&#039;Debian 13 (Trixie)&#039;&#039;&#039; mas poderão ser adaptados para serem executados em outras &#039;&#039;&#039;distribuições GNU/Linux&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
	<entry>
		<id>https://wiki.ispup.com.br/w/index.php?title=SSH_SERVER_2FA&amp;diff=1091</id>
		<title>SSH SERVER 2FA</title>
		<link rel="alternate" type="text/html" href="https://wiki.ispup.com.br/w/index.php?title=SSH_SERVER_2FA&amp;diff=1091"/>
		<updated>2026-02-06T00:35:08Z</updated>

		<summary type="html">&lt;p&gt;Gondim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:SSH Server com Autenticação 2FA}}&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Criminal-bandit-hacker-scaled-1.jpg|nenhum|miniaturadaimagem|475x475px]]&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
Recentemente em um treinamento do &#039;&#039;&#039;Patrick Brandão&#039;&#039;&#039;, vimos o quanto o &#039;&#039;&#039;SSH&#039;&#039;&#039; (&#039;&#039;&#039;Secure Shell&#039;&#039;&#039;), pode ser usado dentro da segurança de acesso a sistemas. Desde túneis criptográficos, redirecionamentos de portas e até em uso de &#039;&#039;&#039;Zero Trust&#039;&#039;&#039;. Sabemos o quanto este serviço é importante para nós de Tecnologia da Informação e para Operadores de Redes. Então resolvi escrever esse pequeno artigo de como vocês podem configurar seus servidores GNU/linux para autenticarem &#039;&#039;&#039;SSH usando 2FA&#039;&#039;&#039; com o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;. Sim não é nada muito utilizado no nosso dia a dia, pois existem formas melhores e mais seguras como &#039;&#039;&#039;SSH-CA usando certificados digitais assinados&#039;&#039;&#039; e &#039;&#039;&#039;autenticação utilizando apenas chaves SSH&#039;&#039;&#039;. Mas se ainda assim preferirem uma autenticação utilizando &#039;&#039;&#039;usuário e senha&#039;&#039;&#039;, que vocês então implementem um 2FA no serviço SSH.&lt;br /&gt;
&lt;br /&gt;
== Ambiente de configuração ==&lt;br /&gt;
Como sou um defensor do Debian GNU/Linux, estaremos efetuando as configurações e testes abaixo em um Debian 12 (Bookworm) mas em teoria, pode ser aplicado em outras distribuições GNU/Linux. Para essa configuração precisaremos instalar apenas um pacote chamado &#039;&#039;&#039;libpam-google-authenticator&#039;&#039;&#039;.&lt;br /&gt;
 # apt install libpam-google-authenticator&lt;br /&gt;
&lt;br /&gt;
== Gerando os códigos de recuperação e o QR Code e/ou chave para cadastro manual do token ==&lt;br /&gt;
Se logue no usuário para o qual vai querer habilitar o token e rode:&lt;br /&gt;
 $ google-authenticator &lt;br /&gt;
 &lt;br /&gt;
 Do you want authentication tokens to be time-based (y/n) y&lt;br /&gt;
[[Arquivo:Qrcode ssh.png|nenhum|miniaturadaimagem|695x695px]]&lt;br /&gt;
Ele irá exibir um &#039;&#039;&#039;QR Code&#039;&#039;&#039; para ser lido com o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; ou se preferir uma &#039;&#039;&#039;secret key&#039;&#039;&#039; para ser cadastrado manualmente. Nesse momento já temos que ter o &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039; instalado no nosso &#039;&#039;&#039;smartphone&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Abrimos o app no smartphone e pressionamos o &#039;&#039;&#039;sinal de +&#039;&#039;&#039;. Na sequência escolhemos ler o &#039;&#039;&#039;QR Code&#039;&#039;&#039; ou inserir a chave que seria aquela &#039;&#039;&#039;secret key&#039;&#039;&#039;.&lt;br /&gt;
[[Arquivo:Qrcode6.png|nenhum|commoldura]]&lt;br /&gt;
Após escolhermos o &#039;&#039;&#039;QR Code&#039;&#039;&#039;, irá abrir a câmera do seu &#039;&#039;&#039;smartphone&#039;&#039;&#039;. Aponte para o QR Code e será configurado o &#039;&#039;&#039;token&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Abaixo temos o token sendo gerado.&lt;br /&gt;
[[Arquivo:Qrcode7.png|nenhum|commoldura]]&lt;br /&gt;
Voltamos para o nosso servidor e agora passamos o token para a aplicação, para efetuarmos a confirmação da configuração:&lt;br /&gt;
[[Arquivo:Qrcode3.png|nenhum|miniaturadaimagem|649x649px]]&lt;br /&gt;
Após confirmar, serão exibidos os 5 códigos de recuperação de emergência. Eles são importantes para recuperar os acessos caso perca seu smartphone. Cada código de recuperação só poderá ser usado uma única vez.&lt;br /&gt;
&lt;br /&gt;
Se precisar consultá-los, eles ficam armazenados no home do usuário no arquivo &#039;&#039;&#039;.google_authenticator&#039;&#039;&#039;:&lt;br /&gt;
[[Arquivo:Qrcode4.png|nenhum|miniaturadaimagem|651x651px]]&lt;br /&gt;
Na sequência ele irá perguntar se deseja proibir uso de múltiplo login, por segurança dizemos que sim. Depois ele pergunta sobre criação de tokens extras para compensar problemas de horários não sincronizados entre o cliente e o servidor. Nesse caso vamos dizer que não, porque é função nossa como sysadmin, configurar ajuste automático de horário no servidor usando &#039;&#039;&#039;NTP (Network Time Protocol)&#039;&#039;&#039;. Por último aplicamos um &#039;&#039;&#039;rate-limit&#039;&#039;&#039; no nosso sistema para 3 tentativas a cada 30 segundos. &lt;br /&gt;
[[Arquivo:Qrcode5.png|nenhum|miniaturadaimagem|649x649px]]&lt;br /&gt;
&lt;br /&gt;
== Configurando o sistema de autenticação do SSH para funcionar com o Google Authenticator ==&lt;br /&gt;
Em &#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039; vamos modificar o parâmetro abaixo de &#039;&#039;&#039;NO&#039;&#039;&#039; para &#039;&#039;&#039;YES&#039;&#039;&#039;:&lt;br /&gt;
 KbdInteractiveAuthentication yes&lt;br /&gt;
&#039;&#039;&#039;Em versões antigas do openssh-server o parâmetro era este abaixo&#039;&#039;&#039;: &lt;br /&gt;
 ChallengeResponseAuthentication yes&lt;br /&gt;
Reinicie o serviço SSH:&lt;br /&gt;
 # systemctl restart sshd&lt;br /&gt;
Na sequência edite o arquivo &#039;&#039;&#039;/etc/pam.d/sshd&#039;&#039;&#039; e adicione no final dele a instrução:&amp;lt;pre&amp;gt;&lt;br /&gt;
auth required pam_google_authenticator.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&#039;&#039;&#039;Cuidado! Não desconecte do servidor antes de testar se está funcionando ou que tenha acesso via console.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para testarmos só fazermos um ssh para o servidor e irá acontecer algo como abaixo. Será pedida a senha do usuário e na sequência também &#039;&#039;&#039;será pedido o code do token&#039;&#039;&#039; gerado pelo &#039;&#039;&#039;Google Authenticator&#039;&#039;&#039;. Acertando os dois, a sessão é completada.&lt;br /&gt;
 # ssh gondim@177.XXX.XXX.12 &lt;br /&gt;
 (gondim@177.XXX.XXX.12) Password: &lt;br /&gt;
 (gondim@177.XXX.XXX.12) Verification code: &lt;br /&gt;
 Linux AMA-RR-FLOW-01 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64&lt;br /&gt;
 &lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 You have new mail.&lt;br /&gt;
 Last login: Fri Jul 11 01:40:37 2025 from 177.XXX.XXX.30&lt;br /&gt;
 gondim@AMA-RR-FLOW-01:~$&lt;br /&gt;
Se quiser aplicar o mesmo bloqueio na &#039;&#039;&#039;console do servidor&#039;&#039;&#039;, basta incluir a mesma configuração só que em &#039;&#039;&#039;/etc/pam.d/login&#039;&#039;&#039;. Mas cuidado para não perder o acesso ao sistema. Não me responsabilizo por problemas gerados por este artigo.  :)&lt;br /&gt;
[[Categoria:Dicas Técnicas]]&lt;/div&gt;</summary>
		<author><name>Gondim</name></author>
	</entry>
</feed>