35
Instalación de un servidor Debian Por: Gary Ariel Sandi Vigabriel Versión 0.2

Debian Server Install

  • Upload
    garygsv

  • View
    7.518

  • Download
    13

Embed Size (px)

DESCRIPTION

Como instalar o configurar un servidor debian v0.2

Citation preview

Page 1: Debian Server Install

Instalación de un servidor DebianPor: Gary Ariel Sandi Vigabriel

Versión 0.2

Page 2: Debian Server Install

Instalación de un servidor Debian

1. Introducción

Si bien tenemos una gran cantidad de manuales y howto's dentro la web, en este mini

tutorial trataremos de concentrar la mayor parte de configuraciones que hacen a un

servidor Debian.

Este mini tutorial le mostrara como realizar la instalación de un servidor Debian Lenny

(Debian 5.0) con las siguientes características:

a) Servidor DNS.

b) Registrar correctamente el nombre DNS.

c) SMTP-AUTH y TLS.

d) Servidor ProFTPD.

e) Servidor MySQL.

f) Courier POP3/IMAP.

g) Servidor SVN.

Usaremos el siguiente software para tal propósito:

• Servidor Web: Apache 2.2.9 con PHP 5.2.6, Python y Ruby

• Servidor de Base de Datos: MySQL 5.0.51a

• Servidor de Correos: Postfix

• Servidor DNS: BIND9

• Servidor FTP: proftpd

• POP3/IMAP: Courier-POP3/Courier-IMAP.

• Estadísticas del servidor: Webalizer

• Subversion.

2. Requisitos.

Es de conocimiento general que un equipo que funciona como servidor con tareas como el

servicio de ftp, web, proxy, base de datos u otros es una maquina con características de

hardware sumamente potentes en la mayoría de los casos y por lo general existen personas

que como yo usan un hardware sencillo para ir haciendo practicas de la configuración, seria

como hacer una construcción a pequeña escala para luego hacerlo a gran escala, en este mini

tutorial usaremos el siguiente hardware:

Procesador PIII de 750Mhz

Memoria Ram de 768Mb

Disco duro de 40Gb

Page 3: Debian Server Install

1 Tarjetas de Red 10/100

1 Tarjeta Módem 56 kbps

1 Lector de DVD

Esta es la configuración del equipo que usare para este mini tutorial obviamente puede

aplicarse a cualquier equipo con características incluso mejores.

Debian no es exigente en los requisitos de hardware y por ello no encontraremos problema

alguno en cualquier configuración de hardware, ya sea este actual o hardware antiguo e

incluso en algunos casos (como el mio) anticuado.

3. Imágenes de CD o DVD

Las imágenes ISO de CD o DVD con Debian la puede descargar en el sitio oficial

http://www.debian.org/ o en http://cdimage.debian.org/ descargue la imagen que vea

conveniente, en el presente mini tutorial usaremos la imagen de instalación en DVD i386.

También puede realizar la instalación desde la imagen mínima de instalación descargando la

imagen ISO del CD desde:

http://cdimage.debian.org/debian-cd/5.0.0/i386/iso-dvd/debian-500-i386-netinst.iso

Una vez descargada la imagen de CD o DVD que selecciono proceda a grabarla en un CD o

DVD dependiendo de su elección.

4. Nota Preliminar.

En el presente mini tutorial tome en cuenta que debe reemplazar el ip 192.168.1.100 por el

ip que tenga asignado por su ISP en caso de no tenerlo simplemente asigne uno que se

acomode a sus necesidades, así también es requerimiento cambiar la puerta de enlace

192.168.1.1 y también es imprescindible cambiar el hostname titan.sandi.org de acuerdo al

