Autres scripts obsolètes.
This commit is contained in:
parent
8a4d7dfd78
commit
635a37385d
5 changed files with 0 additions and 0 deletions
|
@ -1,188 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Script de détection des machines infectées par Conficker
|
||||
# Copyright (c) 2009 Michel Blockelet <blockelet@crans.org>
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
|
||||
|
||||
|
||||
#####
|
||||
# Ce script est fait pour détecter les machines infectées par Conficker.
|
||||
# Il fonctionne un peu à la "devinette", il est donc conseillé de vérifier
|
||||
# sa sortie (il enregistre chaque étape dans un fichier indiqué par
|
||||
# [> fichier]).
|
||||
#####
|
||||
# Options :
|
||||
# -h / --help : Affiche les options
|
||||
# --mailto [adresse mail] : Envoie un mail avec le diff
|
||||
#####
|
||||
# Fonctionnement :
|
||||
# -Il analyse les logs de Squid à la recherche des requêtes du type :
|
||||
# GET http://[une ip quelconque]/search?
|
||||
# qui sont du format de requête typique de Conficker.
|
||||
# -Il récupère les couples [IP ayant émis la requête] [IP dans la requête]
|
||||
# -Il retrie ces couples et compte le nombre d'occurences
|
||||
# -Il regarde le reverse DNS de chaque IP se trouvant dans des requêtes
|
||||
# suspectes
|
||||
# -Il ne garde que les IPs n'ayant pas de reverse DNS (ce qui peut être
|
||||
# trop restrictif, mais il s'agit d'éviter de compter les vraies
|
||||
# requêtes (émises par exemple vers Google), puis regarde quelles
|
||||
# IPs source ont émis des requêtes vers ces IP
|
||||
# -Il finit par afficher ces IPs sources (machines très probablement
|
||||
# infectées), et les statistiques de communication entre ces IPs sources
|
||||
# et les IPs destination suspectes
|
||||
#####
|
||||
|
||||
|
||||
# On affiche l'aide si demandée
|
||||
if [ "$1" == "-h" ] || [ "$1" == "--help" ]
|
||||
then
|
||||
cat <<EOF
|
||||
Script de détection des machines infectées par Conficker
|
||||
Utilisation :
|
||||
$0 [OPTIONS] ...
|
||||
|
||||
Options :
|
||||
-h / --help : Affiche les options
|
||||
--mailto [adresse mail] : Envoie un mail avec le diff, ou les stats
|
||||
s'il n'y a pas d'anciennes stats
|
||||
EOF
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
# Header pour les mails
|
||||
header() {
|
||||
cat <<EOF
|
||||
***** Détection des machines infectées par Conficker *****
|
||||
Généré par $0,
|
||||
le `date` sur `hostname`
|
||||
|
||||
*** Hôtes probablement infectés ***
|
||||
`cat compromised`
|
||||
|
||||
*** Statistiques ***
|
||||
> Format :
|
||||
> * [Hôte de destination suspect]
|
||||
> [Nombre de requêtes] [IP Cr@ns source] [IP destination]
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
|
||||
# A changer bien sûr selon les cas ...
|
||||
if [ "`hostname`" != "sable" ] && [ "`hostname`" != "titanic" ]
|
||||
then
|
||||
echo "Vous devez exécuter ce script sur sable ou sur titanic !"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ce n'est pas toujours la même version de Squid ... super
|
||||
if [ "`hostname`" == "sable" ]
|
||||
then
|
||||
SQUIDLOG="/var/log/squid3/access.log"
|
||||
else
|
||||
SQUIDLOG="/var/log/squid/access.log"
|
||||
fi
|
||||
|
||||
# On initialise les fichiers utilisés par le script
|
||||
# (Par défaut, ces fichiers sont laissés pour ne pas avoir à reexécuter le
|
||||
# script ...)
|
||||
echo " * Initialisation des fichiers ..."
|
||||
|
||||
# On garde les dernières stats si elles existent ...
|
||||
if [ -f stats ]
|
||||
then
|
||||
mv stats stats.old
|
||||
fi
|
||||
|
||||
FILES="base diff ip_reqip ip_reqip_stats reverse_dns compromised stats"
|
||||
rm -f $FILES
|
||||
touch $FILES
|
||||
chmod go-rwx $FILES
|
||||
|
||||
# On regarde les lignes de la forme "...GET http://[une ip]/search?..."
|
||||
# (requêtes typiques de Conficker)
|
||||
echo -n " * Recherche des lignes de logs correspondantes ... [> base] Lignes : "
|
||||
if [ "`whoami`" == "root" ]
|
||||
then
|
||||
egrep "GET http://([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}/search\?" $SQUIDLOG | tee base | wc -l
|
||||
else
|
||||
sudo egrep "GET http://([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}/search\?" $SQUIDLOG | tee base | wc -l
|
||||
fi
|
||||
|
||||
# On récupère les IPs dans les lignes
|
||||
echo -n " * Récupération des IP sources et destinations ... [> ip_reqip] Lignes : "
|
||||
cat base | sed 's/^.* \(.*\) TCP.* http:\/\/\(\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\}\)\/search.*$/\1 \2/' | tee ip_reqip | wc -l
|
||||
|
||||
# On trie les IPs et on génère les stats de requêtes
|
||||
echo -n " * Tri, comptage ... [> ip_reqip_stats] Lignes : "
|
||||
cat ip_reqip | sort | uniq -c | tee ip_reqip_stats | wc -l
|
||||
|
||||
# On regarde le reverse DNS de chaque IP destination
|
||||
echo -n " * Reverse DNS des IPs destination ... [> reverse_dns] Lignes : "
|
||||
for SEARCHIP in `cat ip_reqip | awk '{print $2}' | sort | uniq`
|
||||
do
|
||||
echo -n "$SEARCHIP " >> reverse_dns
|
||||
host $SEARCHIP >> reverse_dns
|
||||
done
|
||||
cat reverse_dns | wc -l
|
||||
cat reverse_dns
|
||||
|
||||
# On garde les IPs destination n'ayant pas de reverse DNS
|
||||
# (peut-être est-ce trop restrictif ?)
|
||||
echo -n " * Recherche des hôtes compromis ... [> compromised] Lignes : "
|
||||
for SEARCHIP in `grep " not " reverse_dns | awk '{print $1}'`
|
||||
do
|
||||
echo " * $SEARCHIP" >> stats
|
||||
for NEWIP in `grep $SEARCHIP ip_reqip | awk '{print $1}' | sort | uniq`
|
||||
do
|
||||
if ! grep $NEWIP compromised > /dev/null
|
||||
then
|
||||
echo -n "$NEWIP " >> compromised
|
||||
host $NEWIP >> compromised
|
||||
fi
|
||||
done
|
||||
grep $SEARCHIP ip_reqip_stats >> stats
|
||||
done
|
||||
cat compromised | wc -l
|
||||
cat compromised
|
||||
|
||||
# On affiche les statistiques
|
||||
echo " * Statistiques ... [> stats]"
|
||||
cat stats
|
||||
|
||||
# Si on a d'anciennes stats, on fait le diff
|
||||
if [ -f stats.old ]
|
||||
then
|
||||
echo " * Diff ... [> diff]"
|
||||
diff -uN stats.old stats | tee diff
|
||||
fi
|
||||
|
||||
# Si on a l'option --mailto, on envoie un mail avec le diff
|
||||
if [ "$1" == "--mailto" ] && [ -n "$2" ]
|
||||
then
|
||||
if [ -f stats.old ]
|
||||
then if [ -s diff ] && [ -s stats ]
|
||||
then
|
||||
# On envoie le diff (à condition qu'il y ait des machines infectées)
|
||||
( header ; cat diff ) | mail -s "Detection du virus Conficker sur `hostname`" "$2"
|
||||
fi
|
||||
elif [ -s stats ]
|
||||
then
|
||||
# S'il n'y avait pas de précédentes stats, on envoie les nouvelles directement
|
||||
( header ; cat stats ) | mail -s "Detection du virus Conficker sur `hostname`" "$2"
|
||||
fi
|
||||
fi
|
|
@ -1,161 +0,0 @@
|
|||
#! /usr/bin/env python
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
# Utilisation de scappy pour détecter un DHCP pirate.
|
||||
# $Id: dhcp-detect.py,v 1.3 2006/12/11 23:31:39 glondu Exp $
|
||||
|
||||
import sys, os
|
||||
from threading import Thread
|
||||
from time import time, sleep
|
||||
from syslog import *
|
||||
|
||||
sys.path.append("/usr/bin")
|
||||
sys.path.append("/usr/scripts/gestion")
|
||||
sys.path.append("/usr/scripts/gestion/tools")
|
||||
|
||||
# Hack pour scapy
|
||||
os.environ["HOME"] = "/tmp"
|
||||
|
||||
from scapy import Ether, sendp, sniff, BOOTP, IP, UDP
|
||||
from email_tools import send_email
|
||||
from locate_mac import trace_machine, info_machine
|
||||
|
||||
PIDFILE = "/var/run/dhcp-detect.pid"
|
||||
|
||||
# dhcp-server attendu
|
||||
DHCPSERVER = '138.231.136.9'
|
||||
|
||||
# Interface à surveiller
|
||||
INTERFACE = "crans"
|
||||
|
||||
# Adresse MAC
|
||||
mac = os.popen(r"ifconfig | grep '^%s' | awk '{print $(NF)}'" % INTERFACE).readline().strip()
|
||||
|
||||
# Paquet à envoyer pour détecter un DHCP (il a été capturé pour avoir la bonne tête)
|
||||
tosend = Ether("\xff\xff\xff\xff\xff\xff\x00\x80\xc8\xc9\xab\x01\x08\x00E\x10\x01H\x00\x00\x00\x00@\x11y\x96\x00\x00\x00\x00\xff\xff\xff\xff\x00D\x00C\x014\x9aA\x01\x01\x06\x00\xb2\x87\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc8\xc9\xab\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00c\x82Sc5\x01\x012\x04R\xe1'67\x07\x01\x1c\x02\x03\x0f\x06\x0c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")
|
||||
|
||||
# On met à jour ce paquet
|
||||
tosend.getlayer(Ether).src = mac
|
||||
tosend.getlayer(IP).chksum = None
|
||||
tosend.getlayer(UDP).chksum = None
|
||||
tosend.getlayer(BOOTP).chaddr = ''.join(map(lambda x: chr(int(x,16)),mac.split(":")+['0']*10))
|
||||
tosend = Ether(tosend.build())
|
||||
|
||||
# Tableau associatif "mac" - "mailé pour la dernière fois"
|
||||
dejavu = {}
|
||||
|
||||
|
||||
def createDaemon():
|
||||
"""Detach a process from the controlling terminal and run it in the
|
||||
background as a daemon.
|
||||
"""
|
||||
try:
|
||||
pid = os.fork()
|
||||
except OSError, e:
|
||||
raise Exception, "%s [%d]" % (e.strerror, e.errno)
|
||||
if (pid == 0): # The first child.
|
||||
os.setsid()
|
||||
try:
|
||||
pid = os.fork() # Fork a second child.
|
||||
except OSError, e:
|
||||
raise Exception, "%s [%d]" % (e.strerror, e.errno)
|
||||
if (pid == 0): # The second child.
|
||||
os.chdir("/")
|
||||
os.umask(0)
|
||||
else:
|
||||
os._exit(0) # Exit parent (the first child) of the second child.
|
||||
else:
|
||||
os._exit(0) # Exit parent of the first child.
|
||||
|
||||
# Iterate through and close all file descriptors.
|
||||
for fd in range(0, 3):
|
||||
try:
|
||||
os.close(fd)
|
||||
except OSError: # ERROR, fd wasn't open to begin with (ignored)
|
||||
pass
|
||||
os.open("/dev/null", os.O_RDWR) # standard input (0)
|
||||
os.dup2(0, 1) # standard output (1)
|
||||
os.dup2(0, 2) # standard error (2)
|
||||
|
||||
|
||||
# Envoi par mail le paquet
|
||||
def mail(paquet):
|
||||
mac_pirate = paquet.getlayer(Ether).src
|
||||
if (mac_pirate in globals()['dejavu'] and (time() - globals()['dejavu'][mac_pirate]) < 60*60):
|
||||
pass
|
||||
else:
|
||||
globals()['dejavu'][mac_pirate] = time()
|
||||
print "Envoi d'un mail...",
|
||||
msg = u"""Boujour,
|
||||
|
||||
Un DHCP pirate a été découvert sur le réseau. Voici quelques renseignements mineurs à son sujet :
|
||||
|
||||
Son adresse Ethernet : %s
|
||||
Son adresse IP : %s
|
||||
Son TTL : %d
|
||||
|
||||
""" % (mac_pirate, paquet.getlayer(IP).src, paquet.getlayer(IP).ttl)
|
||||
msg += trace_machine(mac_pirate)
|
||||
msg += u"\n"
|
||||
msg += info_machine(mac_pirate)
|
||||
msg += u"""
|
||||
Merci de votre attention et à bientôt.
|
||||
|
||||
--
|
||||
dhcp-detect.py
|
||||
"""
|
||||
send_email(u"DHCP-detect <disconnect@crans.org>",
|
||||
u"Disconnect Team <disconnect@crans.org",
|
||||
u"DHCP pirate",
|
||||
msg)
|
||||
print "ok"
|
||||
|
||||
|
||||
# Réception d'une réponse
|
||||
def recoit(paquet):
|
||||
# On affiche
|
||||
print "Réception de : ", paquet.summary()
|
||||
# On verifie que c'est bien ce qu'on attend
|
||||
if paquet.getlayer(Ether).dst.upper() == globals()['mac'] and paquet.haslayer(BOOTP) and paquet.getlayer(BOOTP).op == 2 and paquet.getlayer(IP).src != DHCPSERVER:
|
||||
# DHCP pirate ?
|
||||
msg = "DHCP pirate ? (%s)" % paquet.getlayer(Ether).src
|
||||
print msg
|
||||
syslog(msg)
|
||||
mail(paquet)
|
||||
|
||||
|
||||
# Envoi du paquet test
|
||||
def send():
|
||||
while True:
|
||||
sleep(60)
|
||||
print "Envoi de :", tosend.summary()
|
||||
sendp(tosend, verbose=False)
|
||||
|
||||
# Sniffer
|
||||
def get():
|
||||
while True:
|
||||
sleep(1)
|
||||
# On prend les paquets par 100, sinon, le process grossit beaucoup trop
|
||||
a = sniff(iface=INTERFACE, filter="port bootpc and ether dst %s" % mac, prn=recoit, count=100)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# On quitte les éventuelles instances démonisées en cours
|
||||
try:
|
||||
pid = int(file(PIDFILE).read().strip())
|
||||
os.kill(pid, 15)
|
||||
except:
|
||||
pass
|
||||
if "-d" in sys.argv:
|
||||
createDaemon()
|
||||
file(PIDFILE, "w").write("%d\n" % os.getpid())
|
||||
else:
|
||||
print "Le paquet suivant va être envoyé à intervalles réguliers pour tester la présence de DHCP pirates :"
|
||||
print tosend.summary()
|
||||
|
||||
openlog("dhcp-detect", LOG_PID)
|
||||
syslog("Démarrage de dhcp-detect")
|
||||
# On démarre le thread qui envoie régulièrement le paquet...
|
||||
Thread(target=send, name="send").start()
|
||||
# ...et celui qui sniffe régulièrement la réponse
|
||||
Thread(target=get, name="get").start()
|
|
@ -1,147 +0,0 @@
|
|||
#! /usr/bin/env python
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
|
||||
###########################
|
||||
# Import des commmandes : #
|
||||
###########################
|
||||
|
||||
import commands
|
||||
import os
|
||||
# import pg # Import des commandes de postgres
|
||||
import sys
|
||||
sys.path.append('/usr/scripts/gestion')
|
||||
import iptools
|
||||
import psycopg2
|
||||
import re
|
||||
sys.path.append('/usr/script/surveillance')
|
||||
import strptime
|
||||
|
||||
# Définition de constantes :
|
||||
############################
|
||||
reseau = ["138.231.136.0/21", "138.231.148.0/22"]
|
||||
|
||||
# Ouverture de la base de données :
|
||||
###################################
|
||||
pgsql = psycopg2.connect(host='pgsql.adm.crans.org', database='filtrage', user='crans')
|
||||
pgsql.set_session(autocommit=True)
|
||||
curseur = pgsql.cursor()
|
||||
|
||||
|
||||
###########################################
|
||||
# Récupération des tables de protocoles : #
|
||||
###########################################
|
||||
|
||||
requete = "SELECT nom,id_p2p from protocole_p2p"
|
||||
curseur.execute(requete)
|
||||
curseur.fetchall
|
||||
tableau = curseur.fetchall()
|
||||
protocole_p2p = {}
|
||||
for cellule in tableau:
|
||||
protocole_p2p[cellule[0]]=cellule[1]
|
||||
|
||||
requete = "SELECT nom,id from protocole"
|
||||
curseur.execute(requete)
|
||||
curseur.fetchall
|
||||
tableau = curseur.fetchall()
|
||||
protocole = {}
|
||||
for cellule in tableau:
|
||||
protocole[cellule[0]]=cellule[1]
|
||||
|
||||
|
||||
|
||||
##############################################################
|
||||
# Parser ler log du firewall: /var/log/firewall/filtre.log : #
|
||||
##############################################################
|
||||
|
||||
# Définition des motifs des comparaisons :
|
||||
##########################################
|
||||
motif_p2p = re.compile("^(.*) komaz .* IPP2P=([^ ]*).* SRC=([^ ]*).* DST=([^ ]*).* PROTO=([^ ]*).* SPT=([^ ]*).* DPT=([^ ]*).*")
|
||||
|
||||
motif_virus = re.compile("^(.*) komaz .* Virus:([^ ]*).* SRC=([^ ]*).* DST=([^ ]*).* PROTO=([^ ]*).* SPT=([^ ]*).* DPT=([^ ]*).*")
|
||||
|
||||
motif_flood = re.compile("^(.*) komaz .* Flood:([^ ]*).* SRC=([^ ]*).* DST=([^ ]*).* PROTO=([^ ]*).* SPT=([^ ]*).* DPT=([^ ]*).*")
|
||||
|
||||
|
||||
# On récupère en continu les log du firewall:
|
||||
#############################################
|
||||
filtre = os.popen("tail -F /var/log/firewall/filtre.log 2> /dev/null")
|
||||
|
||||
|
||||
# On matche les log du firewall avec les motifs :
|
||||
#################################################
|
||||
for log in filtre:
|
||||
resultat_p2p = motif_p2p.match(log)
|
||||
resultat_virus = motif_virus.match(log)
|
||||
resultat_flood = motif_flood.match(log)
|
||||
|
||||
if resultat_p2p :
|
||||
try:
|
||||
ip_src = resultat_p2p.group(3)
|
||||
verif = iptools.AddrInNets (ip_src,reseau)
|
||||
except ValueError:
|
||||
continue #IP malformee
|
||||
if verif :
|
||||
try:
|
||||
date = resultat_p2p.group(1)
|
||||
id_p2p = int(protocole_p2p[resultat_p2p.group(2)])
|
||||
ip_src = resultat_p2p.group(3)
|
||||
ip_dest = resultat_p2p.group(4)
|
||||
proto = int(protocole[resultat_p2p.group(5)]) #C'est à dire id pour la base
|
||||
port_src = int(resultat_p2p.group(6))
|
||||
port_dest = int(resultat_p2p.group(7))
|
||||
date=strptime.syslog2pgsql(date)
|
||||
except ValueError, KeyError:
|
||||
continue #mal parse
|
||||
|
||||
# On remplit la base :
|
||||
######################
|
||||
requete = "INSERT INTO p2p (date,ip_src,ip_dest,id_p2p,id,port_src,port_dest) VALUES ('%s','%s','%s',%d,%d,%d,%d)" % (date,ip_src,ip_dest,id_p2p,proto,port_src,port_dest)
|
||||
curseur.execute(requete)
|
||||
|
||||
# On teste si le log contient des virus
|
||||
########################################
|
||||
elif resultat_virus :
|
||||
try:
|
||||
ip_src = resultat_virus.group(3)
|
||||
verif = iptools.AddrInNets (ip_src,reseau)
|
||||
except ValueError:
|
||||
continue
|
||||
if verif :
|
||||
try:
|
||||
date = resultat_virus.group(1)
|
||||
ip_src = resultat_virus.group(3)
|
||||
ip_dest = resultat_virus.group(4)
|
||||
proto = int(protocole[resultat_virus.group(5)]) #C'est à dire id pour la base
|
||||
port_src = int(resultat_virus.group(6))
|
||||
port_dest = int(resultat_virus.group(7))
|
||||
# On remplit la base :
|
||||
######################
|
||||
date=strptime.syslog2pgsql(date)
|
||||
except ValueError, KeyError:
|
||||
continue
|
||||
requete = "INSERT INTO virus (date,ip_src,ip_dest,id,port_src,port_dest) VALUES ('%s','%s','%s',%d,%d,%d)" % (date,ip_src,ip_dest,proto,port_src,port_dest)
|
||||
curseur.execute(requete)
|
||||
|
||||
elif resultat_flood :
|
||||
try:
|
||||
ip_src = resultat_flood.group(3)
|
||||
verif = iptools.AddrInNets (ip_src,reseau)
|
||||
except ValueError:
|
||||
continue
|
||||
if verif :
|
||||
try:
|
||||
date = resultat_flood.group(1)
|
||||
ip_src = resultat_flood.group(3)
|
||||
ip_dest = resultat_flood.group(4)
|
||||
proto = int(protocole[resultat_flood.group(5)]) #C'est à dire id pour la base
|
||||
port_src = int(resultat_flood.group(6))
|
||||
port_dest = int(resultat_flood.group(7))
|
||||
|
||||
# On remplit la base :
|
||||
######################
|
||||
date=strptime.syslog2pgsql(date)
|
||||
except ValueError, KeyError:
|
||||
continue
|
||||
requete = "INSERT INTO flood (date,ip_src,ip_dest,id,port_src,port_dest) VALUES ('%s','%s','%s',%d,%d,%d)" % (date,ip_src,ip_dest,proto,port_src,port_dest)
|
||||
curseur.execute(requete)
|
|
@ -1,41 +0,0 @@
|
|||
#! /bin/sh
|
||||
### BEGIN INIT INFO
|
||||
# Provides: filtrage_firewall
|
||||
# Required-Start: $remote_fs $syslog firewall
|
||||
# Required-Stop: $remote_fs $syslog
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Filtrage Firewall
|
||||
# Description: Firewall logfile Parsing.
|
||||
### END INIT INFO
|
||||
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Démarrage du script de parsage des logs du firewall"
|
||||
start-stop-daemon --start --quiet --background --make-pidfile --pidfile /var/run/filtrage_firewall.pid --exec /usr/scripts/surveillance/filtrage_firewall.py
|
||||
echo "."
|
||||
;;
|
||||
stop)
|
||||
echo -n "Arrêt du parsage des logs du firewall"
|
||||
start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile /var/run/filtrage_firewall.pid
|
||||
echo "."
|
||||
;;
|
||||
|
||||
restart)
|
||||
echo -n "Redémarrage du parsage des logs du firewall"
|
||||
start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile /var/run/filtrage_firewall.pid
|
||||
sleep 1
|
||||
echo -n "Démarrage du script de parsage des logs du firewall"
|
||||
start-stop-daemon --start --quiet --background --make-pidfile --pidfile /var/run/filtrage_firewall.pid --exec /usr/scripts/surveillance/filtrage_firewall.py
|
||||
echo "."
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: /etc/init.d/filtrage_firewall {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit 0
|
|
@ -1,33 +0,0 @@
|
|||
#! /bin/sh
|
||||
set -e
|
||||
|
||||
exit 0
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Démarrage du script de parsage des logs du netacct"
|
||||
start-stop-daemon --start --quiet --background --make-pidfile --pidfile /var/run/filtrage_netacct.pid --exec /usr/scripts/surveillance/filtrage_netacct.py
|
||||
echo "."
|
||||
;;
|
||||
stop)
|
||||
echo -n "Arrêt du parsage des logs du netacct"
|
||||
start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile /var/run/filtrage_netacct.pid
|
||||
echo "."
|
||||
;;
|
||||
|
||||
restart)
|
||||
echo -n "Redémarrage du parsage des logs du netacct"
|
||||
start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile /var/run/filtrage_netacct.pid
|
||||
sleep 1
|
||||
echo -n "Démarrage du script de parsage des logs du netacct"
|
||||
start-stop-daemon --start --quiet --background --make-pidfile --pidfile /var/run/filtrage_netacct.pid --exec /usr/scripts/surveillance/filtrage_netacct.py
|
||||
echo "."
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: /etc/init.d/filtrage_netacct {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit 0
|
Loading…
Add table
Add a link
Reference in a new issue