Está en la página 1de 11

Introduccin a Linux/Debian

Introduccin a Linux/Debian
Construir un paquete Debian desde cdigo fuente
Los paquetes y el sistema de paquetes son parte fundamental dentro de Debian. El esfuerzo de muchos desarrolladores se centra en debianizar fuentes, es decir adaptar ficheros fuentes para que funcionen de acuerdo con el sistema de paquetes de Debian. Cualquier persona puede realizar un paquete aunque para que ste forme parte de la distribucin debe ser desarrollador oficial. Necesitamos disponer de los ficheros fuentes con el cdigo original del programa que queremos "debianizar". Para este ejemplo utilizaremos las fuentes del programa "Hello" que muestra un mensaje de bienvenida por la pantalla Primero buscamos el paquete, por ejemplo tinyproxy. apt-get cache search tinyproxy Segundo descargamos el cdigo fuente. apt-get source tinyproxy Tercero resolvemos dependencias apt-get build-dep tinyproxy Cuarto, modificamos lo que nos interese tanto en el cdigo fuente como en las opciones de compilacin y seguidamente creamos el paquete. dpkg-buildpackage -rfakeroot -us -uc Si todo va bien, que debe ir bien. Al hacer ls -lha *deb Veremos el paquete creado para nuestra mquina. Para instalarlo dpkg -i tinyproxy

Otro ejemplo
Obtener los archivos fuentes Necesitamos disponer de los ficheros fuentes con el cdigo original del programa que queremos "debianizar". Para este ejemplo utilizaremos las fuentes del programa "Hello" que muestra un mensaje de bienvenida por la pantalla. Descomprimimos las fuentes (normalmente se encuentran en un archivo.tgz), en este caso el archivo se llama hello_2.1.1.tar.gz Modificando los fuentes Algunos cambios comunes en los ficheros fuente son: Cambiar la ruta de instalacin Normalmente los programas se instalan en el directorio /usr/local. En Debian este directorio est reservado para las aplicaciones del administrador del sistema. Los programas en Debian deben instalarse en la ruta /usr/bin. Normalmente los programas utilizan el fichero makefile como guin (script) para compilar. Por lo tanto deberemos mirar en este archivo y cambiar la lnea: BIN = /usr/local/bin por:

Introduccin a Linux/Debian BIN = /usr/bin Cambiar las libreras Normalmente en el fichero makefile se hace referencia a libreras que puede que no se encuentren en Debian o ni siquiera en Linux. Por lo tanto habr que cambiar esas libreras por otras que existan en Debian y que hagan lo mismo. Proceso de debianizacin. Directorio /debian Nos situamos en el directorio de hacemos: dh_make -e tudireccin@de.correo -f ../hello_2.1.1.orig.tar.gz

dh_make es un paquete que probablemente no tengamos instalado en nuestro sistema por lo que habr que descargarlo: apt-get install dh_make. Se trata de un script para debianizar fuentes. Tras ejecutar este comando nos crear, dentro del directorio donde se encuentran las fuentes, la carpeta "debian" que contendr una estructura de archivos necesaria para crear el paquete de Debian. Bajo el directorio /debian hay algunos ficheros que no pueden faltar y que habr que editar para completar lo que hizo por defecto "dh_make", estos ficheros son: Fichero "control": Este fichero contiene varios valores que "dpkg" y "dselect" usarn para gestionar el paquete. Por ejemplo, nombre del paquete, desarrollador, prioridad, dependencias, arquitecturas soportadas, descripcin. Fichero "copyright": Este fichero contiene la informacin sobre la licencia y copyright de las fuentes originales del paquete. Fichero "changelog": Este fichero contiene informacin que usan dpkg y otros programas para obtener el nmero de versin, revisin, distribucin y urgencia de tu paquete. Fichero "rules": Ahora se necesita mirar las reglas exactas que "dpkg-buildpackage" utilizar para crear el paquete. Este fichero es en realidad otro Makefile, pero diferente al que viene en las fuentes originales. A diferencia de otros ficheros en debian/, ste necesita ser configurado como ejecutable. "dh_make" te crea un por defecto que debera servir para paquetes simples. Dentro del directorio /debian, adems de estos ficheros hay muchos ms. Algunos de ellos tiene la extensin.ex, esto indica que son ejemplos. Crear el paquete Entramos en el directorio principal del programa y ejecutamos: dpkg-buildpackage -rfakeroot