dominio que registro en internet (esto se hace previo pago a un ente regulador de nombres

de dominio como lo hacen (por ejemplo) en http://www.nic.bo).

5. Instalación de Debian.

Generalmente para un servidor, ya sea este de datos, web, base de datos, ftp, dns, proxy u

otro generalmente no es imprescindible el uso del entorno gráfico, el pilar de todo servidor

es principalmente la velocidad de procesamiento con la que cuenta el equipo o la velocidad

de respuesta a una petición del usuario o cliente, tomando en cuenta ello podemos

percatarnos que el uso de un entorno gráfico no es imprescindible. Salvo algunos casos

donde si es un requerimiento principal, por lo cual en este mini tutorial no instalaremos

ningún entorno gráfico.

Page 4: Debian Server Install

5.1. Instalación del sistema Base.

Procedemos a la instalación del sistema base, para ello deberemos configurar nuestro

BIOS de manera que podamos arrancar el PC desde el CD o DVD.

Estas son las pantallas de instalación para Debian Lenny, le servirán de guiá en la

instalación del sistema base.

La primera pantalla indica el modo en el cual instalaremos Debian, podemos escoger

hacerlo de manera gráfica o en modo texto (este es el modo que usaremos),

seleccionamos la primera opción y continuamos.

Page 5: Debian Server Install

En la segunda pantalla seleccionamos el idioma del entorno, seleccionamos spanish,

español y continuamos.

En la tercera pantalla el instalador de Debian nos solicita que seleccionemos nuestro

pais o territorio, seleccionamos Bolivia (si corresponde).

Page 6: Debian Server Install

En la cuarta pantalla Debian solicita que seleccionemos el tipo de teclado que

usamos, en este caso es un teclado genérico de 104 teclas en español.

En la quinta pantalla Debian hace un chequeo general del CD o DVD.

Page 7: Debian Server Install

En la 6ta Pantalla Debian descarga e instala componentes necesarios para la

instalación.

En la 7ma pantalla Debian detecta el hardware de red que tenemos en nuestro equipo.

Page 8: Debian Server Install

En la 8va Pantalla Debian intenta configurar la tarjeta de red mediante DHCP.

En la 9na pantalla Debian, Solicitara el nombre del equipo, en mi caso puse titan,

pero puedes reemplazar ese nombre por uno que veas conveniente.

Page 9: Debian Server Install

En la 10ma Pantalla Debian solicitara el nombre del dominio en este caso, Sandi.org

puedes cambiar el nombre del dominio por uno que hayas adquirido o simplemente

poner cualquier otro dominio para probar.

En la 11va pantalla Debian solicita el modo de particionado del disco duro, es

importante tener claro de que manera realizaremos las particiones.

Page 10: Debian Server Install

En la 12va Pantalla (como estoy instalando en un disco completamente nuevo)

Debian pregunta si se hara una nueva tabla de particiones en el dispositivo.

En la 13va Pantalla una vez terminado el particionado que obviamente puede diferir

de la que yo hize, procedemos a formatear y continuar.

Page 11: Debian Server Install

14va pantalla es una verificación del particionamiento que aceptamos si estamos

seguros de lo que hicimos en el disco.

En la 15va Debian comienza con el formateo de particiones.

Page 12: Debian Server Install

En la pantalla 16 Debian comienza a instalar el sistema Base minimo.

En la pantalla 17 Debian solicitara la contraseña que asignaremos al superusuario

(root), debemos poner una contraseña sumamente fuerte, al mensionar “fuerte” nos

referimos a una contraseña que contenga caracteres minusculas, mayusculas, numero

y simbolos por ejemplo una contraseña fuerte seria: #T2!d3b&4n13nn&

Page 13: Debian Server Install

En la pantalla 18 repetimos la contraseña para confirmar.

En la pantalla 19 escribimos el nombre del administrador del equipo

Page 14: Debian Server Install

En la pantalla 20 escribimos el nombre corto del administrador.

En la pantalla 21 escribimos una contraseña que de ser posible debe tener la misma

fuerza que la contraseña de root.

Page 15: Debian Server Install

En la pantalla 22 Repetimos la contraseña del administrador del equipo.

En la pantalla 22 Debian automáticamente configura apt.

Page 16: Debian Server Install

En la pantalla 23 Debian pregunta si tenemos otros medios de instalación adicionales

tal el caso de los otros 4 DVD's de Debian si los tenemos los añadimos en mi caso

solo tengo el 1er DVD así que no es necesario para mi.

En la pantalla 24 Debian pregunta si queremos contribuir con las estadísticas de

paquetes que son instalados frecuentemente.

Page 17: Debian Server Install

En la pantalla 25 Debian solicitara que se seleccione los programas a ser instalados,

pero como mencionamos anteriormente solo requerimos de una instalación base sin

entorno gráfico por lo cual solo seleccionamos Sistemas estándar y continuamos.

En la pantalla 26 Debian Instala el Sistema Base.

Page 18: Debian Server Install

En la pantalla 27 Debian realiza algunas configuraciones adicionales, y el equipo se

reinicia expulsando antes el CD o DVD y pidiendo la confirmación de instalación de

GRUB en el sector principal de arranque (a lo cual respondemos con SI).

Pantalla de GRUB Debian.

Page 19: Debian Server Install

Primera pantalla luego del inicio (boot) que por cierto llego solo a 21 segundos en el

tiempo de arranque, nada mal para una Pentium III.

6. Instalar un servidor SSH.

Debian Lenny no instala un servidor OpenSSH en la instalación por defecto, por lo cual

deberá instalarlo manualmente con el siguiente comando:

apt-get install ssh openssh-server

Se le solicitara que vuelva a introducir el CD o DVD del cual instalo Debian.

7. Configurar la interfaz de Red (Tarjeta de Red)

Si su sistema no obtiene el IP desde un servidor DHCP deberá configurar su interfaz de red manualmente de la siguiente manera.nano /etc/network/interfaces

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5).

# The loopback network interface auto lo iface lo inet loopback

auto eth0iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1

Ahora reinicie la interfaz de red (tarjeta de red) con el siguiente comando:

/etc/init.d/networking restart

Page 20: Debian Server Install

8. Configurar el archivo hosts y registrando el nombre definitivo del PC.

Posteriormente debes configurar el archivo hosts, para este ejemplo usaremos el nombre

sandi.org puedes reemplazarlo por el dominio que tengas registrado.

nano /etc/hosts

127.0.0.1 localhost.localdomain localhost192.168.1.100 titan.sandi.org titan

# The following lines are desirable for IPv6 capable hosts#::1 ip6-localhost ip6-loopback#fe00::0 ip6-localnet#ff00::0 ip6-mcastprefix#ff02::1 ip6-allnodes#ff02::2 ip6-allrouters#ff02::3 ip6-allhosts

Nota: tenga en cuenta que procedió a poner en comentarios las lineas correspondientes al

ipv6 ya que aún no son necesarias, de ser necesarias para usted esta en la libertad de des

comentarlas.

Para configurar el nombre del equipo de manera correcta debe ejecutar el siguiente comando

en la consola:

echo titan.sandi.org > /etc/hostname

/etc/init.d/hostname.sh start

Verifique que el nombre esta establecido correctamente con el siguiente comando:

hostnamehostname -f

En ambos casos debería ver el nombre que añadió en la linea anterior:titan.sandi.org

Ahora es posible acceder a su equipo remotamente con la ayuda de PuTTY u otro software

de conexión remota.

9. Actualizar la Instalación de Debian.

Este paso es imprescindible para instalar y/o actualizar el sistema base desde los repositorios

oficiales de Debian Lenny, primero debe editar su archivo sources.list de la siguiente

manera.

nano /etc/apt/sources.list

## deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 DVD Binary-1 20090214-16:54]/ lenny contrib main

Page 21: Debian Server Install

#deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 DVD Binary-2 20090214-16:54]/ lenny contrib main

deb http://security.debian.org/ lenny/updates main contribdeb-src http://security.debian.org/ lenny/updates main contrib

deb http://ftp.fr.debian.org/debian/ lenny maindeb-src http://ftp.fr.debian.org/debian/ lenny main

Luego de añadir las lineas a su sources.list ejecute las siguientes órdenes.

apt-get updateapt-get upgrade

Esto para instalar y/o actualizar la instalación actual de Debian Lenny.Nota: Recuerde que si no tiene una conexión a Internet no debe realizar este paso.

10. Instalación de Software adicional.Ahora debemos instalar los siguientes paquetes:apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.6-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential Nota: este comando debe ir en una sola linea en la consola.

11. Servidor DNS.Debe instalar bin9 para poder configurar un servidor DNS:apt-get install bind9

Es recomendable que siga la siguiente configuración para enjaular (hacer chroot) de Bind9, por razones de seguridad:/etc/init.d/bind9 stop

Edite el archivo /etc/default/bind9 de manera que este quede de la siguiente manera.

nano /etc/default/bind9

# run resolvconf?RESOLVCONF=yes

# startup options for the serverOPTIONS="-u bind -t /var/lib/named"

Es necesario crear los directorios en /var/lib/named

mkdir -p /var/lib/named/etcmkdir /var/lib/named/devmkdir -p /var/lib/named/var/cache/bindmkdir -p /var/lib/named/var/run/bind/run

Page 22: Debian Server Install

Ahora debe mover el directorio desde /etc a /var/lib/named/etc :

mv /etc/bind /var/lib/named/etc

Debe crear un enlace simbólico en /etc para no tener problemas con algunas variables de entornos:

ln -s /var/lib/named/etc/bind /etc/bind

Establezca y corrija los permisos para los directorios:

mknod /var/lib/named/dev/null c 1 3mknod /var/lib/named/dev/random c 1 8chmod 666 /var/lib/named/dev/null /var/lib/named/dev/randomchown -R bind:bind /var/lib/named/var/*chown -R bind:bind /var/lib/named/etc/bind

Ahora debe crear el archivo bind-chroot.conf en /etc/rsyslog.d/ para que el archivo bind-chroot.conf almacene todos los logs de error o peligro.

nano /etc/rsyslog.d/bind-chroot.conf

$AddUnixListenSocket /var/lib/named/dev/log

Reinicie el servicio de logs:

/etc/init.d/rsyslog restart

Inicie BIND y verifique si tiene algún error en /var/log/syslog:

/etc/init.d/bind9 start

12. Estableciendo el nombre de dominio con Bind9Para crear y registrar un nombre de dominio correctamente recuerde lo siguiente:

a) No omita ningún punto al final de aluna linea.b) Verifique el numero de serial recuerde también incrementarlo correctamente.c) Verifique el nombre y la ubicación correcta de los archivos que se crearan.d) Compruebe la configuración con el comando tail -f /var/log/syslog

Primero modifique el archivo /etc/resolv.conf de la siguiente manera.nano /etc/resolv.conf

nameserver 127.0.0.1nameserver 192.168.1.100

Ubíquese en la ruta /etc/bind/.

cd /etc/bind/

Ahora debe crear el directorio para la zona principal y ubicarse dentro del directorio de la zona principal.mkdir -p /etc/bind/zones/master/

Page 23: Debian Server Install

cd /etc/bind/zones/master/

Debemos crear los archivos de la zona principal de la siguiente manera:Primero el archivo db.sandi.org (el nombre debe cambiarlo a su requerimiento) con el siguiente contenido.nano db.sandi.org

;; BIND data file for example.com;$TTL 604800@ IN SOA sandi.org. admin.sandi.org. ( 2009040901 ; Serial 7200 ; Refresh 120 ; Retry 2419200 ; Expire 604800) ; Default TTL;@ IN NS sandi.org.sandi.org. IN MX 10 mail.sandi.org.sandi.org. IN A 192.168.1.100www IN CNAME sandi.org.mail IN A 192.168.1.100ftp IN CNAME sandi.org.

El numero de serial es importante ya que cada que realizamos un cambio en alguna linea del archivo o solo por poner un punto o un espacio es necesario cambiar algo del serial, por ejemplo al final del serial del archivo puse un 01 ese deberá incrementarse a 02 la siguiente vez que modifiquemos algo del archivo.

Ahora debemos crear el archivo rev.1.168.192.in-addr.arpa (el nombre debe cambiarlo a su requerimiento) este archivo es la zona inversa de sandi.org es importante ya que sin este paso puede ser que los correos electrónicos no salgan ni lleguen de manera correcta el archivos debe tener el siguiente contenido.

nano rev.1.168.192.in-addr.arpa

$TTL 1d ;$ORIGIN 11.129.190.IN-ADDR.ARPA.@ IN SOA titan.sandi.org. admin.sandi.org. ( 2009040901 7200 120 2419200 604800);el numero 100 es el ip en si, por ejemplo 192.168.1.100;debemos cambiar ese numero por el que corresponda. IN NS titan.sandi.org.100 IN PTR titan.sandi.org.

Page 24: Debian Server Install

Una vez creados y guardados los 3 archivos debemos modificar el archivo named.conf con mucho cuidado.

nano /etc/bind/named.conf.local

///indicamos la zona principalzone "sandi.org" { notify no; type master; file "/etc/bind/zones/master/db.sandi.org"; };

zone "1.168.192.in-addr.arpa"{ type master; file "/etc/bind/zones/master/rev.1.168.192.in-addr.arpa"; };

Guardamos y probamos la configuración./etc/init.d/bind9 restart

Luego para verificar si todo esta bien:tail -f /var/log/syslog

Si muestra algún error debemos corregirlo, y no olvidar cambiar el serial, en caso contrario probamos el dominio con uno de los siguientes métodos:

En la consola con dig:dig -x www.sandi.org

En la consola con host:host www.sandi.orghost 192.168.1.100

13. MySqlInstale MySql Server y MySql Client con el siguiente comando:apt-get install mysql-server mysql-client libmysqlclient15-dev

Durante el proceso de instalación el asistente le solicitara la contraseña para MySQL.

New password for the MySQL "root" user: <-- passworpararootRepeat password for the MySQL "root" user: <-- repitaelpasswordpararoot

Antes de hacer cualquier otra configuración debe editar el archivo /etc/mysql/my.cnf y comentar la linea: bind-address = 127.0.0.1:

nano /etc/mysql/my.cnf

[...]#bind-address = 127.0.0.1[...]

Page 25: Debian Server Install

Ahora reinicie el servicio de MySql/etc/init.d/mysql restart

Con la órden netstat -tap verifique el estado del servidor MySql.netstat -tap

La salida de este comando es:

tcp 0 0 *:mysql *.* LISTEN 3281/mysqld

14. Postfix con SMTP-AUTH y TLSPara instalar Postfix con SMTP-AUTH y TLS debe seguir los siguientes pasos:

apt-get install postfix sasl2-bin libsasl2-modules procmail

Responda de la siguiente manera:

General type of configuration? <-- Internet SiteMail name? <-- sandi.org

Ejecute:

dpkg-reconfigure postfix

Nuevamente responda:

General type of configuration? <-- Internet SiteWhere should mail for root go <-- [blank]Mail name? <-- titan.sandi.orgOther destinations to accept mail for? (blank for none) <-- titan.sandi.org, localhost.sandi.org, localhost.localdomain, localhostForce synchronous updates on mail queue? <-- NoLocal networks? <-- 127.0.0.0/8Use procmail for local delivery? <-- YesMailbox size limit <-- 0Local address extension character? <-- +Internet protocols to use? <-- all

Luego:

postconf -e 'smtpd_sasl_local_domain ='postconf -e 'smtpd_sasl_auth_enable = yes'postconf -e 'smtpd_sasl_security_options = noanonymous'postconf -e 'broken_sasl_auth_clients = yes'postconf -e 'smtpd_sasl_authenticated_header = yes'postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'postconf -e 'inet_interfaces = all'echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.confecho 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf

Luego debe crear los cetificados TLS OJO que estos pasos se deben hacer uno por uno y no copiar y pegar el texto a la consola de lo contrario tendremos algunos errores:

Page 26: Debian Server Install

mkdir /etc/postfix/sslcd /etc/postfix/ssl/openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024chmod 600 smtpd.keyopenssl req -new -key smtpd.key -out smtpd.csropenssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crtopenssl rsa -in smtpd.key -out smtpd.key.unencryptedmv -f smtpd.key.unencrypted smtpd.keyopenssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Ahora configure Postfix para usarlo conjuntamente con TLS no olvide cambiar “sandi.org” de la primera linea por el dominio que esta usando actualmente:

postconf -e 'myhostname = sandi.org'

postconf -e 'smtpd_tls_auth_only = no'postconf -e 'smtp_use_tls = yes'postconf -e 'smtpd_use_tls = yes'postconf -e 'smtp_tls_note_starttls_offer = yes'postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'postconf -e 'smtpd_tls_loglevel = 1'postconf -e 'smtpd_tls_received_header = yes'postconf -e 'smtpd_tls_session_cache_timeout = 3600s'postconf -e 'tls_random_source = dev:/dev/urandom'

El archivo /etc/postfix/main.cf debería quedar así:

nano /etc/postfix/main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific: Specifying a file name will cause the first# line of that file to be used as the name. The Debian default# is /etc/mailname.#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)biff = no

# appending .domain is the MUA's job.append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings#delay_warning_time = 4h

readme_directory = no

# TLS parameterssmtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt

Page 27: Debian Server Install

smtpd_tls_key_file = /etc/postfix/ssl/smtpd.keysmtpd_use_tls = yessmtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scachesmtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for# information on enabling SSL in the smtp client.

myhostname = server1.example.comalias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliasesmyorigin = /etc/mailnamemydestination = server1.example.com, localhost.example.com, localhost.localdomain, localhostrelayhost =mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128mailbox_command = procmail -a "$EXTENSION"mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = allinet_protocols = allsmtpd_sasl_local_domain =smtpd_sasl_auth_enable = yessmtpd_sasl_security_options = noanonymousbroken_sasl_auth_clients = yessmtpd_sasl_authenticated_header = yessmtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destinationsmtpd_tls_auth_only = nosmtp_use_tls = yessmtp_tls_note_starttls_offer = yessmtpd_tls_CAfile = /etc/postfix/ssl/cacert.pemsmtpd_tls_loglevel = 1smtpd_tls_received_header = yessmtpd_tls_session_cache_timeout = 3600stls_random_source = dev:/dev/urandom

Ahora:

mkdir -p /var/spool/postfix/var/run/saslauthd

Ahora edite /etc/default/saslauthd para activar. Edite la linea START y ponga yes cambie la linea OPTIONS="-c" to OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r":

nano /etc/default/saslauthd

## Settings for saslauthd daemon# Please read /usr/share/doc/sasl2-bin/README.Debian for details.#

# Should saslauthd run automatically on startup? (default: no)

Page 28: Debian Server Install

START=yes

# Description of this saslauthd instance. Recommended.# (suggestion: SASL Authentication Daemon)DESC="SASL Authentication Daemon"

# Short name of this saslauthd instance. Strongly recommended.# (suggestion: saslauthd)NAME="saslauthd"

# Which authentication mechanisms should saslauthd use? (default: pam)## Available options in this Debian package:# getpwent -- use the getpwent() library function# kerberos5 -- use Kerberos 5# pam -- use PAM# rimap -- use a remote IMAP server# shadow -- use the local shadow password file# sasldb -- use the local sasldb database file# ldap -- use LDAP (configuration is in /etc/saslauthd.conf)## Only one option may be used at a time. See the saslauthd man page# Example: MECHANISMS="pam"MECHANISMS="pam"

# Additional options for this mechanism. (default: none)# See the saslauthd man page for information about mech-specific options.MECH_OPTIONS=""

# How many saslauthd processes should we run? (default: 5)# A value of 0 will fork a new process for each connection.THREADS=5

# Other options (default: -c -m /var/run/saslauthd)# Note: You MUST specify the -m option or saslauthd won't run!## WARNING: DO NOT SPECIFY THE -d OPTION.# The -d option will cause saslauthd to run in the foreground instead of as# a daemon. This will PREVENT YOUR SYSTEM FROM BOOTING PROPERLY. If you wish# to run saslauthd in debug mode, please run it by hand to be safe.## See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information.# See the saslauthd man page and the output of 'saslauthd -h' for general# information about these options.## Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"#Debe escribirse correctamente la linea de abajo:OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Page 29: Debian Server Install

Añada postfix al grupo sasl:

adduser postfix saslAhora reinicie postfix e inicie saslauthd:

/etc/init.d/postfix restart/etc/init.d/saslauthd start

Para ver si SMTP-AUTH y TLS funcionan apropiadamente haga lo siguiente:

telnet localhost 25

Posteriormente escriba:

ehlo localhostTiene que notar las siguientes lineas

250-STARTTLStambién lo siguiente.

250-AUTH PLAIN LOGINtitan:/etc/postfix/ssl# telnet localhost 25

Trying 127.0.0.1...Connected to localhost.localdomain.Escape character is '^]'.220 titan.sandi.org ESMTP Postfix (Debian/GNU)ehlo localhost250-titan.sandi.org250-PIPELINING250-SIZE 10240000250-VRFY250-ETRN250-STARTTLS250-AUTH PLAIN LOGIN250-AUTH=PLAIN LOGIN250-ENHANCEDSTATUSCODES250-8BITMIME250 DSN

“Escriba quit y pulse enter para salir.”quit221 2.0.0 ByeConnection closed by foreign host.

15. Courier-IMAP/Courier-POP3

En esta sección se configurará Courier-IMAP/Courier-POP3 (para IMAPs en el puerto 993) también Courier-POP3/Courier-POP3-SSL (para POP3 en el puerto 995):

Ejecute la siguiente el siguiente comando para instalar los paquetes necesarios:

apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0

Page 30: Debian Server Install

Responda de la siguiente manera a las preguntas del asistente:

Create directories for web-based administration ? <-- NoSSL certificate required <-- Ok

El asistente crea los certificados de manera automatica debe borrarlos y crear certificados nuevos:

cd /etc/courierrm -f /etc/courier/imapd.pemrm -f /etc/courier/pop3d.pem

También debe modificar el archivo /etc/courier/imapd.cnf y nano /etc/courier/pop3d.cnf estos archivos deben quedar así en la linea indicada:

nano /etc/courier/imapd.cnf

[...]CN=sandi.org[...]

nano /etc/courier/pop3d.cnf

[...]CN=sandi.org[...]

Ahora crearemos los certificados:

mkimapdcert && mkpop3dcert

Ahora reiniciamos Courier-IMAP-SSL y Courier-POP3-SSL:

/etc/init.d/courier-imap-ssl restart

/etc/init.d/courier-pop-ssl restart

Configure Postfix para enviar los emails al directorio Maildir* de cada usuario:

postconf -e 'home_mailbox = Maildir/'

postconf -e 'mailbox_command ='

/etc/init.d/postfix restart

16. Apache2 y PHP5

Ahora instalaremos apache2apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec libexpat1 ssl-cert

Ahora instalaremos PHP5, Ruby y Python:

apt-get install libapache2-mod-php5 libapache2-mod-ruby libapache2-mod-python php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear

Page 31: Debian Server Install

php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-suhosin php5-tidy php5-xcache php5-xmlrpc php5-xsl

Habilitamos los módulos ssl, rewrite, suexec, include.

a2enmod ssla2enmod rewritea2enmod suexeca2enmod includeReiniciamos Apache2:

/etc/init.d/apache2 force-reload

Para tener activo el modulo de ruby y corregir el problema con los archivos .rbx debe editar el archivo /etc/mime.types:

nano /etc/mime.types

[...]#Esta linea debe ser comentada.#application/x-ruby rb[...]

17. Servidor FTP con ProFTPD

Instale el servidor con el siguiente comando:

apt-get install proftpd ucf

Responda a la pregunta del asistente de la siguiente manera:

Run proftpd: <-- standalone

Por razones de seguridad edite el archivo /etc/proftpd/proftpd.conf

nano /etc/proftpd/proftpd.conf

[...]DefaultRoot ~IdentLookups offServerIdent on "FTP Server ready."[...]

Debe crear un enlace simbólico de /etc/proftpd/proftpd.conf a /etc/proftpd.conf

ln -s /etc/proftpd/proftpd.conf /etc/proftpd.conf

Reinicie el servicio de proftpd:

/etc/init.d/proftpd restart

Page 32: Debian Server Install

18. Webalizer

Instale webalizer:

apt-get install webalizerPara tener estadísticas del servidor, puede verlas en:

http://localhost/webalizer

19. Servidor SVN

Ejecute el siguiente comando para instalar los paquetes necesarios para el servidor SVN:apt-get install ssh apache2 libapache2-mod-php5 subversion libapache2-svn

Debe crear un repositorio de prueba llamado test:

mkdir /var/svn/svnadmin create --fs-type fsfs /var/svn/test

Procedemos a testearlo:

mkdir ~/TEMP/echo "Testing" > ~/TEMP/test.txtsvn import -m "Testing via ssh+svn" ~/TEMP/ svn+ssh://localhost/var/svn/test/trunksvn co svn+ssh://localhost/var/svn/test/trunk testcheckout

Verificamos con:

svnlook tree /var/svn/myproject/

Otorgamos permisos:

chown -R www-data:www-data /var/svn/*chmod -R 770 /var/svn/*

Activamos SVN en apache2

a2enmod dava2enmod dav_svn

Creamos las respectivas cuentas de usuario:

htpasswd -c /etc/apache2/svn.passwd usuario_principalhtpasswd /etc/apache2/svn.passwd usuario_secundariohtpasswd /etc/apache2/svn.passwd usuario_secundario_2

Añadimos las siguientes lineas al archivo /etc/apache2/mods-available/dav_svn.confnano /etc/apache2/mods-available/dav_svn.conf

[...]

AuthUserFile /etc/apache2/svn.passwd Require valid-user #SSLRequireSSL <-- note this is commented out</Location>

[...]

Reiniciamos el servidor apache y verificamos el repositorio en http://localhost/test:

Page 33: Debian Server Install

/etc/init.d/apache2 force-reload

Generamos un certificado: openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem

Cambiamos los permisos del certificado:chmod 600 /etc/apache2/apache.pem

Modificamos o añadimos la siguiente linea al archivo /etc/apache2/ports.conf

nano /etc/apache2/ports.conf

Listen 443

Modificamos el archivo /etc/apache2/sites-available/default

nano /etc/apache2/sites-available/default

#Cambiar: NameVirtualHost * por

NameVirtualHost *:80NameVirtualHost *:443#Cambiar:<VirtualHost *>por

<VirtualHost *:80>

#añadir esto al final del archivo.

<VirtualHost *:443> ServerAdmin webmaster@localhost SSLEngine on SSLCertificateFile /etc/apache2/apache.pem</VirtualHost>

Añadimos las siguientes lineas al archivo /etc/apache2/mods-available/dav_svn.conf

nano /etc/apache2/mods-available/dav_svn.conf

[...]

<Location /svn_zen>DAV svnSVNPath /var/svn/test AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-userSSLRequireSSL</Location>

[...]

Verificamos el modulo ssl:

Page 34: Debian Server Install

a2enmod ssl

Otorgamos los permisos finales:chown -R www-data:www-data /var/svn/*chmod -R 770 /var/svn/*

Reiniciamos el servidor apache:/etc/init.d/apache2 force-reload

Verificamos el repositorio en https://localhost/test

Ahora creamos el archivo de permisos con el siguiente contenido:

nano /etc/apache2/svn_ACL

[groups]readwritegrp = usuario_principal, usuario_secundarioreadgrp = usuario_secundario_2

[/]@readwritegrp = rw@readgrp = r

[/myproject_site/trunk]@readwritegrp = rw@readgrp = r

Añadimos la linea AuthzSVNAccessFile /etc/apache2/svn_ACL al archivo /etc/apache2/mods-available/dav_svn.conf

nano /etc/apache2/mods-available/dav_svn.conf

[...]<Location /svn_zen>DAV svnSVNPath /var/svn/test AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-userSSLRequireSSLAuthzSVNAccessFile /etc/apache2/svn_ACL</Location>[...]

Reiniciamos apache y listo:

/etc/init.d/apache2 force-reload

Bibliografia y referencias:

http://www.debian.org

http://www.howtoforge.com

Page 35: Debian Server Install