Eggdrop & Tcl

Base de connaissances eggdrop et tcl

Outils pour utilisateurs

Outils du site


eggdrop:configuration

Configuration d'eggdrop

Cette page décrit la configuration principale d'Eggdrop.

Vous n'avez pas besoin de modifier tous les réglages pour que votre eggdrop fonctionne correctement.

Chemin de l'exécutable

La première ligne du fichier de configuration doit contenir un chemin d'accès complet à votre exécutable Eggdrop. Ceci doit être implémenté de la manière indiquée dans l'exemple pour que le fichier de configuration fonctionne comme un script shell.

#! /path/to/eggdrop

Réglages basiques

Vous pouvez modifier l'apparence et le comportement de base d'Eggdrop dans cette section.

username

set username "lamest"

Ce paramètre définit le nom d'utilisateur utilisé par le bot sur IRC. Ce paramètre n'a pas d'effet si un démon ident tourne sur la machine de votre bot.

admin

set admin "Lamer <email: lamer@lamest.lame.org>"

Ce paramètre définit le contact qui doit être affichée dans .status, /msg help et à d'autres endroits. Vous devriez vraiment inclure cette information.

network

set network "SomeIrcNetwork"

Ce paramètre n'est utilisé que pour le partager avec les autres membres de votre botnet. Indiquez le réseau IRC auquel votre bot est connecté.

timezone

set timezone "EST"

Ce paramètre définit le fuseau horaire dans lequel se trouve votre bot. Il est utilisé pour les routines internes ainsi que pour l'horodatage des fichiers journaux et pour les scripts. La chaîne du fuseau horaire spécifie le nom du fuseau horaire et doit être composée de trois caractères alphabétiques ou plus. Par exemple, l'heure d'Europe centrale (UTC+1) doit être “CET”.

offset

set offset "5"

Le paramètre de décalage spécifie la valeur de l'heure à ajouter à l'heure locale pour obtenir le temps universel coordonné (UTC ou GMT). Le décalage est positif si le fuseau horaire local est à l'ouest du méridien d'origine et négatif s'il est à l'est. La valeur (en heures) doit être comprise entre -23 et 23. Par exemple, si le fuseau horaire est UTC+1, le décalage est de -1.

env(TZ)

# set env(TZ) "$timezone $offset"

(désactivé par défaut) Si vous ne souhaitez pas utiliser le paramètre de fuseau horaire uniquement à des fins de script, mais plutôt partout où cela est possible, utilisez ce paramètre.

A moins d'être certain d'en avoir l'utilité, il est fortement conseillé de laisser ce paramètre en commentaire.

vhost4

set vhost4 "99.99.0.0"
set vhost4 "virtual.host.com"

Si vous utilisez un hébergement virtuel (votre machine a plus d'une IP), vous pouvez spécifier l'IP particulière à utiliser. Vous pouvez spécifier soit par nom d'hôte, soit par IP. Notez que ceci n'est pas utilisé pour l'écoute. Utilisez la commande listen pour spécifier l'adresse d'écoute.

vhost6

set vhost6 "2001:db8:618:5c0:263::"
set vhost6 "my.ipv6.host.com"

Adresse IPv6 à utiliser pour les connexions IPv6 sortantes. Il peut s'agir de n'importe quelle adresse IPv6 valide ou de n'importe quel nom d'hôte, se résolvant en adresse IPv6. Notez que ceci n'est pas utilisé pour l'écoute. Utilisez la commande listen pour spécifier l'adresse d'écoute.

prefer-ipv6

set prefer-ipv6 "1"

Préférer IPv6 à IPv4 pour les connexions et la résolution DNS. Si la famille de protocole préférée n'est pas prise en charge, l'autre sera essayée.

addlang

addlang "english"

Si vous souhaitez que les messages d'Eggdrop soient affichés dans une autre langue que l'anglais, modifiez cette commande pour qu'elle corresponde à vos préférences. Une autre solution consiste à attribuer cette valeur à la variable d'environnement EGG_LANG.

Les langues incluses avec Eggdrop sont Danish, English, French, Finnish, German.

Fichiers de logs

Eggdrop est capable d'enregistrer diverses choses, depuis les discussions sur les canaux jusqu'aux commandes partyline et aux transferts de fichiers.

Les fichiers journaux (logs) sont normalement conservés pendant 24 heures. Ensuite, ils sont renommés en (nom du fichier journal).yesterday. Après 48 heures, ils seront remplacés par le fichier journal du jour suivant.

max-logs

set max-logs 20

Il s'agit du nombre maximum de fichiers de logs simultanés qui peuvent être ouverts en écriture en même temps. Cette valeur doit correspondre au maximum au nombre de canaux pour lesquels vous prévoyez de créer des logs. Il n'y a pas de valeur pour l'infini. Très peu de cas d'utilisation devraient nécessiter plus de 20. Une diminution de cette valeur en cours d'exécution nécessitera un redémarrage (et non un rehash) du bot. Cependant, ne la diminuez pas en dessous de 5.

max-logsize

set max-logsize 0

C'est la taille maximale de vos fichiers de logs. Mettez-la à 0 pour la désactiver. Cette valeur est exprimée en kilo-octets, donc '550' signifierait que le changement de fichier se ferait lorsqu'il atteint 550 kilo-octets. Notez que cela ne fonctionne que si la valeur de keep-all-logs est fixée à 0 (OFF).

quick-logs

set quick-logs 0

Cela peut être utile si vous avez eu un problème avec les fichiers de logs qui remplissent votre quota/disque dur ou si vous enregistrez l'activité publique (+p) et la publiez sur le web, et que vous avez besoin d'informations plus à jour. Notez que ce paramètre peut augmenter l'utilisation du CPU de votre bot (d'un autre côté, il diminuera l'utilisation de la RAM).

raw-log

set raw-log 0

Ce paramètre vous permet d'enregistrer le trafic serveur entrant brut via le flag 'r', le trafic serveur sortant brut via le mode flag 'v', le trafic botnet entrant brut via le flag 't', le trafic botnet sortant brut via le flag 'u', le trafic de partage sortant brut via le flag 'g', et le trafic de partage entrant brut via le flag 'h'.

Ces flags peuvent créer une faille de sécurité importante, permettant aux gens de voir les mots de passe des utilisateurs. Ceci est maintenant limité aux utilisateurs de +n. Veuillez choisir vos propriétaires avec soin.

logfile

logfile <logflags> <channel> "logs/logfile"

Ce paramètre indique au robot ce qui doit être enregistré, à partir d'où et dans quel fichier.

Voir logfile pour une description complète

log-time

set log-time 1

Utilisez ce réglage pour horodater vos logs

timestamp-format

set timestamp-format "[%H:%M:%S]"

Définition du format de l'horodatage du log. Les formats courants sont “[%H:%M]” (heure, minute), ou “[%H:%M:%S]” (heure, minute, seconde). Lisez strftime pour plus d'options de formatage. Veillez à ce que le texte ne dépasse pas 32 caractères.

keep-all-logs

set keep-all-logs 0

Si vous souhaitez conserver vos fichiers de log pour toujours, activez ce paramètre.

Tous les fichiers journaux recevront par défaut le suffixe “[jour, 2 chiffres][mois, 3 lettres][année, 4 chiffres]”. Notez que votre quota/disque dur peut être rempli par ceci.

switch-logfiles-at

set switch-logfiles-at 300

Vous pouvez spécifier l'heure de rotation des fichiers de log. Utilisez la notation militaire pour ce paramètre. 300 est la valeur par défaut et signifie 03:00 du matin.

quiet-save

set quiet-save 0
  • Si vous mettez cette option à 1, vous ne verrez plus les messages “Writing user file…” et “Writing channel file…”.
  • En lui assignant la valeur de 2, vous supprimerez aussi les messages “Backing up user file…” et “Backing up channel file…
  • Une valeur de 3 supprime en plus le message “Switching logfiles…” et l'indication de changement de jour à minuit

logfile-suffix

set logfile-suffix ".%d%b%Y"

Si keep-all-logs est à 1, ce réglage détermine le format du suffixe des fichiers archivés. Le format par défaut vous donnera un résultat comme 04May2023. Utilisez %Y%m%d pour obtenir l'habituel yyyymmdd (20230504 pour notre exemple). N'hésitez pas à lire strftime pour plus d'options de formatage.

Console

console

set console "mkcoblxs"

Il s'agit du mode console par défaut. Il utilise les mêmes indicateurs d'événements que les fichiers logs. Le canal de la console est automatiquement défini sur votre canal “primaire”, qui est défini dans la section des modules du fichier de configuration.

Les maîtres (+m) peuvent modifier leur canal et leur mode de console à l'aide de la commande .console.

Fichiers et répertoires

userfile

set userfile "LamestBot.user"

Spécifie le nom du fichier des utilisateurs de l'eggdrop.

pidfile

set pidfile "pid.LamestBot"

Spécifie le nom du fichier contenant le pid1) de l'eggdrop. Si ce réglage n'est pas spécifié, le fichier sera nommé pid.(botnet-nick)

