Ajuda tcpdrop script

1. Ajuda tcpdrop script

Bernardo Rhee
bernardocr

(usa FreeBSD)

Enviado em 20/06/2014 - 15:17h

Boa tarde,

Tenho um comando que verifica as conexões ativas na minha máquina e executa o comando tcpdrop para derrubar as conexões acima de um número X (para minimizar os efeitos de um ataque synflood).

O comando é o seguinte (incluído no arquvi tcpdrop.sh):

netstat -an | grep ^tcp | awk '{ print $5 }' | egrep -v '^(172\.16|192\.168|127\.0)' | cut -f1-4 -d\. | awk '{ a[$1]++ } END { for (i in a) { if (a[i] > 70) { print i; } } }' | xargs -n1 -I % sh -c 'sockstat -c | grep %' | awk '{ print $6 " " $7 }' | sed -e 's/:/ /g' -e 's/^/ tcpdrop /' | sh

O comando funciona corretamente quando eu executo ./tcpdrop.sh, entretanto, ao colocar na crontab para que o script seja executado de tempos em tempos, retorna o seguinte erro:

tcpdrop: not found
tcpdrop: not found
tcpdrop: not found

Já tentei adicionar uma alias, tcpdrop=/usr/sbin/tcpdrop, mas não funcionou.

Pensei em uma saída, que seria colocar o output do "tcpdrop" para "/usr/sbin/tcpdrop", no trecho sed -e 's/:/ /g' -e 's/^/ tcpdrop /', mas não sei como fazer isso no comando, utilizando o "sed".

Outra dúvida seria como fazer para que o comando ignorasse alguns ips específicos, como por exemplo, 67.43.2.1, tentei incluir a exclusão do ip no trecho egrep -v '^(172\.16|192\.168|127\.0)', mas não consegui.

Agradeço a ajuda!


  


2. Re: Ajuda tcpdrop script

Paulo
paulo1205

(usa Ubuntu)

Enviado em 20/06/2014 - 15:29h

Você deve incluir o "/usr/sbin" na variável PATH. Por exemplo:

PATH=/bin:/usr/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin comando1 | comando2 | comando3 







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts