Instalar un Servidor ISP con Ubuntu Linux
Esta es una descripción detallada sobre
como instalar y configurar un server basado en Ubuntu 6.06 (Dapper Drake) y
sucesivas versiones, que ofrezca todos los servicios necesarios para un ISP y
Hosters (web server con soporte de SSL, mail server (con SMTP-AUTH y TLS!),
Servidor de DNS, Servidor de FTP, Servidor de MYSQL, POP3/IMAP, Cuotas,
Firewall, etc.).
Usaremos el siguiente software:
Wer Server: Apache 2.0
Base de Datos: Mysql 5.0
Mail Server: Postfix
Servidor DNS: BIND9
Servidor FTP: proftpd
POP3/IMAP: Usaremos el formato Maildir, por lo tanto instalaremos el Courier-POP3/Courier/IMAP
Al finalizar la instalacion y
configuracion tendremos un sistema eficiente, y si queres podes instalar el
panel de control de webhosting gratuito ISPConfig (corre “out of the box)
tutorial es 192.168.0.100, y mi hostname es server1.example.com.
Quiero decirte que esta no es la unica
manera se configurar un systema de este tipo. Hay muchas formas de lograr esto,
pero esta es la configuracion que elegi. No doy ninguna garantia de que funcione
en tu sistema.
Para instalar el sistema necesitas lo
siguiente:
El cd de Ubuntu 6.06 LTS Server (La lista
de mirrors esta disponible en esta URL:
http://www.ubuntu.com/download
Una conexión a Internet.
Inserta el CD de Ubuntu e tu cdrom y
bootea la PC desde el cd, Elegi instalar al disco duro, no use la opcion de
instalar un servidor LAMP porque me gusta tener total control sobre lo que
instalo en mi sistema.
La instalacion comienza y tenes que elegir el idioma que prefieras:
Elegir la distribucion del teclado:
instalacion, tu hardware, y configurara la red con DHCP si hay un DHCP en la
red:
Ingresa el hostname. En este ejemplo, mi
sistema se llama server1.example.com, por eso ingrese server1
Ahora hay que particionar el disco duro.
Voy a crear una particion grande (con el punto de montaje en /) y una pequeña
particion para SWAP, por eso seleccione borrar el disco entero
Ahora el sistema base es instalado:
EL cargador GRUB se instala:
La instalacion del sistema base esta
finalizada. Saca el CD de la lectora y dale a continuar, para reiniciar el
sistema:
3- Habilitar la cuenta de root
Ejecuta:
sudo passwd root
|
y elegi una contraseña para el root, luego de esto podemos pasar a root jecutando el comando:
su
|
e ingresando la contraseña que elegimos anteriormente
4-Instalando el servidor SSH
apt-get install ssh
|
El sistema te pedira que insertes el CD de instalacion.
5 –Configurando la red
Debido a que el instalador de Ubuntu configuro nuestro sistema para obtener la configuracion de red via DHCP, tenemos que cambiarlo, porque un server necesita tener una IP estatica (nota de Korven: es posible correr un server con una IP dinamica, usando un servicio tipo NOIP o DynDNS, se hablara de ello en otro tutorial)Edita el archivo /etc/network/interfaces y
ajustalo a tus necesidades (en este ejemplo yo use la IP 192.168.0.100)
vi
|
# This file describes the network interfaces available on your system
|
Luego, reinicia la red:
/etc/init.d/networking
|
Luego edita /etc/hosts
vi /etc/hosts
|
mi archivo de configuracion hosts quedo asi:
127.0.0.1 localhost.localdomain localhost
|
Ahora ejecuta:
hostname hostname –f
|
los dos comandos deben devolver server1.example.com , si no es asi, reinicia el sistema con el comando:
shutdown –r now
|
luego de reiniciar ejecuta nuevamente:
hostname hostname –f
|
Ahora, ambos comandos deben devolver como resultado server1.example.com
A partir de ahora podes usar un cliente
SSH , por ejemplo el PuTTY y conectarte desde tu estacion de trabajo a tu
servidor Ubuntu y continuar los pasos siguientes de este tutorial.
Edita /etc/apt/sources.list y comenta (conel # adelante) el CD y habilita algunos de los otros repositorios.
vi /etc/apt/sources.list
|
Mi archivo se ve asi:
#
|
Luego ejecuta estos dos comandos, en este orden:
apt-get update apt-get upgrade
|
7 -Instalando algun software.
Ahora instalaremos algunos paquetes que necesitaremos mas adelante, ejecuta:
apt-get install binutils
|
(este comando debe ir todo de una sola vez)
8 – CuotasPara instalar las cuotas, ejecuta:
apt-get install quota
|
Edita /etc/fstab para que quede como este ejemplo (yo agregue ,usrquota,grpquota a la particion /dev/sda1) (punto de montaje / , tu dispositivo deberia ser /dev/hda1 o similar).
vi /etc/fstab
|
# /etc/fstab: static file system information.
|
Para habilitar las cuotas, ejecuta este comando:
touch /quota.user /quota.group quotaon -avug |
9 - Servidor DNS
Ejecuta:
apt-get install bind9
|
por razones de seguridad, queremos correr BIND en entorno chroot, haciendo los siguientes pasos:
Ejecuta:
/etc/init.d/bind9 stop
|
Edita el archivo /etc/default/bind9 para que el daemon se ejecute como el usuario sin privilegios bind, enjaulado en /var/lib/named modifica la linea OPTIONS=” –u bind” para que lea OPTIONS=”-u bind –t /var/lib/named” .
Ejecuta:
vi /etc/default/bind9
|
En mi archivo quedo asi:
OPTIONS="-u bind -t /var/lib/named"
|
Crea los directorios necesarios en /var/lib
Ejecuta:
mkdir -p /var/lib/named/etc
|
Luego movemos el directorio de configuracion de /etc a /var/lib/named/etc Ejecuta:mv /etc/bind /var/lib/named/etc
|
Crea un symlink al nuevo directorio de configuracion desde la vieja ubicación (para evitar problemas si actualizamos BIND en el futuro) Ejecuta:ln -s /var/lib/named/etc/bind /etc/bind
|
Hace los dispositivos null y random, y arregla permisos de los directorios. Ejecuta:mknod /var/lib/named/dev/null c 1 3
|
Necesitamos modificar el script de arranque /etc/init.d/sysklogd de syslokd para que siga logueando los mensajes importantes al system log, modificamos la linea: SYSLOGD="-u syslog" para que lea: SYSLOGD="-u syslog -a /var/lib/named/dev/log" Ejecutamos para esto:
vi /etc/init.d/sysklogd
|
Mi archivo quedo asi:
[...]
|
Reiniciamos el daemon de logueo:
Ejecuta:
/etc/init.d/sysklogd |
Iniciamos BIND y chequeamos /var/log/syslog en busca de errores.Ejecuta:
/etc/init.d/bind9 start
|
10- MySQL
Para instalar MySQL ejecutamos:
apt-get install mysql-server mysql-client libmysqlclient12-dev
|
Queremos que MySQL escuche en todas las interfaces, no solo en localhost, por lo tanto editamos el archivo /etc/mysql/my.cnf y comentamos la linea bind-address = 127.0.0.1 con el siguiente comando:
vi /etc/mysql/my.cnf
|
la linea quedo asi:
[...]
|
Luego reiniciamos el servidor MySQL ejecutando:
/etc/init.d/mysql restart
|
Chequeamos que la red esta habilitada, ejecutamos:
netstat –tap
|
y como resultado deberiamos ver algo como:
tcp 0 0 *:mysql *:* LISTEN 4997/mysqld
|
Ejecutamos:mysqladmin -u root password tuclave
|
11- Postfix con SMTP-AUTH y TLS
Para instalar Postfix con SMTP-AUTH y TLS seguimos los siguientes pasos, Ejecuta:
apt-get install postfix libsasl2 sasl2-bin libsasl2-modules libdb3-util procmail
|
Te hara dos preguntas, contesta de la siguiente manera:
General type of configuration? ß Internet Site Mail name? ß server1.example.com
|
Luego ejecuta:dpkg-reconfigure postfix
|
De nuevo, te hara algunas preguntas, contesta asi:
General type of configuration? <-- Internet Site
|
Luego, ejecuta:
postconf -e 'smtpd_sasl_local_domain ='
|
A continuacion creamos el certificado para el TLS, ejecuta:
mkdir /etc/postfix/ssl
|
Luego configuramos el Postfix para TLS, ejecuta:
postconf -e 'smtpd_tls_auth_only = no'
|
El archivo /etc/postfix/main.cf deberia verse asi:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
|
Reiniciamos Postfix, ejecuta:
/etc/init.d/postfix restart
|
La autenticacion se hace con saslauthd, tenemos que cambiar algunas cosas para que ande bien, debido a que Postfix corre enjaulado en /var/spool/postfix necesitamos hacer lo siguiente, ejecuta:
mkdir -p /var/spool/postfix/var/run/saslauthd
|
Ahora tenemos que editar /etc/default/saslauthd para activar saslauthd, borra el # de delante de START=yes y agrega la linea PARAMS=”-m /var/spool/postfix/var/run/saslauthd –r”
Ejecuta:vi /etc/default/saslauthd
|
Mi archivo quedo asi:
# This needs to be uncommented before saslauthd will be run automatically
|
Tambien tenemos que editar /etc/init.d/saslauthd y cambiar la ubicación del archivo PID Cambiando el valor de PIDFILE a /var/spool/postfix/var/run/${NAME}/saslauthd.pid
Ejecutamos:vi /etc/init.d/saslauthd
|
en la linea PIDFILE mi archivo quedo asi:
[...]
|
Ahora iniciamos saslauthd, ejecuta:
/etc/init.d/saslauthd
|
Para ver si SMTP-AUTH y TLS funcionan correctamente, ejecutamos el siguiente comando:
telnet localhost 25
|
Una vez establecida la conexión con el mail server escribimos:
ehlo localhost
|
Si ves las siguientes lineas, todo anduvo bien:
250-STARTTLS y 250-AUTH
|
Para volver al shell ejecuta:
quit
|
12 - Courier-IMAP/Courier-POP3
Ejecuta lo siguiente para instalar
Courier-IMAP/Courier-IMAP-SSL (para imap en puerto 993) y
Courier-POP3/Courier-POP3-SSL (para POP3 en puerto 995)
apt-get install
|
Te hara dos preguntas, contesta asi:
Create directories for
|
Si no queres usar ISPConfig, configura Postfix para netregar los emails al Maildir* del
usuario, ejecuta:
postconf -e 'home_mailbox = Maildir/' |
(*nota: No tenes que hacer esto si pensas usar ISPConfig en tu sistema, ISPConfig crea la configuracion necesaria usando recetas de procmail. Por favor asegurate de habilitar Maildir en Management - Server - Settings - Email en la interface web de ISPConfig.
13 - Apache/PHP5
Ahora vamos a instalar el Apache, ejecutamos:
apt-get install apache2 apache2-common apache2-doc
|
Ahora instalamos el PHP5:
apt-get install autoconf automake1.4 autotools-dev
|
El sistema te hara la siguiente pregunta:
|
Luego editamos el archivo /etc/apache2/apache2.conf
vi /etc/apache2/apache2.conf |
Y cambiamos la linea DirectoryIndex a:
|
Editamos /etc/apache2/ports.conf y agregamos Listen 443:
vi /etc/apache2/ports.conf | ||
|
|
|
| | |
Ahora tenemos que habilitar algunos modulos de Apache (SSL, rewrite, suexec,e include) Ejecutamos:
a2enmod ssl |
Recargamos la configuracion del Apache:
/etc/init.d/apache2 force-reload
|
13.1 Deshabilitamos PHP Global (o no)
En ISPConfig, se configura el PHP por casa sitio individualmente, por ejemplo se
peude especificar que sitio puede correr PHP y cual no, esto solo funciona si
PHP esta deshabilitado globalmente, debido a que de otra manera todos los sitios
web serian capaces de ejecutar PHP, sin importar lo que hayas especificado en
ISPConfig
Para deshabilitar PHP Global, editamos /etc/mime.types y comentamos las lineas del
php (application/x-httpd-php):
vi /etc/mime.types | ||
|
|
|
| |
Editamos /etc/apache2/mods-enabled/php5.conf y comentamos las siguientes lineas:
vi /etc/apache2/mods-enabled/php5.conf
|
|
/etc/init.d/apache2 restart
|
14 - Proftpd
Para instalar Proftpd, ejecutamos:
apt-get install proftpd proftpd-common ucf
|
El sistema te hara una pregunta:
|
Por razones de seguridad, tenes que agregar las siguientes lineas a: /etc/proftpd.conf
(gracias a Reinaldo Carvalho; mas información disponible aca:
http://proftpd.linux.co.uk/localsite/Userguide/linked/userguide.html)
vi /etc/proftpd.conf
|
Y agregamos:
|
Luego reiniciamos el Proftpd:
/etc/init.d/proftpd restart
|
15 - Webalizer
Para instalar webalizer, ejecutamos:
apt-get install webalizer
|
16 –Sincronizando el reloj del sistema
Es una buena idea sincronizar el reloj con un servidor de hora NTP (network time protocol) a traves de internet. Ejecuta:apt-get install ntp ntpdate
|
Luego, para poner en hora el sistema consultando la hora en time.nist.gov * ejecuta:
ntpdate time.nist.gov
|
Otros servidores pueden ser: time.windows.com tick.nap.com.ar
17 - Instalar algunos modulos de Perl que necesita SpamAssassin (viene conISPConfig)
Ejecuta:apt-get install libhtml-parser-perl
|
18 - ISPConfig
La configuracion del server esta completa, y si queres podes instalar ISPConfig en el mismo. Por favor chequea la instalacion de ISPConfig en:
http://www.ispconfig.org/manual_installation.htm
18.1 Una nota sobre SuExec
Si queres correr Scripts CGI bajo suExec, necesitas especificar como el directorio home /var/www para los sitios web creados por ISPConfig ya que Ubuntu's suExec esta compilado con /var/www como Doc_Root.Ejecuta:
/usr/lib/apache2/suexec2 -V |
La salida mostrara algo como esto:
Para configurar /var/www para el directorio home de los sitios, durante la
instalacion de ISPConfig hace lo siguiente, cuando te pregunte por el modo de
instalacion selecciona modo experto.
Luego, durante la instalacion se te preguntara si el directorio por defecto /home/www
debe ser el directorio donde ISPConfig creara los sitios, contesta que no e
ingresa /var/www como el directorio home para los sitios..
>
19 - Links
Ubuntu:
20 -Creditos:
Version original en ingles:
Autor: Falko
Timme <ft [at] falkotimme [dot] com>
No hay comentarios:
Publicar un comentario