03 diciembre 2013

EGGDROP: INSTALACION, CONFIGURACION Y TRUCOS ---PARTE 1

INSTALACION Y CONFIGURACION DE UN EGGDROP V1.6
Eggdrop es sin dudas el bot mas popular en IRC.  Entre su variedad de opciones tenemos: automatizar tareas adminitrativas de los canales, proteger el canal de intrusos, puedes integrar varios bots al mismo tiempo, soporta varios canales a la vez, guarda logs de las conversaciones, ingresar juegos y mucho mas. Esta licenciado bajo GPL, esta diseñado para ser flexible, tiene bastantes addons, esta desarrollado en C y es bien personalizable, claro si sabes programar TCL. 

El proyecto de eggdrop lo inicio Robey Pointer por el 1993 pero ya esta persona no participa ya en el proyecto.



HARDWARE

Bueno utilizaremos el siguiente hardware en una maquina virtual:
CentOS 6.4 32bits       
512mb de ram           
procesador intel 2.4ghz
y 20GB de disco.

Y bueno manos a la obra...


INSTALACION

0) Dependencias requeridas:
yum install -y gcc make tar gzip  zlib zlib-devel libtermcap-devel wget tcl tcl-devel crond

1) descargamos el archivo fuente, solo ocupa 1.2mb:
wget ftp://ftp.eggheads.org/pub/eggdrop/source/1.6/eggdrop1.6.21.tar.gz

2) movemos el archivo fuente a la ubicacion correspondiente:
mv eggdrop1.6.21.tar.gz  /usr/local/src/

3) nos movemos al directorio y descomprimimos el archivo comprimido
cd /usr/local/src/
tar zxvf eggdrop1.6.21.tar.gz

4) ingresamos al directorio ya descomprimido
cd eggdrop1.6.21

5) verfiicamos que todas las dependencia esten en el sistema:
./configure

6) ahora tenemos dos opciones.  en nuestro caso los compilare todos.  les exsorto a leer la documentacion para fines de produccion!
make config   #selecciona todos los modulos y no nos pregunta nada
make iconfig  #seleccionamos los modulos que deseamos

7) Ahora vamos a crear los binarios con los modulos
make

8) Ya todo preparado y listo vamos a instalar los archivos binarios y de configuracion en el usuario del sistema!

a) agergamos un usuario llamado eggdrop
adduser eggdrop

b) le indicamos que se instale en el directorio del usuario eggdrop en el directorio eggdrop
make install DEST=/home/eggdrop/eggdrop

nota:
normalmente esta configurado se instalen los archivos de configuracion en el usuario actual en que se esta instalando

9) cambiamos los permisos del directorio para el ususario eggdrop
chown -R eggdrop.eggdrop /home/eggdrop/

10) Nos cambiamos al usuario eggdrop, ingresamos al directorio de los archivos binarios y de configuracion
su - eggdrop
cd eggdrop

11) por seguridad le damos permisos 700 a todo el directorio de nuestro bot
chmod -R 700 ~/eggdrop

12)  sacamos una copia del archivo eggdrop, es mejor prevenir, y luego configuramos el archivo original
cp eggdrop.conf eggdrop.conf.back
vi eggdrop.conf

nota: solo agregare las opciones basicas pero mas adelante ire haciendo configuraciones mas personalizadas
----------------------------------------------------------------------------
##### BASIC SETTINGS #####

#editamos el nick del bot
set username "Nombre_Bot"

#configuramos el administrador, no se usa mucho pero es bueno tenerlo
set admin "Usuario <email: usuario@email.com>"

#no se utiliza mucho, almenos que utilizes redes de bot's
set network "I.didn't.edit.my.config.file.net"

# indicamos nuestra zona horarica.  para los que no tienen idea de esto: http://www.timeanddate.com/library/abbreviations/timezones/
#en RD tenemos
set timezone "AST"

#indicamos
set offset "4"

#el resto de la configuracion basica, lo dejamos comentado


##### LOG FILES #####

#aqui se configura la forma en que se guardan y el formato de los archivos logs.
#no modificamos nada !!!

