classificando e salvando dados de uso coletados pelo iptables

1

Eu uso restrição de acesso MAC baseada em iptables. Eu listei os IDs de MAC dos usuários que desejo permitir acesso e descanse. E quando eu executo iptables -vL ele mostra todos os ids da MAC e seu uso: pacotes transferidos, dados em bytesh. Então minhas perguntas são:

  1. É possível mostrar o uso de dados em megabytes?
  2. Posso classificá-lo para que os ids de MAC dos usuários pesados cheguem ao topo?
  3. E, finalmente, posso salvar os dados no disco, pode estar em um banco de dados, para que possa adicionar e sobreviver às reinicializações?
por nixnotwin 02.04.2011 / 17:02

2 respostas

2

Resposta # 1

Qual é o seu iptables --version ?

No meu, iptables -vL converte automaticamente os bytes em Kbytes (sufixo K) ou Mbytes (sufixo M).

Resposta # 2

Use iptables -x enviado para sort , por ex. iptables -xvL $CHAIN | sort -rn -k 2

Answer # 3

Canalize a saída dos comandos acima para um script que fará a inserção do banco de dados.

Você pode filtrar ainda mais a saída da Resposta # 2 usando awk '$1 ~ /[0-9]+/' para remover os títulos das colunas e awk '$1 > 1000000' para ver apenas os valores maiores que 1'000'000 bytes.

Processar saída em formato CSV

iptables -xvnL $CHAIN | awk -v min=$MINIMUM '$1 ~ /[0-9]+/ && $2 >= min {print $2 "," $11}'

Ou, se você precisar do título da coluna CSV:

iptables -xvnL $CHAIN | awk -v min=$MINIMUM 'BEGIN {print "Bytes,MAC"} $1 ~ /[0-9]+/ && $2 >= min {print $2 "," $11}'
    
por 04.04.2011 / 08:02
3

AWK é seu amigo. link

    
por 02.04.2011 / 18:18