Servidor Debían

167
Servidor Debían Cómo instalar un servidor Linux con Debían 6.0 Squeeze Una guía práctica para instalar y configurar un súper-servidor Linux. Este documento pretende ser una guía fácil sobre cómo instalar un servidor Linux con un máximo de funcionalidades y un mínimo de dificultades. Ofrece explicaciones claras y fáciles de seguir (también es posible copiar y pegar las instrucciones). Esta guía explica, paso a paso, cómo: Instalar el Linux Debian 6.0 'Squeeze'; Configurar el sistema (redes, software, acceso remoto y reloj del sistema); Implementar un servidor interno (configuración automática de la red, compartir archivos con clientes Windows, filtros anti-virus y anti-spam, servidor proxy, servidor media); Implementar un servidor de e-mail (servidor seguro de IMAP, interfaz webmail, filtros integrados anti-spam y anti-virus, recepción y centralización de e-mails); Implementar un Servidor de internet (http y https con php y MySQL, ftp seguro, webdav); Monitorización (interfaz gráfica, análisis e información vía e-mail); Seguridad (sistemas de detección de intrusos, auditoría de seguridad y sistemas de alerta vía e-mail). Ahora manos a la obra, bienvenidos a su guía sobre el Servidor Debian 6.0 "Squeeze". Servidor Debian 6.0 Squeeze 0. Antes de Iniciar o 0.0 Sobre esta guía 1. Instalación o 1.0 Antes de Iniciar o 1.1 Guía de instalación de Debian 6.0 'Squeeze' (p1) o 1.1 Guía de instalación de Debian 6.0 'Squeeze' (p2) 2. Configuración o 2.0 Antes de iniciar o 2.1 Red local 2.1.1 Diagrama de la Red 2.1.2 Dirección IP estática 2.1.3 Nombre del Sistema o 2.2 Software 2.2.1 Gestor de paquetes aptitude 2.2.2 Actualizaciones de software 2.2.3 Repositorios

Transcript of Servidor Debían

Servidor Deban

Cmo instalar un servidor Linux con Deban 6.0 SqueezeUna gua prctica para instalar y configurar un sper-servidor Linux.

Este documento pretende ser una gua fcil sobre cmo instalar un servidor Linux con un mximo de funcionalidades y un mnimo de dificultades. Ofrece explicaciones claras y fciles de seguir (tambin es posible copiar y pegar las instrucciones). Esta gua explica, paso a paso, cmo:

Instalar el Linux Debian 6.0 'Squeeze'; Configurar el sistema (redes, software, acceso remoto y reloj del sistema); Implementar un servidor interno (configuracin automtica de la red, compartir archivos con clientes Windows, filtros anti-virus y anti-spam, servidor proxy, servidor media); Implementar un servidor de e-mail (servidor seguro de IMAP, interfaz webmail, filtros integrados anti-spam y anti-virus, recepcin y centralizacin de e-mails); Implementar un Servidor de internet (http y https con php y MySQL, ftp seguro, webdav); Monitorizacin (interfaz grfica, anlisis e informacin va e-mail); Seguridad (sistemas de deteccin de intrusos, auditora de seguridad y sistemas de alerta va e-mail).

Ahora manos a la obra, bienvenidos a su gua sobre el Servidor Debian 6.0 "Squeeze".

Servidor Debian 6.0 Squeeze

0. Antes de Iniciar o 0.0 Sobre esta gua 1. Instalacin o 1.0 Antes de Iniciar o 1.1 Gua de instalacin de Debian 6.0 'Squeeze' (p1) o 1.1 Gua de instalacin de Debian 6.0 'Squeeze' (p2) 2. Configuracin o 2.0 Antes de iniciar o 2.1 Red local 2.1.1 Diagrama de la Red 2.1.2 Direccin IP esttica 2.1.3 Nombre del Sistema o 2.2 Software 2.2.1 Gestor de paquetes aptitude 2.2.2 Actualizaciones de software 2.2.3 Repositorios

2.2.4. Notificacin de actualizaciones 2.3 Acceso Remoto 2.3.1 El protocolo SSH 2.3.2 Servidor Ssh o 2.4 Reloj del sistema 2.4.1 Fecha, hora y huso horario 2.4.2 Protocolo NTP 2.4.3 Servidor NTP 3. Servidor Intranet o 3.1 DNS 3.1.1 El Protocolo DNS 3.1.2 Cache DNS 3.1.3 Servidor DNS Local 3.1.4 DNS Dinmico o 3.2 Dhcp 3.2.1 El protocolo DHCP 3.2.2 Servidor DHCP o 3.3 Proxy Internet 3.3.1 Cache web: Squid3 o 3.4 Base de datos 3.4.1 Servidor MySQL o 3.5 Certificados SSL 3.5.1 Certificados SSL auto-firmados o 3.6 Anti-virus 3.6.1 ClamAV o 3.7 Antispam 3.7.1 Spamassassin o 3.8 Control de versiones 3.8.1 Subversion 4. Servidor Internet o 4.1 Servidor HTTP 4.1.1 Apache2 4.1.2 Apache2 + Ssl 4.1.3 Apache2 + Php5 4.1.4 Apache2 + Php5 + Mysql 4.1.5 Apache2: Pginas personales o 4.2 Servidor FTP 4.2.1 ProFTPD 4.2.2 Acceso ftp annimo 4.2.3 Acceso seguro FTPS (TLS/SSL) o 4.3 WebDAV 4.3.1 Servidor WebDAV 5. Servidor de E-mail o 5.1 Protocolo IMAP 5.1.1 Servidor IMAP/IMAPS 5.1.2 Quotas o 5.2 Protocolo SMTP o

5.2.1 Servidor SMTP 5.2.2 Servidor SMTP com autenticacin 5.2.3 Relay SMTP 5.2.4 Teste Open Relay o 5.3 Filtragem de Email 5.3.1 amavisd-new 5.3.2 Filtro Anti-vrus 5.3.3 Filtro Anti-spam o 5.4 Descarga de email 5.4.1 Fetchmail o 5.5 Interfaz Webmail 5.5.1 Roundcube 6. Monitorizacin o 6.1 Archivos log 6.1.1 Logwatch o 6.2. Monitorizacin del sistema 6.2.1 Munin 7. Seguridad o 7.1 Ataque de fuerza bruta 7.1.1 Fail2Ban o 7.2 Deteccin de rootkits 7.2.1 Rootkit Hunter o 7.3 Auditora de seguridad 7.3.1 Debsecan

Sobre esta guaEsta gua ilustra, paso a paso, la instalacin y configuracin de un servidor Debian GNU/Linux casero. La gua trata no slo de la instalacin y configuracin del sistema de base, sino tambin de diversos servicios para redes. Esta gua slo tiene objetivos educativos. No debe ser utilizada para instalar y configurar un sistema de produccin. Las instrucciones presentes en esta gua estn basadas en la versin 6.0 'Squeeze' de la distribucin Debian GNU/Linux.

Esta gua es para m?Esta gua es para todo aquel que:

Sea un entusiasta de Linux y quiera instalar un pequeo servidor casero como ejercicio para conocer mejor Linux. Tenga un poco (quiz mucho) tiempo disponible para aprender, investigar y resolver los problemas que VAN a aparecer. No desista fcilmente ante las primeras dificultades o contrariedades.

Esta gua NO ES para aquel que...

Busque una manera fcil de impresionar a su jefe, con un servidor empresarial hecho a punta de copiar y pegar comandos, y que crea que todo funciona por arte de magia. No conozca nada sobre Linux y los computadores en general. Piense que puede hacer un servidor y descansar por el resto de la vida. Crea que se pueda graduar como Administrador de Sistemas slo por haber ledo este manual.

Instalar, configurar y mantener un servidor (Linux u otro) requiere de un profesional altamente capacitado, dedicado y con mucha experiencia. Es conveniente no olvidar que mantener un servidor es una tarea que nunca acaba, as como tampoco es, la tarea ms fcil de este mundo Esta gua es, bsicamente, una compilacin de mi propio proceso de aprendizaje, por lo tanto, debe ser usada slo como una herramienta de aprendizaje. As mismo, como ejercicio de aprendizaje, esta gua responde a mis propias necesidades, no necesariamente a las de otros, por lo que debe ser usado como una base de trabajo para investigaciones personales. Si esta gua le ayuda a promover ms preguntas que respuestas, felicidades. Usted est en la direccin correcta y pronto podr asumir retos ms complejos.

Una sugerencia, experimente primeroLo mejor es experimentar sin compromisos antes de comenzar en serio y hacer una instalacin virtual. Ahora existen programas excelentes de virtualizacin. Yo recomiendo los dos a continuacin porque son fciles de usar y representan una excelente plataforma para hacer pruebas.

