El lun, 17 de 01 de 2005 a las 16:39, Mpourtounis Dimitris escribiÃ: > Hi All, > > Is there a way i can flush(delete) all my ip_conntrack connections ? > I need to do it without having to rmmod,insmod any modules (static > compiled into kernel 2.4.26) > > Thanks, > DB We have a script for doing this (closing all the connections and clearing the conntrack entries) in our GPL bastion-firewall. Sorry the comments are yet only in Spanish. The file uses hping2 and is: #!/bin/bash ######################################################################### ## bastion-firewall GPL (www.bgsec.com) # ######################################################################### ## Este archivo es parte de la version GPL de bastion-firewall, un # ## firewall completo basado en Netfilter e iptables y desarrollado por # ## bgSEC (www.bgsec.com). La licencia de bastion-firewall se # ## encuentra en el archivo: /etc/bastion-firewall/LICENCIA.txt # ## # ## bastion-firewall es copyright de Jose Maria Lopez Hernandez # ## (jkerouac@xxxxxxxxx) y bgSEC (www.bgsec.com) # ######################################################################### # Quitar todas las conexiones de la tabla de conntrack para una # determinada IP o borrar la tabla completamente. # Forma de usarlo: bsf_clearconntrack [-a] [IP] # Comprobamos que se ha tecleado bien el comando if [ "$#" != "1" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then echo echo " Ayuda de bsf_clearconntrack:" echo " bsf_clearconntrack direccionip (xxx.xxx.xxx.xxx)" echo " bsf_clearconntrack -a : Borra todas las entradas de la tabla" echo " bsf_clearconntrack [-h] [--help]: Muestra esta ayuda" echo " Borrar todas la conexiones TCP de la tabla de conntrack para una" echo " direccion IP o borrar la tabla completamente. Se cortan las" echo " sesiones mandando un RST." echo " ES TOTALMENTE NORMAL QUE APAREZCAN ERRORES INDICANDO QUE SE HA" echo " TERMINADO hping2. SE LO EJECUTA Y LUEGO SE LO MATA PARA NO TENER" echo " QUE ESPERAR LAS RESPUESTAS A LOS RESET." echo " SOLO SIRVE PARA TCP." echo echo " Licencia de bastion-firewall en /etc/bastion-firewall/LICENCIA.txt" echo exit 1 fi if [ "$MYTAIL" = "" ]; then source /etc/bastion-firewall/firewall.conf source /usr/lib/bastion-firewall/bsf/functions.bsf fi # Puede cambiar la ubicacion de estos CONNTRACKFILE=/proc/net/ip_conntrack HPING2=$(which hping2 2>/dev/null) if [ "$HPING2" = "" ]; then echo echo " Error: Este programa necesita hping2 para funcionar" echo fi RESETIP=$1 DIDIT=0 if [ "$RESETIP" = "-a" ]; then $MYCAT $CONNTRACKFILE|$MYGREP -E "^tcp .{10,25}ESTABLISHED"| \ while read TMPCONN ; do echo $TMPCONN # Sacamos los datos de cada conexion SRCIP=$(echo $TMPCONN|$MYCUT -d '=' -f 2|$MYCUT -d ' ' -f 1) DSTIP=$(echo $TMPCONN|$MYCUT -d '=' -f 3|$MYCUT -d ' ' -f 1) SRCPORT=$(echo $TMPCONN|$MYCUT -d '=' -f 4|$MYCUT -d ' ' -f 1) DSTPORT=$(echo $TMPCONN|$MYCUT -d '=' -f 5|$MYCUT -d ' ' -f 1) # Mandamos el reset a la IP de destino y al puerto de destino, como si # fueramos la conexion verdadera echo hping2 $DSTIP -R -s $SRCPORT -p $DSTPORT -a $SRCIP -k -c 1 -n hping2 $DSTIP -R -s $SRCPORT -p $DSTPORT -a $SRCIP -k -c 1 -n & usleep 100000 killall -9 hping2 # Mandamos tambien el reset al lado contrario echo hping2 $SRCIP -R -s $DSTPORT -p $SRCPORT -a $DSTIP -k -c 1 -n hping2 $SRCIP -R -s $DSTPORT -p $SRCPORT -a $DSTIP -k -c 1 -n & usleep 100000 killall -9 hping2 done else $MYCAT $CONNTRACKFILE|$MYGREP -E "^tcp .{10,25}ESTABLISHED src=$RESETIP"| \ while read TMPCONN ; do echo $TMPCONN # Sacamos los datos de cada conexion SRCIP=$(echo $TMPCONN|$MYCUT -d '=' -f 2|$MYCUT -d ' ' -f 1) DSTIP=$(echo $TMPCONN|$MYCUT -d '=' -f 3|$MYCUT -d ' ' -f 1) SRCPORT=$(echo $TMPCONN|$MYCUT -d '=' -f 4|$MYCUT -d ' ' -f 1) DSTPORT=$(echo $TMPCONN|$MYCUT -d '=' -f 5|$MYCUT -d ' ' -f 1) # Mandamos el reset a la IP de destino y al puerto de destino, como si # fueramos la conexion verdadera echo hping2 $DSTIP -R -s $SRCPORT -p $DSTPORT -a $SRCIP -k -c 1 -n hping2 $DSTIP -R -s $SRCPORT -p $DSTPORT -a $SRCIP -k -c 1 -n & usleep 100000 killall -9 hping2 # Mandamos tambien el reset al lado contrario echo hping2 $SRCIP -R -s $DSTPORT -p $SRCPORT -a $DSTIP -k -c 1 -n hping2 $SRCIP -R -s $DSTPORT -p $SRCPORT -a $DSTIP -k -c 1 -n & usleep 100000 killall -9 hping2 done fi # bsf_clearconntrack end -- Jose Maria Lopez Hernandez Director Tecnico de bgSEC jkerouac@xxxxxxxxx bgSEC Seguridad y Consultoria de Sistemas Informaticos http://www.bgsec.com ESPAÃA The only people for me are the mad ones -- the ones who are mad to live, mad to talk, mad to be saved, desirous of everything at the same time, the ones who never yawn or say a commonplace thing, but burn, burn, burn like fabulous yellow Roman candles. -- Jack Kerouac, "On the Road"