Te pedir que introduzcas dos veces tu clave PGP. Tras ejecutarse, en el directorio inmediatamente superior aparecern una serie de archivos: hello_x.x.orig.tar.gz: Es el cdigo fuente original. hello_x.x.diff.gz: Este fichero comprimido contiene todos y cada uno de los cambios que se hizo al cdigo fuente original. hello_x.x.dsc: Es una breve descripcin del paquete, est firmada con PGP por la persona que lo ha empaquetado y tiene una valor de control (funcin hash MD5) de los dos ficheros anteriores para poder detectar si han sido modificados por alguien ajeno al desarrollador. hello_x.x_i386.deb: Este es el paquete binario completo. Puedes usar "dpkg" para instalar o eliminar tanto ste paquete como cualquier otro. hello_x.x_i386.changes: Este fichero describe todos los cambios hechos en la revisin actual del paquete, y es usado por los programas de gestin del archivo FTP para instalar los paquetes binarios y fuentes en

Introduccin a Linux/Debian l. Se genera parcialmente a partir del fichero changelog y el fichero.dsc. Este fichero est firmado con PGP o GPG, de forma que cualquiera puedes estar an ms seguro de que es realmente tuyo.

Instalacin del servidor de correo Courier


Instalacin de un servidor de correo Courier. Montamos SMTP correo saliente Envio y recepcin de e-mail POP3 Se usa para descargar. IMAP Descarga tb + por defecto solo descarga encabezados. Integraremos el SMTP con maildrop y atravs de este con un antivirus y un antispam A instalar: courier-authdaemon courier-base courier-imap courier-maildrop courier-mta courier-mta-ssl courier-pop courier-pop-ssl

apt-get install courier-authdaemon courier-base courier-imap courier-maildrop courier-mta courier-mta-ssl courier-pop courier-pop-ssl

Eliminar script de arranque en Debian update-rc.d -f exim4 remove eliminar certificado de prueba del ssl del pop3: rm /etc/courier/pop3d.pem editamos el /etc/courier/pop3d.cnf vi /etc/courier/pop3d.cnf -> /contenido Salimos y creamos el certificado mkpop3dcert Editamos ahora el similar a pop3 pero para servicio smtp vi /etc/corier/esmtpd.cnf Despues de editar este fichero, hacemos: cd /usr/bin rm /usr/lib/courier/esmtpd.pem mkesmtpdcert rm /etc/courier/esmtpd.pem ln -s /usr/lib/courier/esmtpd.pem /etc/courier/esmtpd.pem

Introduccin a Linux/Debian Ahora creamos los alias de dominios. Se usan para centralizar cuentas. Nunca se debe leer el correo como root, postmaster, mailer-daemon, debido a lo cual se redirige a otra cuenta. Editamos el fichero /etc/courier/aliases/system. vi /etc/courier/aliases/system Y ponemos #Ponemos aqu al usuario del sistema al que queremos que llegue el correo. postmaster: jesus Creamos el directorio: mkdir /etc/courier/aliasdir/ Ejecutamos: makealiases Ahora vamoa configurar el SMTP-AUTH que consiste en: ampliar datos sobre relays Relay abierto, no pide claves para el envio de coreo. Relay cerrado pide clave para enviar correo, bsicamente debido al spam Le vamos aindicar a courrier que debe pedir nombre y contrasea. vi /etc/courier/esmtpd Y buscamos AUTHMODULES Debe poner lo que pone, verificar que no est vacio "" Ahora buscamos ESMTPAUTH y ponemos ESMTPAUTH="LOGIN" Ahora le indicamos que queremos ser un relay completamente cerrado vi /etc/courier/smtpaccess/default No permitimos enviar correo sin contrasea a las redes 10* y 192.168*, para lo cual comentamos las lneas siguientes 10 allow,RELAYCLIENT 192.168 allow,RELAYCLIENT Siempre que se toca /etc/courier/smtpaccess/default se debe hacer: makesmtpaccess Creamos el fichero /etc/courier/me y metemos: vi /etc/courier/me pol4.net localhost localhost.localdomain

Introduccin a Linux/Debian Y en el fichero /etc/courier/locals metemos lo mismo que antes: vi /etc/courier/locals pol4.net localhost localhost.localdomain Con esto ya casi est. Para arrancar el servicio, se deben parar varios demonios. Debido a esto vamos a hacer un script para que lo haga l solo: #!/bin/bash /etc/init.d/courier-authdaemon restart && /etc/init.d/courier-mta restart && /etc/init.d/courier-pop restart && /etc/init.d/courier-imap restart && /etc/init.d/courier-mta-ssl restart && /etc/init.d/courier-pop-ssl restart Le damos permisos de ejecucin chmod u+x /sbin/reiniciacourier Quedan unos ajustes, pero ya puede enviar y recibir correo. Hay 2 formas de dejar el correo: Mailbox Implica que haya un fichero por usuario y dentro todos los correos. Maildir Es multifichero y new, un fichro por correo nuevo sin leer cur, un fichero por correo nuevo pero leido tmp, Esta estructura de tipo maildir usa en cada /home/usuario del sistema. Debido a lo cual si queremos que se cree este directorio automticamente cuando creamos un nuevo usuario, crearemos este direcorio en el /etc/skel. De la siguiente manera: su - jesus maildirmake Maildir Esto para cada usuario. Para usuarios nuevos, en /etv/skel se crea el direcotrio Mail maildirmake /etc/skel/Maildir

