Mudanças entre as edições de "Fumaça Data Springs/Anexo técnico"

De wiki da nuvem
Ir para: navegação, pesquisa
(Instalação do portal de controle de acesso)
 
(23 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 2: Linha 2:
 
== IPs ==
 
== IPs ==
  
  IPs para Fumaça e Porto Real: 10.7.0.0/16 (10.7.0.0 a 10.7.255.255)
+
  IPs para Fumaça e Porto Real: 10.7.0.0/16/17 (10.7.0.0 a 10.7.127.255)
 +
*Acima de 10.7.128.0 estão reservadas para ips fixos
 
*IP reservada para o roteador mais próximo: 10.7.0.1
 
*IP reservada para o roteador mais próximo: 10.7.0.1
 
*[[BSC]] -> [http://10.7.0.5/rai 10.7.0.5] - 00:30:18:a2:88:95
 
*[[BSC]] -> [http://10.7.0.5/rai 10.7.0.5] - 00:30:18:a2:88:95
 
*[[BTS]] master -> 10.7.0.6 - 00:d0:cc:08:18:24
 
*[[BTS]] master -> 10.7.0.6 - 00:d0:cc:08:18:24
 
*[[BTS]] slave -> 10.7.0.7 - 00:d0:cc:08:08:82
 
*[[BTS]] slave -> 10.7.0.7 - 00:d0:cc:08:08:82
*servidor -> [http://10.7.0.10 10.7.0.10]
+
*servidor -> [http://10.7.128.10 10.7.128.10]
 
** este wiki http://wiki.fumacaonline.org.br
 
** este wiki http://wiki.fumacaonline.org.br
 
** gallery (fotos) http://gallery.fumacaonline.org.br
 
** gallery (fotos) http://gallery.fumacaonline.org.br
Linha 20: Linha 21:
 
*campinho -> [http://]
 
*campinho -> [http://]
  
 +
 +
10.7.128.23 igrejinha nano beam p/ torre
 +
10.7.128.22 torre nano beam p / igrejinha  ssid: bridge_morrinho
 +
10.7.128.20 torre rocket p resende
 +
10.7.128.21 torre petcenter
 +
10.7.128.29 tania
 +
10.7.128.24 igrejinha -> benedita
 +
10.7.128.25 benedita -> igrejinha
  
 
* 2a00:1508:a57:8900::ad:a3f1 salao
 
* 2a00:1508:a57:8900::ad:a3f1 salao
Linha 37: Linha 46:
 
== Instalação do portal de controle de acesso ==
 
== Instalação do portal de controle de acesso ==
  
* Essas instruções são para o roteador que está conectado à internet, fornecendo para o resto da rede. Não sei o que acontece no caso em que houver mais de uma saída para internet
+
* Essas instruções são para o roteador que está conectado à internet, fornecendo para o resto da rede. Não sei o que acontece no caso em que houver mais de uma saída para internet.
  
 
* Esse sistema de validação e portal cativo não funciona quando não há acesso internet, ou quando o acesso cai. Para isso, tem uma gambiarra descrita no fim da página
 
* Esse sistema de validação e portal cativo não funciona quando não há acesso internet, ou quando o acesso cai. Para isso, tem uma gambiarra descrita no fim da página
  
Vá para o menu system -> software do libremesh
 
  
Clique em atualizar lista de pacotes
 
  
Instalar o pacote nodogsplash e o pacote vale  - atenção, o pacote vale ''não está disponível'' para a versão 16.07 da libremesh.
 
  
Substitua o arquivo  /etc/nodogsplash/nodogsplash.conf pelo listado abaixo (fazendo as devidas modificações nos IP e página de redirecionamento). O IP a ser usado é o do menu network -> interfaces, interface LAN (IPV4) (sem o /16). O range são os dois primeiros números, seguidos de .0.0/16. (ex se o ip é 10.7.255.50, o range é 10.7.0.0/16.
+
* Para versão DaybootRely da LibreMesh (1706)
 +
** Para essa versão é necessário ter acesso ssh. Faça o login, e da linha de comando dê:
 +
 
 +
<pre>
 +
opkg update
 +
</pre>
 +
 
 +
<pre>
 +
opkg install http://nuvem.tk/files/nodogsplash_0.9.2-1_mips_24kc.ipk
 +
</pre>
 +
 
 +
<pre>
 +
rm /etc/config/nodogsplash
 +
</pre>
 +
 
 +
 
 +
* Para versão Chaos Calmer da LibreMesh (1607)
 +
** Para essa versão é necessário ter acesso ssh. Faça o login, e da linha de comando dê:
 +
 
 +
<pre>
 +
opkg update
 +
</pre>
 +
 
 +
<pre>
 +
opkg install http://chef.altermundi.net/downloads/r44952/ar71xx/packages/routing/nodogsplash_0.9_beta9.9.9-2-20150718_043129_ar71xx.ipk
 +
</pre>
 +
 
 +
<pre>
 +
opkg install http://chef.altermundi.net/downloads/r44952/ar71xx/packages/lime_packages/vale_2015-09-09-1441772353_ar71xx.ipk
 +
</pre>
 +
 
 +
* Para versão Barrier Breaker da LibreMesh (1509)
 +
** Vá para o menu system -> software do libremesh
 +
** Clique em atualizar lista de pacotes
 +
** Instalar o pacote nodogsplash e o pacote vale
 +
 
 +
* Instruções em comum:
 +
** Substitua o arquivo  /etc/nodogsplash/nodogsplash.conf pelo listado abaixo (fazendo as devidas modificações nos IP e página de redirecionamento). O IP a ser usado é o do menu network -> interfaces, interface LAN (IPV4) (sem o /16). O range são os dois primeiros números, seguidos de .0.0/16. (ex se o ip é 10.7.255.50, o range é 10.7.0.0/16.
  
  
Linha 127: Linha 170:
 
EnablePreAuth yes
 
EnablePreAuth yes
  
#change to the place where you want to redirect the users after login
+
</pre>
RedirectURL http://www.quintanalibre.org.ar/portada</pre>
+
 
 +
** Edite o arquivo /etc/nodogsplash/htdocs/splash-vale.html para refletir as necessidades e contexto da sua comunidade e salve como splash.html (substituindo o splash.html que está no mesmo diretório). Manter o iframe, assim como form e os campos dentro dele.
 +
** Vá no menu system -> startup e mude o nodogsplash para enabled
 +
** Reinicie o roteador
 +
 
 +
* Traduza ou customize as mensagens de erro que estão no arquivo /www/cgi-bin/vale
 +
* Adicione seus códigos no arquivo /etc/nodogsplash/vale/db.csv (use um gerador aleatório como [http://www.randomcodegenerator.com  www.randomcodegenerator.com]). A primeira coluna não é utilizada. Cada linha tem que terminar com as duas vírgulas, sem espaços.
 +
 
 +
obs: vale.sh modificado para fazer um voucher por dispositivo e não mandar visitar a página do portal todo dia: [https://raw.githubusercontent.com/libremesh/lime-packages/26f03f77c3db1dddb5fd6c34e8b7f551584af5d2/packages/vale/files/usr/bin/vale.sh https://raw.githubusercontent.com/libremesh/lime-packages/26f03f77c3db1dddb5fd6c34e8b7f551584af5d2/packages/vale/files/usr/bin/vale.sh]
 +
 
 +
=== Caso não se queira usar o sistema de voucher, só a página de splash ===
 +
 
 +
Comente as seguintes linhas no nodogsplash.conf:
 +
 
 +
<pre>
 +
#BinVoucher "vale.sh"
 +
 
 +
#ForceVoucher yes
 +
 
 +
#EnablePreAuth yes
 +
</pre>
  
Edite o arquivo /etc/nodogsplash/htdocs/splash-vale.html para refletir as necessidades e contexto da sua comunidade e salve como splash.html (substituindo o splash.html que está no mesmo diretório). Manter o iframe, assim como form e os campos dentro dele.
+
O link para autenticação na página de splash deve ter o seguinte código:
  
Vá no menu system -> startup e mude o nodogsplash para enabled
+
<pre>
 +
<a href="$authtarget">
 +
        Texto do link
 +
</a>
 +
</pre>
  
Reinicie o roteador
+
=== Para direcionar o usuário a uma página específica, ao invés da página solicitada ===
  
 +
Inclua a seguinte linha no nodogsplash.conf
 +
 +
<pre>
 +
#change to the place where you want to redirect the users after login
 +
RedirectURL http://www.nuvem.tk/wiki
 +
</pre>
  
 
=== Gambiarra para redirecionar o tráfego para um servidor interno quando cai a internet ===
 
=== Gambiarra para redirecionar o tráfego para um servidor interno quando cai a internet ===
  
Esse script confere se há acesso à internet. Quando não há, ele altera o dnsmasq para direcionar todos os acessos para o servidor local. Evidente que se houverem outros serviços locais (diferentes servidores etc), essa gambiarra vai atrapalhar esses serviços.
+
Esse script confere se há acesso à internet. Quando não há, ele altera o dnsmasq para direcionar todos os acessos para o servidor local. Evidente que se houverem outros serviços locais (diferentes servidores etc), essa gambiarra pode atrapalhar esses serviços.
 +
 
 +
O último perfil criado para fumaçaonline já tem esse arquivo e o crontab editados, portanto se você basear o seu firmware no chef em fumaçaonline, ele vai incluir tudo. Ou você pode baixar o próprio firmware para testar:
 +
 
 +
[https://chef.altermundi.net/fwprofile/fumacaonline-1607/ https://chef.altermundi.net/fwprofile/fumacaonline-1607/]
  
 
* Copiar o código abaixo para um arquivo chamado offline-redirect.sh, modificando o endereço 10.7.0.10 para o endereço ip do servidor local.
 
* Copiar o código abaixo para um arquivo chamado offline-redirect.sh, modificando o endereço 10.7.0.10 para o endereço ip do servidor local.
Linha 147: Linha 224:
  
  
if ! ping -q -c 3 -W 1 8.8.8.8>/dev/null
+
if ! ip route | grep -q -e default # if there is no route out, then...
 
then
 
then
 
#  offline; check if redirect is already there  
 
#  offline; check if redirect is already there  
Linha 179: Linha 256:
 
* * * * * /usr/bin/offline-redirect.sh
 
* * * * * /usr/bin/offline-redirect.sh
 
</pre>
 
</pre>
 +
 +
 +
=== Como conectar no roteador por cabo de internet sem saber o ip ===
 +
 +
==== usando nmap ====
 +
 +
<pre>nmap  -sn 192.168.0.0/24</pre>
 +
 +
para procurar de 192.168.0.1 a 192.168.0.254
 +
 +
<pre>nmap  -sn 10.0.0.0/16</pre>
 +
 +
para procurar de 10.0.0.1 a 10.0.254.254 (demora...)
 +
 +
==== usando ipv6 ====
 +
 +
<pre>ping6 -c4 -I eth0 ff02::1</pre>
 +
 +
Deduza o endereço pelo endereço mac do roteador, e faça login por ssh
 +
 +
<pre>ssh usuario@endereçoipv6%interface</pre>
 +
 +
Por exemplo
 +
 +
<pre> ssh ubnt@fe80::20d:b9ff:fe05:25b4:%wlan0</pre>
 +
 +
Uma vez no terminal do roteador, use
 +
 +
<pre> ip addr</pre>
 +
 +
Para descobrir o endereço ipv4.

Edição atual tal como às 19h42min de 8 de março de 2018

IPs

IPs para Fumaça e Porto Real: 10.7.0.0/16/17 (10.7.0.0 a 10.7.127.255)


10.7.128.23 igrejinha nano beam p/ torre 10.7.128.22 torre nano beam p / igrejinha ssid: bridge_morrinho 10.7.128.20 torre rocket p resende 10.7.128.21 torre petcenter 10.7.128.29 tania 10.7.128.24 igrejinha -> benedita 10.7.128.25 benedita -> igrejinha

  • 2a00:1508:a57:8900::ad:a3f1 salao
  • 2a00:1508:a57:8900::ad:a1b7 igrejinha
  • 2a00:1508:a57:8900::ad:a47b moiados
  • 2a00:1508:a57:8900::ad:a3c7 morrinho
  • 2a00:1508:a57:8900::ad:a1cc nebulosa
  • 2a00:1508:a57:8900::75:b655 torre
  • 2a00:1508:a57:8900::b8:66ee campinho
  • 2a00:1508:a57:8900::75:b6dc moacir

Para abrir um browser através do SSH (como se estivesse no servidor local)

  • ssh 2a00:1508:a57:8900::ad:a1b7 -D8080
  • chromium-browser --proxy-server=socks://localhost:8080


Instalação do portal de controle de acesso

  • Essas instruções são para o roteador que está conectado à internet, fornecendo para o resto da rede. Não sei o que acontece no caso em que houver mais de uma saída para internet.
  • Esse sistema de validação e portal cativo não funciona quando não há acesso internet, ou quando o acesso cai. Para isso, tem uma gambiarra descrita no fim da página



  • Para versão DaybootRely da LibreMesh (1706)
    • Para essa versão é necessário ter acesso ssh. Faça o login, e da linha de comando dê:
opkg update
opkg install http://nuvem.tk/files/nodogsplash_0.9.2-1_mips_24kc.ipk
rm /etc/config/nodogsplash


  • Para versão Chaos Calmer da LibreMesh (1607)
    • Para essa versão é necessário ter acesso ssh. Faça o login, e da linha de comando dê:
opkg update
opkg install http://chef.altermundi.net/downloads/r44952/ar71xx/packages/routing/nodogsplash_0.9_beta9.9.9-2-20150718_043129_ar71xx.ipk
opkg install http://chef.altermundi.net/downloads/r44952/ar71xx/packages/lime_packages/vale_2015-09-09-1441772353_ar71xx.ipk
  • Para versão Barrier Breaker da LibreMesh (1509)
    • Vá para o menu system -> software do libremesh
    • Clique em atualizar lista de pacotes
    • Instalar o pacote nodogsplash e o pacote vale
  • Instruções em comum:
    • Substitua o arquivo /etc/nodogsplash/nodogsplash.conf pelo listado abaixo (fazendo as devidas modificações nos IP e página de redirecionamento). O IP a ser usado é o do menu network -> interfaces, interface LAN (IPV4) (sem o /16). O range são os dois primeiros números, seguidos de .0.0/16. (ex se o ip é 10.7.255.50, o range é 10.7.0.0/16.


GatewayInterface br-lan
GatewayInterfaceExtra bmx+
GatewayInterfaceExtra2 anygw


FirewallRuleSet authenticated-users {
     FirewallRule allow to 0.0.0.0/0
}

FirewallRuleSet users-to-router {                                                                           
 # Nodogsplash automatically allows tcp to GatewayPort,                                                     
 # at GatewayAddress, to serve the splash page.                                                             
 # However you may want to open up other ports, e.g.                                                        
 # 53 for DNS and 67 for DHCP if the router itself is                                                       
 # providing these services.                                                                                
    FirewallRule allow udp port 53                                                                          
    FirewallRule allow tcp port 53                                                                          
    FirewallRule allow udp port 67                                                                          
 # You may want to allow ssh, http, and https to the router                                                 
 # for administration from the GatewayInterface.  If not,                                                   
 # comment these out.                                                                                       
    FirewallRule allow tcp port 22                                                                          
    FirewallRule allow tcp port 80                                                                          
    FirewallRule allow tcp port 443                                                                         
}                                                                                                           
# end FirewallRuleSet users-to-router                                                                       

FirewallRuleSet preauthenticated-users {
 # For preauthenticated users to resolve IP addresses in their initial
 # request not using the router itself as a DNS server,
 # you probably want to allow port 53 udp and tcp for DNS.
    FirewallRule allow tcp port 53	
    FirewallRule allow udp port 53
 # For splash page content not hosted on the router, you
 # will want to allow port 80 tcp to the remote host here.
 # Doing so circumvents the usual capture and redirect of
 # any port 80 request to this remote host.
 # Note that the remote host's numerical IP address must be known
 # and used here.  


     #change the IP for the address of the gateway router
     FirewallRule allow tcp port 80 to 10.7.122.55


}
# end FirewallRuleSet preauthenticated-users
 	  
 	  				 	 	 	    		  	

EmptyRuleSetPolicy preauthenticated-users passthrough
EmptyRuleSetPolicy users-to-router passthrough


#change the IP for the address of the gateway router
GatewayName 10.7.122.55:80

#GatewayPort 80


MaxClients 500

ClientIdleTimeout 720

ClientForceTimeout 14400


#change the range for the ip range of your mesh network
GatewayIPRange 10.7.0.0/16

BinVoucher "vale.sh"

ForceVoucher yes

EnablePreAuth yes

    • Edite o arquivo /etc/nodogsplash/htdocs/splash-vale.html para refletir as necessidades e contexto da sua comunidade e salve como splash.html (substituindo o splash.html que está no mesmo diretório). Manter o iframe, assim como form e os campos dentro dele.
    • Vá no menu system -> startup e mude o nodogsplash para enabled
    • Reinicie o roteador
  • Traduza ou customize as mensagens de erro que estão no arquivo /www/cgi-bin/vale
  • Adicione seus códigos no arquivo /etc/nodogsplash/vale/db.csv (use um gerador aleatório como www.randomcodegenerator.com). A primeira coluna não é utilizada. Cada linha tem que terminar com as duas vírgulas, sem espaços.

obs: vale.sh modificado para fazer um voucher por dispositivo e não mandar visitar a página do portal todo dia: https://raw.githubusercontent.com/libremesh/lime-packages/26f03f77c3db1dddb5fd6c34e8b7f551584af5d2/packages/vale/files/usr/bin/vale.sh

Caso não se queira usar o sistema de voucher, só a página de splash

Comente as seguintes linhas no nodogsplash.conf:

#BinVoucher "vale.sh"

#ForceVoucher yes

#EnablePreAuth yes

O link para autenticação na página de splash deve ter o seguinte código:

	<a href="$authtarget">
         Texto do link
	</a>

Para direcionar o usuário a uma página específica, ao invés da página solicitada

Inclua a seguinte linha no nodogsplash.conf

#change to the place where you want to redirect the users after login
RedirectURL http://www.nuvem.tk/wiki

Gambiarra para redirecionar o tráfego para um servidor interno quando cai a internet

Esse script confere se há acesso à internet. Quando não há, ele altera o dnsmasq para direcionar todos os acessos para o servidor local. Evidente que se houverem outros serviços locais (diferentes servidores etc), essa gambiarra pode atrapalhar esses serviços.

O último perfil criado para fumaçaonline já tem esse arquivo e o crontab editados, portanto se você basear o seu firmware no chef em fumaçaonline, ele vai incluir tudo. Ou você pode baixar o próprio firmware para testar:

https://chef.altermundi.net/fwprofile/fumacaonline-1607/

  • Copiar o código abaixo para um arquivo chamado offline-redirect.sh, modificando o endereço 10.7.0.10 para o endereço ip do servidor local.
#!/bin/sh


if ! ip route | grep -q -e default # if there is no route out, then...
then
#  offline; check if redirect is already there 

   if ! grep -q address=/#/10.7.0.10 /etc/dnsmasq.d/lime-proto-anygw-10-ipv4.conf
   then
      echo "address=/#/10.7.0.10">> /etc/dnsmasq.d/lime-proto-anygw-10-ipv4.conf 
      echo "added line"
      /etc/init.d/dnsmasq restart
   fi
else
#if online, delete that line in case it is there 
   if sed -i '\|address=/#/10.7.0.10|d' /etc/dnsmasq.d/lime-proto-anygw-10-ipv4.conf 
   then 
      /etc/init.d/dnsmasq restart
   fi
fi
  • Copiar esse arquivo para o diretório /usr/bin
  • Modificar o crontab para que o script seja executado a cada minuto. Entre com o comando
contrab -e

e adicione a linha

* * * * * /usr/bin/offline-redirect.sh


Como conectar no roteador por cabo de internet sem saber o ip

usando nmap

nmap  -sn 192.168.0.0/24

para procurar de 192.168.0.1 a 192.168.0.254

nmap  -sn 10.0.0.0/16

para procurar de 10.0.0.1 a 10.0.254.254 (demora...)

usando ipv6

ping6 -c4 -I eth0 ff02::1

Deduza o endereço pelo endereço mac do roteador, e faça login por ssh

ssh usuario@endereçoipv6%interface

Por exemplo

 ssh ubnt@fe80::20d:b9ff:fe05:25b4:%wlan0

Uma vez no terminal do roteador, use

 ip addr

Para descobrir o endereço ipv4.