help-path

set help-path "help/"

Spécifie l'emplacement des fichiers d'aide. Ne pas modifier ce chemin à moins de savoir exactement ce que vous faites.

text-path

set text-path "text/"

Spécifie l'emplacement des fichiers de textes. Ceci est utilisé par certaines commandes TCL et DCC.

motd

set motd "text/motd"

Le MOTD2) est affiché lorsqu'on se connecte à la party-line par Telnet ou DCC. N'hésitez pas à jeter un oeil à doc/text-substitutions pour les options.

telnet-banner

set telnet-banner "text/banner"

Cette bannière n'est affichée que pour les connections Telnet. Là encore, regardez doc/text-substitutions pour les options.

userfile-perm

set userfile-perm 0600

Ceci spécifie les permissions qui doivent être appliquées aux fichiers user, channel et notes. Les valeurs à utiliser sont les mêmes que pour les Permissions UNIX. La valeur 0600 est la plus sécurisée et ne doit être modifiée que si vous avez besoin que ces fichiers soient utilisés par d'autres applications.

mod-path

set mod-path "modules/"

Ceci spécifie où Eggdrop doit chercher ses modules. Si vous lancez l'eggdrop depuis le répertoire de compilation, vous devrez mettre la valeur “” (chaîne vide). Si vous avez fait un make install (ce qui est tout de même une excellente idée), la valeur par défaut est la bonne.

Botnet / DCC / Telnet

Les réglages de cette section ne seront important que si vous créez ou rejoignez un botnet (différents eggdrops connectés ensemble).

botnet-nick

#set botnet-nick "LlamaBot"

Si vous souhaitez utiliser sur le botnet un surnom différent de celui que vous utilisez sur IRC (c'est-à-dire si vous êtes sur un botnet qui n'est pas fiable), décommentez la ligne suivante et mettez-y le surnom que vous souhaitez utiliser.

listen

#listen 3333 all

Ceci ouvre des ports Telnet grâce auxquels vous et d'autres bots peuvent interagir avec l'eggdrop.

Il y a plus d'options pour la commande listen dans doc/tcl-commands.doc. Notez que si vous utilisez plus d'un bot sur la même machine, vous devrez espacer les ports telnet d'au MOINS 5, bien que 10 soit encore mieux.

Les ports valides sont généralement compris entre 1025 et 65535, à condition que le port ne soit pas déjà utilisé.

Si vous souhaitez que le bot écoute les utilisateurs et les bots sur des ports séparés, utilisez le format suivant :

listen 3333 bots
listen 4444 users

Si vous voulez utiliser un seul port, utilisez ce format:

listen 3333 all

Vous pouvez configurer un port pour qu'il utilise le SSL en le précédant d'un +

listen +5555 all

Vous devez décommenter cette ligne (et changer le numéro de port) pour ouvrir au moins un port. Vous ne devriez pas garder la valeur de 3333

remote-boots

set remote-boots 2