set max-logs 5
set max-logsize 0
set quick-logs 0
set raw-log 0
logfile mco * "logs/eggdrop.log"
set log-time 1
set timestamp-format {[%H:%M:%S]}
set keep-all-logs 0
set logfile-suffix ".%d%b%Y"
set switch-logfiles-at 300
set quiet-save 0


##### CONSOLE #####
#esta es la consola por defecto.
#no modificamos nada!
set console "mkcobxs"


##### FILES AND DIRECTORIES #####
#modificamos el archivo donde se almacenara la configuracion del usuario
set userfile "usuario.user"

#dejamos el resto como viene por defecto
set sort-users 0
set help-path "help/"
set text-path "text/"
set temp-path "/tmp"
set motd "text/motd"
set telnet-banner "text/banner"
set userfile-perm 0600


##### BOTNET/DCC/TELNET #####
#no modificamos nada, solo es util cuando son varios redes de bot's!

##### MORE ADVANCED SETTINGS #####
#comentamos esta linea en primer lugar!!!
#die "Please make sure you edit your config file completely."
# y tambien descomentamos est alinea y le indicamo el dueno del bot
set owner "Usuario"
#estas son configuraciones para firewalls y para socks


##### MODULES #####
#dejamos por defecto esto.  Esto se configura mas adelante cuando estemos configurando los canales de forma personalizada.
set chanfile "mybotcha.chan"

#descomentamos y agregamos el canal
#channel add #lamest


#### SERVER MODULE ####
#aqui configuramos los servidores de IRC!

#en mi caso
set net-type 5

#el nombre del bot principal
set nick "Ariel_test"

#nombre alternativo del bot
set altnick "Ariel_test2"

#ponemos algo para no dejarlo vacio
set realname "/msg Ariel_test hello

#aqui ponemos el puerto de nuestro server:
set default-port 6667

#aqui agregamos nuestros servidores
set servers {
   morgan.freenode.net:6666
   morgan.freenode.net:6667
   wright.freenode.ne:6666
   wright.freenode.ne:6667
   card.freenode.net:6666
   card.freenode.net:6667
 }
#el resto lo dejamos como esta


#### NOTES MODULE ####

#comentamos:
#die "You didn't edit your config file completely like you were told, did you?"
----------------------------------------------------------------------------

12)renombramos el archivo de configuracion con el nick personalizado
cp eggdrop.conf nick.coonf

13) antes de finalizar debemos entrar al irc con un cliente de irc, puede ser:a xchat, irssi, mirc, lo que sea, antes de ejecutar el bot.

14) iniciamos el eggdrop con el archivo de configuracion
./eggdrop -m nick.conf

notas:
-cuando ejecutamos el programa vemos como automaticamente se conecta el bot a nuestro servidor(es) de irc y al canal predeterminado!
-desde ahora no necesitamos volver a ejecutar el comando anterior, solo ./eggdrop



PRIMERA IDENTIFICACION COMO DUENOS

1) para identificarnos como duenos y este automaticamente. el bot guarda  nuestro nick y parte de nuestra ip.
/msg nick-bot hello

2) ahora le indicamos la contrasena
/msg nick-bot pass nuestro-passwd

Y listo!


AGREGAR EGGDROP AL INICIO DEL SISTEMA

nota:
el script se encuentra en scritps/autobotchk

listamos todos las entradas del crontab actual
ctrontab -l

ejecutamos este comando para que el eggdrop inicie automaticamente en nuestro crontab
./scripts/autobotchk archivo-config -dir /home/usuario/directorio-eggdrop/ -noemail

vemos la diferencia entre el anterior contab y vemos la nueva entrada
ctrontab -l

Luego de agregar todo encendemos el crontab y lo agreamos a los servicios de inicio:
a) service crond start
b) chkconfig crond on

LISTO!

nota: si reinicias el equipo que tiene el bot tienes que iniciar session como el usuario eggdrop para que el cron se ejecute.


Hasta aqui la instalacion y configuracion basica.  En la proxima entrega vamos a comunicarnos con nuestro bot para darle ordenes, agregaremos usuarios, les daremos permisos a los usuarios por canal o de forma global, configuraremos opciones y permisos a nuestro canal y crearemos una lista negra para los traviesos.