Virtualbox (http://www.virtualbox.org) es un software de cdigo abierto que puede ser usado libremente y cuenta con una lista impresionante de posibilidades. Este fue el software utilizado para el desarrollo de esta gua. VMWare (http://www.vmware.com) dispone de programas gratuitos de virtualizacin como VMWare Server y VMWare Player, que pueden ser utilizados de forma libre y gratuita.

No me hago responsable!Como puede suceder con cualquier gua, sta puede contener algunas incorrecciones, o puede sugerir interpretaciones incorrectas. Bajo ningn caso asumir la responsabilidad por cualquier dao que resulte del uso de esta gua. Quedan todos advertidos.

1 Antes de IniciarEsta gua es basada en la versin oficial Debian 6.0 'Squeeze', tambin conocida como estable. Para saber ms acerca de las versiones de Debian GNU/Linux consulte Versiones de Debian.

Preparar el CD-Rom de instalacinLa manera ms fcil de instalar Debian es con un CD-Rom. En Internet es posible descargar una imagen del CD de instalacin (archivo con la extensin .iso') y grabar un CD con esa imagen. En los mirrors de Debian existen varias imgenes de CD y DVD de instalacin, desde un 'mini' CD de 32 Mb hasta un conjunto de DVD con varios Gb y prcticamente todo el software disponible de los repositorios de Debian. Como el objetivo es instalar un servidor, la mejor opcin es hacer una instalacin mnima y despus instalar desde internet los paquetes de software que sean necesarios. As, basta con descargar una imagen netinst (de 180 a 190 Mb), disponible en los servidores de Debian.org: http://debian.org/devel/debian-installer

Descargar el archivo ISO de instalacinEl archivo de instalacin est disponible en estas direcciones:

http://cdimage.debian.org/cdimage/release/current/i386/iso-cd/debian-6.0.7-i386netinst.iso (para procesadores de 32bits). http://cdimage.debian.org/cdimage/release/current/amd64/iso-cd/debian-6.0.7amd64-netinst.iso (para procesadores de 64bits).

Crear un CD-Rom de instalacinPara esto es necesario utilizar un programa para grabar CD que permita quemar imgenes ISO. En algunos casos, basta con arrastrar el archivo .iso hasta el programa para realizar este paso.

Configurar el arranque para que inicie desde el CD-RomEsta opcin puede configurarse en la Bios del computador. Para esto, deber sealarse al CD-Rom como el dispositivo de arranque prioritario. En algunos equipos ms recientes, es posible escoger en un men el dispositivo de arranque. http://www.debian.org/releases/squeeze/i386/ch03s06.html.es#boot-dev-select La Gua de Instalacin de Debian GNU/Linux]9 puede ayudarle a completar este paso. Como, en algunos casos, se cambia la configuracin del //Bios// instalado, es importante consultar la documentacin o [[http://www.debian.org/releases/squeeze/i386/ch03s06.html.es#bootdev-select Gua de Instalacin de Debian GNU/Linux.

Atencin a la posible prdida de datos!Durante la instalacin del sistema Debian el disco duro de su computador ser formateado. Por tanto, todos los datos que usted tenga guardados en su disco sern destruidos. Es clave que usted verifique que el disco no contenga datos cruciales. En caso de dudas, siempre es buena idea hacer una copia de respaldo de toda su informacin.

Root o usuario normal?Por regla general, nunca se debe trabajar en un sistema Linux como root (o sper-usuario). Tenga siempre en cuenta que, como root, el usuario tiene todo el control de mando del sistema, por esto, un pequeo error tipogrfico a la hora de copiar un comando puede ser catastrfico para todo el sistema. Sin embargo, para instalar paquetes de software o para configurar un sistema, generalmente es necesario tener privilegios de root, porque un usuario normal no puede, por regla general, editar archivos de configuracin, iniciar servicios y otras acciones. El comando su permite transformar la identidad de un usuario normal en root. Si un usuario normal conoce la contrasea del root, puede asumir esta identidad as:fribeiro@server:~$ su - root Password: root@server:~#

A partir de este momento y para todos los efectos, el usuario root est activo. Para terminar la sesin como root se utiliza el comando exit:root@server:~# exit logout fribeiro@server:~$

1.1 Gua de instalacin de Debian 6.0 'Squeeze' (p1)1.1 Gua de instalacin de Debian 6.0 'Squeeze' (p2)

Arranque con el CD-RomInserte el CD-Rom de instalacin de Debian en la unidad de CD y reinicie el sistema. No olvide configurar su equipo para que pueda arrancar desde el CD-Rom. Para esto puede verificar la configuracin del Bios, o presionar una tecla que permite seleccionar el dispositivo de arranque.

Para comenzar la instalacin, seleccione la opcin Install y presione luego [ENTER].

LocalizacinLuego de algunos segundos, debe seleccionar la lengua de instalacin, que ser tambin la lengua utilizada por el sistema. Para efectos de compatibilidad, se recomienda seleccionar English:

Despus, deber indicar la localizacin geogrfica del servidor. Basada en la lengua seleccionada, aparecer una lista con diversos pases. Si no encuentra un pas, puede seleccionar other:

Si ha seleccionado other, despus debe indicar la regin:

Finalmente, debe seleccionar el pas:

En el siguiente paso, vamos a escoger otra vez el ingls para evitar conflictos de compatibilidad.

Despus puede escoger el mapa de teclado. Si usted necesita escribir en espaol, puede seleccionar Spanish o Latin American. Si necesita escribir en varios idiomas, us-intl w/ dead keys es una buena opcin.

Luego el instalador cargar algunos componentes antes de pasar a la configuracin de red.

Conexin a InternetPara conectarse a Internet se requiere, bsicamente, la atribucin de una direccin IP y de un nombre al sistema. La direccin IP y los dems parmetros de la red pueden obtenerse de forma automtica, a partir de un servidor DHCP o configurados manualmente.

Direccin IP automtica va DHCPEn este paso el instalador intentar obtener una direccin IP de forma automtica, a travs de un servidor DHCP:

Direccin IP manualmenteSi el instalador no puede obtener de forma automtica la direccin IP o si el proceso se interrumpe, ser necesario configurar la conexin a Internet manualmente.

En este caso, seleccione la opcin configuracin manual de la red:

Escriba la direccin IP del sistema. Esta direccin debe ser nica en la configuracin de la red local.

Escriba la mscara de red o acepte la sugerida por el sistema:

El gateway es el dispositivo por el cual la red interna acceder a Internet. Normalmente es la direccin del router o el modem de nuestro proveedor de acceso a Internet. Indique el gateway o acepte el sugerido:

La direccin del servidor DNS se puede obtener a travs de nuestro proveedor de acceso a la red. Generalmente, es la misma direccin del router. Indique la direccin sugerida del servidor DNS o acepte la sugerida:

Nombre del sistemaIndique el nombre por el cul el sistema ser reconocido en la red. Tal como la direccin IP, este nombre debe ser nico en la red local:

Indique el dominio. Debe emplearse un dominio inexistente, como casa -red o homelan. No se puede utilizar nombres de dominios que existan como google.com o linux.org, para evitar problemas en la resolucin de los nombres.

Usuarios y passwordsEl instalador requiere la configuracin de dos cuentas de sistema o logins. La primera es el root, se trata de una cuenta especial porque est privilegiada con plenos poderes de accin sobre el sistema. La segunda es la de un usuario normal, con poderes limitados por seguridad.

Root

Para la cuenta del sper-usuario o root se necesita una contrasea o password. Recuerde que el nombre predefinido de esta cuenta es root. Tambin es clave repetir que el root tiene el privilegio de modificar el sistema, por tanto, siempre es buena idea escoger una contrasea que sea difcil de adivinar o romper.

Confirmar la contrasea de la cuenta del root. Es necesario escribir dos veces la misma contrasea para verificar que no tenga errores.

Usuario normalUn usurio normal, sin privilegios creados, tambin debe ser creado. Para completar este paso, debe indicar el nombre completo de este usuario.

Luego indicar el login del usuario, se trata del nombre con que se identifica el usuario en el login:

Luego, debe escoger una contrasea:

Confirmar la contrasea para confirmar que no tenga errores:

1.1 Gua de instalacin de Debian 6.0 'Squeeze' (p2) 1.1 Gua de instalacin de Debian 6.0 'Squeeze' (p1)

Reloj del sistema y huso horarioSi es posible, el instalador intentar sincronizar el reloj del sistema a partir de uno de los servidores que establecen la hora oficial en el Internet:

Para seleccionar de manera adecuada el reloj del sistema, aparecer una lista con husos horarios vlida para el pas escogido previamente.

Particionamiento del disco duroEl particionamiento consiste en organizar el disco en varias reas o particiones, cada una con un objetivo o un tipo de archivos especficos. El instalador Debian ofrece diversas opciones y estrategias de particionamiento del disco duro. En este caso optamos por dividir el disco en dos partes iguales, una para la instalacin del sistema (/ o root) y otra para almacenar los datos (/home). Una tercera particin de memoria virtual (swap) tambin ser creada. La opcin Particionamiento guiado permite crear, de una manera sencilla y rpida, las particiones de acuerdo a nuestro plan:

En este paso, debe escoger el disco donde se crearn las particiones. En Linux, los discos con interfaz SCSI o SATA son nombrados sda, sdb, etc., mientras que los discos con interfaz IDE (o PATA) son nombrados como hda, hdb, etc.

Escoger la opcin Particin /home separada:

La siguiente pantalla resume nuestra configuracin, donde sern creadas 3 particiones: Particin Contenido / (root) Aqu se instalarn los archivos del sistema swap Se trata de la memoria virtual /home Aqu sern almacenados los archivos de los usuarios

Atencin: las particiones sern formateadas, por tanto todos los datos existentes en el disco sern eliminados.

Formatear las particiones puede requerir un poco de tiempo, esto depende del tamao del disco y del tipo de hardware.

Instalacin del sistema baseEn este paso, el instalador comenzar la instalacin de los paquetes necesarios para crear un sistema base. Este proceso puede demorar algn tiempo. En la primera fase, sern descargados los paquetes necesarios:

En la segunda fase, los paquetes base sern instalados:

Finalmente, se instalar el kernel del Linux:

Configuracin del gestor de paquetes aptLa distribucin Debian tiene un poderoso sistema de gestacin de paquetes de software, que se llama apt. Este gestor facilita la actualizacin e instalacin de nuevos paquetes a partir de varios repositorios. Usualmente estos repositorios se encuentran en Internet. Para hacer ms eficiente el proceso de instalacin de paquetes desde Internet, debe seleccionarse el repositorio geogrficamente ms cercano al usuario. Para esto, debe elegirse un mirror. En primer lugar, debe escoger el pas:

Luego, escoger el mirror ms prximo:

En caso de que utilice un proxy para acceder a Internet, debe indicar la direccin del proxy:

Una vez configurado, el apt verificar si existen posibles actualizaciones en el mirror definido: Si stas existen, sern descargadas de Internet para actualizar el sistema:

Concurso de popularidadLa comunidad Debian mantiene un concurso de popularidad interno, con el fin de obtener estadsticas sobre los sistemas instalados. Por tanto, la instalacin de este paquete depende de la instalacin de otros paquetes. Esta situacin no es recomendable, por lo que se sugiere seleccionar NO:

Seleccin del software para instalarEl instalador permite la instalacin automtica de diversas configuraciones del sistema. Como queremos personalizar totalmente nuestro sistema, anularemos cualquier seleccin existente. Con esto se instalar un sistema con un mnimo de funcionalidades.

Instalacin del gestor de arranque grubEn este paso, el sistema est prcticamente instalado. Sin embargo, para que ste pueda arrancar debe instalarse el gesto de arranque grub en el master boot record (mbr) del disco:

Terminar la instalacinLa instalacin est terminada. Debe retirar el CD-Rom de instalacin de la unidad de CD y seleccionar continuar. Con esto concluye la instalacin y arranca el sistema nuevo.

El primer arranque del sistemaSi usted puede ver la siguiente pantalla, esto indica que la instalacin concluy bien:

LoginEl login o acceso al sistema:

El resultado de la instalacin sugerida es un sistema Linux con un mnimo de funcionalidades, pero extremadamente slido, que muy pronto podr crecer tanto como lo exijan nuestras propias necesidades.

Referencias

Gua de instalacin de Debian GNU/Linux (http://www.debian.org/releases/squeeze/i386/index.html.es) Gua de instalacin de Debian GNU/Linux, Captulo 6. Usar el instalador de Debian (http://www.debian.org/releases/squeeze/i386/ch06.html.es)

2 Antes de iniciarLa configuracin del servidor consiste, bsicamente, en la instalacin de paquetes de software y de su configuracin especfica para nuestro sistema. Cuando un paquete de software es instalado, se genera una configuracin bsica que ofrece unas funcionalidades relativamente reducidas o limitadas. Algunas de estas funcionalidades quedan inactivas despus de la instalacin, por motivos de seguridad. Por tanto, para obtener el mximo potencial de un software, es necesario personalizar y afinar su configuracin.

Sin embargo, debido a que un pequeo error de configuracin puede vulnerar el sistema y hacerlo intil, siempre deben tomarse en cuenta algunas precauciones antes de alterar cualquier configuracin.

Copias de respaldoEl siguiente principio es fundamental, seguirlo le ahorrar dolores de cabeza: nunca altere un archivo sin hacerle antes una copia de seguridad. Por ejemplo, si es necesario alterar el archivo de configuracin /etc/network/interfaces, primero deber hacerse una copia de respaldo del original:root@server:~# cp /etc/network/interfaces /etc/network/interfaces.ori

En seguida, s puede editar el archivo:root@server:~# nano -w /etc/network/interfaces

Pueden contrastarse las diferencias entre el archivo original y el modificado con el comando diff:root@server:~# diff /etc/network/interfaces.ori /etc/network/interfaces 9,10c9,20 < allow-hotplug eth0 < iface eth0 inet dhcp --> #allow-hotplug eth0 > #iface eth0 inet dhcp > > # Endereco IP fixo > auto eth0 > iface eth0 inet static > address 192.168.1.100 > netmask 255.255.255.0 > network 192.168.1.0 > broadcast 192.168.1.255 > gateway 192.168.1.1

En caso de que pretenda restaurar el archivo original, se puede borrar el archivo modificado y reemplazarlo por el original, as:root@server:~# rm /etc/network/interfaces root@server:~# cp /etc/network/interfaces.ori /etc/network/interfaces

Qu editor usar?Los archivos de configuracin son, por regla general, archivos de texto. Por esto, pueden ser modificados con un editor de texto.

Los puristas defienden el vi o vim como editor de eleccin (Debian 6.0 instala de forma predeterminada una versin ms liviana de vim, llamada vim.tiny). Una alternativa posible y, eventualmente ms amigable, es nano. Para editar un archivo con vi o vim.tiny basta ejecutar el programa ejecutado con el archivo como argumento. Por ejemplo, para editar el archivo /etc/network/interfaces:

con vi:

root@server:~# vi /etc/network/interfaces

con vim.tiny:

root@server:~# vim.tiny /etc/network/interfaces

Para usar nano se debe emplear la opcin -w para evitar la insercin de saltos de lnea, cosa que podra ocasionar problemas en un archivo de configuracin:root@server:~# nano -w /etc/network/interfaces

Referencias

Wikipedia: diff (http://es.wikipedia.org/wiki/Diff) Wikipedia: vi (http://es.wikipedia.org/wiki/Vi) Wikipedia: vim (http://es.wikipedia.org/wiki/Vim) GNU Diffutils (http://www.gnu.org/software/diffutils) Vim: (http://www.vim.org/) GNU nano: (http://www.nano-editor.org/)

2.1 Red localLa red local es un elemento esencial para un servidor. Su configuracin es muy fcil.

2.1.1 Diagrama de la Red 2.1.2 Direccin IP esttica 2.1.3 Nombre del Sistema

2.1.1 Diagrama de la RedEl diagrama de una red caseraEste manual tiene en mente la integracin de un servidor en un red casera tpica y cerrada. El acceso a Internet se hace a travs de un router/modem ADSL, con un firewall.

El gatewayUn gateway es un dispositivo que posibilita el acceso a Internet a partir de una red interna o intranet. Este dispositivo tambin filtra o impide los accesos externos a la red interna, formando as una barrera de seguridad (firewall) entre la red interna y la internet. El router/firewall requiere una direccin IP esttica, para que pueda ser fcilmente accesible desde los restantes dispositivos de la red. En este ejemplo, el nombre router/firewall ser gateway.home.lan y el enderezo IP ser 192.168.1.1.

El servidorEl servidor Debian, al estar integrado a la red interna, est protegido de accesos indiscriminados e indeseados que provengan de la internet.

El servidor, tambin requiere una direccin IP esttica, de modo que pueda ser fcilmente accesible para los dispositivos restantes de la red. Entre otras tareas, el servidor podr atribuir de forma automtica las direcciones IP a los clientes, as como indicar el acceso a Internet a travs del gateway. En este ejemplo, el nombre del servidor es server.home.lan y la direccin IP es 192.168.1.100.

Los clientesLos clientes sern todos los dispositivos ligados a la red interna. Su configuracin ser gestionada por los varios servicios que ofrezca el servidor. El acceso al exterior es hecho exclusivamente a travs del gateway, lo que resulta en un ambiente seguro y protegido de eventuales accesos externos mal intencionados.

Referencias

Wikipedia: Red de rea local (http://es.wikipedia.org/wiki/Red_de_rea_local) Wikipedia: Puerta de enlace (https://es.wikipedia.org/wiki/Puerta_de_enlace) Wikipedia: Cortafuegos (http://es.wikipedia.org/wiki/Cortafuegos_(informtica))

2.1.2 Direccin IP estticaObjetivoLa instalacin de Debian, configura automticamente la red para obtener una direccin dinmica va DHCP. Sin embargo, para que el sistema est configurado como servidor, ste debe tener una direccin IP esttica. Nuestro objetivo es configurar la interfaz de red eth0 con una direccin IP esttica 192.168.1.100. Tambin es necesario indicar la direccin del dispositivo de acceso a Internet, el gateway (192.168.1.1). En una configuracin casera, este ser la direccin esttica del router ADSL.

ConfiguracinLa configuracin de las interfaces de red est guardada en el archivo /etc/network/interfaces: /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 # The primary network interface # allow-hotplug eth0 # iface eth0 inet dhcp # Static IP address auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1

Tambin es necesario indicar la direccin del servidor DNS. En esta configuracin, el servidor DNS funciona en el router/modem ADSL, por lo que el parmetro para nameserver debe tener el valor 192.168.1.1, en el archivo/etc/resolv.conf: /etc/resolv.confdomain localdomain search localdomain nameserver 192.168.1.1

Ahora debe reiniciarse la interfaz de red para activar la nueva configuracin:root@server:~# ifdown eth0 root@server:~# ifup eth0

VerificacinEl comando ifconfig suministra informacin detallada sobre la configuracin de las interfaces de red. La configuracin de la interfaz eth0 debe exhibir, los parmetros previamente definidos:root@server:~# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:84:4c:b2 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe84:4cb2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:32 errors:0 dropped:0 overruns:0 frame:0 TX packets:68 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5657 (5.5 KiB) TX bytes:9091 (8.8 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Tambin, debe ser posible contactar a servidores en la Internet:root@server:~# ping -c3 www.debian.org PING www.debian.org (206.12.19.7) 56(84) bytes of data. 64 bytes from bellini.debian.org (206.12.19.7): icmp_seq=1 ttl=43 time=188 ms 64 bytes from bellini.debian.org (206.12.19.7): icmp_seq=2 ttl=43 time=190 ms 64 bytes from bellini.debian.org (206.12.19.7): icmp_seq=3 ttl=43 time=185 ms --- www.debian.org ping statistics --3 packets transmitted, 3 received, 0% packet loss, time 2005ms rtt min/avg/max/mdev = 185.808/188.217/190.108/1.793 ms

Referencias

Debian Reference, 5.5.5. The network interface with the static IP (http://www.debian.org/doc/manuals/debianreference/ch05.en.html#_the_network_interface_with_the_static

2.1.3 Nombre del SistemaObjectivoDespus de la instalacin del sistema, su nombre puede ser alterado.

ConfiguracinEl nombre del sistema, o hostname, est guardado en el archivo /etc/hostname. Este archivo debe contar slo con el nombre del sistema y no con el nombre completo del dominio: /etc/hostnameserver

El nombre debe ser atribuido al sistema a partir del archivo recin creado:root@server:~# hostname -F /etc/hostname

Finalmente, el nombre del servidor debe ser asociado a un nombre completo de dominio y a una direccin IP, en el archivo /etc/hosts: /etc/hosts

127.0.0.1 192.168.1.100

localhost server.home.lan server

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

Verificacinroot@server:~# hostname server root@server:~# hostname home.lan root@server:~# hostname server.home.lan root@server:~# hostname 192.168.1.100 --short --domain --fqdn --ip-address

2.2 Software

2.2.1 Gestor de paquetes aptitude 2.2.2 Actualizaciones de software 2.2.3 Repositorios 2.2.4. Notificacin de actualizaciones

2.2.1 Gestor de paquetes aptitudeUno de los puntos fuertes de la distribucin Debian es su gestor de paquetes apt y su interfaz aptitude. La gestin de las actualizaciones y las instalaciones de software se realiza con la ayuda de este poderoso y amigable gestor de paquetes. Con aptitude es posible, por ejemplo, actualizar todo un sistema con apenas un par de comandos. Las versiones ms antiguas de Debian utilizaban el gestor de paquetes apt. Las versiones actuales de Debian utilizan el gestor aptitude, que aunque sea un front-end del apt, tiene ventajas notorias, como el hecho de mantener un registro ( log) de las acciones efectuadas, lo que permite remover paquetes de una forma ms limpia. Para mayor comodidad, a continuacin encontrar una lista con los comandos de aptitude y sus equivalentes en apt. Pero se advierte que en esta gua preferimos la utilizacin de aptitude..

Gua rpida del aptitudeActualizacin de la lista de paquetes

aptitude update Actualiza la lista de paquetes existente en los repositorios. Este debe ser el primer mando a ejecutar cuando se pretende gestionar paquetes (es equivalente a apt-get update).

Instalacin de paquetes

aptitude install Instala un paquete de software y todos los paquetes de que depende. Es posible instalar varios paquetes a la vez, usando esta sintaxis: aptitude install paquete1 paquete2 paquete3. (es equivalente a apt-get install ). aptitude reinstall Re-instala un paquete, sustituyendo los archivos. Bastante til, cuando se quiere reponer archivos que hayan sido alterados (es equivalente a apt-get install reinstall ).

Actualizao do sistema

aptitude safe-upgrade Instala todas a actualizaes disponveis, procedendo instalao de pacotes para satisfazer todas as dependncias. (Equivalente a apt-get -u upgrade). aptitude full-upgrade Instala todas la actualizaciones disponibles, procediendo a la instalacin o eliminacin de paquetes para satisfacer todas las dependencias (es equivalente a apt-get -u dist-upgrade).

Desinstalacin y eliminacin de paquetes

aptitude remove Desinstala un paquete, pero mantiene los archivos de instalacin del paquete. Es posible desinstalar varios paquetes a la vez, usando la sintaxis: apt-get remove paquete1 paquete2 paquete3. (es equivalente a apt-get remove ). aptitude purge Elimina por completo un paquete, incluyendo los ficheros de instalacin (es equivalente a apt-get remove purge ).

Bsqueda de paquetes

aptitude search Busca en la lista de paquetes y muestra las coincidencias de criterio (es equivalente a apt-cache search )

Informaciones sobre paquetes

aptitude show Muestra informaciones acerca de los paquetes (es equivalente a apt-cache show )

Limpiar la cache de paquetes

aptitude clean Elimina todos los archivos de paquetes existentes en cache (es equivalente a apt-cache clean). aptitude autoclean Elimina los archivos de paquetes de versiones pasadas existentes en cache, pero mantiene los paquetes de versiones actualizados (es equivalente a apt-cache autoclean).

Por seguridad, actualizar con frecuenciaEs imprescindible que el servidor est siempre al da con sus actualizaciones. La comunidad debian est actualizando constantemente el software para corregir bugs y fallos de seguridad. Un sistema no actualizado es una invitacin abierta para los hackers y los crackers. La mejor fuente para buscar software actualizado es internet. Se deben escoger criteriosamente las fuentes de software o repositrios y proceder con actualizaciones frecuentes. Es tambin importante, seguir de cerca todas las informaciones referentes a bugs (conflictos o problemas que producen algunos paquetes) y fallos de seguridad, as como estar atentos a cul es la mejor manera de corregir esto. La distribucin edita listas con los anuncios de seguridad y con sus respectivas correcciones en la pgina de la distribucin o si prefiere en las listas de distribucin.

Referencias

Debian Security Information (http://www.debian.org/security/) debian-security-announce mailing list (http://lists.debian.org/debian-securityannounce/) Debian Reference, Chapter 2. Debian package management (http://www.debian.org/doc/manuals/reference/ch02.en.html)

2.2.2 Actualizaciones de softwareObjetivoPara garantizar que el sistema tenga las versiones de software y correcciones de seguridad ms recientes, las actualizaciones deben ser hechas con regularidad. La actualizacin del software se hace en dos etapas: primero se actualiza lista de software disponible en los repositorios, y segundo se instalan las eventuales actualizaciones. Ambas operaciones son hechas utilizando el comando aptitude, con diferentes opciones. Es muy importante actualizar el sistema con frecuencia. De esta forma, se puede garantizar que el sistema siempre tenga las correcciones ms recientes a los bugs que puedan aparecer, y las actualizaciones de seguridad que se requieran.

Actualizacin de los repositoriosLa actualizacin de la lista de software disponible en los repositorios es muy fcil:root@server:~# aptitude update Get:1 http://ftp.pt.debian.org squeeze Release.gpg [835 B] Ign http://ftp.pt.debian.org/debian/ squeeze/main Translation-en Ign http://ftp.pt.debian.org/debian/ squeeze/main Translation-en_US Get:2 http://ftp.pt.debian.org squeeze Release [89.9 kB] Get:3 http://security.debian.org squeeze/updates Release.gpg [835 B] Get:4 http://ftp.pt.debian.org squeeze/main amd64 Packages/DiffIndex [2,038 B] Ign http://security.debian.org/ squeeze/updates/main Translation-en Ign http://security.debian.org/ squeeze/updates/main Translation-en_US Get:5 http://security.debian.org squeeze/updates Release [44.6 kB] Get:6 http://ftp.pt.debian.org squeeze/main amd64 2010-10-220256.49.pdiff [10.1 kB] Get:7 http://ftp.pt.debian.org squeeze/main amd64 2010-10-220256.49.pdiff [10.1 kB] Get:8 http://ftp.pt.debian.org squeeze/main amd64 2010-10-220256.49.pdiff [10.1 kB] Get:9 http://security.debian.org squeeze/updates/main amd64 Packages [56.3 kB] Get:10 http://ftp.pt.debian.org squeeze/main amd64 2010-10-221524.42.pdiff [8,117 B] Get:11 http://ftp.pt.debian.org squeeze/main amd64 2010-10-221524.42.pdiff [8,117 B] Get:12 http://ftp.pt.debian.org squeeze/main amd64 2010-10-221524.42.pdiff [8,117 B] Fetched 215 kB in 3s (71.0 kB/s) Current status: 5 updates [+5].

En este ejemplo, se encuentran disponibles 5 actualizaciones para el software instalado.

Instalacin de las actualizacionesLa instalacin de las actualizaciones es tambin muy fcil:root@server:~# aptitude safe-upgrade The following packages will be upgraded: libc-bin libc6 locales tasksel tasksel-data 5 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 9,776 kB of archives. After unpacking 176 kB will be freed. Do you want to continue? [Y/n/?] y Get:1 http://ftp.pt.debian.org/debian/ squeeze/main tasksel-data all 2.84 [105 kB] Get:2 http://ftp.pt.debian.org/debian/ squeeze/main tasksel all 2.84 [87.2 kB] Get:3 http://security.debian.org/ squeeze/updates/main libc-bin amd64 2.11.2-6+squeeze1 [745 kB] Get:4 http://security.debian.org/ squeeze/updates/main libc6 amd64 2.11.2-6+squeeze1 [4,143 kB] Get:5 http://security.debian.org/ squeeze/updates/main locales all 2.11.2-6+squeeze1 [4,697 kB] Fetched 9,776 kB in 20s (480 kB/s) Preconfiguring packages ... (Reading database ... 16181 files and directories currently installed.) Preparing to replace libc-bin 2.11.2-6 (using .../libc-bin_2.11.26+squeeze1_amd64.deb) ... Unpacking replacement libc-bin ... Processing triggers for man-db ... Setting up libc-bin (2.11.2-6+squeeze1) ... (Reading database ... 16181 files and directories currently installed.) Preparing to replace libc6 2.11.2-6 (using .../libc6_2.11.26+squeeze1_amd64.deb) ... Unpacking replacement libc6 ... Setting up libc6 (2.11.2-6+squeeze1) ... (Reading database ... 16181 files and directories currently installed.) Preparing to replace tasksel-data 2.82 (using .../taskseldata_2.84_all.deb) ... Unpacking replacement tasksel-data ... Preparing to replace tasksel 2.82 (using .../archives/tasksel_2.84_all.deb) ... Unpacking replacement tasksel ... Preparing to replace locales 2.11.2-6 (using .../locales_2.11.26+squeeze1_all.deb) ... Unpacking replacement locales ... Processing triggers for man-db ... Setting up locales (2.11.2-6+squeeze1) ... Generating locales (this might take a while)... en_US.UTF-8... done Generation complete. Setting up tasksel-data (2.84) ... Setting up tasksel (2.84) ... Current status: 0 updates [-5].

En este ejemplo, se actualizaron 5 paquetes. Ahora tenemos el sistema al da con sus actualizaciones.

Referencias

Debian Reference, 2.2. Basic package management operations (http://www.debian.org/doc/manuals/reference/ch02.en.html#_basic_package_mana gement_operation

2.2.3 RepositoriosObjetivoAdems del repositorio de software principal de Debian o main, configurado durante la Instalacin del sistema base, existen otros repositorios que, por diversas razones, no son incluidos durante la instalacin. Sin embargo, estos pueden ser incluidos en cualquier momento.

Lista de repositoriosPara facilitar la instalacin de algunos paquetes de software, se deben aadir algunos repositorios a la lista existente, expresamente los repositorios contrib y non-free. Tambin, como no vamos a compilar paquetes a partir de las fuentes, se sugiere desactiva o comentar sus referencias (deb-src). Desactivar o comentar una lnea consiste en escribir el signo # al principio de la lnea que se quiera intervenir, como se ve en el ejemplo. La lista de repositorios se encuentra en el archivo de configuracin /etc/apt/sources.list: /etc/apt/sources.list# # deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official amd64 NETINST Binary-1 20110205-14:31]/ squeeze main #deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official amd64 NETINST Binary-1 20110205-14:31]/ squeeze main deb http://ftp.pt.debian.org/debian/ squeeze main contrib non-free #deb-src http://ftp.pt.debian.org/debian/ squeeze main deb http://security.debian.org/ squeeze/updates main contrib nonfree #deb-src http://security.debian.org/ squeeze/updates main deb http://ftp.pt.debian.org/debian/ squeeze-updates main contrib non-free #deb-src http://ftp.pt.debian.org/debian/ squeeze-updates main

Actualizar la lista local de paquetes con los nuevos repositorios:

root@server:~# aptitude update Hit http://ftp.pt.debian.org squeeze Release.gpg Ign http://ftp.pt.debian.org/debian/ squeeze/contrib Translation-en Ign http://ftp.pt.debian.org/debian/ squeeze/contrib Translation-en_US Ign http://ftp.pt.debian.org/debian/ squeeze/main Translation-en Ign http://ftp.pt.debian.org/debian/ squeeze/main Translation-en_US Ign http://ftp.pt.debian.org/debian/ squeeze/non-free Translation-en Ign http://ftp.pt.debian.org/debian/ squeeze/non-free Translation-en_US Hit http://ftp.pt.debian.org squeeze-updates Release.gpg Ign http://ftp.pt.debian.org/debian/ squeeze-updates/contrib Translationen Ign http://ftp.pt.debian.org/debian/ squeeze-updates/contrib Translationen_US Ign http://ftp.pt.debian.org/debian/ squeeze-updates/main Translation-en Ign http://ftp.pt.debian.org/debian/ squeeze-updates/main Translationen_US Ign http://ftp.pt.debian.org/debian/ squeeze-updates/non-free Translation-en Ign http://ftp.pt.debian.org/debian/ squeeze-updates/non-free Translation-en_US Hit http://ftp.pt.debian.org squeeze Release Hit http://ftp.pt.debian.org squeeze-updates Release Hit http://security.debian.org squeeze/updates Release.gpg Ign http://security.debian.org/ squeeze/updates/contrib Translation-en Ign http://security.debian.org/ squeeze/updates/contrib Translation-en_US Ign http://security.debian.org/ squeeze/updates/main Translation-en Ign http://security.debian.org/ squeeze/updates/main Translation-en_US Ign http://security.debian.org/ squeeze/updates/non-free Translation-en Ign http://security.debian.org/ squeeze/updates/non-free Translationen_US Hit http://ftp.pt.debian.org squeeze/main amd64 Packages Hit http://security.debian.org squeeze/updates Release Get:1 http://ftp.pt.debian.org squeeze/contrib amd64 Packages [64.1 kB] Hit http://security.debian.org squeeze/updates/main amd64 Packages Get:2 http://ftp.pt.debian.org squeeze/non-free amd64 Packages [124 kB] Get:3 http://security.debian.org squeeze/updates/contrib amd64 Packages [20 B] Get:4 http://security.debian.org squeeze/updates/non-free amd64 Packages [20 B] Hit http://ftp.pt.debian.org squeeze-updates/main amd64 Packages Get:5 http://ftp.pt.debian.org squeeze-updates/contrib amd64 Packages [20 B] Get:6 http://ftp.pt.debian.org squeeze-updates/non-free amd64 Packages [20 B] Fetched 188 kB in 0s (252 kB/s) Current status: 566 new [+566].

Utilizando un proxyEn algunos casos es necesario acceder a la internet a travs de un proxy. O aptitude pode ser configurado para usar o proxy. El aptitude puede ser configurado para usar el proxy. Para esto, existen dos mtodos posibles:

Definir una variable de ambiente http_proxy o ftp_poxy, que tenga como valor a la URL del servidor proxy. aptitude tendr en cuenta esta variable cuando se conecte a Internet:

root@server:~# export http_proxy="http://proxy.example.com:3128/"

Incluir las definiciones del proxy en la configuracin de aptitude. Para indicar el proxy a utilizar deber editar o crear el archivo /etc/apt/apt.conf:Acquire::http::Proxy "http://proxy.example.com:3128/";

/etc/apt/apt.conf El formato de la URL de un proxy es: http://[[user][:pass]@]xxx.xxx.xxx.xxx[:port]/, donde:

user:pass : nombre del usuario y contrasea, si el proxy requiere autenticacin y/o autorizacin; xxx.xxx.xxx.xxx : direccin o nombre del servidor proxy; port : puerto de conexin al servicio deproxy;

Referencias

Debian.org: Packages (http://www.debian.org/distrib/packages) Debian worldwide mirror sites (http://www.debian.org/mirror/list)

2.2.4. Notificacin de actualizacionesEl paquete apticron depende de la instalacin de un agente de transporte de e-mail o MTA (Mail Transfer Agent). Por tanto, es necesario instalar primero un Servidor SMTP antes de proceder a la instalacin de apticron.

ObjetivoPara garantizar que un sistema pueda ser actualizado, lo mejor es estar informado de las actualizaciones disponibles. Apticron es un programa que se ejecuta diariamente de forma automtica, verifica las actualizaciones disponibles para nuestro sistema y luego informa al administrador por e-mail.

Instalacinroot@server:~# aptitude install apticron

Resultado

Siempre que haya una actualizacin disponible para nuestro sistema, ser enviado un e-mail al administrador del sistema:Date: Wed, 16 Feb 2011 19:05:48 +0000 To: [email protected] Subject: 2 Debian package update(s) for server.home.lan From: [email protected] (root) apticron report [Wed, 16 Feb 2011 19:05:47 +0000] ======================================================================== apticron has detected that some packages need upgrading on: server.home.lan [ 192.168.1.100 ] The following packages are currently pending an upgrade: login 1:4.1.4.2+svn3283-2+squeeze1 passwd 1:4.1.4.2+svn3283-2+squeeze1 ======================================================================== Package Details: Reading changelogs... --- Changes for shadow (login passwd) --shadow (1:4.1.4.2+svn3283-2+squeeze1) stable-security; urgency=high * The "Tomanoix" release. * debian/patches/300_CVE-2011-0721: Fix insufficient input sanitation leading to possible user or group creation in NIS environments. -- Nicolas FRANCOIS (Nekral) Feb 2011 22:02:28 +0100 Sun, 13

======================================================================== You can perform the upgrade by issuing the command: aptitude full-upgrade as root on server.home.lan -apticron

El administrador podr, entonces, actualizar sus sistema, con el comando aptitude fullupgrade.

2.3 Aceso Remoto

En principio, no debe accederse fsicamente a un servidor a no ser por razones excepcionales (como la actualizacin o la reparacin de hardware, por ejemplo). La mejor manera de gestionar un servidor es remotamente. Sin embargo, este acceso deber ser hecho de una manera segura, para garantizar que la comunicacin no sea interceptada por terceros.

2.3.1 El protocolo SSH 2.3.2 Servidor Ssh

2.3.1 El protocolo SSHEs la solucin para garantizar conexiones remotas seguras. SSH es un protocolo de comunicaciones que encripta los datos intercambiados, haciendo virtualmente imposible la violacin de la privacidad de la comunicacin. El acrnimo ssh viene del ingls: Secure SHell. El protocolo ssh es muy verstil, cuenta con un software cliente que posibilita el acceso a la lnea de comandos, la transferencia de archivos y la creacin de tneles seguros con soportes de comunicaciones para otros protocolos.

Clientes SSHLos clientes ssh se dividen en dos grupos:

Terminal SSH Es un emulador de terminal que permite acceder de forma remota a la lnea de comandos, utilizando el protocolo SSH. Cliente SFTP Se trata de un cliente para transferencia de archivos que utiliza el Protocolo de Transferencia Segura de Archivos. Su sigla indica en ingls (Secure File Transfer Protocol (SFTP))

Clientes Linux

openssh-client (http://packages.debian.org/stable/net/openssh-client) este software ofrece utilidades para acceso remoto (cliente ssh), copia de seguridad de archivos (scp) y transferencia segura de archivos (sftp), entre otras. FileZilla (http://filezilla-project.org) Cliente SFTP.

Clientes Windows

PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty) Terminal SSH.

WinSCP (http://winscp.net/eng/index.php) Cliente SFTP. FileZilla (http://filezilla-project.org) Cliente SFTP.

2.3.2 Servidor SshInstalacinroot@server:~# aptitude install openssh-server openssh-client

ConfiguracinTodas las configuraciones del servidor ssh se encuentran en el archivo /etc/ssh/sshd_config. Para configurar el servidor debe indicarse las direcciones donde el servicio debe responder. En este caso sern conexiones ligadas a la direccin 192.168.1.100, a travs del puerto 22 y utilizando la versin 2 del protocolo ssh:/etc/ssh/sshd_config# Package generated configuration file # See the sshd_config(5) manpage for details # What ports, IPs and protocols we listen for Port 22 # Use these options to restrict which interfaces/protocols sshd will bind to #ListenAddress :: #ListenAddress 0.0.0.0 ListenAddress 192.168.1.100 Protocol 2 #[...]

Por seguridad, se debe desactivar el login como root. on esta configuracin, para adquirir los privilegios del root, se debe hacer un login usuario normal y, despus, adquirir los privilegios de root. De este modo, prevenimos que el password del root sea objeto de un ataque./etc/ssh/sshd_config#[...] # Authentication:

LoginGraceTime 120 PermitRootLogin no StrictModes yes #[...]

Tambin se debe verificar que no sean permitidos los logins con contraseas vacas:/etc/ssh/sshd_config#[...] # To enable empty passwords, change to yes (NOT RECOMMENDED) PermitEmptyPasswords no #[...]

Reiniciar el servicio:root@server:~# /etc/init.d/ssh restart

VerificacinClientes LinuxDebe ser posible establecer una conexin ssh a la direccin 192.168.1.100. La primera vez que la conexin se efecte, sta debe ser confirmada, porque el servidor no est registrado en la lista de los sistemas conocidos por el cliente.fribeiro@laptop:~$ ssh 192.168.1.100 The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established. RSA key fingerprint is ee:16:b0:c9:1b:ef:b4:64:e1:86:80:f4:36:9f:08:03. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.100' (RSA) to the list of known hosts. [email protected]'s password: Linux server 2.6.32-5-amd64 #1 SMP Fri Oct 15 00:56:30 UTC 2010 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. fribeiro@server:~$ logout Connection to 192.168.1.100 closed. fribeiro@laptop:~$

Las conexiones con el login root no sern aceptadas:

fribeiro@laptop:~$ ssh -l root 192.168.1.100 [email protected]'s password: Permission denied, please try again. [email protected]'s password: Permission denied, please try again. [email protected]'s password: Permission denied (publickey,password).

Clientes WindowsEl acceso a partir de clientes Windows es posible con un programa emulador del terminal que soporte ssh, como Putty:

Obtener privilegios de rootComo el login como root est desactivado, la manera de obtener privilegios de root en una conexin ssh es a travs de un usuario comn que escala privilegios con el comando su:fribeiro@laptop:~$ ssh 192.168.1.100 [email protected]'s password: Linux server 2.6.32-5-amd64 #1 SMP Fri Oct 15 00:56:30 UTC 2010 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Oct 27 11:01:21 2010 from laptop.home.lan fribeiro@server:~$ su - root Password: root@server:~#

2.4 Reloj del sistemaEn un servidor es fundamental asegurarse de que el reloj del sistema funcione correctamente. No slo porque varios servicios dependan del reloj, sino tambin porque el reloj puede ser utilizado para sincronizar y poner en punto a los dems equipos.

2.4.1 Fecha, hora y huso horario 2.4.2 Protocolo NTP 2.4.3 Servidor NTP

2.4.1 Fecha, hora y huso horarioObjetivoPoner en punto el reloj y la fecha del sistema.

ConfiguracinFuso horarioEs imperativo configurar adecuadamente el huso horario correspondiente al servidor. La informacin sobre el huso horario se encuentra en el archivo /etc/timezoney puede ser consultada con el comando cat:root@server:~# cat /etc/timezone Europe/Lisbon

Para configurar el huso horario, se utiliza el comando dpkg-reconfigure tzdata y se escoge la zona correcta en el men interactivo:root@server:~# dpkg-reconfigure tzdata

Un dilogo permite seleccionar la regin geogrfica:

En seguida, puede sealarse la regin o el pas donde el servidor se encuentra fsicamente localizado:

Luego, el resultado queda registrado as:Current default time zone: 'Europe/Lisbon' Local time is now: Wed Oct 27 11:54:26 WEST 2010. Universal Time is now: Wed Oct 27 10:54:26 UTC 2010.

Fecha yhoraEl comando date muestra la fecha actual del sistema:

root@server:~# date Wed Oct 27 12:00:57 WEST 2010

El comando date tambin permite poner en punto la hora del sistema manualmente. Para esto se utiliza la sintaxis reducida date MMDDhhmm:root@server:~# date 10271201 Wed Oct 27 12:01:00 WEST 2010

2.4.2 Protocolo NTPEl protocolo NTP (Network Time Protocol) se utiliza para mantener en punto el reloj del sistema, sincronizndolo a partir de una red de servidores NTP a travs de Internet.

ObjetivoUtilizar la red de servidores NTP para poner en punto el reloj de sistema.

Instalacinroot@server:~# aptitude install ntpdate ntp-doc

UtilizacinEn primer lugar, se debe verificar que el huso horario del sistema est definido de forma correcta. Ver Fuso horario. Despus se puede poner en punto el reloj del sistema, teniendo como referencia uno de los servidores NTP:root@server:~# ntpdate -u pool.ntp.org 28 Oct 12:09:17 ntpdate[2493]: adjust time server 194.117.9.136 offset 0.030742 sec

Referencias

Wikipedia: Network Time Protocol (http://es.wikipedia.org/wiki/NTP) NTP: The Network Time Protocol (http://www.ntp.org/)

2.4.3 Servidor NTP

ObjetivoEl protocolo NTP se usa para mantener en punto el reloj del sistema. Esto es posible gracias a su sincronizacin con otros servidores NTP va internet.

Instalacinroot@server:~# aptitude install ntp ntp-doc

ConfiguracinVerificar la configuracin del Fuso horario y de la fecha y hora del sistema.

VerificacinEl comando ntpq -p permite verificar cules son los servidores NTP a los que estamos conectados. Los *, + e - indican respectivamente conexiones exitosas, sincronizaciones en curso y servidores poco confiables. Esto puede demorar algunos minutos hasta que aparezca la lista y hasta 30 minutos para que ocurra la primera correccin.root@server:~# ntpq -p remote refid st t when poll reach delay offset jitter ========================================================================= ===== +ns4.lerfjhax.co 198.60.22.240 2 u 20 64 1 157.121 -20.776 20.808 -ns1.vibit.eu 195.13.1.153 3 u 19 64 1 80.428 25.345 9.081 *68.68.18.78.cus 192.43.244.18 2 u 18 64 1 144.241 -3.047 3.650 +nagios.rack911. 128.138.188.172 2 u 17 64 1 159.292 -4.013 9.109

El servidor NTP est listo para ser utilizado.

UtilizarPara poner en punto la hora y fecha de un sistema cliente, es suficiente con usar el comando ntpdate (ver Protocolo NTP), indicando la direccin del servidor:root@laptop:~# ntpdate -u 192.168.1.100 4 Feb 22:38:01 ntpdate[15071]: adjust time server 192.168.1.100 offset 0.027193 sec

3. Servidor IntranetUna vez terminada la configuracin de base del servidor, es hora de expandir su funcionalidad para que pueda proveer un conjunto de servicios para la red interna.

3.1 DNS o 3.1.1 El Protocolo DNS o 3.1.2 Cache DNS o 3.1.3 Servidor DNS Local o 3.1.4 DNS Dinmico 3.2 Dhcp o 3.2.1 El protocolo DHCP o 3.2.2 Servidor DHCP 3.3 Proxy Internet o 3.3.1 Cache web: Squid3 3.4 Base de datos o 3.4.1 Servidor MySQL 3.5 Certificados SSL o 3.5.1 Certificados SSL auto-firmados 3.6 Anti-virus o 3.6.1 ClamAV 3.7 Antispam o 3.7.1 Spamassassin 3.8 Control de versiones o 3.8.1 Subversion

3.1 DNSDNS es la sigla inglesa de Domain Name System (Sistema de Nombres de Dominios). Este sistema correlaciona el nombre de una pgina electrnica con una direccin IP y viceversa. Por ejemplo, gracias al DNS sabemos que el servidor: www.debian.org tiene la direccin IP 213.129.232.18 y viceversa.

3.1.1 El Protocolo DNS 3.1.2 Cache DNS 3.1.3 Servidor DNS Local 3.1.4 DNS Dinmico

3.1.1 El Protocolo DNSSistema de Nombres de Dominios

Siempre que se utiliza un nombre para designar a un servidor, como sucede con www.debian.org , ste debe traducirse en la forma de una direccin IP nica del mismo servidor. Este proceso se conoce como resolucin y es efectuado gracias al Domain Name System (DNS) (o en espaol, Sistema de Nombres de Dominios). Este sistema est constituido por una red global de servidores, organizados en un rbol, donde cada servidor contiene una tabla de asociaciones entre los nombres de los servidores y sus respectivas direcciones IP.

Cmo funciona el DNSSupongamos que se pretende contactar el servidor www.google.com//. El sistema iniciar una serie de contactos entre otros sistemas diversos, para encontrar cul es la direccin asociada a la direccin pretendida. Una versin muy simplificada sera la siguiente: posiblemente, el sistema tendr que contactar a su servidor de DNS, que a su vez, contactar los servidores DNS de tope para indagar acerca del dominio google.con, y enseguida contactar el servidor DNS de google para saber la direccin IP de www.google.com//. Aunque cada investigacin o resolucin tarda slo milisegundos, la visualizacin de una pgina web en un browser puede resultar bastante penalizada por este proceso. Especialmente, cuando es posible que varios elementos de la pgina estn alojados en diversos servidores, cuyas direcciones deban ser resueltas individualmente.

Referencias

ISC Bind (http://www.isc.org/sw/bind/) Wikipedia (es): Domain Name System (http://es.wikipedia.org/wiki/Domain_Name_System) Wikipedia (en): Domain Name System (http://en.wikipedia.org/wiki/Domain_Name_System)

3.1.2 Cache DNSObjetivoAunque las direcciones Internet tengan nombres legibles ( www.google.com), stos deben ser traducidos a la direccin IP (213.129.232.18) del respectivo servidor. Esa conversin es efectuada realizando una bsqueda en el DNS (Domain Name System). Una cache DNS guardia localmente los resultados de esa bsqueda para utilizacin futura, evitando la repeticin de bsquedas y aumentando drsticamente la velocidad de respuesta.

Instalacinroot@server:~# aptitude install bind9 bind9-doc dnsutils

ConfiguracinLa configuracin generada durante la instalacin es perfectamente funcional, no requiere modificaciones. Sin embargo, vamos personalizar la instalacin en 2 aspectos principales: vamos a definir a cules servidores consultar el nuestro para pedir ayuda en la resolucin de nombres, si no es posible hacer esto localmente ( forwarders) y vamos a fortalecer algunos aspectos de seguridad. Como forwarders podemos optar por varias hiptesis: una es utilizar los servidores DNS de nuestro proveedor de acceso a Internet. Otra posibilidad muy interesante es utilizar uno de los diversos servicios pblicos de DNS disponibles en la actualidad, como:

OpenDNS (http://www.opendns.com/) Google Public DNS (http://code.google.com/speed/public-dns/).

Estos servicios prometen suministrar no slo resoluciones ms rpidas, sino tambin diversos servicios adicionales de seguridad, como filtros de direcciones maliciosos y otros ms. En este caso, utilizaremos los servidores OpenDNS (http://www.opendns.com/). Para tener otra opcin, tambin se aadir el del router ADSL. Por seguridad slo sern recibidas conexiones por la interfaz local o por la destinada a la red interna (listen-on { 127.0.0.1; 192.168.1.100; };). As mismo, slo sern contestados los pedidos de resolucin que partan del propio puesto o de la red interna ( allow-query { 127.0.0.1; 192.168.1.0/24; };). Todos los otros pedidos sern ignorados, para evitar eventuales utilizaciones abusivas de nuestro servidor DNS por parte de terceros. La configuracin est guardada en el archivo /etc/bind/named.conf.options: /etc/bind/named.conf.optionsoptions { directory "/var/cache/bind"; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable

// nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. forwarders { // OpenDNS servers 208.67.222.222; 208.67.220.220; // ADSL router 192.168.1.1; }; // Security options listen-on port 53 { 127.0.0.1; 192.168.1.100; }; allow-query { 127.0.0.1; 192.168.1.0/24; }; allow-recursion { 127.0.0.1; 192.168.1.0/24; }; allow-transfer { none; }; auth-nxdomain no; # conform to RFC1035 // listen-on-v6 { any; }; };

Verificar si el archivo de configuracin fue correctamente editado:root@server:~# named-checkconf

Actualizar el archivo /etc/resolv.conf para que la resolucin de nombres se haga localmente: /etc/resolv.confnameserver 127.0.0.1

Verificar tambin que en el archivo /etc/nsswitch.conf la resolucin de nombres pase tambin por el servicio DNS: /etc/nsswitch.conf# [...] hosts: # [...] files dns

Reiniciar el servicio DNS:root@server:~# /etc/init.d/bind9 restart

VerificacinPara verificar la configuracin, debe buscar la direccin IP de cualquier sitio en internet. El servidor DNS deber mostrar nuestra direccin (127.0.0.1) y las direcciones IP del sitio buscado, se mostrarn de forma correcta:

root@server:~# nslookup www.debian.org Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: Name: www.debian.org Address: 206.12.19.7 Name: www.debian.org Address: 128.31.0.51

El proceso inverso, es decir, buscar un nombre a partir de una direccin IP, tambin debe funcionar:root@server:~# nslookup 206.12.19.7 Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: 7.19.12.206.in-addr.arpa name = bellini.debian.org.

Authoritative answers can be found from: . nameserver = c.root-servers.net. . nameserver = d.root-servers.net. . nameserver = h.root-servers.net. . nameserver = a.root-servers.net. . nameserver = m.root-servers.net. . nameserver = g.root-servers.net. . nameserver = f.root-servers.net. . nameserver = k.root-servers.net. . nameserver = i.root-servers.net. . nameserver = b.root-servers.net. . nameserver = l.root-servers.net. . nameserver = e.root-servers.net. . nameserver = j.root-servers.net. a.root-servers.net internet address b.root-servers.net internet address c.root-servers.net internet address d.root-servers.net internet address e.root-servers.net internet address f.root-servers.net internet address g.root-servers.net internet address h.root-servers.net internet address i.root-servers.net internet address j.root-servers.net internet address k.root-servers.net internet address l.root-servers.net internet address m.root-servers.net internet address

= = = = = = = = = = = = =

198.41.0.4 192.228.79.201 192.33.4.12 128.8.10.90 192.203.230.10 192.5.5.241 192.112.36.4 128.63.2.53 192.36.148.17 192.58.128.30 193.0.14.129 199.7.83.42 202.12.27.33

Configuracin de los clientesWindows

Para los sistemas Windows, debe indicar, las propiedades del protocolo de Internet (TCP(IP)) de conexin de red, y debe determinar la direccin de nuestro servidor DNS (192.168.1.100) como servidor DNS preferido.

LinuxPara los sistemas Linux, se debe editar el archivo /etc/resolv.conf para substituir o aadir el nameserver con la direccin IP de nuestro servidor:# [...] nameserver 192.168.1.100 # [...]

Configuracin automtica de clientesEl servidor DNS puede ser atribuido a los clientes automticamente, a travs del protocolo DHCP. Para esto, basta acrecentar la opcin domain-name-servers como la o las direcciones de los servidores DNS al archivo /etc/dhcp3/dhcpd.conf del servidor DHCP: /etc/dhcp3/dhcpd.conf# [...] option domain-name-servers 192.168.1.100; # [...]

3.1.3 Servidor DNS Local

ObjetivoAunque se pueda atribuir nombres a los diversos sistemas de una red, estos no consiguen reconocerse entre s sin un sistema de resolucin de nombres. Para que un sistema consiga localizar la direccin IP asociada al nombre de otro sistema, es necesario que ste est registrado en un servidor DNS, para permitir la resolucin de nombres.Antes de instalar el servidor DNS, la Cache DNS debe estar previamente configurada y verificada.

Instalacinroot@server:~# aptitude install bind9 bind9-doc dnsutils

ConfiguracinLa resolucin de nombres traduce nombres de sistemas en sus direcciones IP y viceversa. As, la configuracin consiste, bsicamente en la creacin de 2 zonas, una (zone home.lan) que convierte nombres en direcciones IP y otra (zone 1.168.192.inaddr.arpa) que convierte direcciones IP en el respectivo nombre de sistema.

ZonasLas zonas pueden declararse en el archivo /etc/bind/named.conf.local:/etc/bind/named.conf.local// // Do any local configuration here // zone "home.lan" { type master; file "/etc/bind/db.home.lan"; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.1.168.192"; }; // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918";

Verificar que el archivo de configuracin no contiene errores:root@server:~# named-checkconf root@server:~#

Resolucin de nombresLa resolucin de nombres convierte los nombres de los sistemas en sus correspondientes direcciones IP. Para una zona home.lan, los nombres server, virtual, ns y router son asociados a sus respectivas direcciones. La base de datos para la resolucin de nombres en la zona home.lan est guardada en el archivo /etc/bind/db.home.lan:/etc/bind/db.home.lan; ; BIND zone file for home.lan ; $TTL @ 3D IN SOA ns.home.lan. 2010111101 8H 2H 4W 1D ) ns 10 mail 192.168.1.100 192.168.1.100 192.168.1.100 192.168.1.100 192.168.1.101 192.168.1.1 router router ; router ADSL root.home.lan. ( ; serial ; refresh ; retry ; expire ; minimum ; Inet address of name ; Primary mail exchanger

; NS server MX ns mail home.lan. server virtual router gateway gw A A A A A A CNAME CNAME

El protocolo DNS permite tambin la creacin de aliases, o canonical names, identificados por el tipo de registro CNAME. Un alias es un nombre alternativo de un sistema. Al final del archivo podrn declararse algunos aliases: donde: el sistema server pasar tambin a ser conocido (CNAME o canonical name) como proxy y el servidor virtual responder tambin por los nombres www y ftp:/etc/bind/db.home.lan// [...] proxy www ftp // [...] CNAME CNAME CNAME server virtual virtual

Verificar que el fichero de configuracin de la zona home.lan no contenga errores:root@server:~# named-checkzone home.lan /etc/bind/db.home.lan zone home.lan/IN: loaded serial 2010111101 OK

Resolucin InversaLa resolucin inversa traduce las direcciones IP en los nombres correspondientes de los sistemas. La resolucin inversa puede configurarse en el archivo /etc/bind/db.1.168.192:/etc/bind/db.1.168.192; ; BIND zone file for 192.168.1.xxx ; $TTL @ 3D IN SOA ns.home.lan. 2010111101 8H 2H 4W 1D ) ns.home.lan. root.home.lan. ( ; serial ; refresh ; retry ; expire ; minimum ; Nameserver address

; NS 100 100 100 101 1 PTR PTR PTR PTR PTR server.home.lan. ns.home.lan. mail.home.lan. virtual.home.lan. router.home.lan.

Verificar que el archivo de configuracin de la zona 1.168.192.in-addr.arpa no contenga errores:root@server:~# named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.1.168.192 zone 1.168.192.in-addr.arpa/IN: loaded serial 2008121701 OK

Reiniciar el servicio:root@server:~# /etc/init.d/bind9 restart

Aadir el dominio home.lan en el archivo /etc/resolv.conf:/etc/resolv.conf# [...]

domain home.lan search home.lan nameserver 127.0.0.1 # [...]

De esta forma, cuando nos referimos al sistema server, ste ser buscado en el dominio home.lan, resultando en el nombre server. home. lan.

VerificacinPara verificar la resolucin de nombres:root@server:~# nslookup server Server: 127.0.0.1 Address: 127.0.0.1#53 Name: server.home.lan Address: 192.168.1.100

Verificar que los aliases tambin sean resueltos:root@server:~# nslookup gateway Server: 127.0.0.1 Address: 127.0.0.1#53 gateway.home.lan canonical name = router.home.lan. Name: router.home.lan Address: 192.168.1.1

Para concluir con esta seccin, verificar la resolucin inversa:root@server:~# nslookup 192.168.1.101 Server: 127.0.0.1 Address: 127.0.0.1#53 101.1.168.192.in-addr.arpa name = virtual.home.lan.

3.1.4 DNS DinmicoEl servidor acede a la Internet, a travs del router ADSL ou cabo (gateway), cuya direccin interna es 192.168.1.1. Esta direccin, siempre es la misma (Esttica) y slo es visible en la red interna. De cada vez que el router se conecta a Internet, le es atribuido una direccin dinmica, que puede ser diferente en cada conexin. Entonces, la cuestin que surge es la siguiente:

Cuando estoy de viaje, cmo puedo conectarme remotamente al servidor, si no s cul es su direccin? La solucin es configurar un servicio de resolucin de nombres ( DNS) en internet. Este servicio permite asociar un nombre a la direccin dinmica, siendo slo necesario actualizar la direccin cada vez que sta sea alterada, lo que se puede hacer automticamente. Existen en internet varios servicios de DNS dinmico, siendo algunos gratuitos, como DynDNS. Para configurar el servicio, basta visitar esta direccin http://www.dyndns.com, crear una cuenta y asociar un nombre a la direccin dinmica actual. En seguida, del lado de nuestro servidor, debe ser configurada la actualizacin automtica de la direccin.

ObjetivoInstalar el cliente para la actualizacin automtica de la direccin dinmica en DynDNS. Gracias a esto, ser posible acceder al servidor desde cualquier parte del mundo, a partir de un nombre fcil de memorizar.

Instalacinroot@server:~# aptitude install ddclient

Durante la instalacin se pedir la configuracin del cliente: Proveedor del servicio DNS dinmico: www.dyndns.org :

Nombre del usuario: mi-login

Contrasea:

Cmo obtener una direccin dinmica:

Seleccionar el mtodo para definir el nombre (o los nombres) que se actualizarn:

DynDNS fully qualified domain names: myserver.dyndns.org

ConfiguracinDurante la instalacin, tambin se efecta la configuracin del servicio. Esta configuracin queda guardada en el archivo /etc/ddclient.conf:/etc/ddclient.conf# Configuration file for ddclient generated by debconf # # /etc/ddclient.conf protocol=dyndns2 use=web, web=checkip.dyndns.com, web-skip='IP Address' server=members.dyndns.org login=fribeiro password='mypassword' myserver.dyndns.org

En caso de que se utilice un proxy para acceder a Internet,este debe constar en el fichero de configuracin /etc/ddclient.conf:/etc/ddclient.conf# [...] proxy=proxy.home.lan:3128 # [...]

Reiniciar el servicio ddclient:root@server~# /etc/init.d/ddclient restart

VerificacinLa aplicacin ddclient permite visualizar las comunicaciones con el servicio dynDNS:root@server:~# ddclient -v CONNECT: checkip.dyndns.org CONNECTED: using HTTP SENDING: GET / HTTP/1.0 SENDING: Host: checkip.dyndns.org SENDING: User-Agent: ddclient/3.8.0 SENDING: Connection: close SENDING: RECEIVE: HTTP/1.1 200 OK RECEIVE: Content-Type: text/html RECEIVE: Server: DynDNS-CheckIP/1.0 RECEIVE: Connection: close RECEIVE: Cache-Control: no-cache RECEIVE: Pragma: no-cache RECEIVE: Content-Length: 103 RECEIVE:

RECEIVE: Current IP CheckCurrent IP Address: 84.85.86.87 SUCCESS: myserver.dyndns.org: skipped: IP address was already set to 84.85.86.87.

En este caso, el servicio ya estaba actualizado con la direccin 84.85.86.87. Tambin debe ser posible resolver el nombre externo del servidor:root@server:# nslookup myserver.dyndns.org Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: Name: myserver.dyndns.org Address: 84.85.86.87

Con esto, nuestra direccin IP pblica puede ser localizada a partir de cualquier punto de Internet.El modem/router deber bloquear cualquier tentativa de acceso a partir de Internet a la red interna. Sin embargo, el modem/router puede ser configurado de modo que pueda redirigir los accesos a partir de direcciones IP externas o pblicas para una determinada direccin IP interna o privada. Esta capacidad tiene el nombre de Network address translation o NAT y est disponible en virtualmente todos los modems/routers domsticos. Para ms informaciones, consulte el manual de su modem/router.

3.2 DhcpPara que cada sistema conectado en red se identifique correctamente, debe tener una direccin IP nica. Esta direccin puede ser atribuida manualmente en cada host o de una forma automtica y dinmica, gracias al protocolo DHCP (Dynamic Host Configuration Protocol o Protocolo dinmico de configuracin de host).

3.2.1 El protocolo DHCP 3.2.2 Servidor DHCP

3.2.1 El protocolo DHCPEn una instalacin en red, cada sistema debe tener una direccin IP nica.

Cuando un sistema es conectado en red, el protocolo DHCP se encarga de atribuirle automticamente una direccin IP nica. Al mismo tiempo, DHCP suministra una serie de parmetros de red como la direccin del gateway, la direccin del servidor DNS, etc. El protocolo DHCP hace que la tarea del administrador de red bastante ms fcil, pues la configuracin es centralizada, y no distribuida en cada host o puesto.

En cada segmento de red debe existir slo un servidor DHCP. En una red casera, el router ADSL funciona, generalmente, como servidor DHCP. Si este es el caso, debe desconectarse el servicio DHCP en el router antes de iniciar el servicio en nuestro sistema. es centralizada, y no distribuida en cada host o puesto.

3.2.2 Servidor DHCPEn cada segmento de red debe existir slo un servidor DHCP. En una red casera, el router ADSL funciona, generalmente, como servidor DHCP. Si este es el caso, debe desconectarse el servicio DHCP en el router antes de iniciar el servicio en nuestro sistema.nuestro sistema. .

Instalacinroot@server:~# aptitude install isc-dhcp-server

ConfiguracinEl servicio DHCP slo debe estar disponible para la red interna. Por eso, debe aceptar conexiones por la interfaz interna (eth0, en este caso). Esto puede indicarse en el archivo de configuracin/etc/default/isc-dhcp-server:/etc/default/isc-dhcp-server# Defaults for dhcp initscript # sourced by /etc/init.d/dhcp # installed at /etc/default/isc-dhcp-server by the maintainer scripts # # This is a POSIX shell fragment

# # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACES="eth0"

La parte principal de la configuracin est contenida en el archivo /etc/dhcp/dhcpd.conf. En este archivo se indica el nombre del dominio ( option domain-name home.lan;), las direcciones de los servidores DNS (option domain-name-servers 192.168.1.100, 192.168.1.1;). Tambin se puede definir la duracin normal y mxima de atribucin de la direccin IP atribuida (default-lease-time 600; max-lease-time 7200;). El cliente podr pedir siempre una nueva atribucin antes de que expire la actual, pudiendo recibir o no la misma direccin IP. Finalmente, debe indicarse cul es el rango de direcciones disponibles para ser atribuidas en el segmento de red 192.168.1.0 (range 192.168.1.32 192.168.1.63;), cul es la direccin del router (option routers 192.168.1.1;) y finalmente, cul es la direccin para broadcast (option broadcast-address 192.168.1.255;)/etc/dhcp/dhcpd.conf# # Sample configuration file for ISC dhcpd for Debian # # # The ddns-updates-style parameter controls whether or not the server will # attempt to do a DNS update when a lease is confirmed. We default to the # behavior of the version 2 packages ('none', since DHCP v2 didn't # have support for DDNS.) ddns-update-style none; # option definitions common to all supported networks... option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; default-lease-time 600; max-lease-time 7200; # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. authoritative; # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7;

## SubNet home.lan subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.32 192.168.1.63; option routers 192.168.1.1; option broadcast-address 192.168.1.255; } # [...]

El protocolo DHCP atribuye direcciones especficas a determinados sistemas, asociando el nmero de la placa de red a la direccin pretendida. Por tanto, estas direcciones fijas no deben estar en la gama de las direcciones reservadas para la atribucin dinmica./etc/dhcp/dhcpd.conf# [...] # # Fixed IP addresses can also be specified for hosts. These addresses # should not also be listed as being available for dynamic assignment. # Hosts for which fixed IP addresses have been specified can boot using # BOOTP or DHCP. Hosts for which no fixed address is specified can only # be booted with DHCP, unless there is an address range on the subnet # to which a BOOTP client is connected which has the dynamic-bootp flag # set. host desktop { hardware ethernet 01:23:45:67:89:10; fixed-address 192.168.1.2; } host laptop { hardware ethernet 01:23:45:67:89:11; fixed-address 192.168.1.3; } # [...]

Reiniciar el servicio dhcp:root@server:~# /etc/init.d/isc-dhcp-server restart

Configuracin de los clientesLinuxEn un cliente Linux, basta con instalar el paquete dhcp client. La configuracin generada durante la instalacin debe ser suficiente.

root@server:~# aptitude install isc-dhcp-client

WindowsEn un cliente Windows, debe activarse la opcin obtener automticamente una direccin IP, en las propiedades TCP/IP de la interfaz de red. En una red casera, con acceso a Internet va mdem ADSL, esta opcin debe, en principio, estar activada con antelacin.

3.3 Proxy InternetUn proxy es un servicio de red por el cual un sistema cliente se conecta indirectamente a otro sistema. Los datos dejan de ser intercambiados directamente y pasan a ser tratados por el servicio proxy, que se ubica entre el servidor y el cliente. Gracias a esta arquitectura, es posible implementar diversos servicios como reglas de acceso, caches web, filtros de contenidos, anti-virus, comunicaciones annimas, etc.

3.3.1 Cache web: Squid3

3.3.1 Cache web: Squid3ObjetivoEl paquete squid3 es un proxy Internet con una cache integrada. La ventaja de una cache internet es que se guardan localmente los datos pedidos previamente para que, en una utilizacin futura, sean servidos localmente, evitando accesos repetidos a servidores distantes.

Instalacinroot@server:~# aptitude install squid3

ConfiguracinLa configuracin de squid3 se almacena en el archivo /etc/squid3/squid.conf. squid3 acepta, por omisin, conexiones en el puerto 3128. Sin embargo, esto puede modificarse (el puerto 8080 tambin es muy comn como puerto para el servicio de cach Internet):/etc/squid3/squid.conf#[...] # Squid normally listens to port 3128 http_port 3128 #[...]

Por seguridad, squid3 slo responder a pedidos originados en la red local o en el propio servidor. Esta restriccin es conseguida definiendo una lista de control de acceso o ACL (Access Control List) (acl home.lan src 192.168.1.0/24) y autorizando el acceso slo a los sistemas incluidos en esa lista (http_access allow home.lan): Definicin de la lista de direcciones de la red interna en la seccin acl:/etc/squid3/squid.conf# [...] # # TAG: acl Defining an Access List

# [...] #Default:

# acl all src all # # # Recommended minimum configuration: # acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 # Example rule allowing access from your local networks. # Adapt to list your (internal) IP networks from where browsing # should be allowed #acl localnet src 10.0.0.0/8 # RFC1918 possible internal network #acl localnet src 172.16.0.0/12 # RFC1918 possible internal network #acl localnet src 192.168.0.0/16 # RFC1918 possible internal network #acl localnet src fc00::/7 # RFC 4193 local private network range #acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines acl home.lan src 192.168.1.0/24 # [...]

Definicin de permisos de acceso a la seccin http_access:/etc/squid3/squid.conf# [...] # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # # Example rule allowing access from your local networks. # Adapt localnet in the ACL section to list your (internal) IP networks # from where browsing should be allowed #http_access allow localnet http_access allow home.lan http_access allow localhost # And finally deny all other access to this proxy http_access deny all # [...]

El tamao total de la cache de squid3 puede ser afinado hasta un valor adecuado, como por ejemplo, 2048Mb:/etc/squid3/squid.conf

# [...] # Uncomment and adjust the following to add a disk cache directory. cache_dir ufs /var/spool/squid3 2048 16 256 # [...]

La identificacin del servidor proxy tambin puede ser definida:/etc/squid3/squid.conf# [...] # TAG: visible_hostname # If you want to present a special hostname in error messages, etc, # define this. Otherwise, the return value of gethostname() # will be used. If you have multiple caches in a cluster and # get errors about IP-forwarding you must set them to have individual # names with this setting. #Default: # visible_hostname localhost visible_hostname proxy.home.lan # [...]

De manera opcional, tambin se puede configurar el lmite mximo de los objetos que se guarden en el cache, al definir el parmetro maximum_object_size con un valor en Kbytes:/etc/squid3/squid.conf# [...] # TAG: maximum_object_size (bytes) # Objects larger than this size will NOT be saved on disk. The # value is specified in kilobytes, and the default is 4MB. If # you wish to get a high BYTES hit ratio, you should probably # increase this (one 32 MB object hit counts for 3200 10KB # hits). If you wish to increase speed more than your want to # save bandwidth you should leave this low. # # NOTE: if using the LFUDA replacement policy you should increase # this value to maximize the byte hit rate improvement of LFUDA! # See replacement_policy below for a discussion of this policy. #Default: # maximum_object_size 4096 KB maximum_object_size 20480 KB

# [...]

Reiniciar el servicio squid3:root@server:~# /etc/init.d/squid3 restart

Configuracin de clientesEs posible configurar el navegador Firefox para utilizar un proxy, accediendo al men de Herramientas > Opciones > Avanzadas > Red > Definiciones. Aqu se puede activar la opcin Configurao manual do proxy e incluir la direccin del servidor proxy (192.168.1.100) y el puerto (3128). Es posible definir excepciones para el propio (127.0.0.1) y para la red local (192.168.1.0/24):

En el caso de los sistemas Linux, es posible declarar la variable http_proxy con la URL del proxy a utilizar:fribeiro@server:~$ export http_proxy="http://192.168.1.100:3128/"

Pero, en la prxima sesin, la variable tendr que se declarada nuevamente.

Un mtodo ms duradero es declarar la variable automticamente en cada login. Esto se obtiene al incluir la declaracin en el archivo ~/.profile do utilizador:fribeiro@server:~$ echo 'export http_proxy="http://192.168.1.100:3128/"' >> ~/.profile

La declaracin puede incluso efectuarse de modo automtico para todos los usuarios, si se incluye en el archivo de sistema /etc/profiles:root@server:~# echo 'export http_proxy="http://192.168.1.100:3128/"' >> /etc/profile

El mismo principio es aplicable para la variable ftp_proxy que define el proxy que se utilizar en las conexiones FTP.

3.4 Base de datosAlgunas aplicaciones que se instalarn en el servidor requieren como soporte a una base de datos.

3.4.1 Servidor MySQL

3.4.1 Servidor MySQLObjetivoInstalar el servidor de base de datos MySQL, con una configuracin mnima.Por omisin, la instalacin de MySQL slo acepta conexiones a partir del propio (localhost). Esto no es problemtico porque la base de datos slo ser utilizada por aplicaciones del propio host.

Instalacinroot@server:~# aptitude install mysql-server mysql-client

Durante la instalacin, el instalador solicita la contrasea del root del servidor MySQL. Este usuario root es especfico de MySQL, por tanto debe tener una contrasea diferente a la del root del sistema.

Luego se solicita su confirmacin:

ConfiguracinPor seguridad y mejor compatibilidad, la configuracin predefinida de MySQL slo aceptar conexiones locales (direccin 127.0.0.1). En caso de que se pretenda acceder al servidor MySQL desde la red interna, podemos cambiar el bind-address por la direccin de nuestro servidor (192.168.1.100)./etc/mysql/my.cnf# [...] # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1 # [...]

VerificacinA partir de este momento, es posible acceder al monitor de MySQL:root@server:~# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 42 Server version: 5.1.49-3 (Debian) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> quit; Bye root@server:~#

3.5 Certificados SSLMuchos servicios requieren una conexin segura entre el cliente y el servidor, y confiar en la identidad mutua. Esa seguridad est garantizada por una conexin encriptada y la confianza est soportada en certificados que respaldan la identidad del servidor. El protocolo TLS (Transport Layer Security) suministra una conexin segura porque encripta la comunicacin y autentica la identidad a travs de certificados digitales, emitidos por entidades certificadoras independientes (Certificate Authority) y de reconocida confianza.

3.5.1 Certificados SSL auto-firmados

3.5.1 Certificados SSL auto-firmadosObjetivoPara establecer una conexin segura y de confianza es necesario generar certificados que respalden la identidad del servidor. Estos certificados son generalmente emitidos por entidades certificadoras (Certificate Authority) independientes y de confianza reconocida. Sin embargo, para una utilizacin ms casera y econmica, es posible crear un certificado auto-firmado.

Instalacinroot@server:~# aptitude install openssl ca-certificates

Generacin de los certificadosLa generacin de un certificadoSSL requiere de los siguientes pasos: primero es generada una clave privada; en seguida sta es usada para generar un pedido de certificacin (Certificate Signing Request (CSR)). El pedido de certificacin es entonces enviado a la entidad certificadora (Certificate Authority (CA)) que devuelve el certificado firmado. Es posible ahorrarse el ltimo paso, generando un certificado auto-firmado (Self-signed Certificate). Crear una carpeta de trabajo:root@server:~# mkdir certs root@server:~# cd certs root@server:~/certs#

Clave privadaGenerar una clave privada(Private Key) encriptada:root@server:~/certs# openssl genrsa -des3 -out server.key 2048 Generating RSA private key, 2048 bit long modulus .................+++ ................+++ e is 65537 (0x10001) Enter pass phrase for server.key: Verifying - Enter pass phrase for server.key:

Clave privada sin contrasea

La clave privada est encriptada y protegida por una contrasea, lo que implica que sta debe escribirse cada vez que un servicio necesite la clave. Como solucin, es posible generar una versin de la clave sin la proteccin de la contrasea:root@server:~/certs# openssl rsa -in server.key -out server.key.insecure Enter pass phrase for server.key: writing RSA key

Esta clave sin contrasea, debe ser almacenada con especial cuidado y slo debe ser accesible por el usuario root:root@server:~/certs# chmod 600 server.key.insecure

Pedido de certificacinPara generar un pedido de certificacin (Certificate Signing Request), debe indicarse en el campo Common Name el nombre del servidor para el cual ser generado el certificado. En caso de que un certificado sea requerido por varios servidores del mismo dominio, es posible usar la sintaxis *.home.lan:root@server:~/certs# openssl req -new -key server.key -out server.csr Enter pass phrase for server.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [AU]:PT State or Province Name (full name) [Some-State]:Portugal Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]:Home Lan Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:*.home.lan Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:

Certificado auto-firmadoEl pedido de certificacin debera ser enviado a la entidad certificadora, que devolvera el certificado firmado. En este caso, ser utilizado para crear un certificado ( Self-Signed Certificate), vlido por 365 das:

root@server:~/certs# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Signature ok subject=/C=PT/ST=Portugal/O=Home Lan/CN=*.home.lan Getting Private key Enter pass phrase for server.key:

El proceso de creacin de los certificados concluy. Al final, fueron generados los siguientes archivos:Archivo server.key Descripcin A chave privada

server.key.insecure La clave privada sin contrasea server.csr server.crt El pedido de firma del certificacin Al certificado auto-firmado

El certificado auto-firmado es vlido por 365 das, pero puede ser renovado en cualquier momento, al regenerar el certificado auto-firmado.

Instalacin de la clave privada y del certificado auto-firmadoPara esto, debe copiarse las claves privadas en /etc/ssl/private y el certificado en /etc/ssl/certs:root@server:~/certs# cp server.key server.key.insecure /etc/ssl/private/ root@server:~/certs# cp server.crt /etc/ssl/certs/

As, el certificado auto-firmado est listo para utilizarse. Como se trata de un certificado auto-firmado, su utilizacin siempre dar origen a un aviso por parte de la aplicacin cliente:

3.6 Anti-virusAunque es poco probable que un virus afecte a un sistema Linux, es posible que sea un vector de transmisin a travs de los servicios de e-mail o del servidor de archivos, por ejemplo. Adems, estos mismos servicios pueden integrar un antivirus, lo que contribuye a aumentar la seguridad de la red local.

3.6.1 ClamAV

3.6.1 ClamAVObjetivoInstalar el paquete antivirus ClamAV. Este puede integrarse posteriormente en sistemas para filtrar e-mails o archivos.

Instalacin

root@server:~# aptitude install clamav clamav-docs clamav-d