Página 3 de 3 PrimeiroPrimeiro 123
+ Responder ao Tópico



  1. Citação Postado originalmente por ttjedi2 Ver Post
    bom, agora eu eu uma alterado no script e estou tendo esse erro aqui

    iptables v1.2.11: Bad mac address `'
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.11: Bad mac address `'
    Try `iptables -h' or 'iptables --help' for more information.

    o script e o seguinte:

    #!/bin/bash

    USUARIO="root";
    SENHA="xxx";
    HOST="200.216.xx.xxx";
    BANCO="SATELLIxx";

    counter=0;
    for i in `mysql -u $USUARIO -h $HOST -p$SENHA -D $BANCO -e "select * from CLIENTE_PROVEDOR;" | sed '1d';`; do
    tabela[$counter]="$i":
    let counter++;
    done;

    while read IP MAC; do
    iptables -A INPUT -s "$IP" -m mac --mac-source "$MAC" -j ACCEPT;
    iptables -A FORWARD -s "$IP" -m mac --mac-source "$MAC" -j ACCEPT;
    done < tabela;
    Olha, eu pedi a sua tabela para fazer testes e você não me enviou, então eu estou criando um de testes aqui meu. Se quiser replicar aí pra testar, lá vai:

    Código :
    CREATE TABLE `ips` (
      `ip` varchar(20) default NULL,
      `mac` varchar(20) default NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     
    /*!40000 ALTER TABLE `ips` DISABLE KEYS */;
    LOCK TABLES `ips` WRITE;
    INSERT INTO `ips` VALUES ('00:00:00:00:00:01','192.168.10.01'),('00:00:00:00:00:02','192.168.10.02'),('00:00:00:00:00:03','192.168.10.03'),('00:00:00:00:00:04','192.168.10.04'),('00:00:00:00:00:05','192.168.10.05'),('00:00:00:00:00:06','192.168.10.06'),('00:00:00:00:00:07','192.168.10.07'),('00:00:00:00:00:08','192.168.10.08'),('00:00:00:00:00:09','192.168.10.09'),('00:00:00:00:00:10','192.168.10.10'),('00:00:00:00:00:11','192.168.10.11'),('00:00:00:00:00:12','192.168.10.12'),('00:00:00:00:00:13','192.168.10.13'),('00:00:00:00:00:14','192.168.10.14'),('00:00:00:00:00:15','192.168.10.15'),('00:00:00:00:00:16','192.168.10.16'),('00:00:00:00:00:17','192.168.10.17'),('00:00:00:00:00:18','192.168.10.18'),('00:00:00:00:00:19','192.168.10.19'),('00:00:00:00:00:20','192.168.10.20'),('00:00:00:00:00:21','192.168.10.21'),('00:00:00:00:00:22','192.168.10.22'),('00:00:00:00:00:23','192.168.10.23'),('00:00:00:00:00:24','192.168.10.24'),('00:00:00:00:00:25','192.168.10.25'),('00:00:00:00:00:26','192.168.10.26'),('00:00:00:00:00:27','192.168.10.27'),('00:00:00:00:00:28','192.168.10.28'),('00:00:00:00:00:29','192.168.10.29'),('00:00:00:00:00:30','192.168.10.30'),('00:00:00:00:00:31','192.168.10.31'),('00:00:00:00:00:32','192.168.10.32'),('00:00:00:00:00:33','192.168.10.33'),('00:00:00:00:00:34','192.168.10.34'),('00:00:00:00:00:35','192.168.10.35'),('00:00:00:00:00:36','192.168.10.36'),('00:00:00:00:00:37','192.168.10.37'),('00:00:00:00:00:38','192.168.10.38'),('00:00:00:00:00:39','192.168.10.39'),('00:00:00:00:00:40','192.168.10.40'),('00:00:00:00:00:41','192.168.10.41'),('00:00:00:00:00:42','192.168.10.42'),('00:00:00:00:00:43','192.168.10.43'),('00:00:00:00:00:44','192.168.10.44'),('00:00:00:00:00:45','192.168.10.45'),('00:00:00:00:00:46','192.168.10.46'),('00:00:00:00:00:47','192.168.10.47'),('00:00:00:00:00:48','192.168.10.48'),('00:00:00:00:00:49','192.168.10.49'),('00:00:00:00:00:50','192.168.10.50'),('00:00:00:00:00:51','192.168.10.51'),('00:00:00:00:00:52','192.168.10.52'),('00:00:00:00:00:53','192.168.10.53'),('00:00:00:00:00:54','192.168.10.54'),('00:00:00:00:00:55','192.168.10.55'),('00:00:00:00:00:56','192.168.10.56'),('00:00:00:00:00:57','192.168.10.57'),('00:00:00:00:00:58','192.168.10.58'),('00:00:00:00:00:59','192.168.10.59'),('00:00:00:00:00:60','192.168.10.60'),('00:00:00:00:00:61','192.168.10.61'),('00:00:00:00:00:62','192.168.10.62'),('00:00:00:00:00:63','192.168.10.63'),('00:00:00:00:00:64','192.168.10.64'),('00:00:00:00:00:65','192.168.10.65'),('00:00:00:00:00:66','192.168.10.66'),('00:00:00:00:00:67','192.168.10.67'),('00:00:00:00:00:68','192.168.10.68'),('00:00:00:00:00:69','192.168.10.69'),('00:00:00:00:00:70','192.168.10.70'),('00:00:00:00:00:71','192.168.10.71'),('00:00:00:00:00:72','192.168.10.72'),('00:00:00:00:00:73','192.168.10.73'),('00:00:00:00:00:74','192.168.10.74'),('00:00:00:00:00:75','192.168.10.75'),('00:00:00:00:00:76','192.168.10.76'),('00:00:00:00:00:77','192.168.10.77'),('00:00:00:00:00:78','192.168.10.78'),('00:00:00:00:00:79','192.168.10.79'),('00:00:00:00:00:80','192.168.10.80'),('00:00:00:00:00:81','192.168.10.81'),('00:00:00:00:00:82','192.168.10.82'),('00:00:00:00:00:83','192.168.10.83'),('00:00:00:00:00:84','192.168.10.84'),('00:00:00:00:00:85','192.168.10.85'),('00:00:00:00:00:86','192.168.10.86'),('00:00:00:00:00:87','192.168.10.87'),('00:00:00:00:00:88','192.168.10.88'),('00:00:00:00:00:89','192.168.10.89'),('00:00:00:00:00:90','192.168.10.90'),('00:00:00:00:00:91','192.168.10.91'),('00:00:00:00:00:92','192.168.10.92'),('00:00:00:00:00:93','192.168.10.93'),('00:00:00:00:00:94','192.168.10.94'),('00:00:00:00:00:95','192.168.10.95'),('00:00:00:00:00:96','192.168.10.96'),('00:00:00:00:00:97','192.168.10.97'),('00:00:00:00:00:98','192.168.10.98'),('00:00:00:00:00:99','192.168.10.99');
    UNLOCK TABLES;
    PS: Você pode estar notando que os IP's são meio malucos com os zeros e os MAC address também, mas é porque eu fiz um shell-script para fazer os inserts na tabela.

    Como eu tive um pouco mais de tempo pra mexer com isso hoje, eu escrevi um script melhorzinho que eu testei aqui e funcionou 100%. As regras de iptables foram criadas sem problema algum. Lá vai:

    Código :
    #!/bin/bash
    IFS=$'\n'
    HOST=""
    USER=""
    BD=""
    PASS=""
       valores=( `mysql -u "$USER" -p"$PASS" -D "$BD" -e "select * from ips;" | sed '1d; s/\t/ /g'` );
     
       for((i=0;i<${#valores[@]};i++)); do
          mac=`echo ""${valores[$i]}"" | awk '{ print $1 }'`;
          ip=`echo ""${valores[$i]}"" | awk '{ print $2 }'`;
          iptables -t filter -A FORWARD -m mac --mac-source "$mac" -s "$ip" -j ACCEPT;
       done;

    Eu fiz todos os testes em uma máquina rodando Debian Sarge 3.1 com a mesma versão do seu iptables.

    O problema que você tava tendo acima do "Access Denied" é porque provavelmente você não tem direito de fazer a query remotamente. Tente fazer o seguinte:

    Código :
    mysql> grant all privileges on banco.tabela to 'usuario'@'%' identified by 'senha';
    mysql> flush privileges;

    Agora o outro problema de "ambiguous redirect" foi porque você copiou o script errado para o seu servidor e esqueceu do "$" na variável "$tabela".


    Abraços!

  2. Olá;;; muito obrigado mesmo pela ajuda.... mas ainda estou com probelas...

    Bom os dados sao o seguinte:

    usuário: root
    senha: xxx
    host: 200.216.72.xx
    DB: SATELLITE
    Tabela: CLIENTE_PROVEDOR

    dentro da tabela cliente provedor eu preciso pegar os valores somente dos campos IP e MAC....

    o erro foi o seguinte:

    iptables v1.2.11: Bad mac address `'
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.11: Bad mac address `'
    Try `iptables -h' or 'iptables --help' for more information.

    Se poder me ajudar,,, estarei muito grato mesmo
    Última edição por ttjedi2; 16-02-2007 às 08:45.



  3. Nossa, calma, peraí...

    Se você tem 30 campos em uma tabela e quer mostrar apenas dois, você consegue assim:

    Código :
    mysql> select campo1,campo2 from tabela;

    Se você quiser pegar o resultado de QUALQUER comando e redirecioná-lo para algum arquivo, basta utilizar os operadores > e <. Ficaria mais ou menos assim pra gente fazer uma pesquisa em um banco de dados e o resultado enviar para um arquivo texto:

    Código :
    # mysql -e "select * from tabela;" > tabela.txt

    Só lembro que quando o MySQL remove as bordas Cauby Peixoto Style quando é feito o redirecionamento.

    Abraços!

  4. Pooo cara valew mesmo pela ajuda......

    bom eu usei o que vc me mandou,,, e com base eu criei um novo script que agora faz tudo para mim.,... vou colocar ele aqui para vc ver como ficou....

    # APAGAR ARQUIVO
    > /root/tabela;
    > /root/corte
    echo "LIMPANDO ARQUIVOS...........................................OK!"

    IFS=$'\n'
    HOST="200.216.72.xxx"
    USER="root"
    BD="SATExxx"
    PASS="xxx"

    USUARIO="root";
    SENHA="xxx";
    HOST="200.216.72.xxx";
    BANCO="SATExxx";

    echo "CONECTANDO AO BANDO DE DADOS................................OK!"


    valores3=( `mysql -u $USUARIO -h $HOST -p$SENHA -D $BANCO -e "DELETE FROM sis;" | sed '1d; s/\t/ /g'` );

    echo "LIMPANDO BANCO DE DADOS.....................................OK!"

    valores2=( `mysql -u $USUARIO -h $HOST -p$SENHA -D $BANCO -e "INSERT INTO sis (MAC,IP,IP_STATUS) SELECT MAC,IP,IP_STATUS FROM$

    echo "COPIANDO DADOS PARA O BANCO.................................OK!"

    valores=( `mysql -u $USUARIO -h $HOST -p$SENHA -D $BANCO -e "select * from sis;" | sed '1d; s/\t/ /g'` );

    for((i=0;i<${#valores[@]};i++)); do
    IP=`echo ""${valores[$i]}"" | awk '{ print $1 }'`;
    MAC=`echo ""${valores[$i]}"" | awk '{ print $2 }'`;
    IP_STATUS=`echo ""${valores[$i]}"" | awk '{ print $3 }'`;

    #echo "CRIANDO REGRAS..............................................OK!"

    echo "iptables -A INPUT -s "$IP" -m mac --mac-source "$MAC" -j ACCEPT" >> /root/tabela
    echo "iptables -A FORWARD -s "$IP" -m mac --mac-source "$MAC" -j ACCEPT" >> /root/tabela

    #echo "LIBERANDO CLIENTES..........................................OK!"


    if [ "$IP_STATUS" = "2" ]; then
    echo "iptables -t nat -A PREROUTING -p tcp -s "$IP" --dport ! 10 -j DNAT --to-dest 200.216.72.xxx" >> /root/corte
    else
    echo ""
    fi

    #echo "FAZENDO CORTES..............................................OK!"

    done;


    valew mesmo pela ajuda



  5. Que bom que resolveu, cara!

    Estamos aí.






Tópicos Similares

  1. Script para servidor
    Por fenix_se no fórum Linguagens de Programação
    Respostas: 2
    Último Post: 31-05-2007, 10:49
  2. Script para inclusão de clientes em servidor fedora 5
    Por fenix_se no fórum Linguagens de Programação
    Respostas: 0
    Último Post: 20-11-2006, 19:43
  3. Script para backup via ftp entre 2 servidores
    Por tecman no fórum Linguagens de Programação
    Respostas: 1
    Último Post: 22-01-2006, 11:13
  4. Script para servidor linux enviar e-mail automaticamente....
    Por mcyberx no fórum Servidores de Rede
    Respostas: 5
    Último Post: 14-07-2004, 11:36
  5. Script para transferência ftp entre dois servidores
    Por no fórum Servidores de Rede
    Respostas: 0
    Último Post: 26-11-2003, 13:42

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L