Ce réglage définit si les utilisateurs du botnet peuvent ou non virer un utilisateur de l'eggdrop. Les valeurs valides sont:

  • 0 : interdiction depuis tout eggdrop extérieur
  • 1 : autorisation depuis les eggdrops en mode partage
  • 2 : autorisation depuis tous les eggdrops du botnet
set share-unlinks 1

Ce réglage interdit à Eggdrop de se déconnecter des bots en partage si un autre eggdrop le demande

protect-telnet

set protect-telnet 0

Ce réglage empêche les connections telnet d'hôtes inconnus. Attention, activer ce réglage peut vous empêcher d'accéder à l'eggdrop.

dcc-sanitycheck

set dcc-sanitycheck 0

Ce paramètre permet au bot d'ignorer les requêtes de chat DCC qui semblent contenir des informations erronées, au motif que l'utilisateur a peut-être essayé de faire en sorte que le bot se connecte à un endroit qui lui causera des ennuis, ou que l'utilisateur a un client défectueux, auquel cas la connexion ne fonctionnerait pas de toute façon.

ident-timeout

set ident-timeout 5

Ce paramètre définit le temps en secondes pendant lequel le bot doit attendre la réponse de l'identifiant avant que la recherche n'échoue.

require-p

set require-p 0

Ce paramètre définit si un utilisateur avec le flag +o doit aussi avoir le flag +p pour accéder à la party-line.

open-telnets

set open-telnets 0

Si vous souhaitez que les utilisateurs puissent se connecter par telnet et taper “NEW” pour devenir un nouvel utilisateur, réglez ce paramètre sur 1. Cela est similaire à la commande msg hello. Le paramètre protect-telnet doit être réglé sur 0 pour utiliser cette commande.

stealth-telnets

set stealth-telnets 0

Si vous ne voulez pas que l'eggdrop s'identify en tant que tel lors d'une connection telnet, mettez ce paramètre à 1. Eggdrop affichera alors Nickname. à la place.

use-telnet-banner

set use-telnet-banner 0

Si vous voulez que l'eggdrop affiche une bannière lors d'une connection telnet, mettez ce réglage à 1. La bannière est définie par set telnet-banner.

connect-timeout

set connect-timeout 15

Ce paramètre définit au bout de combien de secondes l'eggdrop considère qu'un dcc chat, un telnet ou une connection relais est expirée.

dcc-flood-thr

set dcc-flood-thr 3 ====
Spécifie le nombre de lignes à accepter par un utilisateur de la party-line en 1 seconde avant de considérer que c'est du flood et de le déconnecter.
==== telnet-flood ====
<code tcl>set telnet-flood 5:60

Définit combien de tentatives de connexion telnet en combien de secondes à partir du même hôte constituent un flood. Le format est Tentatives:Secondes.

paranoid-telnet-flood

set paranoid-telnet-flood 1

Si vous désirez que le telnet-flood s'applique aussi aux utilisateurs avec le flag +f, mettez ce paramètre à 1.

resolve-timeout

set resolve-timeout 15

Indiquez ici le nombre de secondes avant d'abandonner une résolution d'host/adresse. Vous devrez augmenter le délai si vous êtes sur une connexion faible.

Réglages avancés

firewall

set firewall "!sun-barr.ebay:3666"

Si votre eggdrop est derrière un firewall, indiquez l'adresse et le port de la passerelle. Si vous utilisez un service Sun telnet passthru, préfixez l'host d'un !

nat-ip

set nat-ip "127.0.0.1"

