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

<channel>
	<title>Arquivos ping - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/ping/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/ping</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Tue, 08 Oct 2024 21:13:38 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.remontti.com.br/wp-content/uploads/2024/09/icone-rr-80x80.png</url>
	<title>Arquivos ping - Remontti</title>
	<link>https://blog.remontti.com.br/tag/ping</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Aprenda a instalar um dos melhores Looking Glasses de código aberto: o Hyperglass</title>
		<link>https://blog.remontti.com.br/7201</link>
					<comments>https://blog.remontti.com.br/7201#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Thu, 30 Mar 2023 13:56:07 +0000</pubDate>
				<category><![CDATA[Huawei]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Arista EOS]]></category>
		<category><![CDATA[BGP AS Path]]></category>
		<category><![CDATA[BGP Community]]></category>
		<category><![CDATA[BIRD]]></category>
		<category><![CDATA[Cisco IOS-XR]]></category>
		<category><![CDATA[Cisco IOS/IOS-XE]]></category>
		<category><![CDATA[Cisco NX-OS]]></category>
		<category><![CDATA[Código Aberto]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[frrouting]]></category>
		<category><![CDATA[Hyperglass]]></category>
		<category><![CDATA[Juniper JunOS]]></category>
		<category><![CDATA[looking glass]]></category>
		<category><![CDATA[Nokia SR OS]]></category>
		<category><![CDATA[Personalização]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[Rota BGP]]></category>
		<category><![CDATA[TNSR]]></category>
		<category><![CDATA[Traceroute]]></category>
		<category><![CDATA[VyOS]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7201</guid>

					<description><![CDATA[<p>O que é o Hyperglass O hyperglass é um espelho de rede de código aberto escrito por um engenheiro de rede para outros engenheiros de rede. O objetivo de um espelho é fornecer aos&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7201">Aprenda a instalar um dos melhores Looking Glasses de código aberto: o Hyperglass</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass.jpg" alt="" width="720" height="340" class="size-full wp-image-7229" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass.jpg 720w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass-520x245.jpg 520w" sizes="(max-width: 720px) 100vw, 720px" /></p>
<h3>O que é o <a href="https://hyperglass.dev/docs/introduction" rel="noopener" target="_blank">Hyperglass</a></h3>
<p>O hyperglass é um espelho de rede de código aberto escrito por um engenheiro de rede para outros engenheiros de rede. O objetivo de um espelho é fornecer aos clientes, colegas e completos estranhos uma visibilidade autônoma da rede de uma operadora. A hyperglass foi criada com o grande objetivo de beneficiar a comunidade da Internet em geral, fornecendo uma maneira mais rápida, fácil e segura para as operadoras fornecerem serviços de espelhos a seus clientes, colegas e outras operadoras de rede.</p>
<p><strong>Recursos:</strong><br />
 &#8211; Rota BGP<br />
 &#8211; BGP Community<br />
 &#8211; BGP AS Path<br />
 &#8211; Ping<br />
 &#8211; Traceroute</p>
<p><strong>Suporte para: </strong><br />
 &#8211; Arista EOS<br />
 &#8211; BIRD<br />
 &#8211; Cisco IOS-XR<br />
 &#8211; Cisco IOS/IOS-XE<br />
 &#8211; Cisco NX-OS<br />
 &#8211; FRRouting<br />
 &#8211; Huawei<br />
 &#8211; Juniper JunOS<br />
 &#8211; Mikrotik<br />
 &#8211; Nokia SR OS<br />
 &#8211; TNSR<br />
 &#8211; VyOS</p>
<p>Personalização recursos, tema, texto da UI/API, mensagens de erro e comandos.</p>
<p>Ao decorrer do tutorial irei deixar todos os links com referencia a documentação <a href="https://hyperglass.dev/docs/" rel="noopener" target="_blank">https://hyperglass.dev/docs/</a>, pois o mesmo tem muita possibilidades.</p>
<h4>Notas e agradecimento</h4>
<p>O hyperglass é tem sua principal base desenvolvida em Python e está disponível no github.com por <a href="https://github.com/thatmattlove" rel="noopener" target="_blank">thatmattlove</a>, no entanto conta com um grupo no <a href="https://t.me/hyperglasslg" rel="noopener" target="_blank">telegram</a> onde encontrei algumas soluções para huawei, meu conhecimento em Python é limitado (ainda), mas criei meu próprio <a href="https://github.com/remontti/hyperglass" rel="noopener" target="_blank">fork</a> do projeto, e realizei <a href="https://github.com/remontti/hyperglass/commits/main" rel="noopener" target="_blank">algumas alterações</a>. Deixar aqui uma agradecimento a <a href="https://github.com/thatmattlove/hyperglass/compare/main...eaitelecomunicacoes:hyperglass:add_huawei_support" rel="noopener" target="_blank">eaitelecomunicacoes</a> onde encontrei uma contribuição que me ajudou muito. Contamos com ajuda de todos para tornar o projeto algo ainda melhor! Se tiver melhorias nao deixe de realizar um <a href="https://github.com/remontti/hyperglass/pulls" rel="noopener" target="_blank">Pull requests</a>.</p>
<h4>Distribuição Linux</h4>
<p>Todos meus testes foram realizando em cima do Debian 11<br />
&#8211; <strong><a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank">Instalação do Debian 11 Bullseye limpa passo-a-passo</a></strong></p>
<p>Acesse seu servidor e se torne root da forma correta:</p>
<pre class="remontti-code"># su -</pre>
<h4>Pacotes necessários</h4>
<pre class="remontti-code"># apt install -y python3-dev python3-pip python3-pil python3-pil.imagetk\
 python3-libtiff python3-glymur libtiff-dev libfreetype-dev liblcms2-2\
 liblcms2-utils libwebp-dev libboost-dev libimagequant-dev libraqm-dev\
 libjpeg-dev wget unzip zip git curl gnupg2</pre>
<h4>Script de instalação</h4>
<pre class="remontti-code"># cd /tmp
# wget https://raw.githubusercontent.com/remontti/hyperglass/main/install.sh
# bash install.sh</pre>
<p>Ao finalize execute o comando hyperglass &#8211;help para ver se a instalação esta funcionando.</p>
<pre class="remontti-code"># hyperglass --help</pre>
<pre class="remontti-code-plain">
Usage: hyperglass [OPTIONS] COMMAND [ARGS]...

   hyperglass Command Line Interface

Options:
   -v, --version  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f522.png" alt="🔢" class="wp-smiley" style="height: 1em; max-height: 1em;" /> hyperglass version
   -h, --help     <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f64f.png" alt="🙏" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Show this help message

Commands:
   build-ui     <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f98b.png" alt="🦋" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Create a new UI build
   clear-cache  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9fc.png" alt="🧼" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Clear the Redis cache
   secret       <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f512.png" alt="🔒" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Generate agent secret
   setup        <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9f0.png" alt="🧰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Run the setup wizard
   start        <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Start web server
   system-info  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f321.png" alt="🌡" class="wp-smiley" style="height: 1em; max-height: 1em;" />  Get system information for a bug report</pre>
<h3>Configurando hyperglass</h3>
<pre class="remontti-code"># hyperglass setup</pre>
<p>Vamos definir o diretório de configurações, selecione com a seta para baixo <strong>/etc/hyperglass</strong></p>
<pre class="remontti-code-plain">[?] Choose a directory for hyperglass: /etc/hyperglass
   /root/hyperglass
 &gt; /etc/hyperglass</pre>
<p>Antes de deixar você chanar no <strong>erro webpack</strong>:</p>
<pre class="remontti-code-plain">
[ERROR] 20230330 10:02:32 | hyperglass.util.frontend:401 | build_frontend → 
Messages:
info  - Using webpack 5. Reason: future.webpack5 option enabled https://nextjs.org/docs/messages/webpack5</pre>
<p>Vamos a solução localize `webpack5: true,` e altere para `webpack5: false,`</p>
<pre class="remontti-code"># sed -i &#039;s/webpack5: true,/webpack5: false,/g&#039; /usr/local/lib/python3.9/dist-packages/hyperglass/ui/next.config.js</pre>
<h4>Parâmetros de configuração</h4>
<p>Crie o arquivo /etc/hyperglass/hyperglass.yaml</p>
<pre class="remontti-code"># vim /etc/hyperglass/hyperglass.yaml</pre>
<p>Ajuste suas informações. <a href="https://hyperglass.dev/docs/parameters" rel="noopener" target="_blank">Doc</a>.</p>
<pre class="remontti-code-plain">
# https://hyperglass.dev/docs/parameters
debug: false
developer_mode: false
org_name: Remontti Telecom
primary_asn: 12345
site_title: Looking Glass Remontti
site_description: &quot;{org_name} Network Looking Glass&quot;
site_keywords: [hyperglass, looking glass, routing, bgp]
request_timeout: 30
listen_address: &quot;172.18.18.79&quot;  # IP que ira startar o serviço
listen_port: 80  # Porta do servico
#
# https://hyperglass.dev/docs/response-caching
cache:
  database: 0
  host: localhost
  port: 6379
  show_text: true
  timeout: 120
#
# https://hyperglass.dev/docs/messages/
messages:
  acl_denied: &quot;{target} is a member of {denied_network}, which is not allowed.&quot;
  acl_not_allowed: &quot;{target} is not allowed.&quot;
  authentication_error: Authentication error occurred.
  connection_error: &quot;Error connecting to {device_name}: {error}&quot;
  feature_not_enabled: &quot;{feature} is not enabled for {device_name}.&quot;
  general: Something went wrong.
  invalid_field: &quot;{input} is an invalid {field}.&quot;
  invalid_input: &quot;{target} is not a valid {query_type} target.&quot;
  no_input: &quot;{field} must be specified.&quot;
  no_output: The query completed, but no matching results were found.
  no_response: No response.
  parsing_error: An error occurred while parsing the query output.
  request_timeout: Request timed out.
  vrf_not_associated: VRF {vrf_name} is not associated with {device_name}.
  vrf_not_found: VRF {vrf_name} is not defined.
#
# https://hyperglass.dev/docs/logging/ (/var/log/hyperglass.log)
logging:
  directory: /var/log
  format: text
  max_size: 50 MB
#
# https://hyperglass.dev/docs/query-settings/
queries:
  bgp_route:
    display_name: BGP Route
    enable: true
  bgp_community:
    #Huwei modo structured não fuciona
    display_name: BGP Community
    enable: false
    mode: select
    communities:
      - community: 12345:666
        display_name: Blackhole
        description: 12345:666
  bgp_aspath:
    #Huwei modo structured não fuciona
    display_name: BGP AS Path
    enable: false
    pattern:
      asdot: &#039;^(\^|^\_)((\d+\.\d+)\_|(\d+\.\d+)\$|(\d+\.\d+)\(\_\.\+\_\))+$&#039;
      asplain: &#039;^(\^|^\_)(\d+\_|\d+\$|\d+\(\_\.\+\_\))+$&#039;
      mode: asplain
  ping:
    display_name: Ping
    enable: true
  traceroute:
    display_name: Traceroute
    enable: true
    #
# https://hyperglass.dev/docs/table-output/
structured:
  rpki:
    mode: external

#  communities:
#    #Para não exibir nenhuma communities    
#    mode: deny

#  communities:
#    # Para permitir apenas...
#    mode: permit
#    items:
#      - &#039;65000:\d+&#039;
#      - &#039;65[1-4]00:\d+&#039;

# https://hyperglass.dev/docs/ui/configuration/
web:
  links:
    - title: PeeringDB
      url: https://www.peeringdb.com/asn/12345
      side: left
      order: 1
    - title: Qrator
      url: https://radar.qrator.net/AS12345
      side: left
      order: 2
    - title: RADb
      url: https://www.radb.net/query?advanced_query=&amp;keywords=AS12345
      side: left
      order: 3
    - title: IRR Explorer
      url: https://irrexplorer.nlnog.net/asn/AS12345
      side: left
      order: 4
    - title: RDAP
      url: https://rdap.registro.br/autnum/12345
      side: left
      order: 5    
    - title: Remontti
      url: https://www.remontti.com.br
      side: right
      order: 0
  menus:
    - title: Contato
      content: &quot;Please contact [noc@remontti.com.br](mailto:noc@remontti.com.br) to get support.&quot;
      side: right
    - title: Termos e Condições
      content: /etc/hyperglass/terms-and-conditions.md
      side: right
  # https://hyperglass.dev/docs/ui/logo
  logo:
    dark: /etc/hyperglass/static/images/hyperglass-dark.svg
    light: /etc/hyperglass/static/images/hyperglass-light.svg
    favicon: /etc/hyperglass/static/images/hyperglass-icon.svg
    height: null
    width: 100%
  # https://hyperglass.dev/docs/ui/text
  text:
    cache_icon: Cached from {time} UTC
    cache_prefix: &quot;Results cached for &quot;
    complete_time: Completed in {seconds}
    fqdn_error: Unable to resolve {fqdn}
    fqdn_error_button: Try Again
    fqdn_message: Your browser has resolved {fqdn} to
    fqdn_tooltip: Use {protocol}
    no_communities: No Communities
    query_location: Location
    query_target: Target
    query_type: Query Type
    query_vrf: Routing Table
    rpki_invalid: Invalid
    rpki_unknown: No ROAs Exist
    rpki_unverified: Not Verified
    rpki_valid: Valid
    subtitle: Network Looking Glass
    title: hyperglass
    title_mode: logo_subtitle
  # https://hyperglass.dev/docs/ui/theme
  # https://hyperglass.dev/docs/ui/example</pre>
<h4>Adicionando Dispositivos</h4>
<p>Para adicionar seus dispositivos para cunsultas LG, crie o arquivo /etc/hyperglass/devices.yaml. Vou deixar um exemplo básico para Huawei, Mikrotik e comando personalizados com Linux. <a href="https://hyperglass.dev/docs/adding-devices" rel="noopener" target="_blank">Docs</a>  </p>
<pre class="remontti-code"># vim /etc/hyperglass/devices.yaml</pre>
<p>Adicione de acordo suas configurações</p>
<pre class="remontti-code-plain">
# https://hyperglass.dev/docs/adding-devices
routers:
  - name: AS12345 Remontti
    address: 10.50.50.25
    network:
      name: as12345
      display_name: Huawei
    credential:
      username: lookingglass
      password: supersenha
    port: 22
    nos: huawei
    vrfs:
      - name: global
        default: true
        ipv4:
          source_address: 200.200.200.200
          access_list:
            - network: 10.0.0.0/8
              action: deny
            - network: 192.168.0.0/16
              action: deny
            - network: 100.64.0.0/10
              action: deny
            - network: 172.16.0.0/12
              action: deny
            - network: 0.0.0.0/0
              action: permit
              ge: 8
              le: 32
        ipv6:
          source_address: 2000:2000:1::1
          access_list:
            - network: ::/0
              action: permit
              ge: 32
              le: 128

  - name: Mkzao Remontti
    address: 172.18.18.1
    network:
      name: routerosrr
      display_name: Mikrotik
    credential:
      username: usuario
      password: senha
    port: 22
    nos: mikrotik_routeros
    vrfs:
      - name: global
        default: true
        ipv4:
          source_address: 172.18.18.1
        ipv6:
          source_address: 2001:db8::2

  - name: Localhost Hyperglass
    address: 127.0.0.1
    network:
      name: test1
      display_name: Linux
    credential:
      username: usuario
      password: senha
    nos: linux
    commands: linux_comando_personlizado
    vrfs:
      - name: global
        default: true
        ipv4:
          source_address: 192.168.0.5
        ipv6:
          source_address: 2001:db8:bebe:cafe:5</pre>
<h4>Comandos personalizados</h4>
<pre class="remontti-code"># vim /etc/hyperglass/commands.yaml</pre>
<p>Acima adicionei um device linux, qual temos <a href="https://hyperglass.dev/docs/commands" rel="noopener" target="_blank">comandos personalizado</a>, segue um exemplo de como seria. Crie o arquivo /etc/hyperglass/commands.yaml</p>
<pre class="remontti-code-plain">#https://hyperglass.dev/docs/commands
linux_comando_personlizado:
  ipv4_default:
    bgp_route: &#039;echo bgp_route &quot;{target}&quot;&#039;
    bgp_aspath: &#039;echo bgp_aspath &quot;{target}&quot;&#039;
    bgp_community: &#039;echo bgp_community &quot;{target}&quot;&#039;
    ping: &#039;ping -c 4 &quot;{target}&quot;&#039;
    traceroute: &#039;traceroute -n &quot;{target}&quot;&#039;
  ipv6_default:
    bgp_route: &#039;echo &quot;{target}&quot;&#039;
    bgp_aspath: &#039;echo &quot;{target}&quot;&#039;
    bgp_community: &#039;echo &quot;{target}&quot;&#039;
    ping: &#039;echo &quot;{target}&quot;&#039;
    traceroute: &#039;echo &quot;{target}&quot;&#039;
  ipv4_vpn:
    bgp_route: &#039;echo &quot;{vrf} {target}&quot;&#039;
    bgp_aspath: &#039;echo &quot;{vrf} {target}&quot;&#039;
    bgp_community: &#039;echo &quot;{vrf} {target}&quot;&#039;
    ping: &#039;echo &quot;{vrf} {target}&quot;&#039;
    traceroute: &#039;echo &quot;{vrf} {target}&quot;&#039;
  ipv6_vpn:
    bgp_route: &#039;echo &quot;{vrf} {target}&quot;&#039;
    bgp_aspath: &#039;echo &quot;{vrf} {target}&quot;&#039;
    bgp_community: &#039;echo &quot;{vrf} {target}&quot;&#039;
    ping: &#039;echo &quot;{vrf} {target}&quot;&#039;
    traceroute: &#039;echo &quot;{vrf} {target}&quot;&#039;</pre>
<p>Crie um arquivo para seis termos:</p>
<pre class="remontti-code"># vim /etc/hyperglass/terms-and-conditions.md</pre>
<p>Descreva de acordo suas políticas.</p>
<pre class="remontti-code-plain">Ao usar {site_title}, você concorda em cumprir os seguintes termos de uso:

Todas as consultas executadas nesta página são registradas para análise e solução de problemas. 
Os usuários estão proibidos de automatizar consultas ou tentar processar consultas em massa. Este serviço é fornecido com base no melhor esforço, e {org_name} não oferece garantias ou garantias de disponibilidade ou desempenho.</pre>
<p>Agora vamos a construção da interface do usuário. o Comando a baixo pode levar uns minutinho.</p>
<pre class="remontti-code"># cd /etc/hyperglass/
# hyperglass build-ui</pre>
<p>Aguarde até ter a resposta:</p>
<pre class="remontti-code-plain">[SUCCESS] 20230329 21:36:48 | hyperglass.util.frontend:386 | build_frontend → Completed UI build
<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Completed UI build in production mode</pre>
<h4>Iniciando o serviço</h4>
<p>Poderíamos iniciar com o comando `hyperglass start`, mas vamos criar um serviço no linux para fazer esse trabalho, para deixar até mesmo automatizado durante o boot. para isso irei criar uma pasta /etc/hyperglass/service/ onde irei criar nosso serviço.</p>
<pre class="remontti-code"># mkdir /etc/hyperglass/service/
# vim /etc/hyperglass/service/hyperglass.service</pre>
<p>Agora vamos instruir o que deve ser feito.</p>
<pre class="remontti-code-plain">
[Unit]
Description=hyperglass
After=network.target
Requires=redis-server.service

[Service]
User=root
Group=root
ExecStart=/usr/local/bin/hyperglass start
ExecStop=/usr/bin/pkill -f hyperglass

TimeoutStartSec=120
TimeoutStopSec=300

[Install]
WantedBy=multi-user.target</pre>
<p>Vamos cria um apontamento, recarecar nosso daemon, dar um enable para deixar iniciando com o boot, em seguida vamos iniciar o serviço.</p>
<pre class="remontti-code"># ln -s /etc/hyperglass/service/hyperglass.service /etc/systemd/system/hyperglass.service
# systemctl daemon-reload
# systemctl enable hyperglass 
# systemctl start hyperglass
# systemctl status hyperglass</pre>
<p>Pode levar um minutinho até iniciar, você pode acompanhar os logs.</p>
<pre class="remontti-code"># tail -f /var/log/hyperglass.log</pre>
<p>Quando aparecer a mensagem a baixo você pode acessar em seu navegador:</p>
<pre class="remontti-code-plain">
...Started hyperglass 1.0.4 on http://SEUIP:PORTA with 6 workers</pre>
<p>Pode verificar também as portas que estão sendo ouvidas.</p>
<pre class="remontti-code"># ss -putan  | grep LISTEN | grep hyperglass</pre>
<p>Acesse me seu navegador http://SEUIP:PORTA</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0.png" data-rel="lightbox-gallery-3HMij7PN" data-rl_title="" data-rl_caption="" title=""><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0.png" alt="" width="1773" height="773" class="alignnone size-full wp-image-7215" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0.png 1773w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0-300x131.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0-1024x446.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0-768x335.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0-1536x670.png 1536w" sizes="(max-width: 1773px) 100vw, 1773px" /></a></p>
<h3>Bonus: Proxy Nginx + Https</h3>
<p>É bem comum querer executar o hyperglass em outra porta e somente para localhost, e criar um proxy para acesso web bem como ativar suporte https para sua página, pois em alguns casos ele pode esta rodando junto com outros serviços sem problema algum. Não é necessário ter uma &#8220;VM&#8221; só para isso. Vamos ao exemplo</p>
<pre class="remontti-code"># vim /etc/hyperglass/hyperglass.yaml</pre>
<p>Altere o IP em <strong>listen_address</strong> para nosso endereço da loopback <strong>127.0.0.1</strong> e defina outra porta <strong>listen_port</strong> que ira rodar o serviço, no meu caso vou usar <strong>58000</strong></p>
<pre class="remontti-code-plain">listen_address: &quot;127.0.0.1&quot;
listen_port: 58000</pre>
<p>Reinicie o hyperglass</p>
<pre class="remontti-code">systemctl restart hyperglass</pre>
<p><strong>Instale o Nxgix</strong></p>
<pre class="remontti-code"># apt install nginx
# sed -i &#039;s/# server_tokens/server_tokens/&#039; /etc/nginx/nginx.conf</pre>
<p>Em alguns caso recomendo deletar as conf padrões, caso tiver problemas.</p>
<pre class="remontti-code"># rm /etc/nginx/sites-enabled/default</pre>
<p>Crie um arquivo de configuração o nginx criar um proxy do nosso hyperglass</p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/hyperglass.conf</pre>
<p>Adicione</p>
<pre class="remontti-code-plain">
server {
  listen 80;
  listen [::]:80;
  server_name lg.remontti.com.br;
  #server_name _;

  # Descomente para deixar restrito apenas para determinados prefixos ou IPs.
  #allow  192.168.87.0/24;
  #allow  127.0.0.1;
  #allow  2001:0db8::/32;
  #allow  ::1;
  #deny   all;
  #error_page  403   http://www.remontti.com.br;

  client_max_body_size 2M;
  root /etc/hyperglass/static;

  location / {
    try_files $uri $uri/ /ui /ui/$uri =404;
    index /ui/index.html;
  }

  location /openapi.json {
      try_files $uri @proxy_to_app;
  }

  location /custom/ {
      try_files $uri $uri/ /custom;
  }

  location /images/ {
      try_files $uri $uri/ /images;
  }

  location /api {
      try_files $uri @proxy_to_app;
  }

  location @proxy_to_app {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://127.0.0.1:58000;
  }
}</pre>
<p>Link o arquivo no diretório /etc/nginx/sites-enabled qual será carregado ao iniciar o nginx, em seguira reinicie o serviço do nginx.</p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/hyperglass.conf /etc/nginx/sites-enabled/hyperglass.conf
# systemctl restart nginx</pre>
<p>Agora você já pode acessar seu hyperglass através do nginx.</p>
<h4>Criando certificado</h4>
<p>Ao executar o <strong>Certbot</strong> instalado via apt tive alguns erros do python, acredito que conflitou alguma coisa com o hyperglass, (como meu tempo é bem curto inclusive para esta escrevendo aqui) realizei a instalação via <strong>snap</strong> qual resolveu meu problema.<br />
Segue a instalação do snap:</p>
<pre class="remontti-code"># apt install snapd
# snap install core</pre>
<p>Instale o certbot via snap, crie um link em nossos binários, em seguida execute ele. </p>
<pre class="remontti-code"># snap install --classic certbot
# ln -s /snap/bin/certbot /usr/bin/certbot
# certbot</pre>
<p>Informe os dados, ao finalizar o mesmo irá já ajustar seu arquivo do nginx, e basta acessar seu domínio.</p>
<p>Não esqueça que a cada 90 dias o certificado expira, então crie uma rotina para renovação, você pode adicionar ao cron agendando por exemplo para todo dia primeiro tentar renovar.</p>
<pre class="remontti-code"># echo &#039;00 00   1 * *   root     certbot renew -q&#039; &gt;&gt; /etc/crontab
# systemctl restart cron</pre>
<p><strong>Parabéns você finalizou! Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<h4>Prints</h4>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0.png" data-rel="lightbox-gallery-3HMij7PN" data-rl_title="" data-rl_caption="" title=""><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0-300x131.png" alt="" width="300" height="131" class="alignnone size-medium wp-image-7215" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0-300x131.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0-1024x446.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0-768x335.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0-1536x670.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_0.png 1773w" sizes="(max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1.png" data-rel="lightbox-gallery-3HMij7PN" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1-300x141.png" alt="" width="300" height="141" class="alignnone size-medium wp-image-7216" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1-300x141.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1-1024x482.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1-768x362.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1-1536x723.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1-520x245.png 520w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1-720x340.png 720w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1.png 1773w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_3.png" data-rel="lightbox-gallery-3HMij7PN" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_3-300x131.png" alt="" width="300" height="131" class="alignnone size-medium wp-image-7214" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_3-300x131.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_3-1024x446.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_3-768x335.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_3-1536x670.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_3.png 1773w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_4.png" data-rel="lightbox-gallery-3HMij7PN" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_4-300x137.png" alt="" width="300" height="137" class="alignnone size-medium wp-image-7213" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_4-300x137.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_4-1024x468.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_4-768x351.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_4-1536x702.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_4-980x450.png 980w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_4.png 1773w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_2.png" data-rel="lightbox-gallery-3HMij7PN" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_2-300x131.png" alt="" width="300" height="131" class="alignnone size-medium wp-image-7211" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_2-300x131.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_2-1024x446.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_2-768x335.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_2-1536x670.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_2.png 1773w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_5.png" data-rel="lightbox-gallery-3HMij7PN" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_5-300x216.png" alt="" width="300" height="216" class="alignnone size-medium wp-image-7210" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_5-300x216.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_5-1024x737.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_5-768x553.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_5-1536x1105.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_5.png 1773w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1_1.png" data-rel="lightbox-gallery-3HMij7PN" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1_1-300x131.png" alt="" width="300" height="131" class="alignnone size-medium wp-image-7212" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1_1-300x131.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1_1-1024x446.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1_1-768x335.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1_1-1536x670.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2023/03/hyperglass_huawei_1_1.png 1773w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Abraço!</p>
<p><strong>Fontes:</strong><br />
<a href="https://hyperglass.dev/" rel="noopener" target="_blank">https://hyperglass.dev/</a><br />
<a href="https://hyperglass.dev/docs/" rel="noopener" target="_blank">https://hyperglass.dev/docs/</a></p>
<p>O post <a href="https://blog.remontti.com.br/7201">Aprenda a instalar um dos melhores Looking Glasses de código aberto: o Hyperglass</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7201/feed</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
			</item>
		<item>
		<title>Como configurar o SmokePing para monitoramento de latências #mafiadoping</title>
		<link>https://blog.remontti.com.br/4816</link>
					<comments>https://blog.remontti.com.br/4816#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Thu, 20 Aug 2020 22:58:51 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[diagnostico]]></category>
		<category><![CDATA[latencia]]></category>
		<category><![CDATA[latency]]></category>
		<category><![CDATA[medicao]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[rede]]></category>
		<category><![CDATA[smokeping]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=4816</guid>

					<description><![CDATA[<p>Smokeping é uma ferramenta gratuita e de código aberto de medição de latência. Ele envia pacotes de teste para a rede e mede a quantidade de tempo que eles precisam para viajar de um&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/4816">Como configurar o SmokePing para monitoramento de latências #mafiadoping</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_logo.png" alt="" width="720" height="340" class="alignnone size-full wp-image-5011" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_logo.png 720w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_logo-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_logo-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /><br />
<a href="https://oss.oetiker.ch/smokeping/doc/" rel="noopener noreferrer" target="_blank">Smokeping</a> é uma ferramenta gratuita e de código aberto de medição de latência. Ele envia pacotes de teste para a rede e mede a quantidade de tempo que eles precisam para viajar de um lugar para outro e vice-versa.</p>
<p>Para cada rodada de medição, o smokeping envia vários pacotes em seguida, ele classifica os diferentes tempos de ida e volta e seleciona a mediana. Isso significa que quando há 10 valores de tempo, o valor número 5 é selecionado e desenhado. Os outros valores são desenhados como tons sucessivamente mais claros de cinza no fundo (&#8220;fumaça&#8221;).</p>
<p>Às vezes, um pacote de teste é enviado, mas nunca retorna. Isso é chamado de perda de pacotes. A cor da linha mediana muda de acordo com o número de pacotes perdidos.</p>
<p>A grande flutuação dos valores de RTT (tempo de ida e volta) também indica que a rede está sobrecarregada. Isso é mostrado no gráfico como fumaça; quanto mais fumaça, mais flutuação.</p>
<p>Smokeping não se limita a testar apenas o tempo de ida e volta dos pacotes. Ele também pode realizar algumas tarefas na extremidade remota (&#8220;investigação&#8221;), como baixar uma página da web. Isso fornecerá uma &#8216;imagem&#8217; combinada da disponibilidade do servidor web e da integridade da rede.</p>
<h4>Requisitos</h4>
<p>&#8211; Debian 10 &#8211; &#8220;<a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Instalação limpa</a>&#8221;</p>
<h4>Instalação</h4>
<pre class="remontti-code"># apt install smokeping curl dnsutils exim4-base- sendmail-base- qmail-base-</pre>
<p>Será instalados vários pacotes:<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/smokeping_apt.png" alt="" width="1908" height="797" class="alignnone size-full wp-image-5015" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/smokeping_apt.png 1908w, https://blog.remontti.com.br/wp-content/uploads/2020/08/smokeping_apt-300x125.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/smokeping_apt-1024x428.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/smokeping_apt-768x321.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/08/smokeping_apt-1536x642.png 1536w" sizes="auto, (max-width: 1908px) 100vw, 1908px" /></p>
<p>Vou instalar o net-tools  para verificar quais portas foram abertas:</p>
<pre class="remontti-code"># apt install net-tools</pre>
<p>Use o comando netstat para verificar</p>
<pre class="remontti-code"># netstat -putan</pre>
<p>Possível erro:<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_netstat.png" alt="" width="1003" height="180" class="alignnone size-full wp-image-4972" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_netstat.png 1003w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_netstat-300x54.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_netstat-768x138.png 768w" sizes="auto, (max-width: 1003px) 100vw, 1003px" /><br />
Devemos ter aberta apenas a porta 80 (apache) e 22 (SSH) abertas, se caso você não tiver instalado corretamente coloca o &#8220;-&#8221; nos pacotes exim (exim4-base-) sendmail e qmail um serviço de e-mail (MTA) será instalado, e estará rodando, isso se deve pois o smokeping faz o envio de notificação via e-mail, caso você tenha instalado por descuido vamos desativa-lo, pois não vamos utilizar o <strong>exim4</strong>, para isso desativamos esse serviço da inicialização e paramos. </p>
<p>Para desativar o exim faça:</p>
<pre class="remontti-code"># systemctl stop  exim4
# systemctl disable exim4</pre>
<p>Para desativar o sendmail faça:</p>
<pre class="remontti-code"># systemctl stop sendmail
# systemctl disable sendmail</pre>
<p>Para desativar o qmail faça:</p>
<pre class="remontti-code"># systemctl stop qmail
# systemctl disable qmail</pre>
<p>Agora temos apenas nosso Apache e SSH rodando.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_netstat_ok.png" alt="" width="985" height="157" class="alignnone size-full wp-image-4973" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_netstat_ok.png 985w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_netstat_ok-300x48.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_netstat_ok-768x122.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_netstat_ok-980x157.png 980w" sizes="auto, (max-width: 985px) 100vw, 985px" /></p>
<p>Dica troque a porta padrão 22 do SSH, para trocar a porta basta editar o arquivo:</p>
<pre class="remontti-code"># vim  /etc/ssh/sshd_config</pre>
<p>Localize:</p>
<pre class="remontti-code"># Port 22</pre>
<p>Altere para ex:</p>
<pre class="remontti-code">Port 57410</pre>
<p>Agora restarte o serviço SSH.</p>
<pre class="remontti-code"># systemctl restart sshd</pre>
<p>Agora quando for acessar seu servidor a porta SSH é 57410 isso evita os &#8220;Robôs Scanners&#8221;. </p>
<p>Como podemos ver o apache foi instalado pois o smokeping utiliza do mesmo então se acessarmos <strong>http://ip-ou-dominio</strong> vamos nos deparar com a pagina padrão do apache.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/apache_default.png" alt="" width="835" height="649" class="alignnone size-full wp-image-4975" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/apache_default.png 835w, https://blog.remontti.com.br/wp-content/uploads/2020/09/apache_default-300x233.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/09/apache_default-768x597.png 768w" sizes="auto, (max-width: 835px) 100vw, 835px" /></p>
<p>Por segurança vamos remover a assinatura do servidor, pois não queremos q nenhum scanner ou ate mesmo acessar um endereço que não exista (<strong>http://ip-ou-dominio/lalalalala</strong>) mostre a versão do apache bem como distribuição linux.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/apache_seguranca.png" alt="" width="416" height="142" class="alignnone size-full wp-image-4976" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/apache_seguranca.png 416w, https://blog.remontti.com.br/wp-content/uploads/2020/09/apache_seguranca-300x102.png 300w" sizes="auto, (max-width: 416px) 100vw, 416px" /><br />
A alteração é feita no arquivo /etc/apache2/conf-enabled/security.conf, usarei o comando <strong>sed</strong> que faz a substituição de um valor por outro, então o que o comando irá fazer é alterar:<br />
<em>ServerTokens OS</em> <strong>por</strong> <em>ServerTokens Prod</em><br />
<em>ServerSignature On</em> <strong>por</strong> <em>ServerSignature Off</em></p>
<pre class="remontti-code"># sed -i &#039;s/ServerTokens OS/ServerTokens Prod/&#039; /etc/apache2/conf-available/security.conf
# sed -i &#039;s/ServerSignature On/ServerSignature Off/&#039; /etc/apache2/conf-available/security.conf</pre>
<p>Reinicie o serviço do apache para ele atualizar suas novas configurações:</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>Agora acesse novamente a URL q não existe &#8220;<strong>http://ip-ou-dominio/lalalalala</strong>&#8221; e veja que as informações sumiram <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/apache_seguranca_ok.png" alt="" width="469" height="146" class="alignnone size-full wp-image-4977" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/apache_seguranca_ok.png 469w, https://blog.remontti.com.br/wp-content/uploads/2020/09/apache_seguranca_ok-300x93.png 300w" sizes="auto, (max-width: 469px) 100vw, 469px" /><br />
Isso deixa o servidor segura? Não nada é seguro, mas evita que os &#8220;espetinho&#8221; fiquem procurando falhas, pois sem saber qual versão está rodando fica difícil saber qual vulnerabilidade aplicar, e em 99% o &#8220;espertinho&#8221; não vai perder seu tempo. </p>
<p>Ok, mas como acesso o smokeping? Pela URL <strong>http://ip-ou-dominio/smokeping</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping.png" alt="" width="1034" height="424" class="alignnone size-full wp-image-4974" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping.png 1034w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping-300x123.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping-1024x420.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping-768x315.png 768w" sizes="auto, (max-width: 1034px) 100vw, 1034px" /></p>
<p>As configurações do smokeping estão em /etc/apache2/conf-available/smokeping.conf, vamos dar uma olhada&#8230;</p>
<pre class="remontti-code"># vim /etc/apache2/conf-available/smokeping.conf</pre>
<p>Podemos perceber que qualquer um pode acessar nosso servidor sem restrições algumas.</p>
<pre class="remontti-code">ScriptAlias /smokeping/smokeping.cgi /usr/lib/cgi-bin/smokeping.cgi
Alias /smokeping /usr/share/smokeping/www

&lt;Directory &quot;/usr/share/smokeping/www&quot;&gt;
    Options FollowSymLinks
    Require all granted
    DirectoryIndex smokeping.cgi
&lt;/Directory&gt;</pre>
<p>Para melhorar a segurança irei fechar o acesso apenas para os IPs 192.168.0.0/24 2001:db8:c0ca::/48 (Ajuste para seus ips que permite acessar) e em seguida criaremos usuário e senha de acesso, ainda colocarei o ErrorDocument que irá direcionar quem não tiver permissão.</p>
<pre class="remontti-code">ScriptAlias /smokeping/smokeping.cgi /usr/lib/cgi-bin/smokeping.cgi
Alias /smokeping /usr/share/smokeping/www

&lt;Directory &quot;/usr/share/smokeping/www&quot;&gt;
    ErrorDocument 403 http://www.remontti.com.br
    Options FollowSymLinks
	AllowOverride All 
	Require all denied
	&lt;RequireAll&gt;
	 &lt;RequireAny&gt;
	    Require ip 192.168.0.0/24
	    Require ip 2001:db8::/32
	 &lt;/RequireAny&gt;
	 &lt;RequireAll&gt;
	    Require valid-user
	    AuthBasicProvider file
	    AuthType Basic
	    AuthName &quot;Login&quot;
	    AuthUserFile /etc/smokeping/www-passwd
	 &lt;/RequireAll&gt;
	&lt;/RequireAll&gt;
    DirectoryIndex smokeping.cgi
&lt;/Directory&gt;</pre>
<p>É necessário criar o /etc/smokeping/www-passwd qual conterá nossas usuário e senha de acesso, no comando a baixo vou criar um usuário admin.</p>
<pre class="remontti-code"># htpasswd -c /etc/smokeping/www-passwd admin</pre>
<p>Caso não queira solicitar senha e deixar apenas restrito basta comentar as linha:</p>
<pre class="remontti-code">#&lt;RequireAll&gt;
#  Require valid-user
#  AuthBasicProvider file
#  AuthType Basic
#  AuthName &quot;Login&quot;
#  AuthUserFile /etc/smokeping/www-passwd
#&lt;/RequireAll&gt;</pre>
<p>Ou se deseja solicitar senha porem de qualquer origem:</p>
<pre class="remontti-code">#&lt;RequireAny&gt;
 #  Require ip 192.168.0.0/24
 #  Require ip 2001:db8::/32
 #&lt;/RequireAny&gt;</pre>
<p>Para que quando alguém acessar seu endereço IP/domínio não exiba a página default do apache você pode criar uma index direcionando o acesso. se preferir pode direcionar para o /smokeping, já que os não autorizados  &#8220;ErrorDocument 403&#8221; já estão sendo redirecionados para o &#8220;site&#8221;.</p>
<pre class="remontti-code"># mv /var/www/html/index.html /var/www/html/index.html.default
# vim /var/www/html/index.html</pre>
<p>Altere a URL para o endereço que deseja.</p>
<pre class="remontti-code">
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;meta charset=&quot;utf-8&quot;/&gt;
    &lt;meta http-equiv=&quot;refresh&quot; content=&quot;0; URL=&#039;http://smokeping.remontti.com.br/smokeping&#039;&quot;/&gt;
&lt;/head&gt;
&lt;/html&gt;
</pre>
<p>Agora se tudo foi configurado certo acesse seu servidor e uma tela com login e senha será solicitado:<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_password.png" alt="" width="472" height="282" class="alignnone size-full wp-image-4991" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_password.png 472w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_password-300x179.png 300w" sizes="auto, (max-width: 472px) 100vw, 472px" /></p>
<p>Agora vamos ajustar nossos Probes &#8220;Sondas&#8221;, meios de coletar.</p>
<pre class="remontti-code"># vim /etc/smokeping/config.d/Probes</pre>
<p>Vamos adicionar o FPing6, DNS (dig) e o Curl, não esqueça de alterar o lookup (dns.google) para o nome do reverso do seu dns e o IP 8.8.8.8 para o IP do seu servidor DNS. (Se dejesar pode usar o do google mesmo, mas para um teste legal é interessante usar o seu DNS)</p>
<pre class="remontti-code">*** Probes ***
  
+ FPing
binary = /usr/bin/fping
protocol = 4

+ FPing6
binary = /usr/bin/fping
protocol = 6

+ DNS
binary = /usr/bin/dig
lookup = dns.google
server = 8.8.8.8
pings = 5
step = 60

+ Curl
binary = /usr/bin/curl
pings = 5
step = 60
</pre>
<p>Vamos alterar o padrão de 5min para 1min &#8220;assim se um rato passar em cima de um cabo já podemos saber&#8221;&#8230;</p>
<pre class="remontti-code"># vim /etc/smokeping/config.d/Database</pre>
<p>Altere </p>
<pre class="remontti-code">step     = 300</pre>
<p>Por </p>
<pre class="remontti-code">step     = 60</pre>
<pre class="remontti-code"># vim /etc/smokeping/config.d/MyFPing</pre>
<pre class="remontti-code">#
## Latências utilizando fping
#

+ PING-V4
probe = FPing
menu = Latências FPing
title = Latências FPing (IPv4)

++ fping-facebook
title = facebook.com
host = www.facebook.com

++ fping-google
title = google.com
host = www.google.com</pre>
<pre class="remontti-code"># vim /etc/smokeping/config.d/MyFPing6</pre>
<pre class="remontti-code">#
## Latências utilizando fping6
#

+ PING-V6
probe = FPing6
menu = Latências FPing6
title = Latências FPing6 (IPv6)

++ fping6-facebook
title = facebook.com
host = www.facebook.com

++ fping6-google
title = google.com
host = www.google.com</pre>
<pre class="remontti-code"># vim /etc/smokeping/config.d/MyDNSResolvers</pre>
<pre class="remontti-code">#
## Tempo que levou para resolver o um dominio
#

+ DNS
probe = DNS
menu = Latências Resolução DNS
title = Latências Resolução DNS (dig)

++ resolv-facebook
title = facebook.com
host = www.facebook.com

++ resolv-google
title = google.com
host = www.google.com</pre>
<pre class="remontti-code"># vim /etc/smokeping/config.d/MyHTTPAccess</pre>
<pre class="remontti-code">#
## Tempo que levou para &quot;abrir&quot; a página
#

+ HTTP
probe = Curl
menu = Latências Acesso HTTP
title = Latências Acesso  HTTP (curl)

++ curl-facebook
menu = facebook.com
title = Latência HTTP para facebook.com
host = www.facebook.com
urlformat = https://www.facebook.com

++ curl-google
menu = google.com
title = Latência HTTP para google.com
host = www.google.com
urlformat = https://www.google.com</pre>
<p>Agora vamos incluir as configurações no arquivo /etc/smokeping/config.d/Targets, você pode fazer o mesmo de forma manual se achar melhor.</p>
<pre class="remontti-code"># echo &#039;@include /etc/smokeping/config.d/MyFPing&#039; &gt;&gt; /etc/smokeping/config.d/Targets
# echo &#039;@include /etc/smokeping/config.d/MyFPing6&#039; &gt;&gt; /etc/smokeping/config.d/Targets
# echo &#039;@include /etc/smokeping/config.d/MyDNSResolvers&#039; &gt;&gt; /etc/smokeping/config.d/Targets
# echo &#039;@include /etc/smokeping/config.d/MyHTTPAccess&#039; &gt;&gt; /etc/smokeping/config.d/Targets</pre>
<p>Editando o /etc/smokeping/config.d/Targets você terá a seguinte configurações:<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_config.png" alt="" width="864" height="590" class="alignnone size-full wp-image-4993" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_config.png 864w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_config-300x205.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_config-768x524.png 768w" sizes="auto, (max-width: 864px) 100vw, 864px" /><br />
Ex.:</p>
<pre class="remontti-code">menu = Top
title = Gráfico de latência de rede 
remark = Bem-vindo ao SmokePing \
         Aqui você aprenderá tudo sobre a latência de nossa rede.</pre>
<p>Vamos reiniciar o serviço mas como ajustamos o tempo para 60 (1min) será necessário remover os graficos &#8220;Local&#8221; já gerados, antes para não termos erro.  </p>
<pre class="remontti-code"># rm /var/lib/smokeping/Local/LocalMachine.rrd 
# systemctl restart smokeping</pre>
<p>Agora você já tem uma base de como coletar dados com o SmokePing, é importante que você colete informações do peer que você tem conexão bem como os principais roteadores de sua rede. Vou deixar mais alguns exemplos que acho interessante:</p>
<h4>Root Servers DNS</h4>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_dns_roots_servers.png" alt="" width="1071" height="807" class="alignnone size-full wp-image-5009" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_dns_roots_servers.png 1071w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_dns_roots_servers-300x226.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_dns_roots_servers-1024x772.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_dns_roots_servers-768x579.png 768w" sizes="auto, (max-width: 1071px) 100vw, 1071px" /></p>
<pre class="remontti-code"># vim /etc/smokeping/config.d/MyRootServers</pre>
<pre class="remontti-code">#
## Roots Servers 
#

+ DNS-Root-Servers
menu = DNS Root Servers
title = Servidores de DNS Autoritativos Raiz

++ Roots-IPv4
menu = Todos Raizes IPv4
title = Todos Raizes IPv4
host = /DNS-Root-Servers/DNS-Root-Servers-IPv4/DNS-ROOT-A-v4 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv4/DNS-ROOT-B-v4 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv4/DNS-ROOT-C-v4 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv4/DNS-ROOT-D-v4 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv4/DNS-ROOT-E-v4 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv4/DNS-ROOT-F-v4 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv4/DNS-ROOT-G-v4 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv4/DNS-ROOT-H-v4 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv4/DNS-ROOT-I-v4 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv4/DNS-ROOT-J-v4 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv4/DNS-ROOT-L-v4 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv4/DNS-ROOT-M-v4 \

++ Roots-IPv6
menu = Todos Raizes IPv6
title = Todos Raizes IPv6
host = /DNS-Root-Servers/DNS-Root-Servers-IPv6/DNS-ROOT-A-v6 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv6/DNS-ROOT-B-v6 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv6/DNS-ROOT-C-v6 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv6/DNS-ROOT-D-v6 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv6/DNS-ROOT-E-v6 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv6/DNS-ROOT-F-v6 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv6/DNS-ROOT-G-v6 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv6/DNS-ROOT-H-v6 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv6/DNS-ROOT-I-v6 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv6/DNS-ROOT-J-v6 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv6/DNS-ROOT-L-v6 \
       /DNS-Root-Servers/DNS-Root-Servers-IPv6/DNS-ROOT-M-v6 \

## Roots IPv4

++ DNS-Root-Servers-IPv4
probe = FPing
menu = DNS Root Servers IPv4
title = Servidores de DNS Autoritativos Raiz
 
+++ DNS-ROOT-A-v4
menu = DNS-ROOT-A
title = Servidor DNS ROOT - A - 198.41.0.4
host = 198.41.0.4
 
+++ DNS-ROOT-B-v4
menu = DNS-ROOT-B
title = Servidor DNS ROOT - B - 192.228.79.201
host = 192.228.79.201
 
+++ DNS-ROOT-C-v4
menu = DNS-ROOT-C
title = Servidor DNS ROOT - C - 192.33.4.12
host = 192.33.4.12
 
+++ DNS-ROOT-D-v4
menu = DNS-ROOT-D
title = Servidor DNS ROOT - D - 199.7.91.13
host = 199.7.91.13
 
+++ DNS-ROOT-E-v4
menu = DNS-ROOT-E
title = Servidor DNS ROOT - E - 192.203.230.10
host = 192.203.230.10
 
+++ DNS-ROOT-F-v4
menu = DNS-ROOT-F
title = Servidor DNS ROOT - F - 192.5.5.241
host = 192.5.5.241
 
+++ DNS-ROOT-G-v4
menu = DNS-ROOT-G
title = Servidor DNS ROOT - G - 192.112.36.4
host = 192.112.36.4
 
+++ DNS-ROOT-H-v4
menu = DNS-ROOT-H
title = Servidor DNS ROOT - H - 198.97.190.53
host = 198.97.190.53
 
+++ DNS-ROOT-I-v4
menu = DNS-ROOT-I
title = Servidor DNS ROOT - I - 192.36.148.17
host = 192.36.148.17
 
+++ DNS-ROOT-J-v4
menu = DNS-ROOT-J
title = Servidor DNS ROOT - J - 192.58.128.30
host = 192.58.128.30
 
+++ DNS-ROOT-K-v4
menu = DNS-ROOT-K
title = Servidor DNS ROOT - K - 193.0.14.129
host = 193.0.14.129
 
+++ DNS-ROOT-L-v4
menu = DNS-ROOT-L
title = Servidor DNS ROOT - L - 199.7.83.42
host = 199.7.83.42
 
+++ DNS-ROOT-M-v4
menu = DNS-ROOT-M
title = Servidor DNS ROOT - M - 202.12.27.33
host = 202.12.27.33

## Roots IPv6

++ DNS-Root-Servers-IPv6
probe = FPing6
menu = DNS Root Servers IPv6
title = Servidores de DNS Autoritativos Raiz

+++ DNS-ROOT-A-v6
menu = DNS-ROOT-A
title = Servidor DNS ROOT - A - 2001:503:ba3e::2:30
host = 2001:503:ba3e::2:30

+++ DNS-ROOT-B-v6
menu = DNS-ROOT-B
title = Servidor DNS ROOT - B - 2001:500:200::b
host = 2001:500:200::b

+++ DNS-ROOT-C-v6
menu = DNS-ROOT-C
title = Servidor DNS ROOT - C - 2001:500:2::c
host = 2001:500:2::c

+++ DNS-ROOT-D-v6
menu = DNS-ROOT-D
title = Servidor DNS ROOT - D - 2001:500:2d::d
host = 2001:500:2d::d

+++ DNS-ROOT-E-v6
menu = DNS-ROOT-E
title = Servidor DNS ROOT - E - 2001:500:a8::e
host = 2001:500:a8::e

+++ DNS-ROOT-F-v6
menu = DNS-ROOT-F
title = Servidor DNS ROOT - F - 2001:500:2f::f
host = 2001:500:2f::f

+++ DNS-ROOT-G-v6
menu = DNS-ROOT-G
title = Servidor DNS ROOT - G - 2001:500:12::d0d
host = 2001:500:12::d0d

+++ DNS-ROOT-H-v6
menu = DNS-ROOT-H
title = Servidor DNS ROOT - H - 2001:500:1::53
host = 2001:500:1::53

+++ DNS-ROOT-I-v6
menu = DNS-ROOT-I
title = Servidor DNS ROOT - I - 2001:7fe::53
host = 2001:7fe::53

+++ DNS-ROOT-J-v6
menu = DNS-ROOT-J
title = Servidor DNS ROOT - J - 2001:503:c27::2:30
host = 2001:503:c27::2:30

+++ DNS-ROOT-K-v6
menu = DNS-ROOT-K
title = Servidor DNS ROOT - K - 2001:7fd::1
host = 2001:7fd::1

+++ DNS-ROOT-L-v6
menu = DNS-ROOT-L
title = Servidor DNS ROOT - L - 2001:500:9f::42
host = 2001:500:9f::42

+++ DNS-ROOT-M-v6
menu = DNS-ROOT-M
title = Servidor DNS ROOT - M - 2001:dc3::35
host = 2001:dc3::35
</pre>
<pre class="remontti-code"># echo &#039;@include /etc/smokeping/config.d/MyRootServers&#039; &gt;&gt; /etc/smokeping/config.d/Targets
# systemctl restart smokeping</pre>
<h4>Ex Peering BGP</h4>
<pre class="remontti-code"># vim /etc/smokeping/config.d/MyPeer</pre>
<pre class="remontti-code">#
## Peering BGP
#

+ PEERS-BGP
menu = Peering BGP
title = Peering BGP

## IPV4

++ Peers-IPv4
probe = FPing
menu = Peers IPv4
title = Peering Operadoras em IPv4

+++ Peers-OP1-v4
menu = Peers OP1
title = Peers OP1 - 192.168.1.1
host = 192.168.1.1

+++ Peers-OP2-v4
menu = Peers OP2
title = Peers OP2 - 192.168.2.1
host = 192.168.2.1

## IPV6

++ Peers-IPv6
probe = FPing6
menu = Peers IPv6
title = Peering Operadoras em IPv6

+++ Peers-OP1-v6
menu = Peers OP1
title = Peers OP1 - 2001:db8:1::1
host = 2001:db8:1::1

+++ Peers-OP2-v6
menu = Peers OP2
title = Peers OP2 - 2001:db8:2::1
host = 2001:db8:2::1</pre>
<pre class="remontti-code"># echo &#039;@include /etc/smokeping/config.d/MyPeer&#039; &gt;&gt; /etc/smokeping/config.d/Targets
# systemctl restart smokeping</pre>
<h4>Meus Roteadores </h4>
<pre class="remontti-code"># vim /etc/smokeping/config.d/MyRouters</pre>
<pre class="remontti-code">#
## My Routes
#

+ ROUTER
menu = My Routes
title = My Routes

++ Router-IPv4
probe = FPing
menu = My Routes IPv4
title = My Routes IPv4

+++ Router-Border-V4
menu = Border
title = Border - 10.20.30.1
host = 10.20.30.1

+++ Router-Data-v4
menu = Datacenter
title = Datacenter - 10.20.30.2
host = 10.20.30.2

+++ Router-CGNAT-v4
menu = CGNAT
title = CGNAT - 10.20.30.3
host = 10.20.30.3

++ Router-IPv6
probe = FPing6
menu = My Routes IPv6
title = My Routes IPv6

+++ Router-Border-v6
menu = Border
title = Border - 2001:db8::10:20:30:1
host = 2001:db8::10:20:30:2

+++ Router-Data-v6
menu = Datacenter
title = Datacenter - 2001:db8::10:20:30:2
host = 2001:db8::10:20:30:2

+++ Router-CGNAT-v6
menu = CGNAT
title = CGNAT - 2001:db8::10:20:30:3
host = 2001:db8::10:20:30:3</pre>
<pre class="remontti-code"># echo &#039;@include /etc/smokeping/config.d/MyRouters&#039; &gt;&gt; /etc/smokeping/config.d/Targets
# systemctl restart smokeping</pre>
<h4>Games</h4>
<p><em>Cortesia <a href="http://www.patrickbrandao.com/" rel="noopener noreferrer" target="_blank">Patrick Brandao</a></em></p>
<pre class="remontti-code"># vim /etc/smokeping/config.d/MyGames</pre>
<pre class="remontti-code">#
## Games
# Cortesia Patrick Brandao
# http://www.patrickbrandao.com/

+ GAMES
menu = GAMES-IPv4
title = GAMES - Game servers - IPv4

++ CROSS-FIRE-1
menu = CROSS-FIRE-1
title = CROSS-FIRE-1 - 198.49.89.42
host = 198.49.89.42

++ CROSS-FIRE-2
menu = CROSS-FIRE-2
title = CROSS-FIRE-2 - 198.49.89.19
host = 198.49.89.19

++ FREE-FIRE-1
menu = FREE-FIRE-1
title = FREE-FIRE-1 - 143.92.126.71
host = 143.92.126.71

++ FREE-FIRE-2
menu = FREE-FIRE-2
title = FREE-FIRE-2 - 143.92.126.133
host = 143.92.126.133

++ FREE-FIRE-3
menu = FREE-FIRE-3
title = FREE-FIRE-3 - 128.14.221.18
host = 128.14.221.18

++ FREE-FIRE-4
menu = FREE-FIRE-4
title = FREE-FIRE-4 - 143.92.125.169
host = 143.92.125.169

++ FREE-FIRE-5
menu = FREE-FIRE-5
title = FREE-FIRE-5 - 143.92.126.164
host = 143.92.126.164

++ FREE-FIRE-6
menu = FREE-FIRE-6
title = FREE-FIRE-6 - 169.57.197.82
host = 169.57.197.82

++ FREE-FIRE-7
menu = FREE-FIRE-7
title = FREE-FIRE-7 - 143.92.126.145
host = 143.92.126.145

++ FREEFIRE-8
menu = FREEFIRE-8
title = FREEFIRE-8  - 169.57.181.198
host = 169.57.181.198

++ FREEFIRE-9
menu = FREEFIRE-9
title = FREEFIRE-9  - 169.57.197.42
host = 169.57.197.42

++ FREEFIRE-10
menu = FREEFIRE-10
title = FREEFIRE-10  - 169.57.197.161
host = 169.57.197.161

++ FREEFIRE-11
menu = FREEFIRE-11
title = FREEFIRE-11  - 104.124.97.8
host = 104.124.97.8

++ FREEFIRE-12
menu = FREEFIRE-12
title = FREEFIRE-12  - 104.124.97.33
host = 104.124.97.33

++ FREEFIRE-13
menu = FREEFIRE-13
title = FREEFIRE-13  - 169.57.197.100
host = 169.57.197.100

++ PUBG-1
menu = PUBG-1
title = PUBG-1 - 49.51.136.156
host = 49.51.136.156

++ PUBG-2
menu = PUBG-2
title = PUBG-2 - 203.205.179.145
host = 203.205.179.145

++ PUBG-3
menu = PUBG-3
title = PUBG-3 - 52.94.7.70
host = 52.94.7.70

++ CALLOFDUTY-1
menu = CALLOFDUTY-1
title = CALLOFDUTY-1  - 209.197.3.24
host = 209.197.3.24

++ CALLOFDUTY-2
menu = CALLOFDUTY-2
title = CALLOFDUTY-2  - 23.42.246.119
host = 23.42.246.119

++ CALLOFDUTY-3
menu = CALLOFDUTY-3
title = CALLOFDUTY-3  - 157.240.216.14
host = 157.240.216.14

++ CALLOFDUTY-4
menu = CALLOFDUTY-4
title = CALLOFDUTY-4  - 92.122.173.141
host = 92.122.173.141

++ GAMERSCLUB-1
menu = GAMERSCLUB-1
title = GAMERSCLUB-1  - teste-1.gamersclub.com.br
host = teste-1.gamersclub.com.br

++ GAMERSCLUB-2
menu = GAMERSCLUB-2
title = GAMERSCLUB-2  - teste-2.gamersclub.com.br
host = teste-2.gamersclub.com.br

++ GARENA-1
menu = GARENA-1
title = GARENA-1  - 143.92.125.203
host = 143.92.125.203

++ GARENA-2
menu = GARENA-2
title = GARENA-2  - 143.92.126.19
host = 143.92.126.19

++ STEAM-SP1
menu = STEAM-SP1
title = STEAM-SP1  - 209.197.25.1
host = 209.197.25.1</pre>
<pre class="remontti-code"># echo &#039;@include /etc/smokeping/config.d/MyGames&#039; &gt;&gt; /etc/smokeping/config.d/Targets
# systemctl restart smokeping</pre>
<p>Acessando o SmokePing temos todas nossa informações agora!<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_final.png" alt="" width="1033" height="500" class="alignnone size-full wp-image-5000" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_final.png 1033w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_final-300x145.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_final-1024x496.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_final-768x372.png 768w" sizes="auto, (max-width: 1033px) 100vw, 1033px" /></p>
<p>o Hardware para montar esse cenário foi de uma VM com 1 CPU (Xeon(R) 4208 CPU @ 2.10GHz) + 1GB de Memoria<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_hardware.png" alt="" width="861" height="91" class="alignnone size-full wp-image-5001" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_hardware.png 861w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_hardware-300x32.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/09/smokeping_hardware-768x81.png 768w" sizes="auto, (max-width: 861px) 100vw, 861px" /></p>
<p>Curtiu o conteúdo? Quer me ajudar manter essa p*** ? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Participe do canal no <a href="https://t.me/blogremontti" rel="noopener noreferrer" target="_blank">telegram</a> para ficar atualizado sempre que publicar um novo tutorial. </p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Abraço!</p>
<p>Fontes:<br />
<a href="https://oss.oetiker.ch/smokeping/doc/index.en.html" rel="noopener noreferrer" target="_blank">https://oss.oetiker.ch/smokeping/doc/index.en.html</a><br />
<a href="https://oss.oetiker.ch/smokeping/probe/FPing.en.html" rel="noopener noreferrer" target="_blank">https://oss.oetiker.ch/smokeping/probe/FPing.en.html</a><br />
<a href="https://oss.oetiker.ch/smokeping/probe/FPing6.en.html" rel="noopener noreferrer" target="_blank">https://oss.oetiker.ch/smokeping/probe/FPing6.en.html</a><br />
<a href="https://oss.oetiker.ch/smokeping/probe/DNS.en.html" rel="noopener noreferrer" target="_blank">https://oss.oetiker.ch/smokeping/probe/DNS.en.html</a><br />
<a href="https://oss.oetiker.ch/smokeping/probe/Curl.en.html" rel="noopener noreferrer" target="_blank">https://oss.oetiker.ch/smokeping/probe/Curl.en.html</a></p>
<p>O post <a href="https://blog.remontti.com.br/4816">Como configurar o SmokePing para monitoramento de latências #mafiadoping</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/4816/feed</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>Gerando gráfico ICMP(ms) MRTG</title>
		<link>https://blog.remontti.com.br/669</link>
					<comments>https://blog.remontti.com.br/669#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 02 Jan 2015 22:45:18 +0000</pubDate>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[graficos]]></category>
		<category><![CDATA[mrtg]]></category>
		<category><![CDATA[mrtg-ping-probe]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[rede]]></category>
		<guid isPermaLink="false">http://www.remontti.com.br/blog/?p=669</guid>

					<description><![CDATA[<p>O mrtg-ping-probe é um módulo para MRTG 2.x. usado para monitorar a latência. Distribuição usada: Debian 8, tenha o pacote mrtg já instalado. Instalando # apt-get install mrtg-ping-probe Para usar o mrtg-ping-probe você precisa configurar&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/669">Gerando gráfico ICMP(ms) MRTG</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">O mrtg-ping-probe é um módulo para MRTG 2.x. usado para monitorar a latência.</p>
<p style="text-align: justify;">Distribuição usada: Debian 8, tenha o pacote <strong>mrtg</strong> já instalado.</p>
<p style="text-align: justify;">Instalando<br />
<span style="color: #000080;"><strong># apt-get install mrtg-ping-probe</strong></span></p>
<p>Para usar o mrtg-ping-probe você precisa configurar o MRTG para chamá-lo, isto é feito no arquivo de configuração do MRTG, que é geralmente /etc/mrtg.conf<br />
<span id="more-669"></span><br />
Adicione o seguinte em seu /etc/mrtg.cfg, onde farei o teste para o host www.google.com.br porém pode ser um IP.</p>
<pre class="remontti-code">
Title[www.google.com.br.latencia]: Latencia www.google.com.br
PageTop[www.google.com.br.latencia]:
MaxBytes[www.google.com.br.latencia]: 200
WithPeak[www.google.com.br.latencia]: ymwd
Options[www.google.com.br.latencia]: gauge,nobanner,transparent
Target[www.google.com.br.latencia]: `mrtg-ping-probe &lt;strong&gt;www.google.com.br&lt;/strong&gt;`
YLegend[www.google.com.br.latencia]: ms
ShortLegend[www.google.com.br.latencia]: ms
LegendI[www.google.com.br.latencia]:  Max:
LegendO[www.google.com.br.latencia]:  Min:

Title[www.google.com.br.perda]: Pacotes Perdidos para www.google.com.br
PageTop[www.google.com.br.perda]:
Target[www.google.com.br.perda]: `mrtg-ping-probe -t 42 -p loss/loss &lt;strong&gt;www.google.com.br&lt;/strong&gt;`
MaxBytes[www.google.com.br.perda]: 100
#AbsMax[www.google.com.br.perda]: 101
WithPeak[www.google.com.br.perda]: ymwd
Options[www.google.com.br.perda]: gauge,nobanner,transparent
Unscaled[www.google.com.br.perda]: dwmy
YLegend[www.google.com.br.perda]: % Pacotes Perdidos
ShortLegend[www.google.com.br.perda]: %
LegendI[www.google.com.br.perda]:  % perda:
LegendO[www.google.com.br.perda]:  % perda:

</pre>
<p>O post <a href="https://blog.remontti.com.br/669">Gerando gráfico ICMP(ms) MRTG</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/669/feed</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Balanceamento de Carga</title>
		<link>https://blog.remontti.com.br/328</link>
					<comments>https://blog.remontti.com.br/328#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 09 Jun 2009 18:04:28 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[balance]]></category>
		<category><![CDATA[balanceamento]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[cool]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[flush]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[rotas]]></category>
		<category><![CDATA[route]]></category>
		<category><![CDATA[uplink]]></category>
		<guid isPermaLink="false">http://www.remontti.com.br/blog/?p=328</guid>

					<description><![CDATA[<p>Este tuto foi feito em cima da distribuição Debian 5, com dois links de mesma velocidade. Neste exemplo teremos 3 interface [eth0 192.168.1.100 e eth1 192.168.2.100 as duas internet] [eth2 192.168.3.1 rede local] Primeiramente&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/328">Balanceamento de Carga</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Este tuto foi feito em cima da distribuição Debian 5, com dois links de mesma velocidade.<br />
Neste exemplo teremos 3 interface [eth0 192.168.1.100 e eth1 192.168.2.100 as duas internet] [eth2 192.168.3.1 rede local]</p>
<p>Primeiramente instalamos o pacote iproute 2<br />
<span style="color: #ff6600;"># aptitude update<br />
# aptitude install iproute</span></p>
<p>Após configure as tabelas:</p>
<p><span style="color: #ff6600;"># vim /etc/iproute2/rt_tables</span><br />
Adicione essas duas linhas no final do arquivo:</p>
<p><span style="color: #008080;">200 uplink1<br />
201 uplink2</span></p>
<p><span style="color: #008080;"><span id="more-328"></span></span>Vamos configurar nossa interface onde em eth0 192.168.1.1 / eth1 192.168.2.1 são os gateways<br />
<span style="color: #ff6600;"># vim /etc/network/interfaces</span></p>
<pre class="remontti-code"># LOCALHOST
auto lo
iface lo inet loopback

# LINK 1

auto eth0
iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0

        post-up ip route add 192.168.1.1/32 dev eth1 src 192.168.1.100 table uplink1
        post-up ip route add default via 192.168.1.1 table uplink1
        post-up ip rule add from 192.168.1.100 table uplink1
        post-down ip rule del from 192.168.1.100 table uplink1

# LINK 2

auto eth1
iface eth1 inet static
        address 192.168.2.100
        netmask 255.255.255.0

        post-up ip route add 192.168.2.1/32 dev eth1 src 192.168.2.210 table uplink2
        post-up ip route add default via 192.168.2.1 table uplink2
        post-up ip rule add from 192.168.2.210 table uplink2
        post-down ip rule del from 192.168.2.210 table uplink2

# REDE CLIENTE
auto eth2
iface eth2 inet static
        address 192.168.3.1
        netmask 255.255.255.0</pre>
<p>Reinicie o serviço:<br />
<span style="color: #ff6600;"># /etc/init.d/networking  restart</span></p>
<p>Agora vamos criar um firewall, criaremos as rotas.</p>
<pre class="remontti-code">#! /bin/sh

# Ativa forward
echo &quot;1&quot; &gt; /proc/sys/net/ipv4/ip_forward

# Limpa regras
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -X -t nat
/sbin/iptables -F -t mangle
/sbin/iptables -X -t mangle

# Carrega modulos
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE

#Libera navegacao nas interfaces
/sbin/iptables -t nat -A POSTROUTING -s 192.168.30/24 -o eth0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -s 192.168.30/24 -o eth1 -j MASQUERADE

# Configurações Proxy
# /sbin/iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128
# /sbin/iptables -A PREROUTING -t mangle -s 192.168.3.0/24 -d 0/0 -j MARK --set-mark 3
# /sbin/iptables -t mangle -A OUTPUT -p TCP -d ! 192.168.3.0/24 --dport 80 -m owner --uid-owner 23 -j MARK --set-mark 3

# Faz com que o servico dns faca consultas pelo outro link
/sbin/iptables -t mangle -A OUTPUT -p UDP --dport 53 -m owner --uid-owner 25 -j MARK --set-mark 2

# Deleta rotas
route del default

# Load balance
ip route add default scope global nexthop via 192.168.1.1 dev eth0 weight 1 nexthop via 192.168.2.1 dev eth1 weight 1

# Limpa cache
ip route flush cached</pre>
<p>Use o comando &#8220;ip route show table main&#8221; para ver como ficou&#8230;<br />
<span style="color: #ff6600;"> # ip route show table main</span></p>
<p><span style="color: #999999;">192.168.1.1/24 dev eth0  proto kernel  scope link  src 192.168.1.100<br />
<em>192.168.2.1/24 dev eth1  proto kernel  scope link  src 192.168.2.100<br />
192.168.3.1/24 dev eth2  proto kernel  scope link  src 192.168.3.1<br />
default<br />
nexthop via 192.168.1.100  dev eth0 weight 1<br />
nexthop via 192.168.2.100  dev eth1 weight 1</em></span></p>
<p>Adicione no cron o comando para limpar o cache dos dns a cada 10 min<br />
<span style="color: #ff6600;"> # vim /etc/crontab</span><br />
00-59/10   *   * * *   root   ip route flush cached</p>
<p>Aqui fiz o siguinte script para verificar se algum dos link cai, assim refazendo a rota e deixadondo para o que estiver online.</p>
<p><span style="color: #ff6600;"># vim /root/uplink.sh</span></p>
<pre class="remontti-code">#! /bin/sh
# - - - - - - - - - - - - - - - #
# Script por Rudimar Remontti   #
# www.remontti.com.br           #
# - - - - - - - - - - - - - - - #
echo -e &#039;\e[33;1mVerificando Links: \e[m&#039;

# - - - - - - - - - - - #
# Configuracoes         #
# - - - - - - - - - - - #
GTW_1=192.168.1.1
ITF_1=eth0
GTW_2=192.168.2.1
ITF_2=eth1
RT_BRT_1=200.176.3.142 # Ip do terra.com.br ele ira pingar p/ verificar se responde
RT_BRT_2=200.176.3.142 # Ip do terra.com.br...
# - - - - - - - - - - - #

echo
echo -e &quot;\e[30;1mLink 1: $GTW_1\e[m&quot;
echo -e &quot;\e[30;1mLink 2: $GTW_2\e[m&quot;
echo 

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
PING_1=`ping $RT_BRT_1 -I $ITF_1 -c 1 |grep packets |cut -c 24`
PING_2=`ping $RT_BRT_2 -I $ITF_2 -c 1 |grep packets |cut -c 24`
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #

UP=`echo &quot;($PING_1 + $PING_2)&quot; | bc`
if [ $UP = 2 ]; then 

        route del default
        ip route add default scope global nexthop via $GTW_1 dev $ITF_1 weight 1 nexthop via $GTW_2 dev $ITF_2 weight 1
        ip route flush cached

        echo -n &#039;Link 1 e Link 2  Status:     &#039;
        echo -e &#039;\e[32;1m[ ON ] \e[m&#039;
        echo

elif [ $UP = 0 ]; then

        route del default
        ip route add default scope global nexthop via $GTW_1 dev $ITF_1 weight 1 nexthop via $GTW_2 dev $ITF_2 weight 1
        ip route flush cached

        echo
        echo -n Link 1:
        echo -e &#039;\e[32;1m  [  OKAY  ] \e[m&#039;
        echo -n Link 2:
        echo -e &#039;\e[32;1m  [  OKAY  ] \e[m&#039;
        echo

elif [ $UP = 1 ]; then
        echo
        if [ $PING_1 = 1 ]; then
                echo -n Link 1:
                echo -e &#039;\e[32;1m  [  OKAY  ] \e[m&#039;
        else
                route del default
                ip route add default scope global nexthop via $GTW_2 dev $ITF_2 weight 1
                ip route flush cached
                data=`date`
                echo &quot;$data -&gt; Link 1 OFF&quot; &gt;&gt; /root/links.log
                echo -n Link 1:
                echo -e &#039;\e[31;1m  [  OFF   ] \e[m&#039;
        fi
        if [ $PING_2 = 1 ]; then
                echo -n Link 2:
                echo -e &#039;\e[32;1m  [  OKAY  ] \e[m&#039;
        else
                route del default
                ip route add default scope global nexthop via $GTW_1 dev $ITF_1 weight 1
                ip route flush cached
                data=`date`
                echo &quot;$data -&gt; Link 2 OFF&quot; &gt;&gt; /root/links.log
                echo -n Link 2:
                echo -e &#039;\e[31;1m  [  OFF   ] \e[m&#039;

        fi
        echo
        if [ $PING_1 = 0 ]; then
                echo -e &#039;\e[30;1mRotas reconfigurada, gatway através do Link 2.\e[m&#039;
                ROTE=`ip route show |grep default |cut -c 9-100`
                echo -e &quot;\e[30;1m$ROTE\e[m&quot;

        elif [ $PING_2 = 0 ]; then
                echo -e &#039;\e[30;1mRotas reconfigurada, gatway através do Link 1.\e[m&#039;
                ROTE=`ip route show |grep default |cut -c 9-100`
                echo -e &quot;\e[30;1m$ROTE\e[m&quot;
        fi
else
        echo ERRO!
fi
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
echo
ip route show |grep nexthop
echo</pre>
<p><span style="color: #ff6600;"># chmod 755 /root/uplink.sh</span></p>
<p>Adicionamos ao cron (5min)<br />
<span style="color: #ff6600;"> # vim /etc/crontab</span><br />
<span style="color: #008080;"> 00-59/5   *   * * *   root   /root/uplink.sh</span></p>
<p>Carregue seu firewall na inicialização do sistema, utilize o iptraf para ver o trafego saindo pelas duas interfaces.<br />
Se vc tem dois link com cargas diferente altere o weight.</p>
<p>Abraço</p>
<p>O post <a href="https://blog.remontti.com.br/328">Balanceamento de Carga</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/328/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