Introduccin a Linux/Debian

22/11/05
Estandares: crear fichero /etc/courier/bofh nano /etc/courier/bofh Y metemos este texto opt BOFHADMIME=accept Algunos sistemas mandan cabeceras erroneas, como hotmail. Hay tres formas de solucionar esto Rechazarlo Aceptarlo Por defecto-> Envia un mensaje de aviso con el correo, debido a lo cual puede haber errores. enlace Para evitar esto, se hace lo comentado antes. Para conseguir ms rapidez de conexin: En /etc/courier/esmtpd nano /etc/courier/esmtpd Buscamos TCPDOPTS y lo cambiamos por: TCPDOPTS="-stderrlogger=/usr/sbin/courierlogger -nodnslookup -noidentlookup" -nodnslookup impide que cuando en el correo viene la ip, no la consulta de nuevo. -noidentlooku, evita que se conecte al servicio ident de la mquina que se conecta.

Integracin de un antivirus con el correo.


Instalacin Courier --> amavis --> antivirus 1.- Buscar el paquete Debian que instale el fp-linux-ws. Lo descargamos. wget ftp:/ / ftp. f-prot. com/ pub/ linux/ fp-linux-ws_4. 6. 2-1_i386. deb Lo instalamos dpkg -i /home/jesus/fp-linux-ws_4.6.2-1_i386.deb 2.- Vamos a http://www.amavis.org/y descargamos el paquete en cdigo fuente. wget http:/ / www. amavis. org/ dist/ perl/ amavis-0. 3. 12. tar. gz 3.- Seleccionamos en el software de contribucin un parche wget http:/ / www. amavis. org/ contrib/ amavis-courier. patch. 2 4.-Descomprimimos el amavis. tar xvfz amavis-0.3.12.tar.gz 5.- Aplicamos el parche que hemos bajado patch -p1 < /tmp/amavis-courier.patch.2

Introduccin a Linux/Debian 6.- Ahora hay que instalar una serie de librerias. apt-get install libmime-perl libconvert-tnef-perl libconvert-uulib-perl libarchive-tar-perl libcompress-zlib-perl libunix-syslog-perl nomarch libconfig-inifiles-perl libfile-mmagic-perl perl-suid unarj lha unrar rar libwww-perl zoo libarchive-zip-perl Bsicamente son librera de compresin y descompresin de archivos. 7.- Instalar el paquete arc apt-get install arc 8.- Seguimos cd `aclocal --print-ac-dir` Nos da un error debido a que aclocal no est instalado. Lo buscamos en debian.org Est en el paquete automake como binario. Instalamos automake. apt-get install automake Volvemos a ejecutar cd `aclocal --print-ac-dir` cd `aclocal --print-ac-dir` Nos da como resultado el cambio de directorio al punto donde se encuentra aclocal. Debemos buscar un archivo m4source/acx_pthread.m4 en el google y lo copiamos al directorio que nos da el comando anterior.
http:/ / sentinel. dk/ cookbook/ ?Courier-ClamAV-Amavis_combo& print http:/ / www. google. com/ search?q=m4source%2Facx_pthread. m4& sourceid=mozilla& start=0& start=0& ie=utf-8& oe=utf-8

Y descargamos el archivo acx_pthread.m4 wget http:/ / autoconf-archive. cryp. to/ acx_pthread. m4 En el directorio arriba indicado. Nos vamos al directorio donde descamprimimos amavis, en nuestro caso cd /tmp/amavis-0.3.12 Y ejecutamos aclocal && automake && autoconf Editamos el fichero de configuracin vi configure Y buscamos MTA=sendmail Quitamos sendmail y ponemos courier MTA=courier Aadimos un usuario useradd amavis -d /var/spool/amavis -s /bin/false

Introduccin a Linux/Debian Ahora configuramos para compilar, dentro del directorio dnde descomprimimos amavis.
./configure --with-amavisuser=amavis --enable-courier --with-mailto=postmaster --with-mailfrom=postmaster --enable-credits

