+ Responder ao Tópico



  1. #1

    Padrão Bloqueando a MAC.

    Prezados, boa noite, conto com ajuda de todos, creio que seja simples para muitos mais para mim não.

    Tenho hoje meu script de firewall rodando em meus servidores linux cujos os mesmo compartilham internet em condominio, porém quando o cliente não paga o serviço, vamos lá e desligamos o cabo, porém gostaria de automatizar isso, penso na seguinte situação, 2 arquivos.

    bloqueio.txt - onde informa-se as macs
    bloquear.sh - ao executar, lê o conteudo do bloqueio.txt

    Resumindo, eu adiciono a mac do cliente dentro do arquivo txt e ao executar o bloquear.sh ele lê o conteudo e bloqueia a mac, fazendo com que mesmo que o usuário fixe um ip no micro, o mesmo não consiga navegar. Mediante isso ele só voltara a navegar quando rodarmos novamente nosso script de firewall para que ele seja liberado.

    As macs ficaram organizadas assim dentro do txt como exemplo:

    00:00:00:00:00:00,
    00:00:00:00:00:00,

    Sempre separada por virgula para que facilite o entendimento.

    Alguém poderia me ajudar.

    Sendo bem honesto, criar o shell script e as devidas regras de iptables para esse bloqueio, estou sendo honesto, já pesquisei, mais não sei como fazer.

    Grato a todos.

  2. #2

    Padrão Bloqueando a MAC.

    Código :
    for $i in `cat bloqueio.txt`; do
       iptables .... -m --mac-source $i ....;
     done;

    onde nao é um mac por linha, sem essa virgula no final, essa virgula so complica.

    moleza.

    # man bash
    e procura pela syntax do "for" vai te ajudar.

  3. #3

    Padrão Bloqueando a MAC.

    se nao for:

    for $i é for i

    to meio enferrujado nesses shell scripts. :cry:

  4. #4

    Padrão MAC | IP

    amigo, esse script eu tenho aki, mas como ele é um pouco extenso, nao vou postar aki, me chama pelo MSN ou por email..
    Valew

  5. #5

  6. #6

    Padrão Bloqueando a MAC.

    Valeu Lacier, mais o que me propos é muito extenso, mediante que já tenho soulção de firewall rodando.

    Vamos lá, galera o conteúdo do meu bash ficou assim:


    #bin/bash

    for $i in `cat bloqueio.txt`; do

    iptables -A FORWARD -m --mac-source $i -j REJECT;

    done;


    quando vou rodar digitando ./bloquear.sh ele retorna

    ./bloquear.sh: line 7: `$i': not a valid identifier


    Apenas para que fique fácil galera, meus dois arquivos estão dentro do /root

    Grato se alguém puder me ajudar a colocar isso para rodar, levando-se em conta que tentei mudar alguns parametros, mais deu erros maiores ainda.

    Aguardo ajuda.

  7. #7

    Padrão Bloqueando a MAC.

    Por que nao usa arp ???

  8. #8

    Padrão Bloqueando a MAC.

    Amigo, no ambiente que tenho a solução arp seria inviável, levando-se em conta que teria que efetuar várias mudanças para que a mesma funciona-se.

    Aguardo ajuda de que puder me ajudar a descrobrir o por que o script não roda.

    Abraços.

  9. #9

    Padrão Bloqueando a MAC.

    Tudo bem entao !!! So nao entendo o por que de seu ambiente nao dar certo com arp !!!

    Valeu !!!

  10. #10

    Padrão Bloqueando a MAC.

    Amigo, eu já havia testado a solução arp encontrada aqui no underlinux porém se o cliente fixa-se um outro ip ele navega, é isso que eu preciso que não ocorra, mesmo que o cliente mude o ip, ele não poderá navegar, pois a mac estara barrada. O mesmo só navegara ao após a mac ser desbloqueada.

    É isso que preciso.

    Grato.

  11. #11
    felco
    Visitante

    Padrão Bloqueando a MAC.

    Não seria:

    while read f
    do
    iptables -A FORWARD -m --mac-source $f -j REJECT
    done < macs.txt
    para cada linha em macs.txt ele executa o comando adcionando o valor da linha

  12. #12
    felco
    Visitante

    Padrão Bloqueando a MAC.

    Citação Postado originalmente por darkstarlinux
    Amigo, eu já havia testado a solução arp encontrada aqui no underlinux porém se o cliente fixa-se um outro ip ele navega, é isso que eu preciso que não ocorra, mesmo que o cliente mude o ip, ele não poderá navegar, pois a mac estara barrada. O mesmo só navegara ao após a mac ser desbloqueada.

    É isso que preciso.

    Grato.
    Mas eh se ele alterar o MAC?

  13. #13

    Padrão Bloqueando a MAC.

    Amigo, segui seu script, mais ele retorna

    iptables v1.2.7a: Couldn't load match `--mac-source':/lib/iptables/libipt_--mac-source.so: cannot open shared object file: No such file or directory

    Try `iptables -h' or 'iptables --help' for more information.


    Isso quando mando executar o mesmo.

    Em relação ao cliente trocar a mesma, dificil ocorrer, mais se ocorrer o cliente é desligado sem prévio aviso.

    Grato.

    Aguardo ajuda.

  14. #14
    whinston
    Visitante

    Padrão só pra ficar de olho

    *só pra ser notificado do final da 'novela', rs..

  15. #15

    Padrão Bloqueando a MAC.

    EXECUTAVEL FIREWALL
    ====================
    #!/bin/bash
    #
    # Piriri MSN [email protected]
    # Teamspeak: braef.servegame.com
    #
    IPT=/usr/local/sbin/iptables
    LISTA=/usr/local/bin/listaclientes
    clear
    for i in `cat $LISTA`; do
    STATUS=`echo $i | cut -d ';' -f 1`
    IP=`echo $i | cut -d ';' -f 3`
    MAC=`echo $i | cut -d ';' -f 2`
    NOME=`echo $i | cut -d ';' -f 4`
    if [ $STATUS = "L" ]; then
    $IPT -t filter -A INPUT -m mac --mac-source $MAC -j ACCEPT
    $IPT -t filter -A FORWARD -m mac --mac-source $MAC -j ACCEPT
    echo -e "\e[32;1m LIBERADO - $MAC, $IP, $NOME\e[m";
    else
    $IPT -t filter -A INPUT -m mac --mac-source $MAC -j DROP
    $IPT -t filter -A FORWARD -m mac --mac-source $MAC -j DROP
    echo -e "\e[31;1m BLOQUEADO - $MAC, $IP, $NOME\e[m" ;
    fi
    done
    =================


    ARQUIVO listaclientes
    ===============
    L;00:50:8D:F5:06:FF;172.16.100.253;PIRI
    L;00:0A:E6A:3D:8F;10.0.1.3;GIRO_SKIN
    B;00:0A:E4E:8D:7A;10.0.1.200;GIRO_SKIN
    L;00:0F:66:32:95:5F;192.168.0.10;FELIPE
    L;00:0c:6e:a6:49:7a;192.168.254.64;SKY
    L;00:0E:A6:7D:61D;192.168.4.1;POLICIA_ESTADUAL
    B;00:0E:A6:9F:37:92;192.168.1.7;SKY_PAULO
    L;00:0A:E6:E7:56:BA;192.168.1.59;JOEL_CASA
    L;00:0D:87:EF:03:43;192.168.1.190;LUIZINHO
    L;00:07:95:F1:1A:53;192.168.1.210;IGOR
    ============================


    se era isso ta ai, pode bloquear tudo default que isso libera,

    cloque B em quem quiser bloquear

    Se vc quiser amarrar o IP substitua apenas as 2 primeiras linhas abaixo de if [ $STATUS = "L" ]; then;

    $IPT -t filter -A INPUT -s $IP -d 0/0 -m mac --mac-source $MAC -j ACCEPT
    $IPT -t filter -A FORWARD -s $IP -d 0/0 -m mac --mac-source $MAC -j ACCEPT

  16. #16

    Padrão Bloqueando a MAC.

    Fazendo o controle por arp funciona perfeitamente !!!

  17. #17

    Padrão Bloqueando a MAC.

    Amigo, tentei utilizar seu código, rodou blz, aparece BLOQUEADO, MAC,IP, NOME DO CABRA, só que não barra o cara, vc manda renovar ip e o peão continua navegando, se trocou o IP também.

    O que posso fazer?

    Grato

  18. #18

    Padrão Bloqueando a MAC.

    Citação Postado originalmente por darkstarlinux
    Amigo, tentei utilizar seu código, rodou blz, aparece BLOQUEADO, MAC,IP, NOME DO CABRA, só que não barra o cara, vc manda renovar ip e o peão continua navegando, se trocou o IP também.

    O que posso fazer?

    Grato
    1 - OBS: eu falei para apenas substituir as duas primeiras linhas no comando IF e nao as do comando ELSE se vc mudou as do comando ELSE vc vai tar dizendo apenas blockear se o Camarada tiver com IP tau e utilizando o MAC tau, caso diferente libera!!!

    preste atenção acho que seu erro ta ai

    2 - estas regras tem que conter no seu firewall principal

    iptables -P INPUT DROP
    iptables -P FORWARD DROP

    caso queira so o controle de mac sem amarrar o IP nao precisa do

    iptables -P FORWARD DROP

    olha amigo apos rodar o programa de o comando iptables -L e ve se parece os DROP e os mac se nao tiver e pq vc ta fazendo algo errado
    tem que aparecer algo assim

    DROP all -- anywhere anywhere MAC 33:33:FF:00:00:04
    DROP all -- anywhere anywhere MAC 33:33:FF:00:00:10
    DROP all -- anywhere anywhere MAC 33:33:FF:00:00:21


    proveitando o imbalo de permissao aos arquivos

    chmod 755 firewallMAC
    chmod 755 listaclientes

    ./firewallMAC