TUTORIAL PARA CREAR NUESTRO PROPIO SERVIDOR DE INTERNET CON LINUX REDHAT 8.0 Y ADSL

Revisión 3.4 (14-10-2003)

Propósito
El propósito de este tutorial, es mostrar todos los pasos para montar nuestro propio servidor de Internet con una línea ADSL.

Renuncia de Responsabilidad
Este documento intenta explicar los pasos para instalar un servidor linux. No soy, ni pretendo ser un experto en instalaciones ni en Linux, únicamente redacto los pasos que yo he realizado para generar mis instalaciones. NO ME HAGO RESPONSABLE DE NINGÚN DAÑO PRODUCIDO POR ACCIONES CON BASE A ESTE DOCUMENTO.

Información sobre el Copyright
Pueden distribuirse o reproducirse copias en su integridad o parte de este documento en cualquier medio físico o electrónico sin permiso del autor, siempre que se incluya este Copyright en todas las copias.
Para cualquier consulta sobre este tutorial puedes ponerte en contacto con Xavi al correo [email protected]
Toda aportación a este documento será valorada positivamente.

CONTENIDO

 

INSTALACIÓN REDHAT 8.0

Antes de iniciar nuestra instalación, os detallo la maquina en la que vamos a instalar nuestro servidor:

  • Pentium 166
  • 64 Mb Ram
  • Tarjeta de Red
  • Tarjeta de vídeo
  • 1 disco duros IDE de 4,1 Gb
  • Necesitaremos disponer de los dos tres CD's de RedHat linux 8.0, los cuales puedes descargar las imágenes en www.redhat.com, o directamente desde su ftp :
    - ftp://ftp.redhat.com/pub/redhat/linux/8.0/en/iso/i386/
    En nuestro caso, hemos descargado las tres imágenes (.iso) y las hemos pasado a CD con el programa Easy CD Creator.
    El servidor de RedHat es bastante lento, por lo que podéis encontrar otros servidores donde descargar las imágenes .iso como http://www.linuxiso.net/

    Iniciamos la instalación colocando el CD de RedHat disco 1 en la unidad del CD-Rom y arrancando el ordenador.
    NOTA: Si tu ordenador no detecta el CD, puede ser que tengas que configurar la Bios para que inicie desde el CD, o generar los discos de arranque.
    Para generar los discos de arranque, desde un ordenador con Windows coloca el CD 1 de RedHat y inicia el programa d:\utils\rawrite.exe. Al solicitar la imagen (disk image) indica d:\images\es\boot.img. Luego te solicitará la unidad de disquete; seguidamente colocaremos la letra a. Puede ser que necesites el disquete de drivers de las tarjetas de red, el cual está en d:\images\drvnet.img (únicamente si no detecta tu tarjeta de red o discos SCSI).

  • Al arrancar, nos aparece una pantalla con varias opciónes. Nosotros tecleamos linux text y pulsamos intro. Utilizamos el modo 'text', ya que no disponemos de ratón.
  • La primera pantalla que nos aparece, es para testear los CD's de instalación que estén correctos. Si sabéis con certeza que estan bien grabados, seleccionar Skip
  • La segunda pantalla es la de bienvenida a la instalación. Pulsamos simplemente Ok.
  • Nos pregunta, es nuestro idioma. Seleccionamos Spanish y Ok.
  • Nos pregunta el tipo de teclado de nuestro ordenador. Al haber seleccionado Spanish nos aparece por defecto es. Pulsamos Ok.
  • Nos pregunta el tipo de ratón... en nuestro caso no disponemos de ratón. Nos aparece None - None. Con el tabulador nos colocamos sobre el botón Ok y pulsamos intro.
  • Nos pregunta que tipo de instalación deseamos, elegimos servidor.
  • Nos pregunta como realizar las particiones. Le indicamos que con Disk Druid.

  •    En nuestro caso utilizamos un disco duro de 4,1 Gb.
       Primero eliminamos todas las particiones que pudieran haber (seleccionamos las particiones y pulsamos el botón Borrar) y empezamos a crear nuestro espacio swap (Memoria temporal) de un tamaño de 128 Mb (el doble de la memoria del sistema). Los pasos son:
          - Nuevo
          - Como punto de montaje, no colocamos nada
          - Seleccionamos en tipo de sistema de ficheros swap
          - Seleccionamos el Disco. En nuestro caso es el hda (disco primario)
          - Indicamos el tamaño en Mb (128)
          - Pulsamos Ok
       Vamos a crear la segunda partición, en esta partición se ubican el kernel de Linux y los archivos relacionados. Los pasos son:
          - Nuevo
          - Como punto de montaje, colocamos /boot
          - Por defecto esta seleccionado como tipo de archivo ext3 (lo dejamos)
          - Seleccionamos el Disco. En nuestro caso es el hda (disco primario)
          - Indicamos 100 Mb para esta partición.
       Vamos a crear la tercera partición. En esta partición, estarán todos los archivos.
          - Nuevo
          - Como punto de montaje indicamos /
          - Por defecto está seleccionado como tipo de archivo ext3 (lo dejamos)
          - Seleccionamos el Disco. En nuestro caso es el hda (disco primario).
          - Indicamos que Ocupe todo el espacio disponible, ya que no vamos a realizar ningúna otra partición.
          - Pulsamos Ok para continuar.

  • Nos pregunta el gestor de arranque a utilizar, dejamos el gestor GRUB y pulsamos Ok.
  • Nos permite enviar parámetros al Kernel a través del gestor de arranque. No lo vamos a utilizar. Pulsamos Ok.
  • Nos permite incluir un password en el gestor de arranque GRUB. Nosotros no lo vamos a utilizar, ya que este ordenador va ha estar sin monitor ni teclado. Pulsamos Ok.
  • Nos permite configurar el gestor de arranque por si queremos contener en la misma maquina diferentes sistemas operativos. En nuestro caso únicamente estará el servidor Linux. Pulsamos Ok.
  • Nos pregunta donde instalar el gestor de arranque, le indicamos en el MBR (master boot record).
  • Nos pregunta sobre la configuración de la red. Esta maquina va a ser un servidor de Internet con una IP fija en nuestra intranet por lo que NO vamos a utilizar DHCP. Desmarcamos el cuadro Usar bootp/dhcp, y introducimos la siguiente información:

  •    Dirección IP : 192.168.0.201 (Colocar una ip que no exista en vuestra intranet)
       Máscara de red : 255.255.255.0
       Puerta de enlace predeterminado : 192.168.0.1 (En nuestro caso, es la IP del router ADSL de telefónica)
       Servidor de nombres primario : x.x.x.x (colocar la IP de vuestro ISP) (DNS)
       Servidor de nombres secundario : x.x.x.x (colocar la IP de vuestro ISP) (DNS)
       Servidor de nombres terciario : (lo dejamos en blanco) (DNS)
       Pulsamos ok, y nos aparece una ventana que nos solicita el nombre del host. en nuestro caso colocamos servidor.

  • La siguiente pantalla, es para configurar el firewall. Nosotros seleccionamos Intermedio y pulsamos en Personalizar.

  •    Marcamos :
       - eth0 (tarjeta de red)
       - WWW (HTTP)
       - SSH
       - FTP
       NOTA: Selecciona Correo (SMTP) si vas a configurar el correo electrónico.
       NOTA: No hemos seleccionado la opción de TELNET debido a su poca seguridad ya que envía las confirmaciones de login y password sin encriptar.
    Pulsamos Ok para cerrar la pantalla de configuración y Ok para cerrar la ventana de configurar el firewall.

  • La próxima ventana, es para seleccionar el idioma que deseamos. En nuestro caso seleccionamos Spanish (Spain) y pulsamos Ok.
  • Nos pregunta sobre el horario. Seleccionamos Europa/Madrid y pulsamos Ok.
  • Ahora nos solicita el password del root. Introducimos el password y pulsamos Ok. Es recomendable que tenga más de 8 caracteres. (Nota: Linux diferencia las mayúsculas de las minúsculas)
  • Ahora nos pregunta si queremos agregar un nuevo usuario... nos lo saltamos pulsando Ok directamente, ya que nosotros los crearemos posteriormente.
  • La próxima pantalla, es la de Selección de paquetes, y no seleccionamos ningúno (los que estan marcados por defecto, los desmarcamos). Los instalaremos todos manualmente, entre otras cosas, porque los personalizaremos a nuestras necesidades.
  • Empezará a formatear nuestro disco y a instalar el Linux.
  • Una vez instalado, nos pregunta si deseamos crear un disco de arranque. Este disco, nos puede servir si por algún motivo nuestro sistema no arranca. Recomiendo realizarlo.
  • Ya está instalado el Linux en nuestro PC. Sacamos el segundo CD del Linux y el disquete. El sistema se reiniciará quedándose en una pantalla donde solicitará usuario y password. Como usuario introducimos root y como password el que hemos colocado al realizar la instalación.

  • Si todo ha funcionado bien, deberíamos de tener instalado nuestro linux, con conexión a Internet a través de nuestro router. Para realizar una prueba, podemos realizar un ping a terra...
       # ping www.terra.es

     

    COMPILADORES

    Antes de empezar a instalar los paquetes que deseemos, debemos de instalar otros paquetes como los compiladores.
    Los pasos son:
       Colocamos el primer CD de RedHat 8.0.
       # mount /dev/cdrom /mnt/cdrom
       # cd /mnt/cdrom/RedHat/RPMS
       # rpm -ivh cpp-3.2-7.i386.rpm
       # rpm -ivh binutils-2.13.90.0.2-2.i386.rpm
       # rpm -ivh glibc-kernheaders-2.4-7.20.i386.rpm
       # rpm -ivh glibc-devel-2.2.95-5.i386.rpm
       # rpm -ivh gcc-3.2-7.i386.rpm
       # rpm -ivh flex-2.5.4a-26.i386.rpm
       # cd
       # umount /mnt/cdrom

     

    INSTALAR LYNX (NAVEGADOR PARA CONSOLA)

    Al no disponer de entorno gráfico, es conveniente disponer de un navegador web para consola.
       Colocamos el segundo CD de RedHat 8.0
       # mount /dev/cdrom /mnt/cdrom
       # cd /mnt/cdrom/RedHat/RPMS
       # rpm -ivh indexhtml-8.0-1.noarch.rpm
       # cd
       # umount /mnt/cdrom
       Colocamos el tercer CD de RedHat 8.0
       # mount /dev/cdrom /mnt/cdrom
       # cd /mnt/cdrom/RedHat/RPMS
       # rpm -ivh lynx-2.8.5-7.i386.rpm
       # cd
       # umount /mnt/cdrom

    Apartir de ahora podemos utilizar el navegador Lynx con: lynx http://www.dominio.com o lynx pagina.html.

     

    INSTALAR Y CONFIGURAR APACHE, PHP Y PERL

    NOTA: todos los pasos especificados a continuación y hasta el final del documento, son realizados con el usuario root.

  • Descargamos de Internet los siguientes archivos o versiones superiores en el directorio del root /root:

  •    - apache_1.3.27.tar.gz (http://www.apache.org)
       - php-4.2.3.tar.gz (http://www.php.net)
       - mod_perl-1.0-current.tar.gz (http://perl.apache.org)
    Los pasos para descargar los archivos son:
       # cd /root
       # wget http://www.apache.org/dist/httpd/apache_1.3.27.tar.gz
       # wget http://www.php.net/distributions/php-4.2.3.tar.gz
       # wget http://perl.apache.org/dist/mod_perl-1.0-current.tar.gz
       NOTA: Puede ser que en el momento que vayas a descargar estos archivos, existan versiones superiores, por lo que deberás de revisar los servidores para buscar las nuevas versiones.

    Los pasos para la instalación desde el directorio /root son:
       # tar zxvf apache_1.3.27.tar.gz
       # tar zxvf php-4.2.3.tar.gz
       # tar zxvf mod_perl-1.0-current.tar.gz

       # cd apache_1.3.27
       # ./configure --prefix=/www
       NOTA: /www determina el directorio donde se instalará el servidor apache

       # cd ../php-4.2.3
       # ./configure --with-mysql --with-apache=../apache_1.3.27 --enable-track-vars
       # make
       # make install

    Si queremos usar el PHP como CGI, al estilo Perl, Bash, de manera que sea independiente del apache, podemos seguir los siguientes pasos:
       # ./configure --with-mysql --enable-discard-path
       # make
       # cp php /usr/local/bin

       # cd ../mod_perl-1.27
       # perl Makefile.PL APACHE_SRC=../apache_1.3.27/src/ DO_HTTPD=1 USE_APACI=1 EVERYTHING=1 APACHE_PREFIX=/www
       # make
       # make install

       # cd ../apache_1.3.27
       # ./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a --activate-module=src/modules/perl/libperl.a
       # make
       # make install

       # cd ../php-4.2.3
       # cp php.ini-dist /usr/local/lib/php.ini

    Vamos a modificar el archivo /usr/local/lib/php.ini ya que por defecto, no permite la utilización del método POST entre otras. En la línea donde pone register_globals = Off ponemos register_globals = On. (hay que reiniciar el servidor apache con /www/bin/./apachectl restart)

  • Ahora, vamos a crear dos usuarios, uno que será el usuario con el que nosotros podremos acceder vía ftp a nuestra web, y el segundo será el usuario con el que podremos acceder remotamente a la maquina mediante ssh.

  • Creamos el primer usuario: # useradd userweb -d /home/http (userweb es el nombre que se desea para acceder mediante ftp y para el servidor Apache. '-d' determina el nombre y ubicación del directorio. La información de nuestra web estará en /home/http)
    Colocamos su password: # passwd userweb

    Creamos el segundo usuario: # useradd xavi -G userweb (-G determina el grupo al que pertenece)
    Colocamos su password: # passwd xavi
    NOTA: Al no haber seleccionado la opción de TELNET en la personalización del firewall en el momento de instalar Linux, no tenemos acceso mediante éste. Accederemos desde ssh.
    Si utilizamos Windows para conectarnos, podremos utilizar programas como putty, que nos permiten utilizar ssh. Desde linux, simplemente con $ ssh x.x.x.x -l usuario podremos acceder.

  • Dentro de /home/http vamos a crear el directorio cgi-bin, donde colocaremos los scripts de Perl y le indicamos que el usuario y grupo del directorio es userweb.

  •    # cd /home/http
       # mkdir cgi-bin
       # chown userweb cgi-bin
       # chgrp userweb cgi-bin

  • Este primer usuario (userweb), no queremos que puede acceder mediante ssh a nuestra maquina, pero si queremos que pueda hacerlo mediante FTP por lo que vamos a modificar el archivo /etc/passwd.

  • En la línea donde aparece este usuario...
    userweb:x:500:500::/home/http:/bin/bash, hay que modificar /bin/bash por /bin/ftponly
    En el directorio /bin creamos un nuevo archivo denominado ftponly (para ello utilizar el editor vi (vi ftponly)), en el cual en su interior colocamos:
       #!/bin/sh
       exit 1
    Le damos privilegios de lectura y ejecución para todos los usuarios:
       # chmod 755 ftponly
    Esta shell tiene que aparecer en el listado de shells de linux en el archivo /etc/shells. Añadimos la siguiente línea al archivo :
       /bin/ftponly

  • Vamos a terminar de configurar nuestro servidor Apache con PHP y PERL.

  • Editamos el archivo /www/conf/httpd.conf. En nuestro caso, seguimos utilizando el editor vi.
    Las líneas a modificar son:
       En la línea #ServerName ... eliminamos la almohadilla (#) de comentario (en nuestro caso quedará ServerName servidor)
       En #User nobody y #Group nobody eliminamos nobody y colocamos userweb, que es el usuario que hemos seleccionado para la web.
       En DocumentRoot colocamos la ruta en la que hemos creado el usuario para acceso ftp a nuestra web (en nuestro caso quedara DocumentRoot "/home/http")
       En <Directory "/www/htdocs"> colocamos lo mismo que en el paso anterior (quedaría <Directory "/home/http">)
       En DirectoryIndex index.html lo modificaremos para que quede así: DirectoryIndex index.php index.html index.htm
       En ScriptAlias /cgi-bin/ "/www/cgi-bin/" lo modificaremos para que quede así: ScriptAlias /cgi-bin/ "/home/http/cgi-bin/"
       En <Directory "/www/cgi-bin"> lo modificaremos para que quede así: <Directory "/home/http/cgi-bin/">
       Colocamos manualmente estas líneas dentro de <IfModule mod_mine.c> debajo de AddHandler type-map var.
          AddType application/x-httpd-php .php
          AddType application/x-httpd-php-source .phps

  • Ahora ya podemos iniciar nuestro servidor para probarlo.

  • Nos posicionamos en el directorio /www/bin y ejecutamos el servidor
       # ./apachectl start

  • En el directorio /home/http creamos un archivo denominado index.php y en el interior colocamos:

  •    <?
       phpinfo();
       ?>

  • Desde cualquier ordenador conectado a la intranet, colocaremos la IP del servidor (en nuestro caso 192.168.0.201) en un navegador de Internet y deberemos de visualizar una pagina con la configuración de php.
  • Ahora, podemos eliminar los directorios /root/apache_1.3.22, /root/php-4.1.2 y /root/mod_perl-1.27 que son los directorios que hemos utilizado para instalar Apache, PHP y Perl. No eliminamos los paquetes, ya que nos puedes hacer falta si deseamos reinstalar cualquier paquete.

  •    # cd /root/
       # rm -rf apache_1.3.22
       # rm -rf php-4.1.2
       # rm -rf mod_perl-1.27

  • Para que al iniciar Linux se ejecute el demonio httpd del Apache vamos a modificar el archivo /etc/rc.d/rc.local, y al final del mismo colocamos:

  •    /www/bin/apachectl start

     

    CONFIGURAR LOGROTATE

  • 'logrotate' es un sistema de rotacion de logs (ficheros de información de estado que generan algunos programas. La utilidad logrotate está pensada para simplificar la administración de los ficheros de log (también llamados ficheros bitácora). 'logrotate' efectua una rotación automática con posible compresión de los datos y otras opciones, como su borrado programado o envío por email al administrador.
  • Por defecto, nuestro servidor Apache guarda los logs en el directorio /www/logs/, generando los archivos access_log y error_log.

  • Si deseamos cambiar esta ubicación, podemos hacerlo modificando las lineas ErrorLog /www/logs/error_log y CustomLog /www/logs/access_log common del archivo de configuración del Apache (/www/conf/httpd.conf).

  • Diariamente se ejecuta a las 4:02 de la madrugada mediante el demonio 'crond' el contenido del directorio /etc/cron.daily donde se encuentra el archivo logrotate que se encarga de ejecutar el archivo /etc/logrotate.conf el cual contiene un include (include /etc/logrorate.d) que ejecuta todos los archivos del directorio definido en el mismo.
  • En el directorio /etc/logrotate.d/ generaremos un nuevo archivo denominado 'httpd' el cual contendra:

    /etc/logrotate.d/httpd
    
    /www/logs/access_log {
        daily
        rotate 30
        copytruncate
        postrotate
            /usr/bin/killall -HUP httpd
        endscript
        compress
    }
    		

    Al colocar este archivo, nos rotara nuestro log de apache diariamente (daily) y lo mantendra durante 30 dias antes de eliminarlo. Una vez rotado, reiniciara el demonio httpd y finalmente comprimira el archivo rotado.

  • En el fichero
    /var/lib/logrotate.status se almacena la fecha en que se rotó cada fichero de logs por última vez.

  • compress : comprime el fichero una vez rotado. La opuesta es nocompress.

  • copytruncate : trunca el fichero actual y comienza nuevamente a escribir en él.
    create [permisos] [dueño] [grupo] : después de la rotación se creará un fichero nuevo con el mismo nombre que el anterior especificando los permisos en notación numérica, el dueño y el grupo. De no especificarse alguno de estos campos se asumirán los del fichero anterior.
    daily | weekly | monthly : indican que la rotación se haga diaria, semanal, o mensual, respectivamente.
    errors <correo> : se enviarán por correo los errores durante el proceso de rotación a la dirección especificada.
    extension <ext> : se coloca la extensión especificada a los ficheros después de la rotación. Si estos se comprimen se añade además '.gz'.
    notifempty : si el fichero está vacío no se rota. Por defecto se hace lo opuesto (ifempty).
    include <fichero | directorio> : permite incluir otros ficheros de configuración o todos los contenidos en un directorio.
    missingok : si el fichero de logs no existe se genera un mensaje de error.
    postrotate/endscript : todo lo que esté entre estas directivas se ejecutará después de la rotación.
    prerotate/endscript : todo lo que esté entre estas directivas se ejecutará antes de la rotación.
    rotate <n> : el fichero será rotado n veces antes de ser borrado.
    size <n> : el fichero se rotará cuando alcance el tamaño n. Si se pone k después de n indicará que se expresa el tamaño en kilobytes y M para megabytes.

     

    INSTALAR Y CONFIGURAR WEBALIZER (http://www.mrunix.net/webalizer/)

    Vamos a instalar el paquete webalizer, el cual nos analizara el log de nuestra web.

    Antes de instalarlo, necesitamos incluir los paquetes zlib-devel-1.1.4-4.i386.rpm y gd-1.8.4-9.i386.rpm del CD 1 de RedHat 8.0. Los pasos son:
       Colocamos el primer CD de RedHat 8.0.
       # mount /dev/cdrom /mnt/cdrom
       # cd /mnt/cdrom/RedHat/RPMS
       # rpm -ivh zlib-devel-1.1.4-4.i386.rpm
       # rpm -ivh gd-1.8.4-9.i386.rpm
       # cd
       # umount /mnt/cdrom
    Del CD 2 de RedHat 8.0, incluiremos los paquetes libpng-devel-1.2.2-6.i386.rpm y gd-devel-1.8.4-9.i386.rpm. Los pasos son:
       Colocamos el segundo CD de RedHat 8.0.
       # mount /dev/cdrom /mnt/cdrom
       # cd /mnt/cdrom/RedHat/RPMS
       # rpm -ivh libpng-devel-1.2.2-6.i386.rpm
       # rpm -ivh gd-devel-1.8.4-9.i386.rpm
       # cd
       # umount /mnt/cdrom

    Descargamos el archivo webalizer-2.01-10-src.tgz o versión superior con wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tgz

    Los pasos para instalar webalizer son:
       # tar zxvf webalizer-2.01-10-src.tgz
       # cd webalizer-2.01-10
       # ./configure --with-language=spanish
       # make
       # make install

    La instalación, nos genera el archivo /etc/webalizer.conf.sample, el cual vamos a copiar con cp /etc/webalizer.conf.sample /etc/webalizer.conf para generar nuestro propio archivo de configuración.
    Editamos el archivo /etc/webalizer.conf y modificamos los parámetros:


    #LogFile /var/lib/httpd/logs/access_logLogFile /www/logs/access_log
    #OutputDir /var/lib/httpd/htdocs/usageOutputDir /home/http/stats
    #Incremental noIncremental yes
    #HostName localhostHostName dominio.com
    #PageType php3PageType php*
    #ReallyQuiert noReallyQuiert yes
    #VisitTimeout 1800VisitTimeout 1800
    #CountryGraph yesCountryGraph no
    #TopSites 30TopSites 100
    #TopKSites 10TopKSites 10
    #TopURLs 30TopURLs 100
    #TopKURLs 10TopKURLs 10
    #TopReferrers 30TopReferrers 30
    #TopAgents 15TopAgents 15
    #TopCountries 30TopCountries 30
    #TopEntry 10TopEntry 100
    #TopExit 10TopExit 100
    #TopSearch 20TopSearch 20
    #TopUsers 20TopUsers 20
    Debajo de la línea #IndexAlias home.htm añadimosIndexAlias index.php
    IndexAlias index.htm
    IndexAlias index.html

    Para ejecutar el archivo utilizaremos: webalizer -c /etc/webalizer.conf

    Seria interesante que se ejecute automáticamente una vez al dia, para ello utilizaremos el demonio cron. Editamos el archivo /etc/crontab y añadimos la línea 01 4 * * * root /usr/local/bin/webalizer -c /etc/webalizer.conf. Se ejecutara a las 4:01 de la madrugada, un minuto antes que el 'logrotate'.
    Reiniciamos el demonio crond con service crond restart

     

    INSTALAR Y CONFIGURAR DNS (http://www.isc.org/products/BIND/)

    Vamos a montar nuestro propio servidor de nombres (DNS) para uso interno en nuestra intranet. De esta manera, podremos acceder a nuestro propio dominio de Internet desde nuestra intranet pudiendo utilizar nuestros nombres de dominio.
    Para este servidor vamos a utilizar los nombres de dominio 'dominio.com' y 'segundodominio.com'.

    Tenemos que instalar el paquete bind-9.2.1-9.i386.rpm desde el CD de RedHat.

    Los pasos son:
       Colocamos el primer CD de RedHat 8.0.
       # mount /dev/cdrom /mnt/cdrom
       # cd /mnt/cdrom/RedHat/RPMS
       # rpm -ivh bind-9.2.1-9.i386.rpm
       # cd
       # umount /mnt/cdrom

    Tenemos que crear el archivo /etc/named.conf y indicar que vamos a tener alojados en nuestra maquina el dominio 'diminio.com' y 'segundodominio.com'. Para ello colocamos:

    named.conf
    
    options {
          directory "/var/named";
          // query-source address * port 53;
    };
    
    controls {
          inet 127.0.0.1 allow { localhost; } keys { rndckey; };
    };
    
    zone "dominio.com" {
          type master;
          file "dominio.db";
    };
    
    zone "0.168.192.in-addr.arpa" {
          type master;
          file "dominio.rev";
    };
    
    zone "segundodominio.com" {
          type master;
          file "segundodominio.db";
    };
    
    include "/etc/rndc.key";

    Tendremos que generar los archivos dominio.db, dominio.rev y segundodominio.db en el directorio /var/named

    dominio.db
    
    @       IN      SOA     dominio.com.           root.dominio.com.      (
            2001071601 ; Numero de serie
            28800 ; tasa de refreso en segundos
            3600 ; tasa de reintento en segundos
            3600000 ; Caducidad para el secundario en segundos
            3600 ; Tiempo de validez para clientes en segundos
    )
    
    @        IN      NS      ns1.dominio.com.
    @        IN      NS      ns2.dominio.com.
    
    @        IN      MX      1		ns1.dominio.com.
    @        IN      MX      2		ns2.dominio.com.
    
                    IN      A       192.168.0.201
    localhost       IN      A       127.0.0.1
    www             IN      A       192.168.0.201
    ns1             IN      A       192.168.0.201
    ns2             IN      A       192.168.0.202
    mail            IN      A       192.168.0.201

    dominio.rev
    
    @       IN      SOA     dominio.com.    root.dominio.com.      (
            2001071601 ; Numero de serie
            28800 ; tasa de refreso en segundos
            3600 ; tasa de reintento en segundos
            3600000 ; Caducidad para el secundario en segundos
            3600 ; Tiempo de validez para clientes en segundos
    )
    
    @         IN      NS      ns1.dominio.com.
    
    201       IN      PTR     ns1.dominio.com.

    segundodominio.db
    
    @       IN      SOA     segundodominio.com.           root.segundodominio.com.      (
            2001071601 ; Numero de serie
            28800 ; tasa de refreso en segundos
            3600 ; tasa de reintento en segundos
            3600000 ; Caducidad para el secundario en segundos
            3600 ; Tiempo de validez para clientes en segundos
    )
    
    @        IN      NS      ns1.segundodominio.com.
    @        IN      NS      ns2.segundodominio.com.
    
    @        IN      MX      1		ns1.segundodominio.com.
    @        IN      MX      2		ns2.segundodominio.com.
    
    @                IN      A       192.168.0.201
    localhost       IN      A       127.0.0.1
    www             IN      A       192.168.0.201
    ns1     IN      A       192.168.0.201
    ns2     IN      A       192.168.0.202
    mx1             IN      A       192.168.0.201

    Vamos a probar si funciona iniciando el demonio del DNS con service named start y ha realizar un ping a cada uno de los dos dominios que hemos creado con ping dominio.com, ping www.dominio.com, ping segundodominio.com y ping www.segundodominio.com. Nos aparecerá algo como:

    [root@servidor root]# ping www.dominio.com
    PING www.dominio.com (192.168.0.201) from 192.168.0.201 : 56(84) bytes of data.
    64 bytes from 192.168.0.201: icmp_seq=1 ttl=64 time=0.168 ms
    64 bytes from 192.168.0.201: icmp_seq=2 ttl=64 time=0.143 ms
    64 bytes from 192.168.0.201: icmp_seq=3 ttl=64 time=0.130 ms

    Para iniciar automáticamente el demonio named al arrancar Linux, ejecutamos ntsysv. Nos aparece una pantalla donde podemos seleccionar que demonios se ejecutaran al iniciar el sistema. Seleccionamos named con la tecla espaciadora.

    Para que cuando coloquemos desde nuestra intranet cualquiera de estos dos dominios, tenemos que modificar nuestro servidor Apache y la DNS primaria del resto de maquinas que tengamos en nuestra intranet colocando la ip de nuestro Linux (192.168.0.201).

     

    INSTALAR Y CONFIGURAR MYSQL (http://www.mysql.com)

  • Descargamos de Internet el siguiente archivo o versión superior en el directorio del root /root:

  •    - mysql-3.23.53a-pc-linux-gnu-i686.tar.gz
    Los pasos para descargarlo es:
       # cd /root
       # wget ftp://ftp.plig.org/pub/mysql/Downloads/MySQL-3.23/mysql-3.23.53a-pc-linux-gnu-i686.tar.gz

  • Los pasos para instalar esta versión está en el archivo INSTALL-BINARY que viene con el paquete, los cuales están aquí copiados:

  •    # groupadd mysql
       # useradd -g mysql mysql
       # cd /usr/local
       # gunzip < /root/mysql-3.23.53a-pc-linux-gnu-i686.tar.gz | tar xvf -
       # ln -s mysql-3.23.53a-pc-linux-gnu-i686 mysql
       # cd mysql
       # scripts/mysql_install_db
       # chown -R root /usr/local/mysql
       # chown -R mysql /usr/local/mysql/data
       # chgrp -R mysql /usr/local/mysql
       # bin/safe_mysqld --user=mysql &
       # /usr/local/mysql/bin/./mysqladmin -u root password '123456' (modificar 123456 por el password que se quiera dar al root de mysql)

  • Ahora vamos a realizar los pasos para que al iniciar el sistema, cargue el demonio mysqld.

  • Copiamos el archivo de arranque de mysql con :
       # cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/
    Cambiamos los privilegios del archivo mysql.server para poder ser ejecutable:
       # chmod 755 /etc/rc.d/init.d/mysql.server
    Editamos el archivo mysql.server y modificamos la línea pid_file=$datadir/`@HOSTNAME@`.pid cambiando @HOSTNAME@ por el nombre que le hemos colocado a nuestra maquina (servidor).
    Vamos a modificar el archivo /etc/rc.d/rc.local, y al final del mismo colocamos:
       /etc/rc.d/init.d/mysql.server start

    Reiniciamos la maquina con la instrucción # shutdown -r now
    Si todo ha funcionado correctamente, ya tenemos configurado nuestro servidor web con Apache, PHP y base de datos MySQL.

  • Para mejorarlo un poco más, modificamos el archivo /etc/passwd en la línea que pone: mysql:x:502:502::/home/mysql:bin/bash lo modificamos por mysql:x:502:502::/home/mysql:bin/nologin para que no pueda iniciar sesión ftp o ssh. Al no dejar entrar al usuario mysql por ftp ni ssh, podemos eliminar el directorio /home/mysql de la siguiente manera:

  •    # cd /home/
       # rm -rf mysql/

  • Para visualizar los procesos que se estan ejecutando cada 3 segundos en nuestro servidor mysql:

  •    # cd
    /usr/local/mysql/bin/

       # ./mysqladmin -i3 -u root -p processlist

     

    INSTALAR Y CONFIGURAR PHPMYADMIN (http://www.phpmyadmin.net)

  • Descargamos de Internet la ultima versión del phpMyAdmin en nuestro directorio web, en nuestro caso es /home/http/.

  •    # cd /home/http/
       # wget http://heanet.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.5.1-php.tar.gz
    Descomprimimos y desempaquetamos:
        # tar zxvf phpMyAdmin-2.5.1-php.tar.gz
    Cambiamos el nombre de nuestro directorio con mv phpMyAdmin-2.5.1/ myadmin
    Por defecto el servidor web Apache, utiliza el usuario y grupo de trabajo 'nobody'. Se puede comprobar a través del archivo /www/conf/httpd.conf. Si has seguido los pasos de este tutorial, el usuario y grupo que hemos colocado es userweb.
    Modificamos el archivo de configuración config.inc.php. En nuestro caso utilizamos el editor 'vi':
        # cd myadmin
        # vi config.inc.php
    Colocamos el password de MySQL en la linea: $cfg['Servers'][$i]['password'] = ''
    Colocamos la ubicación exacta de phpMyAdmin en la linea: $cfg['PmaAbsoluteUri'] = 'http://www.dominio.com/myadmin/';
    Guardamos el archivo.

    Vamos a dar permisos de usuario y grupo a nuestra carpeta
        # chown -R userweb myadmin
        # chgrp -R userweb myadmin
    Vamos a cambiar los permisos de nuestra carpeta
        # chmod -R 500 myadmin

    Ya podemos abrir un navegador y visualizar las bases de datos mediante web. Hay muchas mas opciones para configurar, pero estas son las minimas para que funcione.

     

    INSTALAR Y CONFIGURAR EL SERVIDOR FTP (http://www.vsftpd.org)

  • Primero de todo, tenemos que montar el CD 1 de RedHat 8.0.

  • Para montarlo: # mount /dev/cdrom /mnt/cdrom, siendo el directorio /mnt/cdrom donde se encontraran los archivos del cd.
    Si aparece el error "mount: /dev/cdrom no es el dispositivo de bloques válido", teclear: modprobe cdrom, y vuelve a montarlo.
    Una vez montado el CD 1, nos colocamos en el directorio /mnt/cdrom/RedHat/RPMS/ e instalamos los paquetes necesarios para nuestro servidor ftp con:
       # cd /mnt/cdrom/RedHat/RPMS/
       # rpm -ivh xinetd-2.3.7-2.i386.rpm
       # rpm -ivh libcap-1.10-12.i386.rpm
       # rpm -ivh vsftpd-1.1.0-1.i386.rpm
       # rpm -ivh anonftp-4.0-12.i386.rpm
    Para comprobar que está bien instalado, en un directorio donde no estén los paquetes rpm, colocamos rpm -qa *ftp*. Nos debería indicar que los paquetes están todos instalados:
       # cd
       # rpm -qa | grep ftp
       anonftp-4.0-12
       ftp-0.17-15
       vsftpd-1.1.0-1
       lftp-2.5.2-5
    Desmontamos el CD con: umount /mnt/cdrom

  • Una vez tenemos todos los paquetes instalados correctamente, hay que indicar a xinet que nos permitá utilizar el servidor ftp. Para ello, modificamos el archivo /etc/xinet.d/vsftpd. En la línea que indica disable = yes modificamos el yes por un no.

  • Iniciamos el demonio xinetd con : service xinetd start
    Ahora ya tenemos nuestro servidor ftp en funcionamiento. Cualquier usuario registrado en nuestro servidor puede acceder mediante ftp a su directorio.

  • El problema es que cualquier usuario dado de alta en nuestra máquina, puede moverse por los directorios de nuestro servidor mediante su conexión ftp, cualquier usuario puede conectarse a nuestro servidor como usuario anonymous. Para que esto no suceda editamos el archivo /etc/vsftpd.conf y modificamos:

  •    En la línea anonymous_enable=YES la colocamos a NO.
       En la línea #chroot_list_enable=YES y #chroot_list_file=/etc/vsftpd.chroot_list eliminamos el #.
       En la línea #ls_recurse_enable=YES eliminanos el # y modificamos el YES por NO.
    Creamos un nuevo archivo en el directorio /etc/ denominado vsftpd.chroot_list en el cual vamos a colocar los nombre de los usuarios que deseamos que pueda acceder mediante ftp. En nuestro caso colocamos userweb y en la siguiente línea xavi.

     

    INSTALAR Y CONFIGURAR SAMBA (http://www.samba.org)

  • Montamos el CD 1 de RedHat 8.0 con mount /dev/cdrom /mnt/cdrom

  • Nos posicionamos en el directorio # cd /mnt/cdrom/RedHat/RPMS/
    Instalamos el paquete:
       cups-libs-1.1.15-10.i386.rpm con rpm -ivh cups-libs-1.1.15-10.i386.rpm
    Desmontamos el CD 1 de RedHat 8.0 (umount /mnt/cdrom), montamos el CD 2 (mount /dev/cdrom /mnt/cdrom) y nos posicionamos en el directorio (cd /mnt/cdrom/RedHat/RPMS/)
    Instalamos el paquetes:
       perl-CGI-2.81-55.i386.rpm con rpm -ivh perl-CGI-2.81-55.i386.rpm
    Y finalmente los paquetes del samba:
       samba-2.2.5-10.i386.rpm
       samba-common-2.2.5-10.i386.rpm
       samba-client-2.2.5-10.i386.rpm
    Para instalarlos ejecutamos rpm -ivh samba*. De esta manera instalará todos los paquetes samba.

  • Editamos el archivo /etc/samba/smb.conf para configurarlo

  •    En la línea workgoup = MYGROUP colocamos nuestro grupo de trabajo.

  • Vamos a indicar que el usuario xavi utilizará el demonio Samba y el password que utilizará.

  •    # cd /etc/samba/
       # smbpasswd -a xavi xxxxxx
    Con smbpasswd -x xavi elimina el usuario.
    El usuario xavi tiene que existir como usuario de linux. 'xxxxxx' sera el password con el que accederemos al samba.
    Por defecto samba tiene definida la sección [homes] que permite a cualquier usuario registrado en samba acceder a su directorio personal de Linux. Por ejemplo el usuario xavi puede acceder por defecto a /home/xavi/ si esta dado de alta como usuario en samba.

  • Si queremos acceder a cualquier otro directorio que no sea de un usuario:

  • Como ejemplo, vamos a crear un directorio dentro de /home/xavi/ denominado samba
    Al final del archivo /etc/samba/smb.conf vamos a colocar:
       [xavisamba]
        comment = Directorio Samba Xavi
        path = /home/xavi/samba
        valid user = xavi
        public = no
        writable = yes
        create mask = 0644
        create mode = 0644
        directory mask = 0755
        directory mode = 0755

  • Iniciamos el demonio smb con: service smb start o con /etc/rc.d/init.d/./smb start

  • Con findsmb sabremos si nuestro archivo smb.conf esta correcto.
    Este demonio, dependiendo de la utilidad que vayamos a darle, podemos configurarlo para que se inicie automáticamente con la instrucción ntsysv y seleccionando el demonio 'smb'. En nuestro caso, no lo colocamos ya que lo arrancaremos cuando lo necesitemos a través de ssh.

  • Para determinar las unidades compartidas de una maquina, utilizaremos:

  •    # smbclient -U username -L host

  • Para conectarse a un servidor samba a través de linux, la instrucción sería :

  •    # smbmount
    //192.168.0.201/xavi
    /mnt/floppy -o username=xavi, password=password del usuario,uid=xavi

    Si entramos en el directorio /mnt/floppy, nos encontraremos con el directorio del usuario xavi (sirve cualquier directorio que esté vació)
    Para desmontarlo:
       # smbumount /mnt/floppy

  • Para conectarse a un servidor samba a través de Windows, sera a través del Explorador de Windows en el menú Herramientas-Conectar a unidad de Red

  • Como carpeta indicaremos : \\192.168.0.201\xavi

     

    INSTALAR Y CONFIGURAR SENDMAIL CON AUTENTIFICACIÓN (http://www.sendmail.org)

  • En las imágenes ISO de RedHat 8.0 viene la versión 8.12.5-7 de sendmail, la cual es susceptibles a un ataque que permite que un usuario remoto ejecute código arbitrario en el servidor de correo, con privilegios de administrador.

  • Para solucionar el problema, no instalaremos las versiones que viene con el CD, sino que descargamos de http://rdh.redhat.com o de http://www.rpmfind.net las versiones actualizadas:
        # wget ftp://ftp.rpmfind.net/linux/redhat/updates/8.0/en/os/i386/sendmail-8.12.8-1.80.i386.rpm
        # wget ftp://ftp.rpmfind.net/linux/redhat/updates/8.0/en/os/i386/sendmail-cf-8.12.8-1.80.i386.rpm

  • Por defecto, ya tenemos instalado y corriendo el demonio sendmail. Para comprobarlo:

  •    # ps -A | grep sendmail
    Aparecera algo como:
       642 ?      00:00:00 sendmail
       652 ?      00:00:00 sendmail

    Tenemos que actualizar la nueva versión:
       service sendmail stop
       rpm -U sendmail-8.12.8-1.80.i386.rpm

  • Deberemos de instalar los paquetes imap-2001a-15.i386.rpm y cyrus-sasl-gssapi-2.1.7-2.i386.rpm que se encuentran en el segundo CD de RedHat 8.0, el paquete m4-1.4.1-11.i386.rpm que se encuentra en el primer CD y el paquete sendmail-cf-8.12.8-1.80.i386.rpm que hemos descargado.

  • Para montarlo: # mount /dev/cdrom /mnt/cdrom, siendo el directorio /mnt/cdrom donde se encontraran los archivos del cd.
    Nos posicionamos en el directorio # cd /mnt/cdrom/RedHat/RPMS/
    Instalamos los paquetes:
       rpm -ivh imap-2001a-15.i386.rpm
       rpm -ivh cyrus-sasl-gssapi-2.1.7-2.i386.rpm (únicamente si vamos a utilizar autentificación)
    Desmontamos el segundo CD (umount /dev/cdrom) y montamos el primer CD (mount /dev/cdrom /mnt/cdrom)
    Instalamos el paquetes:
       rpm -ivh m4-1.4.1-11.i386.rpm
    Desmontamos el primer CD (umount /dev/cdrom) y instalamos el paquete que hemos descargado:
       rpm -ivh sendmail-cf-8.12.8-1.80.i386.rpm

  • Editamos el archivo /etc/mail/local-host-names y introducimos en su interior todos los dominios que vamos a utilizar para enviar correo. En nuestro caso sera dominio.com y segundodominio.com (uno debajo del otro).

  • Editamos el archivo /etc/mail/sendmail.mc y modificamos:
    Modificamos la línea dnl define(`SMART_HOST',`smtp.your.provider') eliminando dnl de comentario y modificando smtp.your.provider por nuestro dominio SMTP que en este caso sera senvidor.com. Quedaría así: define(`SMART_HOST',`servidor.com')
    Por defecto Sendmail solo permitirá enviar correo desde la interfaz loopback (127.0.0.1), es decir, desde el mismo servidor. Como nuestro servidor de correo se podrá acceder desde Internet, comentaremos la línea DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl colocando dnl.
    Eliminamos el dnl de las líneas: (únicamente si vamos a utilizar autentificación)
       dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
       dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    En LOCAL_DOMAIN(`localhost.localhost')dnl colocaremos nuestro dominio, en este caso: LOCAL_DOMAIN(`dominio.com')dnl.
    Compilamos el archivo sendmail.mc
       m4 /etc/mail/sendmail.mc > /etc/sendmail.cf

  • Editamos el archivo /etc/mail/access y comentamos todas las líneas, ya que no vamos a utilizarlo: (Este paso únicamente se realizara si vamos a utilizar autentificación. Si no vamos a utilizar autentificación tener cuidado de que no utilicen vuestro servidor para enviar spam)
    Compilamos el archivo access
       makemap hash /etc/mail/access.db < /etc/mail/access

    Será de utilidad designar un alias a la cuenta de correo de root a fin de recibir los mensajes generados por el sistema en una cuenta común de usuario. Abra el archivo /etc/aliases, en donde al final encontrará la siguientes líneas:
    # Person who should get root's mail
    #root:         marc
    Esto corresponde a la cuenta de correo local hacia donde se redireccciona el correo de root. Quita '#' de la última línea y asigna el nombre de la cuenta de usuario que utilizas normalmente. En nuestro caso utilizaremos la de xavi. quedando así:
    # Person who should get root's mail
    root:         xavi
    A fin de que este nuevo alias surta efecto y pueda ser utilizado por Sendmail debe utilizar el comando newaliases.

    Reiniciamos sendmail con service sendmail restart.

  • Vamos a indicar a nuestro servidor, que debe poder enviar y recibir correo a través del mismo. Para ello, modificamos el archivo /etc/xinetd.d/ipop3 y el archivo /etc/xinetd.d/imap modificando la línea disable = yes por disable = no. Reiniciamos el demonio xinetd con service xinetd restart.
  •  

    INSTALAR Y CONFIGURAR SQUIRRELMAIL (WEBMAIL) CON SENDMAIL (http://www.squirrelmail.org)

  • Descargamos el paquete actual en el directorio donde se encuentra nuestra web (/home/http)

  •     # wget http://aleron.dl.sourceforge.net/sourceforge/squirrelmail/squirrelmail-1.2.11.tar.gz

    Todos los pasos aquí especificados han sido sacados de la pagina oficial http://squirrelmail-es.ath.cx/wiki/GuiaNovatos.
    Descomprimimos y desempaquetamos:
        # tar zxvf squirrelmail-1.2.11.tar.gz
    Cambiamos el nombre de nuestro directorio con mv squirrelmail-1.2.11 webmail
    Por defecto el servidor web Apache, utiliza el usuario y grupo de trabajo 'nobody'. Se puede comprobar a través del archivo /www/conf/httpd.conf. Si has seguido los pasos de este tutorial, el usuario y grupo que hemos colocado es userweb.
    Vamos a dar permisos de usuario y grupo a nuestra carpeta
        # chown -R userweb webmail
        # chgrp -R userweb webmail
    Vamos a cambiar los permisos de nuestra carpeta
        # chmod -R 500 webmail
    Crearemos un directorio para los archivos temporales adjuntos en los correos
        # cd webmail
        # mkdir attach
    Daremos derechos a los directorios
        # chmod 700 data
        # chmod 730 attach
    Ahora vamos a configurar nuestro webmail. Nos posicionamos en el directorio config (cd /home/http/webmail/config/) y ejecutamos el archivo ./conf.pl (Es necesario tener instalado el Perl).
    Los datos que vamos a modificar son:
    -menú 1 opción 6, poner como código de default language: es_ES para que funcione en español.
    -menú 2 opción 1, colocamos nuestro dominio. En este caso: dominio.com.
    -menú 2 opción 8, determinamos que utilizamos Autentificación si hemos seguido los pasos de este tutorial.
    -menú 3 opciónes 3,4,5, para que el efecto de traducción sea completo cambiarlos a español.
    Guardamos los datos con 's' y salimos con 'q'.

    Ya podemos abrir un navegador con nuestro dominio http://www.dominio.com/webmail/

     

    INSTALAR Y CONFIGURAR QMAIL

  • Descargamos de Internet los siguientes archivos o versiones superiores en el directorio del root /root

  •    - qmail-1.03.tar.gz (http://www.qmail.org)
       - ucspi-tcp-0.88.tar.gz (http://cr.yp.to/ucspi-tcp.html)
    Los pasos para descargar los archivos son:
       # cd /root
       # wget http://cr.yp.to/software/qmail-1.03.tar.gz
       # wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
       NOTA: Puede ser que en el momento que vayas a descargar estos archivos, hayan versiones superiores, por lo que deberás de revisar los servidores para buscar las nuevas versiones.

    Los pasos para la instalación desde el directorio /root son:
       # tar zxvf qmail-1.03.tar.gz
       # tar zxvf ucspi-tcp-0.88.tar.gz

       # cd qmail-1.03

    Creamos el directorio donde se instalara qmail
       # mkdir /var/qmail

    Crearemos los grupos y usuarios necesarios para utilizar qmail
       # groupadd nofiles
       # useradd -g nofiles -d /var/qmail/alias alias
       # useradd -g nofiles -d /var/qmail qmaild
       # useradd -g nofiles -d /var/qmail qmaill
       # useradd -g nofiles -d /var/qmail qmailp
       # groupadd qmail
       # useradd -g qmail -d /var/qmail qmailq
       # useradd -g qmail -d /var/qmail qmailr
       # useradd -g qmail -d /var/qmail qmails

    Compilamos qmail
       # make setup check

    Especificamos el nombre del servidor (hostname) y nombre del dominio
       # ./config-fast servidor.dominio.com
    Modificamos los archivos /var/qmail/control/locals, /var/qmail/control/rcpthosts y /var/qmail/control/me añadiendo dominio.com sin el nombre de la maquina.

    Los correos especiales como postmaster, mailer-daemon y root es redirigido hacia el pseudo-usuario alias
       # (cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root)
       # chmod 644 ~alias/.qmail*

    Mantendremos el agente de procesamiento de correo procmail que viene por defecto.
       # cp /var/qmail/boot/proc /var/qmail/rc

    procmail se ejecutara mediante un usuario no privilegiado por lo que necesitamos cambiar los permisos.
       # chmod 1777 /var/spool/mail/

    Eliminamos el gestor de correos sendmail que viene por defecto.
       # service sendmail stop
       # rpm -e sendmail

    Diversos programan asumen que por defecto esta instalado sendmail...
       # ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
       # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
    Editamos el archivo /etc/man.config y añadimos la línea MANPATH /var/qmail/man

       # cd /root/ucspi-tcp-0.88
       # make
       # cp tcpserver tcprules /usr/sbin/
    Vamos a configurar el sistema para que al iniciar se ejecute qmail. Tenemos que averiguar UID y GID del usuario qmaild
       # id qmaild
    Editamos el fichero /etc/rc.d/rc.local y añadimos:
       csh -cf '/var/qmail/rc &'
       /usr/sbin/tcpserver -u UID -g GID 0 smtp /var/qmail/bin/qmail-smtpd & (reemplazamos UID y GID por los valores devueltos en la instrucción anterior)
    Podemos reiniciar el sistema con shutdown -r now o ejecutamos diremtanente las dos instrucciones anteriores.
    Tenemos que instalar el paquete imap-2001a-15.i386.rpm del CD 2 de RedHat 8.0
       # mount /dev/cdrom /mnt/cdrom
       # cd /mnt/cdrom/RedHat/RPMS/
       # rpm -ivh imap-2001a-15.i386.rpm
    desmontamos el cd con umount /mnt/cdrom
    Activamos el pop3 editando el archivo /etc/xinetd.d/ipop3 y modificando la línea disabled = yes por disabled = no
    Reiniciamos el servicio xinetd con service xinetd restart.
    Vamos a indicar desde donde se pueden enviar los correos. Creamos el archivo /etc/tcp.smtp con:

    tcp.smtp
    
    127.:allow,RELAYCLIENT=""
    192.168.0.:allow,RELAYCLIENT=""
    =:allow
    :deny
    
    ###
    # Activa el relaying desde cualquier ip
    #
    # :allow,RELAYCLIENT=""
    ###
    # Activar el envío desde localhost y red local
    #
    # 127.:allow,RELAYCLIENT=""
    # 192.168.0.:allow,RELAYCLIENT=""
    # =:allow
    # :deny
    ###
    # Instrucción para activarlo
    #
    # tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
    #
    # Modificar la ejecución de tcpserver en el archivo /etc/rc.d/rc.local
    #
    # /usr/sbin/tcpserver -x /etc/tcp.smtp.cdb -u UID -g GID 0 smtp /var/qmail/bin/qmail-smtpd &
    ###

    Para activarlo:
       # tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
    Tenemos que modificar el archivo /etc/rc.d/rc.local y reemplazar la línea actual por esta: /usr/sbin/tcpserver -x /etc/tcp.smtp.cdb -u UID -g GID 0 smtp /var/qmail/bin/qmail-smtpd & (recuerda reemplazar el UID y GID).

  • Si deseamos que el dominio "segundodominio.com" también disponga de direcciones de correo, añadiremos al final del archivo /var/qmail/rcpthosts y /var/qmail/locals: segundodominio.com y servidor.segundodominio.com.

  • Reiniciamos el qmail:
    Buscamos el PID de qmail
       # ps -A | grep qmail
    Nos aparecera algo como:
    [root@servidor root]# ps -A | grep qmail
    1009 pts/0    00:00:00 qmail-send
    1011 pts/0    00:00:00 qmail-lspawn
    1012 pts/0    00:00:00 qmail-rspawn
    1013 pts/0    00:00:00 qmail-clean

    Eliminamos qmail-send (comprobamos que el numero coincida)
       # kill -9 1009
    Iniciamos qmail
       # csh -cf '/var/qmail/rc &'

     

    UN POCO DE SEGURIDAD

  • Modificamos el archivo /etc/hosts.allow y colocamos las siguientes líneas para permitir acceso a ssh y ftp desde cualquier máquina de Internet:

  •    sshd: 0.0.0.0/0.0.0.0
       vsftpd: 0.0.0.0/0.0.0.0

    Si deseamos dar acceso de correo electrónico, colocamos:
       ipop3d: 0.0.0.0/0.0.0.0
       sendmail: 0.0.0.0/0.0.0.0 (si utilizamos sendmail)
       imapd: 0.0.0.0/0.0.0.0 (si utilizamos squirrelmail)

  • Modificar el archivo /etc/hosts.deny y denegamos todas las entradas restantes añadiendo la línea:

  •    all:all

    Primeramente el sistema revisa el archivo hosts.allow, si no encuentra el servicio que se solicita, salta a revisar el archivo hosts.deny.

     

    AUTOMATIZAR

    Vamos a automatizar el servidor para obtener el máximo rendimiento.

  • Eliminar los escritorios que no utilizamos. Como esta maquina va a ser un servidor, y no va a tener ningún monitor, vamos a eliminar 4 escritorios, dejando únicamente el 1 y 2.
  • Editamos el archivo /etc/inittab y eliminamos las líneas:
    3:2345:respawn:/sbin/mingetty tty3
    4:2345:respawn:/sbin/mingetty tty4
    5:2345:respawn:/sbin/mingetty tty5
    6:2345:respawn:/sbin/mingetty tty6

    Reiniciamos el servidor con shutdown -r now para que las modificaciones tengan efecto.

     

    CONFIGURAR MAQUINA

  • Una vez todo instalado correctamente, lo único que nos queda, es indicar en la BIOS de la máquina, que no nos avise de los posibles errores que encuentre al arrancar, porque lo que vamos ha hacer, es quitarle el teclado y monitor, ya que a partir de ahora no nos servirán.
  • En nuestro caso, al iniciar la máquina pulsamos la tecla SUPR para entrar en la bios. Entramos en "STANDARD CMOS SETUP" y en la opción "Halt On" seleccionamos "NO Errors". Guardamos las modificaciones y paramos la máquina.
    Ahora desconectamos el teclado y el monitor y dejamos únicamente el cable de corriente y de red.
    Ya podemos iniciar nuestro servidor...

     

    CONFIGURAR ROUTER

  • Esta configuración depende mucho del tipo de router que la compañía de telecomunicaciones os haya colocado, pero lo que tenéis que hacer es colocar un buen password de administrador en el router y redireccionar las entradas de los puertos 80, 22 y 21 'tcp' a la ip 192.168.0.201 que es la que hemos colocado en nuestro linux. Si vamos a dar servicio de DNS abriremos el puerto 53 'udp' y 'tcp'.
  • El puerto 80 es el de web, el 22 de ssh y el 21 de ftp.
    Si deseamos recibir correo del exterior a nuestro servidor, deberemos de abrir el puerto 25 del pop3. Si deseamos que desde el exterior tengan acceso a leer las cuentas de correo, Deberemos de abrir el puerto 110 del smtp.
    Para mayor información sobre la modificación del router, podéis visitar adslnet.ws, www.adslayuda.com, www.adslspain.com, www.adsl4ever.com...

     

    SOLICITAR UN DOMINIO

  • El último paso, es registrar un dominio y redireccionarlo a la ip de la ADSL. En mi caso, en www.nominalia.es solicite un dominio y el servicio de DNS's.
  • En el momento de indicar las DNS's, indicar a nominalia que no disponéis de servidor de DNS y que os den el servicio de resolución de nombres. Os redireccionarán el dominio a vuestra IP y el router a vuestro servidor linux, de esta manera ya dispondréis de un servidor en Internet.


    http://www.lawebdelprogramador.com