Flush connection tracking
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
Quoted 8 lines · Mpourtounis Dimitris
Hi All,
Is there a way i can flush(delete) all my
ip_conntrackconnections ? 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 #
## ([email protected]) 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
Signature · 12 lines
Jose Maria Lopez Hernandez Director Tecnico de bgSEC [email protected] 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"