/*
 * Paramètres configurables à la compilation pour scanlogd.
 */

#ifndef _SCANLOGD_PARAMS_H
#define _SCANLOGD_PARAMS_H

#include <time.h>
#include <syslog.h>

/*
 * Un faux utilisateur non-privilégié en tant que qui s'exécuter. 
 * L'utilisateur et son UID ne doivent pas être utilisés dans tout autre
 * but (c.-à-d. n'utilisez pas "nobody" ici). Vous pouvez #undef ceci pour
 * laisser scanlogd s'exécuter en tant que root, mais je suis contre
 * recommander de faire ainsi.
 */
#define SCANLOGD_USER			"scanlogd"

/*
 * Périphérique à surveiller, si vous utilisez libnids ou libpcap
 * directement. #undef ceci soit si vous utilisez l'interface raw socket sur
 * Linux à la place, ou soit si vous préférez laisser libpcap autodétecter
 * ceci pour vous.
 */
#undef SCANLOGD_DEVICE

/*
 * Voulons nous que scanlogd configure le périphérique en mode promiscuous,
 * pour utiliser avec libpcap.
 */
#define SCANLOGD_PROMISC		0

/*
 * Les numéros de ports hauts ont un poids plus faible pour réduire la
 * fréquence des faux positifs, tel que les transferts FTP en mode passif.
 */
#define PORT_WEIGHT_PRIV		3
#define PORT_WEIGHT_HIGH		1

/*
 * Les limites d'activation de la détection de scans de ports : au moins
 * COUNT ports ont besoin d'être scannés depuis la même source, avec pas
 * plus de DELAY ticks entre les ports.
 */
#define SCAN_MIN_COUNT			7
#define SCAN_MAX_COUNT			(SCAN_MIN_COUNT * PORT_WEIGHT_PRIV)
#define SCAN_WEIGHT_THRESHOLD		SCAN_MAX_COUNT
#define SCAN_DELAY_THRESHOLD		(CLK_TCK * 3)

/*
 * Limites d'activation de la détection de l'inondation de journaux : arrête
 * temporairement la journalisation si plus de COUNT scans de ports sont
 * détectés avec pas plus de DELAY entre eux.
 */
#define LOG_COUNT_THRESHOLD		5
#define LOG_DELAY_THRESHOLD		(CLK_TCK * 20)

/*
 * Limite de longueur de ligne de journalisation, telle qu'elle tienne dans
 * un message SMS. #undef ceci pour aucune limite.
 */
#define LOG_MAX_LENGTH			(160 - 40)

/*
 * Vous pouvez vouloir ajuster celles-ci pour utiliser votre petit fichier
 * de journalisation en ajout seulement.
 */
#define SYSLOG_IDENT			"scanlogd"
#define SYSLOG_FACILITY			LOG_DAEMON
#define SYSLOG_LEVEL			LOG_ALERT

/*
 * identité librlog, ne me demandez pas ce que c'est pour l'instant. ;-)
 */
#ifdef USE_RLOG
#define RLOG_ID				SYSLOG_IDENT
#endif

/*
 * Garder la trace jusqu'à LIST_SIZE adresses sources, en utilisant une
 * table de hachage de HASH_SIZE entrées pour des recherches plus rapides,
 * mais en limitant les collisions d'empreintes à HASH_MAX adresses sources
 * pour la même valeur d'empreinte.
 */
#define LIST_SIZE			0x100
#define HASH_LOG			9
#define HASH_SIZE			(1 << HASH_LOG)
#define HASH_MAX			0x10

#endif