Salida Configuration summary for amavis 0.3.12 "2003-03-07": Install amavis as: ${exec_prefix}/sbin/amavis Configured for use with: courier Configuration type: simple Original sendmail.cf: Use virus scanner(s): FRISK Antivirus for Linux Scanner runs as: amavis Logging to syslog: yes Run-time directory: /var/amavis Quarantine directory: /var/virusmails Max. recursion depth: 20 Max. archive nesting depth: 3 Max. number of extracted files: 500 Add X-Virus-Scanned header: yes Display AMaViS credits: yes Warn sender: yes Warn recipient(s): yes Reports sent to: postmaster Reports sent by: postmaster Y hacemos make && make install En estos momentos el Amavis ya est instalado, solo falta integrarlo con courier. Integracin de Amavis con Courier 24112005 Le damos todos los permisos a la carptea amavis chmod 777 /var/amavis /var/virusmails Y que ambas capetas pertenezcan al usuario amavis chown amavis /var/amavis /var/virusmails Y por fin solo queda editar el fichero /etc/courier/courierd. vi /etc/courier/courierd Buscamos DEFAULTDELIVERY, esta direccin la cambiamos para que pase por el antivirus antes de ir a la carpeta de correo, usamos maildrop para que antes de entregar el correo, lo pase por antivirus, antispam.... Cambiamos lo que hay por defecto por: DEFAULTDELIVERY="| /usr/bin/maildrop" Editamos fichero de configuracin del maildrop. vi /etc/courier/maildroprc

Introduccin a Linux/Debian Y metemos esto #Sacamos varias variables que el antivirus necesita import SENDER import RECIPIENT SH_SENDER=escape($SENDER) SH_RECIPIENT=escape($RECIPIENT) xfilter "/usr/sbin/amavis $SH_SENDER $SH_RECIPIENT" Reiniciamos courier reiniciacourier Y hacemos pruebas en envio de correo. Existen varios archivos de test buscar por eicar1.zip a eiacarn.zip Para obtener actualizaciones del antivirus. /usr/local/f-prot/tools/check-updates.pl Y para configurar las actualizaciones para que se ejecuten cada cierto tiempo usamos el crontab. Podemos hacer que se ejecute cada dia, cada semana o cada mes. Vamos a hacer que se ejecute cada dia. Editamos el el /etc/cron.daily vi /etc/cron.daily/BaseVirus Le insertamos la orden #!/bin/bash /usr/local/f-prot/tools/check-updates.pl Grabamos y salimos. Y le damos a este archivo permisos de ejecucin. chmod 755 /etc/cron.daily/BaseVirus Instalacin del AntiSpam El correo no se elimina, sino que se indica como tal. Y el usuario es quin decide qu hacer con l. apt-get install spamassassin Editamos el fichero /etc/default/spamassassin vi /etc/default/spamassassin Y ponemos ENABLED=0 a 1 ENABLED=1 Y editamos el fichero de configuracin del Maildrop vi /etc/courier/maildroprc Aadimos un nuevo xfilter antes del amavis. #Analiza correos siempre que los correos sean menores de 256K if ( $SIZE < 262144 ) {

Introduccin a Linux/Debian xfilter "/usr/bin/spamassassin -P" } Reiniciamos el courier reiniciacourier Y probamos con dos ejempos: Este sin spam

10

zcat /usr/share/doc/spamassassin/examples/sample-nonspam.txt.gz | mail -s "Correo sin Spam" jesus@pol4.net

Este con spam


cat /usr/share/doc/spamassassin/examples/sample-spam.txt | mail -s "Correo con Spam" jesus@pol4.net

Editamos el fichero /etc/spamassassin/local.cf nano /etc/spamassassin/local.cf Y ponemos rewrite_subject 1 report_header 1 defang_mime 0 Para sacar la ayuda del SpamAssessin man Mail::SpamAssassin::Conf Lista de correo vlido o invlido. Editamos /usr/share/spamassassin/60_whitelist.cf nano /usr/share/spamassassin/60_whitelist.cf Podemos configurar de forma genrica o individualizada el lenguaje delos mensajes. vi /home/jesus/.spamassassin/user_prefs buscando parte del mensaje en el sistema fgrep -i template /home/jesus/.spamassassin/*

Fuentes y contribuyentes del artculo

11

Fuentes y contribuyentes del artculo


Introduccin a Linux/Debian Fuente: http://es.wikibooks.org/w/index.php?oldid=193466 Contribuyentes: Ciencia Al Poder, Ezarate, ManuelGR, Morza, Wutsje, 19 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

También podría gustarte