+ Responder ao Tópico



  1. #1
    luishsl
    Visitante

    Padrão Liberar entrada por MAC ADDRESS

    Srs,
    Já venho quebrando a cabeça durante alguns dias e algumas noites.
    Pesquisei centenas de sites e forums e não consegui uma solução.

    Tenho um servidor Slack onde rodam alguns serviços.
    Preciso expor esses serviços na web, mas gostaria que tivesse uma segurança a mais, por isso queria liberar o acesso apenas para determinados MAC ADDRESS.

    A última regra que testei foi a seguinte:
    iptables -t filter -A INPUT -m mac --mac-source 00:08:54:12:0C:XX -j ACCEPT
    iptables -t filter -A FORWARD -m mac --mac-source 00:08:54:12:0C:XX -j ACCEPT

    Alguem saberia me dizer se está faltando algo, ou se tem algo de errado?

    Obrigado:
    Luís Henrique

  2. #2
    casper-linux
    Visitante

    Padrão

    Cara,

    Voce teria que postar todo o seu firewall aqui, pelo seguinte:
    --> o iptables, vai deixar passar se voce ja tiver uma regra que permita isso antes.
    --> ao executar o comando iptables -A, voce esta incluindo um regra no final.
    --> alem do que, voce tem que dizer que a regra padrao de entrada e drop, se nao ele vai permitir.
    iptables -P INPUT DROP
    -->Execute a regra padrao acima, e tente executar o mesmo comando que voce postou aqui, so que no lugar de -A, coloque -I

    e teste

    Valeu

  3. #3

    Padrão Liberar por MAC

    Eh soh vc utilizar a tabela MANGLE ao invés da tabela FILTER. Pelo jeito vc tah usando um proxy, squid, ok? Então vc tah fazendo um proxy transparente .... troca a tabela que vai funcionar na hora.

  4. #4
    luishsl
    Visitante

    Padrão

    armc_2003, eu não estou usando squid nem proxy transparente, lembrando que a regra que estou precisando é permitir entrada de usuários externos para acessar aplicações do servidor , e esse acesso deverá ser liberado ou não pelo MAC.

    Estou postanto meu Firewall;
    Desde já agradeço:

    #!/bin/sh
    #


    IPT=/usr/sbin/iptables
    LOGOPT="--log-tcp-sequence --log-tcp-options --log-ip-options"
    IPALLOW="192.168.0.0/24"
    IPEXT="200.204.7.1"

    start_fw () {

    # Zera as chains existentes
    $IPT -F
    $IPT -X
    $IPT -F -t nat
    $IPT -X -t nat
    $IPT -F -t filter
    $IPT -X -t filter

    # Definindo política padrão
    $IPT -P INPUT DROP
    $IPT -P FORWARD DROP
    $IPT -P OUTPUT ACCEPT


    # regra para logar acessos DNS
    $IPT -N DNS
    $IPT -A DNS -m limit --limit 15/m -j LOG --log-level 1 --log-prefix "{WEB} "
    $IPT -A DNS -j ACCEPT
    # fim chains novas

    # apenas acesso local/related (assume-se que nao ha spoofing)
    $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A INPUT -i lo -j ACCEPT

    # samba
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 445 -j ACCEPT
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 137:139 -j ACCEPT
    $IPT -A INPUT -s $IPALLOW -p udp --dport 137:139 -j ACCEPT

    # ldap
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 636 -j ACCEPT
    $IPT -A INPUT -s $IPALLOW -p udp --dport 389 -j ACCEPT
    $IPT -A INPUT -s $IPALLOW -p udp --dport 636 -j ACCEPT
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 389 -j ACCEPT

    # web
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 80 -j ACCEPT
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 8000 -j ACCEPT
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 8080 -j ACCEPT
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 8888 -j ACCEPT

    # oracle
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 1521 -j ACCEPT

    # cvs/ssh
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 22 -j ACCEPT
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 443 -j ACCEPT

    $IPT -A INPUT -s $IPALLOW -p tcp --dport 2401 -j ACCEPT
    $IPT -A INPUT -s $IPALLOW -p udp --dport 2401 -j ACCEPT

    # subversion
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 3690 -j ACCEPT
    $IPT -A INPUT -s $IPALLOW -p udp --dport 3690 -j ACCEPT

    # dns
    $IPT -A INPUT -s $IPALLOW -p tcp --dport 53 -j DNS
    $IPT -A INPUT -s $IPALLOW -p udp --dport 53 -j DNS

    #tomcat
    $IPT -t nat -A PREROUTING -j REDIRECT -p tcp --destination-port 80:80 --to-ports 8888

    # Limitar portscan/ping
    $IPT -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j LOG --log-level 1 --log-prefix 'SCAN: '
    $IPT -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 4 -j LOG $LOGOPT --log-prefix 'DOS: '
    $IPT -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT


    $IPT -t filter -A INPUT -m mac --mac-source 00:08:54:12:0C:B9 -j ACCEPT
    $IPT -t filter -A FORWARD -m mac --mac-source 00:08:54:12:0C:B9 -j ACCEPT



    #Ativa roteamento via kernel
    echo 1 > /proc/sys/net/ipv4/ip_forward

    # Logar e impedir acesso
    $IPT -A INPUT -j LOG $LOGOPT --log-prefix '( iptables log ) '
    $IPT -A INPUT -j DROP

    return 0
    }

    stop_fw () {
    $IPT -P INPUT ACCEPT
    $IPT -P FORWARD ACCEPT
    $IPT -F
    $IPT -X
    return 0
    }

    case "$1" in
    start) start_fw;;
    stop) stop_fw;;
    restart) stop_fw && start_fw;;
    *) echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
    esac

  5. #5
    luishsl
    Visitante

    Padrão

    Casper,

    Fiz o teste que vc pediu e mesmo assim não funcionou.
    Postei meu Firewall abaixo;

    Obrigado