jueves, 13 de marzo de 2008
Instalacion perfecta Debian Etch
| La Instalación Perfecta - Debian 4.0 "Etch" | |
|
| Versión 1.0 Autor: Falko Timme <ft [en] falkotimme.com> Este tutorial muestra como configurar un servidor basado en Debian Etch (Debian 4.0) que ofrezca todos los servicios requeridos por proveedores de acceso y alojamiento: servidor web Apache (con soporte SSL), servidor de correo Postfix con SMTP-AUTH y TLS, servidor DNS BIND, servidor FTP Proftpd, servidor MySQL, Courier POP3/IMAP, Quota, Firewall, etc. Este documento ha sido escrito para la versión de 32 bits de Debian Etch, aunque también debería funcionar con la de 64 bits mediante unas pequeñas modificaciones. Se utilizarán los siguientes programas:
Al finalizar debería tener un sistema de desempeño confiable, y si quisiera podría instalar un panel de control de alojamiento web gratuito como pr ejemplo ISPConfig. Esta no es la única manera de configurar un sistema de estas características. Existen muchas formas de hacerlo pero esta es la que yo he seguido. No garantizo que esto funcione para usted.
1 RequerimientosPara instalar el sistema necesitará:
2 Nota PreliminarEn este tutorial uso el nombre de host servidor1.prueba.gov.ar con la dirección IP 192.168.0.100 y la puerta de enlace 192.168.0.1. Deberá reemplazar estos datos con los apropiados a su escenario.
3 Sistema BaseInserte el CD Debian Etch Netinstall y arranque su sistema desde él. Presione ENTER:
La instalación comienza, en primer lugar debe escoger el idioma:
Luego seleccione su ubicación:
Elija una distribución de teclado:
El programa verifica el CD de instalación, su hardware y configura la red automáticamente si existe un servidor DHCP:
Ingrese el nombre de host. En este ejemplo, el sistema se llama servidor1.prueba.gov.ar, de modo que ingreso servidor1:
Ingrese el nombre de su dominio. En este ejemplo es prueba.gov.ar:
Ahora debe particionar su disco duro. Por simplicidad crearé una única partición (con el punto de montaje /) y una pequeña partición swap así que selecciono Guiado - usar todo el disco (por supuesto, el particionado depende totalmente de usted - si lo prefiere, puede crear más que una sola partición, también puede usar LVM):
Seleccione el disco que quiere particionar:
Luego escoja un esquema de particionado. Como se mencionó antes, elegí Todos los ficheros en una partición (recomendado para novatos) por simplicidad - la selección depende de sus preferencias:
Cuando este listo, seleccione Finalizar el particionado y escribir los cambios en el disco:
Seleccione Sí cuando se le pregunte ¿Desea escribir los cambios en los discos discos?:
Seguidamente, sus nuevas particiones serán creadas y rebirán formato: Luego deberá ingresar una clave para el superusuario (root):
Confirme la clave para evitar errores:
Cree una cuenta de usuario normal, por ejemplo el usuario Administrador con el nombre de usuario administrador (no utilice el nombre de usuario admin ya que en Debian Etch es un nombre reservado):
Ahora está siendo instalado el sistema base:
A continuación debe configurar apt. Puesto que está utilizando el CD Netinstall de Debian Etch que solamente contiene un mínimo grupo de paquetes, deberá utilizar una réplica en red:
Seleccione el país donde está ubicada la réplica en red que quiere usar (usualmente esto es el país don su sistema Debian Etch está situado):
Luego seleccione la réplica que quiere usar (ej. debian.logiclinux.com):
A menos que utilice un proxy HTTP, deje en blanco el siguiente campo y presione Continuar:
Ahora apt está actualizando su base de datos de paquetes:
Puede saltear la encuesta de uso de paquetes seleccionando No:
Necesitamos un servidor web, servidor DNS, servidor de correo y una base de datos MySQL, pero nunca selecciono alguno de ellos porque quiero tener control total sobre lo que se instala en mi sistema. Instalaremos los paquetes necesarios manualmente más adelante. Por ello seleccionamos Sistema estándar y presionamos Continuar:
Los paquetes requeridos están siendo instalados en el sistema:
Cuando se le pregunte: Instalar el cargador de arranque GRUB en el registro principal de arranque, seleccione Sí:
Tras lo cual será instalado el cargador de arranque GRUB:
La instalación del sistema base ha finalizado. Quite el CD Netinstall de Debian Etch de la unidad y presione Continuar para reiniciar el sistema:
En el próximo paso...
4 Instalar el Servidor SSHDebian Etch no instala OpenSSH en forma predeterminada, debemos hacerlo ahora. Ejecute apt-get install ssh openssh-server
5 Configurar la RedEl instalador de Debian Etch ha configurado nuestro sistema para que obtenga los parámetros de la red via DHCP, necesitamos cambiar eso ahora puesto que un servidor debería tener una dirección IP estática. Edite /etc/network/interfaces y ajústelo a sus necesidades (en esta configuración de ejemplo uso la dirección IP 192.168.0.100) (note que reemplacé allow-hotplug eth0 con auto eth0; de otro modo no será posible reiniciar la red y necesitaremos reiniciar el sistema completo): vi /etc/network/interfaces
Luego reinicie la red: /etc/init.d/networking restart Edite /etc/hosts. Haga que se vea así: vi /etc/hosts
Ahora ejecute echo servidor1.prueba.gov.ar > /etc/hostname y reinicie el sistema: shutdown -r now Posteriormente, ejecute hostname Ambos deberían mostrar servidor1.prueba.gov.ar. A partir de ahora puede usar un cliente SSH tal como PuTTY y conectarse desde su estación de trabajo a su servidor Debian Etch para seguir con los restantes pasos de este tutorial.
6 Edite /etc/apt/sources.list y Actualice su Instalación LinuxEdite /etc/apt/sources.list. Comente las lineas que refieren al CD. Debería ver algo similar a esto: vi /etc/apt/sources.list
Luego ejecute apt-get update para actualizar la base de datos de paquetes apt y apt-get upgrade para instalar las últimas actualizaciones (si hubiera alguna).
7 Instalar Algunos ProgramasAhora instalaremos unos pocos paquetes que serán necesarios más adelante. Ejecute apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev linux-kernel-headers lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ (Este comando debería ir en una sóla linea!)
8 Quota(Si ha escogido un esquema de particionado diferente al que he utilizado deberá ajustar este capítulo de modo tal que quota sea aplicada en aquellas particiones donde usted la necesite.) Para instalar quota, ejecute apt-get install quota Edite /etc/fstab. El mío se ve así (agregué ,usrquota,grpquota a la partición /dev/hda1 (punto de montaje /; el nombre de su dispositivo podría ser /dev/sda1 o similar)): vi /etc/fstab
para habilitar quota, ejecute estos comandos: touch /quota.user /quota.group
9 Servidor DNSEjecute apt-get install bind9 Por razones de seguridad queremos ejecutar BIND enjaulado (chrooted) de modo que tendremos que seguir los siguientes pasos: /etc/init.d/bind9 stop Edite el archivo /etc/default/bind9 para que el demonio corra con el usuario sin privilegios bind, encerrado en /var/lib/named. Modifique la linea: OPTIONS="-u bind" para dejarla como OPTIONS="-u bind -t /var/lib/named": vi /etc/default/bind9
Cree los directorios necesarios en /var/lib: mkdir -p /var/lib/named/etc Luego mueva el directorio de configuración desde /etc a /var/lib/named/etc: mv /etc/bind /var/lib/named/etc Cree un enlace simbólico al nuevo directorio de configuración desde la atigua ubicación (para evitar problemas cuando bind sea actualizado en el futuro): ln -s /var/lib/named/etc/bind /etc/bind Cree los dispositivos null y random, y corrija los permisos de los directorios: mknod /var/lib/named/dev/null c 1 3 Necesitamos modicar/etc/default/syslogd ya que aún podemos tener importantes mensajes (logs) en los registros del sistema. Modifique la linea: SYSLOGD="" para que se pueda leer: SYSLOGD="-a /var/lib/named/dev/log": vi /etc/default/syslogd
Reinicie el demonio de registro (logging): /etc/init.d/sysklogd restart Inicie BIND, y veriique si hay errores en /var/log/syslog: /etc/init.d/bind9 start
10 MySQLPara instalar MySQL, ejecutamos apt-get install mysql-server mysql-client libmysqlclient15-dev Queremos que MySQL escuche en todas las interfaces, no solo localhost, entonces editamos /etc/mysql/my.cnf y descomentamos la linea bind-address = 127.0.0.1: vi /etc/mysql/my.cnf
Luego reiniciamos MySQL: /etc/init.d/mysql restart Ahora chequeamos que está habilitado el servicio de red. Ejecute netstat -tap En la salida debería ver una linea como esta: tcp 0 0 *:mysql *:* LISTEN 3281/mysqld Ejecute mysqladmin -u root password la_clave_del_super_usuario_sql para establecer una clave para el usuario root (de otro modo cualquiera podrá acceder a su base de datos MySQL!).
11 Postfix con SMTP-AUTH y TLSPara instalar Postfix con SMTP-AUTH y TLS siga los pasos siguientes: apt-get install postfix libsasl2 sasl2-bin libsasl2-modules libdb3-util procmail postgrey Le serán hechas dos preguntas. Responda de acuerdo a lo siguiente: General type of configuration? <-- Internet Site Luego ejecute dpkg-reconfigure postfix Nuvamente, algunas preguntas le serán hechas: General type of configuration? <-- Internet Site Luego, haga esto: postconf -e 'smtpd_sasl_local_domain =' Posteriormente creamos los certificados para TLS: mkdir /etc/postfix/ssl chmod 600 smtpd.key openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted mv -f smtpd.key.unencrypted smtpd.key Luego configuramos Postfix para TLS: postconf -e 'smtpd_tls_auth_only = no' El archivo /etc/postfix/main.cfdebería verse similar a esto: cat /etc/postfix/main.cf
Reinicie Postfix: /etc/init.d/postfix restart La autenticación será hecha por saslauthd. Debemos modificar unas pocas cosas para que funcione adecuadamente. Ya que Postfix se ejecuta enjaulado (chrooted) en /var/spool/postfix debemos hacer lo siguiente: mkdir -p /var/spool/postfix/var/run/saslauthd Ahora tendremos que editar /etc/default/saslauthd para activar saslauthd. Coloque el parámetro START en sí y cambie la linea OPTIONS="-c" por OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r": vi /etc/default/saslauthd
Ahora inicie saslauthd: /etc/init.d/saslauthd start Para comprobar que SMTP-AUTH y TLS funcionana apropiadamente ejecute el siguiente comando: telnet localhost 25 Luego de establecer la conexión con su servidor de correo Postfix ingrese ehlo localhost Si ve las lineas 250-STARTTLS y 250-AUTH PLAIN LOGIN todo está bien. La salida en mi sistema se ve como esto: servidor1:/etc/postfix/ssl# telnet localhost 25 Escriba quit para regresar a la linea de comandos.
12 Courier-IMAP/Courier-POP3Ejecute esto para instalar Courier-IMAP/Courier-IMAP-SSL (para IMAPs en el puerto 993) y Courier-POP3/Courier-POP3-SSL (para POP3s en el puerto 995): apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0 Dos preguntas le serán hechas: Create directories for web-based administration ? <-- No Si no quiere usar ISPConfig, configure Postfix para entregar mensajes de correo al Maildir* de los usuarios: postconf -e 'home_mailbox = Maildir/' *Nota: No necesita hacer esto si planea usar ISPConfig en su sistema ya que ISPConfig hace los ajustes necesarios usando recetas procmail. Pero asegúrese de habilitar Maildir en Management -> Server -> Settings -> EMail en la interfaz web de ISPConfig.
13 Apache/PHP5Ahora instalaremos Apache: apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert A continuación instalaremos PHP5: apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl La siguiente pregunta le será realizada: Continue installing libc-client without Maildir support? <-- Yes Seguidamente editamos /etc/apache2/mods-available/dir.conf: vi /etc/apache2/mods-available/dir.conf y cambiamos la linea DirectoryIndex line:
Edite /etc/apache2/ports.conf y agregue Listen 443: vi /etc/apache2/ports.conf
Ahora necesitamos habilitar algunos módulos de Apache (SSL, rewrite, suexec e include): a2enmod ssl Recargue la configuración de Apache: /etc/init.d/apache2 force-reload
13.1 Deshabilitar PHP Globalmente(Si no planea instalar ISPConfig en este servidor, saltee esta sección!) En ISPConfig configurará PHP por sitio web, puede especificar que sitio web puede ejecutar scripts PHP y cual no. Esto solamente puede funcionar si PHP es desabilitado globalmente ya que de otro modo todos los sitios web serían capaces de ejecutar scripts PHP, no importa que especifique en ISPConfig. Para desabilitar PHP globalmente, editamos /etc/mime.types y comentamos las lineas application/x-httpd-php: vi /etc/mime.types
Edite /etc/apache2/mods-enabled/php5.conf y comente las siguientes lineas: vi /etc/apache2/mods-enabled/php5.conf
Luego reinicie Apache: /etc/init.d/apache2 restart
14 ProftpdPara instalar Proftpd, ejecute apt-get install proftpd ucf Se le preguntará: Run proftpd from inetd or standalone? <-- standalone Luego abra /etc/proftpd/proftpd.conf y cambieUseIPv6 de on a off; caso contrario recibirá una advertencia como esta cuando inicie Proftpd: - IPv6 getaddrinfo 'servidor1.prueba.gov.ar' error: Name or service not known vi /etc/proftpd/proftpd.conf
Por razones de seruridad puede tambien agregar las siguientes lineas a /etc/proftpd/proftpd.conf (gracias a Reinaldo Carvalho; mayor información puede ser encontrda en http://proftpd.org/localsite/Userguide/linked/userguide.html): vi /etc/proftpd/proftpd.conf
ISPConfig espera que la configuración se encuentre en /etc/proftpd.conf en lugar de /etc/proftpd/proftpd.conf, por lo tanto creamos un enlace simbólico (puede saltear este comando si no quiere instalar ISPConfig): ln -s /etc/proftpd/proftpd.conf /etc/proftpd.conf Luego reinicie Proftpd: /etc/init.d/proftpd restart
15 WebalizerPara instalar webalizer, basta con ejecutar apt-get install webalizer
16 Synchronize the System ClockEs una buena idea sincronizar el reloj del sistema con un servidor NTP (network time protocol) de internet. Simplemente ejecute apt-get install ntp ntpdate y la hora de su sistema estará siempre sincronizada.
17 Instalar algunos módulos Perl necesarios para SpamAssassin (incluido en ISPConfig)Ejecute apt-get install libhtml-parser-perl libdb-file-lock-perl libnet-dns-perl
18 ISPConfigLa configuración del servidor ha concluido, y si lo desea ahora puede instalar en él ISPConfig. Verifique el manual de instalación de ISPConfig: http://www.ispconfig.org/manual_installation.htm
18.1 Nota para SuExecSi quiere ejecutar scripts CGI bajo suExec, debería especificar /var/www como el directorio inicial para los sitios web creados con ISPConfig ya que el suExec de Debian está compilado con /var/www como Doc_Root. Ejecute /usr/lib/apache2/suexec -V y la salida debería verse como esto: servidor1:/etc/postfix/ssl# /usr/lib/apache2/suexec -V A menos que instale ISPConfig en modo experto y cambie el raíz predeterminado del web (que es /var/www), será capaz de ejecutar scripts CGI bajo suExec con ISPConfig. La siguiente captura de pantalla fue tomada de una instalación ISPConfig en modo experto. Si quiere usar ISPConfig, no cambie el raíz predeterminado del sitio web:
19 Enlaces
|
||||||||||||||||
Tags: Servidores