Si vous avez un routeur NAT (votre box a une IP dans l'une des plages 192.168.0.0-192.168.255.255, 172.16.0.0-172.31.255.255, 10.0.0.0-10.255.255.255 et le routeur change votre IP de manière transparente) ou que vous avez un masquage d'IP, indiquez ici votre IP publique. Cette IP est utilisée pour les transferts uniquement, et n'a rien à voir avec les paramètres vhost4/6 ou listen. Il se peut que vous deviez encore les définir.

reserved-portrange

set reserved-portrange 2010:2020

Si vous souhaitez que tous les transferts de fichiers DCC utilisent une plage de ports particulière, soit parce que vous êtes derrière un pare-feu, soit pour d'autres raisons de sécurité, définissez-le ici.

ignore-time

set ignore-time 15

Indiquez en minutes la durée par défaut d'un ignore.

hourly-update

set hourly-update 00

Définissez ici ce qu'Eggdrop considère comme “horaire”. Tous les appels à Eggdrop, y compris les notifications de notes ou les sauvegardes de fichiers utilisateur, sont affectés par cette définition.

Exemple

set hourly-update 15

L'eggdrop sauvegardera son fichier utilisateurs toutes les heures passées de 15 minutes.

owner

set owner "MrLame, MrsLame"

Décommentez cette ligne et indiquez-y la liste des propriétaires de l'eggdrop. Vous devez changer ce paramètre

notify-newusers

set notify_newusers "$owner"

Personne(s) devant recevoir une note lorsqu'un nouvel utilisateur a été enregistré.

default-flags

set default-flags "hp"

Flags qu'un nouvel utilisateur obtient automatiquement. Regardez la liste des Flags leur définition pour ne pas faire d'erreur.

whois-fields

set whois-fields "url birthday"

Indiquez ici les champs que vous désirez voir apparaitre dans un .whois. Ceci ne seront montrés que si l'utilisateur a entré des informations dans ces champs supplémentaires (XTRA).

tcl / set

#unbind dcc n tcl *dcc:tcl
#unbind dcc n set *dcc:set

Décommentez ces deux lignes si vous voulez désactiver les commandes .tcl et .set. Si vous choisissez judicieusement les propriétaires de vos eggdrops, il ne devrait pas y avoir de problème à les laisser activées.

must-be-owner

set must-be-owner 1

Si vous activez ce réglage, seuls les propriétaires permanents (owner) pourront utiliser les commandes .tcl et .set. Et si vous voulez restreindre l'utilisation de .dump aux propriétaires permanents, passez ce paramètre à 2.

simul

unbind dcc n simul *dcc:simul

Commentez cette ligne pour activer la commande .simul (les propriétaires peuvent agir “à la place” des autres utilisateurs). Choisissez judicieusement vos propriétaires et utilisez cette commande avec éthique.

max-dcc

set max-dcc 50

Renseignez ici le nombre maximal de dcc que vous autorisez. Vous pouvez augmenter cette valeur mais jamais la réduire.

allow-dk-cmds

set allow-dk-cmds 1

Activez ce paramètre si vous souhaitez que les utilisateurs avec les flags +d et +k puissent utiliser les commandes liées à -|-.

dupwait-timeout

set dupwait-timeout 5

Si votre Eggdrop rejette les bots qui se sont déjà déconnectés d'un autre hub, mais que l'information de déconnexion ne s'est pas encore répandue dans le botnet à cause du lag, utilisez ce paramètre. Le bot attendra dupwait-timeout secondes avant de vérifier à nouveau et de rejeter finalement le bot.

cidr-support

set cidr-support 0

Active le support cidr pour les modes b/e/I s'il est positionné à 1. Cela signifie que le bot comprendra et fera correspondre les modes en notation cidr, et sera capable de mettre en place et d'appliquer de tels bannissements ou de se débanner lui-même, s'il est banni avec un masque cidr. N'activez pas ce paramètre si votre réseau/serveur ne supporte pas le cidr !

Réglages SSL

Les réglages de cette section ne sont valables que si Eggdrop a été compilé avec le support TLS.

ssl-privatekey

set ssl-privatekey "eggdrop.key"

Fichier contenant votre clé privée, nécessaire pour le certificat SSL (voir dessous).

Vous pouvez le créer avec la commande suivante:

openssl genrsa -out eggdrop.key 4096

Ceci créera une clé RSA de 4096 bits, suffisamment forte pour un eggdrop. C'est nécessaire pour les ports hub/listen SSL, le partage de fichiers sécurisé et le /ctcp botnick schat.

Pour vous simplifier la vie, vous pouvez faire make sslcert après le make install (compilation de l'eggdrop) et vous obtiendrez la clé et le certificat dans le répertoire DEST.

ssl-certificate

set ssl-certificate "eggdrop.crt"

Fichier contenant votre certificat SSL. Si ce paramètre n'est pas renseigné, l'eggdrop sera incapable d'avoir le rôle de serveur pour les connexions SSL. La plupart des algorithmes de chiffrement nécessitent une clé privée et un certificat côté serveur pour fonctionner.

Le certificat doit être au format PEM. Vous pouvez le créer avec la commande suivante:

openssl req -new -key eggdrop.key -x509 -out eggdrop.crt -days 365

Pour vous simplifier la vie, vous pouvez faire make sslcert après le make install (compilation de l'eggdrop) et vous obtiendrez la clé et le certificat dans le répertoire DEST.

ssl-veriphy-depth

set ssl-verify-depth 9

Définit la profondeur maximale de la chaîne de vérification du certificat autorisée par SSL. Quand la vérification de certificat est activée et que la chaîne dépasse cette profondeur, la vérification échoue.

ssl-capath / ssl-cafile

set ssl-capath "/etc/ssl"
set ssl-cafile ""

Indique où les fichiers des autorités de certification (CA certificates) sont stockés. Si ces certificats ne sont pas valides ou que vous ne renseignez pas le bon chemin/fichier, la vérification échouera.

ssl-ciphers

set ssl-ciphers ""

Spécifie la liste des algorithmes de chiffrement (par ordre de préférence) autorisés pour l'utilisation de ssl. La liste de chiffrements est constituée d'une ou plusieurs chaînes de chiffrement séparées par des deux-points, des virgules ou des espaces. Les chiffrements non disponibles sont ignorés silencieusement, sauf si aucun chiffrement utilisable n'a pu être trouvé. Pour la liste des algorithmes de chiffrement possibles et leur signification, veuillez vous référer au manuel ciphers.

Si vous définissez cette valeur, elle remplace tous les algorithmes de chiffrement qu'OpenSSL pourrait utiliser par défaut. Pour inclure les algorithmes de chiffrement par défaut, vous pouvez mettre DEFAULT comme chaîne de chiffrement dans la liste.

ssl-cert-auth

set ssl-cert-auth 0

Active l'identification par certificat. La valeur 1 permet aux utilisateurs et aux robots de s'identifier automatiquement à l'aide de l'empreinte digitale de leur certificat. La valeur 2 permet de forcer l'identification par empreinte digitale. Avec une valeur de 2, les utilisateurs dont l'empreinte digitale n'est pas définie ou dont l'UID du certificat ne correspond pas à leur identifiant ne seront pas autorisés à se connecter sur les ports telnet activés par SSL. Les empreintes digitales doivent être définies à l'avance à l'aide des commandes fprint et chfinger.

Ce paramètre n'a aucun effet sur les ports en texte brut.

Vous pouvez contrôler la vérification des certificats SSL à l'aide des variables suivantes. Toutes ces variables sont basées sur des flags. Vous pouvez les définir en additionnant les nombres de toutes les exceptions que vous souhaitez activer. Par défaut, la vérification des certificats est désactivée et tous les certificats sont supposés être valides.

0 Vérification désactivée
1 Vérification des certificats activée
2 Autorise les certificats auto-signés
4 Ne vérifie pas les partenaires commun ou les noms alternatifs
8 Autorise les certificats expirés
16 Autorise les certificats qui ne sont pas encore valides
32 Autorise les certificats révoqués

ssl-verify-dcc

set ssl-verify-dcc 0

Vérifie les certificats pour les chats DCC (seulement /dcc chat botnick)

ssl-verify-bots

set ssl-verify-bots 0

Vérifie les certificats pour les bots se liant au hub

ssl-verify-client

set ssl-verify-client 0

Vérifie les certificats pour les connexions aux ports d'écoute SSL. Ceci inclut les bots leaf, les utilisateurs se connectant par telnet et le /ctcp botnick chat

Modules

Voir aussi

1)
ID de processus
2)
Message Of The Day - Message du jour
eggdrop/configuration.txt · Dernière modification : 2024/09/11 13:56 de CrazyCat