Ir ao conteúdo

OpenWRT – Firewall, Proxy e DDNS

openwrt21Salve Salve Pessoal!

Já fazia algum tempo que vinha querendo implementar está solução em minha casa, tenho um filho de 6 anos e acho necessário bloquear algumas coisas indevidas, tudo na internet hoje está fácil demais 🙁

Então vamos lá, o cenário é bastante simples, segue uma imagem do mesmo:

imagem4

 

Vamos a explicação 😀

O Roteador NET é um modelo da cisco que permite trabalhar em bridge, dessa forma o Roteador TP-LINK recebe diretamente o IP real da internet, o notebook e o smartphone usam a rede sem fio e o desktop usa a rede cabeada.

O firmware do Roteador TP-LINK foi substituido pelo sistema OpenWRT, que é um linux para dispositivos embarcados, para saber mais sobre o mesmo acesso o link:

https://openwrt.org/

Eu também fiz um post anterior ensinando como instalar o OpenWRT usando o VMware Workstation, dessa forma você pode realizar diversos testes, antes de aplicar as configurações diretamente no roteador, segue o link:

http://rodrigolira.eti.br/instalando-o-openwrt-no-vmware-workstation/

Então, vamos as configurações:

1 – Como falei anteriormente coloque o roteador da operadora em modo bridge, caso seu roteador não tenha suporte a esta operação, coloque o seu roteador atrás do roteador da operadora e no roteador da operadora configure a DMZ apontando para o IP do seu roteador, dessa forma toda solicitração que chegar na WAN do roteador da operadora será encaminhado ao seu roteador “OpenWRT”.

2 – Substitua o firmware original do roteador, no link abaixo você vai encontrar uma lista de compatibilidade com diversos roteadores:

http://wiki.openwrt.org/toh/start

Por padrão o OpenWRT recebe IP via DHCP na porta WAN e coloca todas as outras interfaces (cabeada e sem fio) em uma bridge, e ativa o DHCP Server, oferecendo IPs na faixa 192.168.1.1/24, ou seja, após a instalação o seu equipamento já deverá estar pronto para uso, dependendo do caso.

3 – Agora vamos instalar o TinyProxy e o DDNS. Acesse o roteador através do IP 192.168.1.1, o mesmo vem sem senha e o login é root e navegue até:

System > Software

Clique em Update list para ele poder atualizar o repositório:

imagem5

Ou caso deseje fazer isso via linha de comando bata digitar:

# opkg update

Agora selecione a aba “Available packages”  digite “luci-app-tinyproxy” e clique em “find package”, depois clique em install e confirme:imagem9

 

Caso deseje instalar via console o comando é o seguintes:

# opkg install luci-app-tinyproxy

Porque não instalei o Squid? Meu equipamento não tem espaço o suficiente, simples assim 🙁

Faça o mesmo procedimento com o pacote “luci-app-ddns”:

imagem10

Via console:

# opkg install luci-app-ddns

Depois dos pacotes instalados irá aparecer uma nova aba no menu com o nome “Services”, como mostra a imagem abaixo:

imagem8

 

 

4 – Vamos configurar o firewall, você tanto pode configurar via interface gráfica, quanto pode ser via console, eu aconselho via console, pois já vou deixar os confs abaixo 😀

Via interface gráfica você vai em:

Network > Firewall

Via console você vai editar o arquivo:

/etc/config/firewall

E adicione o seguinte conteúdo:

config redirect 
 option _name 'proxy' 
 option src 'lan' 
 option proto 'tcp' 
 option src_dport '80' 
 option dest_port '8888' 
 option src_dip '!192.168.1.1' 
 option dest_ip '192.168.1.1'

Após isso basta reiniciar o serviço:

# /etc/init.d/firewall restart

6 – Agora vamos configurar o TinyProxy, a configuração dele é bem simples, acesse:

Services > Tinyproxy

Ele pode ser configurado totalmente via interface gráfica, ou via console, segue abaixo o meu arquivo de configuração:

config tinyproxy
 option User 'nobody'
 option Group 'nogroup'
 option Port '8888'
 option Timeout '600'
 option DefaultErrorFile '/usr/share/tinyproxy/default.html'
 option StatFile '/usr/share/tinyproxy/stats.html'
 option MaxClients '100'
 option MinSpareServers '5'
 option MaxSpareServers '20'
 option StartServers '10'
 option MaxRequestsPerChild '0'
 option ViaProxyName 'tinyproxy'
 list ConnectPort '443'
 list ConnectPort '563'
 option enabled '1'
 option FilterExtended '1'
 option Filter '/lib/uci/upload/cbid.tinyproxy.cfg02822b.Filter'
 option FilterURLs '1'
 option LogLevel 'Connect'
 option Syslog '1'
 option enable '1'
 option Allow '192.168.1.0/24'

Após a substituição das configurações basta reiniciar o serviço:

# /etc/init.d/tinyproxy restart

A partir de agora as solicitações de páginas já devem estar sendo filtradas pelo Tinyproxy, para configurar as páginas que devem ser bloqueadas, crie um arquivo .txt e coloque o que deseja bloquear, depois disso navegue até:

Services > Tinyproxy > Filtering and ACLs

Clique no botão escolher aquivos, depois disso basta escolher o arquivo txt que você criou.

Pronto proxy já está bloqueando os domínios 😀

7- Agora vamos configurar o DDNS, acesse:

Service > Dynamic DNS

Configure de acordo com o serviço que você usa, no meu caso uso o noip.com, segue abaixo as configurações:

imagem11

 

Você também pode configurar via console, edite o arquivo:

#/etc/config/ddns

Segue o meu arquivo de configuração:

config service 'myddns'
 option interface 'wan'
 option use_syslog '1'
 option use_https '0'
 option force_interval '72'
 option force_unit 'hours'
 option check_interval '10'
 option check_unit 'minutes'
 option retry_interval '60'
 option retry_unit 'seconds'
 option service_name 'noip.com'
 option domain 'SEU_DOMINIO'
 option username 'SEU_USUARIO'
 option password 'SUA_SENHA'
 option ip_source 'interface'
 option ip_interface 'wlan0'
 option enabled '1'

Depois basta reiniciar o serviço:

#/etc/init.d/ddns restart

Bem é isso ai pessoal, espero que vocês tenham gostado, assim que foram surgindo novas configurações vou postando aqui no blog.

Até a próxima 😀

Publicado emLINUX

28 Comentários

  1. Rodrigo Lira Rodrigo Lira

    Você cria um arquivo .txt qualquer, exemplo: “sites-bloqueados.txt”
    Depois acesse, Services > Tinyproxy > Filtering and ACLs
    E faça upload do arquivo 😀

    • Olá colega, eu também estou com problema. Eu apliquei toda configuração citada e faço o UPLOAD do arquivo e nada. Ele não bloqueia nada. Por exemplo que bloquear o youtube. coloco a regra e nada. Tem mais alguma configuração ?

      • Rodrigo Lira Rodrigo Lira

        O youtube usa https por padrão, com as configurações do tutorial você não consegui bloquear sites https pelo proxy, você pode fazer esse bloqueio direto no firewall.

  2. man , vou fazer um tcc relacionado a seguranca wifi, tanto pra quem possue um router e não quer ser invadido , tanto pra quem tem um e pode usar para espionagem..
    com esse tutorial eu consigo pegar exatamente os sites que os usuarios que se conectarem a minha rede wifi estão acessando.?
    abraço, fico no aguardo

  3. Francisco Francisco

    Bom dia

    Tenho Tplink 841ND DD WRT. Como faço pra instalar esse proxy pra consultar os sites visitados.
    Obrigado

  4. Muito bacana, instalei num TL-WDR3600 e funcionou perfeitamente!!

    Agora, se puder me ajudar onde fica o log de acesso das paginas que estão sendo acessadas?

    Obrigado!!

    • Rodrigo Lira Rodrigo Lira

      Cara, não me lembro exatamente qual o caminho, mas deve ficar dentro do /var/log/alguma_coisa 😀

  5. Boa noite,

    Segui suas configurações mas ele não consegue bloquear os https, por exemplo o facebook. Teria alguma solução para filtrar esses caras?

    Obrigado por postar

  6. leonardo leonardo

    cara estou com problema ao acessar via console me da essa msg, o que deve ser
    root@OpenWrt:~# /etc/config/firewall
    -ash: /etc/config/firewall: Permission denied

  7. Fernando Fernando

    Rodrigo Lira.
    Tudo bem ?Tenho uma aplicação usando OpenWrt e gostaria de fazer uma copia das requisições de sites feitas pelos clientes dessa rede ao qual estou criando.Pois quero analisar data, hora e requisição feita por eles. Esta aplicação esta sendo feita usando uma Raspberry Pi3 como roteador, de tal forma que o OpenWrt já está instalado nele como fimrware e tenho como aplicação o Squid. Porém estou tendo problemas para configura-lo, ou seja firmware e onde será armazenado os dados coletados, eu segui alguns tutoriais mas não obtive muito sucesso. Se caso você tenha já feito aplicações iguais a essas, seria possível compartilhar a metodologia?
    desde já agradeço.

    • Rodrigo Lira Rodrigo Lira

      Não entendi bem, me chama no skype para entender melhor e vermos uma solução.

      Skype: eurodrigolira

  8. Você poderia me mostrar os passos de como cadastrar equipamentos específicos através do iMAC, no Open WRT. O objetivo é evitar o roubo do sinal da internet pelos aparelhos não cadastrados. Obrigado

  9. elindoval elindoval

    Amigo, como faço para deixar o roteador com o open wrt em bridge e saindo somente pela WAN … lan1, lan2, entrar um outro roteador que vai discar pppoe que ambos terao como uplink a Wan para saida.

    • Rodrigo Lira Rodrigo Lira

      Essas configurações você vai fazer mexer nas configurações do switche, network e firewall.

  10. genivaldo genivaldo

    Boa noite você poderia me ajudar a liberar o acesso de configuraçao do openwrt via navegador, pois vi que tem que habilitar o luci, mas está dando erro. o comando opkg update até funciona, mas o opkg install luci dá erro e não consigo acessar via browser só via ssh

    • Rodrigo Lira Rodrigo Lira

      Qual o seu roteador, dependendo do modelo e do tamanho da flash a versão do OpenWrt vai sem interface gráfica por falta de espaço.

  11. Alessandro Alessandro

    root@OpenWrt:~# /etc/config/firewall
    -ash: /etc/config/firewall: Permission denied

    me ajuda por favor, não consigo passar desta parte ja passei dois dias procurando na internet

    • Rodrigo Lira Rodrigo Lira

      Olá Gustavo, caso esteja tentando acessa a interface web através da wan é preciso criar uma regra no firewall para permitir o acesso, boa sorte!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Descubra mais sobre Rodrigo Lira

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continue reading