Linha de comando [RESOLVIDO]

1. Linha de comando [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 03/12/2012 - 15:22h

grep -s FAILED /var/log/mail| cut -d : -f 7 | sed s/]// | iptables -I INPUT -s $ip -j DROP


Na linha acima, o grep lê o arquivo /var/log/mail e encontra todas linha que tem o FAILED, o cut entra entra em ação e delimita o ip encontrado, o sed altera o último caracter de "]" para "". Agora o iptables precisa dropar o ip encontrado nessa linha, como faço isso acontecer?

Obrigado.

Geraldo.


  


2. MELHOR RESPOSTA

Filippe
spolti

(usa Fedora)

Enviado em 03/12/2012 - 15:51h

filippec escreveu:

geraldoquites escreveu:

grep -s FAILED /var/log/mail| cut -d : -f 7 | sed s/]// | iptables -I INPUT -s $ip -j DROP


Na linha acima, o grep lê o arquivo /var/log/mail e encontra todas linha que tem o FAILED, o cut entra entra em ação e delimita o ip encontrado, o sed altera o último caracter de "]" para "". Agora o iptables precisa dropar o ip encontrado nessa linha, como faço isso acontecer?

Obrigado.

Geraldo.


Então faça isso dentro de um script.sh:

grep -s FAILED /var/log/mail > result.txt



for i in `cat result.txt`; do;
IP = `echo $i | cut -d: -f7 | sed s/]//`
iptables -A INPUT -s $IP -j DROP
done




Abs.




Transoforma isso numa linha de comando:


grep -s FAILED /var/log/mail > result.txt && for i in `cat result.txt`; do; IP = `echo $i | cut -d: -f7 | sed s/]//`; iptables -A INPUT -s $IP -j DROP; done;


Acho que está certo, n sei...


Abs

3. Re: Linha de comando [RESOLVIDO]

Filippe
spolti

(usa Fedora)

Enviado em 03/12/2012 - 15:28h

Dessa mesma forma:


[root@ulacti76512 ~]# iptables -A INPUT -s 10.10.10.10 -j DROP

[root@ulacti76512 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
DROP all -- 10.10.10.10 anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


Veja a linha: DROP all -- 10.10.10.10 anywhere

Abs.


4. Re: Linha de comando [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 03/12/2012 - 15:36h

sim, mas o comando tem de estar na mesma linha e ele tem de pegar automaticamente o ip encontrado.


5. Re: Linha de comando [RESOLVIDO]

Filippe
spolti

(usa Fedora)

Enviado em 03/12/2012 - 15:43h

geraldoquites escreveu:

grep -s FAILED /var/log/mail| cut -d : -f 7 | sed s/]// | iptables -I INPUT -s $ip -j DROP


Na linha acima, o grep lê o arquivo /var/log/mail e encontra todas linha que tem o FAILED, o cut entra entra em ação e delimita o ip encontrado, o sed altera o último caracter de "]" para "". Agora o iptables precisa dropar o ip encontrado nessa linha, como faço isso acontecer?

Obrigado.

Geraldo.


Então faça isso dentro de um script.sh:

grep -s FAILED /var/log/mail > result.txt



for i in `cat result.txt`; do;
IP = `echo $i | cut -d: -f7 | sed s/]//`
iptables -A INPUT -s $IP -j DROP
done




Abs.


6. Re: Linha de comando [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 03/12/2012 - 15:47h

Filippe, essa é uma ideia interessante de implementar, mas quero esgotar as possibilidade de executar em uma só linha, caso contrário, uso a sua formúla.


7. Re: Linha de comando [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 04/12/2012 - 13:45h

Felippe, implementei sua ideia e deu certo, ok?
Obrigado pela sua ajuda.

Fiz algumas mudanças e ficou assim:



#!/bin/bash

# Le o arquivo /var/log/mail, delimita por ":" e alt f 7 vezes, sortea o arquivo e uniq para nao repetir as linhas.
grep -s FAILED /var/log/mail| cut -d : -f 7 | sed s/]// | sort | uniq > /home/ipbloqueado

# reiniciar o firewall geral.
/etc/init.d/SuSEfirewall2_setup restart

# pega os ips invasores e manda para o firewall
for i in $(cat /home/ipbloqueado)
do
/usr/sbin/iptables -I INPUT -s $i -j DROP

#saida
done



8. Re: Linha de comando [RESOLVIDO]

Filippe
spolti

(usa Fedora)

Enviado em 04/12/2012 - 13:52h

Opa, mto bom..






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts