Guia ubuntu Server Español

396
Guía de Ubuntu Server

Transcript of Guia ubuntu Server Español

Guía de Ubuntu Server

Guía de Ubuntu Server

Copyright © 2012 Colaboradores en el documento

Resumen

Bienvenido a la Guía de Ubuntu Server! Contiene información sobre cómo instalar y configurar el servidor de varios aplicaciones en su sistema Ubuntu para satisfacer sus necesidades. Se trata de un paso a paso, orientado a la tarea de guía para la

configuración de y la personalización de su sistema.

Créditos y licencia

Este documento es mantenido por el equipo de documentación de Ubuntu (https://wiki.ubuntu.com/DocumentationTeam). Una lista de colaboradores es a continuación.

Este documento está disponible bajo la licencia Creative Commons Compartir Igual 3.0 (CC-BY-SA).

Usted es libre de modificar, ampliar y mejorar el código fuente de documentación de Ubuntu bajo los términos de esta licencia. Todos los trabajos derivados debe ser liberado bajo esta licencia.

Esta documentación se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía implícita MERCANTIL o de APTITUD PARA UN PROPÓSITO PARTICULAR COMO SE DESCRIBE EN LA RENUNCIA.

Una copia de la licencia está disponible aquí: Licencia de Creative Commons Compartir Igual1.

Colaboradores en este documento son: • Miembros de la Proyecto de Documentación de Ubuntu2

• Miembros de la Ubuntu Server Team3

• Los colaboradores de la Ubuntu Documentation Wiki4

• Otros colaboradores se puede encontrar en el historial de revisión de la ServerGuide5 y ubuntu-docs6 BZR disponibles en Launchpad ramas.

1 http://creativecommons.org/licenses/by-sa/3.0/ 2 https://launchpad.net/ ~ ubuntu-doc-core 3 https://launchpad.net/ ~ ubuntu-server 4 https://help.ubuntu.com/community/ 5 https://code.launchpad.net/serverguide 6 https://code.launchpad.net/ubuntu-docs

Tabla de contenidos

1. Introducción 1 1. Apoyar 2 2. Instalación 3

1. Preparación para la instalación 4 2. La instalación desde CD 6 3. Actualizar 9 4. Instalación avanzada ................................................ .................................................. . 10 5. Kernel Crash Dump 17 3. La administración de paquetes 20 1. Introducción 21 2. dpkg 22 3. Apt-get 23 4. Aptitud 25 5. Actualizaciones automáticas 27 6. Configuración 29 7. Referencias 31 4. Redes 32

1. Configuración de la red ................................................ ........................................... ...... 33 2. TCP / IP 42 3. Dynamic Host Configuration Protocol (DHCP) ........................................... ................... 46

4. Tiempo de Sincronización con NTP .............................................. ..................................... 49 5. DM-Multipath 51 1. Múltiple del mapeador de dispositivos ............................................... ................ ......................... 52

2. Dispositivos de múltiples rutas 3. Configuración de DM-Multipath general ............................................ .................................. 4. El DM-Multipath archivo de configuración ............................................ ............................... 5. DM-Multipath Administración y solución de problemas ............................................ ............

6. Administración remota 1. OpenSSH servidor 2. Títere 3. Zentyal 7. Autenticación de red

55 58 62 74

79 80 83 86 90

1. OpenLDAP Servidor 91 2. Samba y LDAP 117 3. Kerberos 124

4. Kerberos y LDAP ............................................... .................................................. .. 132 8. Domain Name Service (DNS) ............................................ ................................................. 139 1. Instalación 140

2. Configuración 141 3. Solución de problemas 147

iii

Guía de Ubuntu Server

4. Referencias 151 9. Seguridad 152 1. Gestión de usuarios 153

2. Seguridad de la consola 159

3. Firewall 160

4. AppArmor 5. Certificados 6. eCryptfs 10. Monitoreo 1. Información general 2. Nagios 3. Munin 11. Servidores Web 1. HTTPD - Servidor web Apache 2 ............................................. ...................................... 2. PHP5 - Lenguaje de scripting de .............................................. ..................................... ...... 3. Squid - Servidor Proxy .............................................. .................................................. .. 4. Ruby on Rails 5. Apache Tomcat 12. Bases de datos 1. MySQL

2. PostgreSQL 13. Aplicaciones LAMP 1. Información general 2. Moin Moin

167 171 176 178 179 180 184 186 187 195 197 199 201 205 206

211 213 214 215

3. MediaWiki 217 4. phpMyAdmin 219 14. Servidores de archivos 221

1. Servidor FTP 222 2. Network File System (NFS) ............................................ ............................................ 226 3. Iniciador iSCSI 228

4. CUPS - Servidor de impresión .............................................. .......................... ........................ ... 15. Servicios de correo electrónico 1. Sufijo 2. Exim4

231 234 235 242

3. Servidor Dovecot 245 4. Cartero 247 5. Filtrado de Correo 253

16. Aplicaciones de chat 260 1. Información general 261 2. IRC Server 262

3. Servidor de mensajería instantánea Jabber .............................................. ................................. ... 264 17. Sistema de control de versiones ............................................... .................................................. ... 266

iv

Guía de Ubuntu Server

1. Bazar 267 2. Subversión 268 3. Servidor CVS 273

4. Referencias 275

18. De red de Windows 276

1. Introducción 2. Servidor de Archivos Samba 3. Samba Servidor de impresión 4. Asegurar un archivo de Samba y servidor de impresión ........................................... ......................... ... 5. Samba como un controlador de dominio ............................................. ....................................... 6. La integración de Active Directory Samba .............................................. ............................... 19. Copias de seguridad 1. Shell Scripts 2. Archivo de rotación 3. Bacula 20. Virtualización 1. libvirt 2. JeOS y vmbuilder ............................................... .................................................. .. 3. UEC 4. Nube de Ubuntu

5. LXC 21. Clustering 1. DRBD 22. VPN

277 278 281 283 288 292 294 295 299 302 307 308 313 322 333

340 361 362 365

1. OpenVPN 366 23. Otras aplicaciones útiles ............................................... ............................................... ... 378 1. pam_motd 379

2. etckeeper 381 3. Byobu 383 4. Referencias 385

Apéndice A. 386 1. Informar sobre Fallos en Ubuntu Server Edition ............................................ ........................ 387

v

Lista de cuadros

2,1. Requerimientos mínimos recomendados ............................................... ................................. 4 5,1. Conversión de Prioridad Checker ............................................... ........................................ ....... 52 5,2. Dm-multipath Componentes .............................................. .................................................. 53

5,3. Valores predeterminados de configuración multirruta ............................................... .................... .................... 66 5,4. Los atributos de múltiples rutas 69 5,5. Los atributos de dispositivos 71 5,6. Útiles Opciones de comando múltiple .............................................. ..................................... 77 17,1. Métodos de acceso 269 20,1. UEC Requisitos front-end .............................................. .......................................... 323 20,2. Requisitos UEC nodo ............................................... ................................................ 323 20.3. Comandos de contenedores 352

vi

Capítulo 1. Introducción

Bienvenido a la Guía de Ubuntu Server!

Aquí usted puede encontrar información sobre cómo instalar y configurar varias aplicaciones de servidor. Es un paso

a paso, orientado a la tarea de guía para la configuración y personalización de su sistema.

Esta guía asume que usted tiene una comprensión básica de su sistema Ubuntu. Algunos detalles de la instalación están cubiertos en Capítulo 2, Instalación [p. 3], pero si usted necesita instrucciones detalladas para instalar Ubuntu, por favor referirse a la Guía de instalación de Ubuntu1.

Una versión HTML del manual está disponible en línea en el sitio web de documentación de Ubuntu2.

Https://help.ubuntu.com/12.04/installation-guide/ 1 2 https://help.ubuntu.com

1

Introducción

1. Apoyar

Hay un par de maneras diferentes que Ubuntu Server Edition es compatible, soporte comercial

y el apoyo de la comunidad. El principal apoyo comercial (y la financiación del desarrollo) está disponible en

Canonical Ltd. Proporcionan un precio razonable los contratos de soporte en un escritorio o por cada servidor. Para obtener más información, consulte la Servicios Canónicos3 página.

La ayuda comunitaria también es proporcionada por personas que se dedican, y las empresas, que deseen hacer Ubuntu la mejor distribución posible. La ayuda se proporciona a través de múltiples listas de correo, IRC canales, foros, blogs, wikis, etc La gran cantidad de información disponible puede ser abrumador, pero una consulta de búsqueda del motor bueno por lo general se puede dar una respuesta a sus preguntas. Véase el

Ubuntu ApoyarPágina 4 para más información.

3 http://www.canonical.com/services/support 4 http://www.ubuntu.com/support

2

Capítulo 2. Instalación

Este capítulo proporciona una visión general rápida de instalación de Ubuntu 12.04 LTS Server Edition. Para

obtener más instrucciones detalladas, por favor refiérase a la Guía de instalación de Ubuntu1.

Https://help.ubuntu.com/12.04/installation-guide/ 1

3

Instalación

1. Preparación para la instalación

Esta sección explica varios aspectos a considerar antes de iniciar la instalación.

1,1. Requisitos del sistema

Ubuntu 12.04 LTS Server Edition es compatible con tres (3) principales arquitecturas: Intel x86, AMD64 y ARM. La siguiente tabla muestra las especificaciones de hardware recomendados. Dependiendo de sus necesidades, podría arreglarse con menos que eso. Sin embargo, la mayoría de usuarios se arriesgan a terminar frustrados si

ignoran estas sugerencias.

Cuadro 2.1. Requisitos mínimos recomendados

Espacio en disco duro Tipo de instalación

Servidor

CPU

300 megahertzios

RAM Instalar el sistema base

128 megabytes 500 megabytes

Todas las tareas Instalado

1 gigabyte

La Server Edition proporciona una base común para todo tipo de aplicaciones de servidor. Es un minimalista diseño que proporciona una plataforma para los servicios deseados, tales como archivo / servicios de impresión, web

hosting, correo electrónico alojamiento, etc

Los requisitos para la UEC son ligeramente diferentes, para los requisitos de Front End ver Sección 3.2.1,

"Requisitos de Front End" [p. 322], y para los requisitos de nodo UEC ver Sección 3.2.2, "Nodo Requisitos "[p. 323].

1,2. Las diferencias de servidor y escritorio

Hay algunas diferencias entre el Ubuntu Server Edition y el Ubuntu Desktop Edition. Lo Cabe señalar que las dos ediciones utilizar los repositorios de apt mismos, por lo que es igual de fácil para instalar un servidor aplicación en la edición de escritorio, ya que es en la Server Edition.

Las diferencias entre las dos ediciones son la falta de un entorno de ventanas X en el servidor Edición, el proceso de instalación, y las diferentes opciones del kernel.

1.2.1. Las diferencias del Núcleo:

Versión de Ubuntu 10.10, y antes, en realidad tenían diferentes kernels para el servidor y las ediciones de escritorio. Ubuntu ya no tiene sabores de los kernel por separado-servidor y genéricos. Estos se han fusionado en una de un solo tipo de núcleo genérico para ayudar a reducir la carga de mantenimiento durante la vida de la liberación.

Cuando se ejecuta una versión de 64 bits de Ubuntu en procesadores de 64 bits no están limitados por espacio de direccionamiento de memoria.

4

Instalación

Para ver todas las opciones de configuración del kernel se puede ver a través de / Boot/config-3.2.0-server.

Además, Kernel de Linux en una cáscara de nuez2 es un gran recurso de las opciones disponibles.

1,3. Realizar copias de

seguridad • Antes de instalar Ubuntu Server Edition debe asegurarse de que todos los datos en el sistema es una copia de

seguridad. Ver Capítulo 19, copias de seguridad [p. 294] para las opciones de copia de seguridad.

Si esto no es la primera vez que un sistema operativo ha sido instalado en su computadora, es probable que tendrá que volver a particionar el disco para hacer espacio para Ubuntu.

Cada vez que particione un disco, usted debe estar preparado para perder todo el contenido del disco en el que debe comete un error o algo sale mal durante la partición. Los programas usados en la instalación son bastante fiables, la mayoría han tenido años de uso, sino que también realizan acciones destructivas.

2 http://www.kroah.com/lkn/

5

Instalación

2. La instalación desde CD

Los pasos básicos para instalar Ubuntu Server Edition desde el CD son los mismos que para instalar cualquier el sistema operativo desde el CD. A diferencia del Desktop Edition, la Server Edition no incluye un programa de instalación gráfica. La Server Edition utiliza un proceso basado en menú de la consola en su lugar.

• En primer lugar, descargar y grabar el archivo correspondiente de la ISO Ubuntu sitio web3.

• Arranque el sistema desde la unidad de CD-ROM.

• En el indicador de arranque, se le pedirá que seleccione un idioma.

• En el menú de arranque principal, hay algunas opciones adicionales para instalar Ubuntu Server Edition. Usted puede instalar una base de Ubuntu Server, consulte el CD-ROM de los defectos, comprobar el sistema de memoria

RAM, de arranque del primer disco duro, o rescatar a un sistema que no funciona. El resto de esta sección cubrirá la base de Ubuntu Instalación del servidor.

• El instalador pide que el lenguaje se debe utilizar. Posteriormente, se le pedirá que seleccione su ubicación.

• A continuación, el proceso de instalación comienza por pedir la distribución del teclado. Usted puede pedir al

instalador para tratar de que con detección automática, o puede seleccionar manualmente de una lista. • El instalador detecta la configuración de su hardware y configura los ajustes de red utilizando DHCP. Si usted no desea usar DHCP en la siguiente pantalla, seleccione "Volver", y usted tiene la

opción de "Configuración de la red de forma manual".

• A continuación, el instalador le pregunte el nombre de host para la zona y hora del

sistema. • A continuación, puede elegir entre varias opciones para configurar el diseño del disco duro. Después se Se pide que el disco para instalar. Usted puede recibir los mensajes de confirmación antes de volver a escribir la

la tabla de particiones o la creación de LVM en función de diseño del disco. Si opta por LVM, se le pidió el tamaño del volumen lógico raíz. Para ver las opciones avanzadas de disco Sección 4, "Advanced Instalación "[p. 10].

• El sistema de base de Ubuntu se instala.

• Un nuevo usuario se configura, este usuario tendrá que raíz acceder a través de la utilidad

sudo. • Después de los ajustes de usuario se han completado, se le pedirá para cifrar su casa directorio.

• El siguiente paso en el proceso de instalación es decidir cómo desea actualizar el sistema. Hay

tres opciones:

•No hay actualizaciones automáticas: esto requiere un administrador inicie sesión en la máquina e instalar

manualmente actualizaciones.

•Instale actualizaciones de seguridad de forma automática: se instalará el paquete de actualizaciones

desatendida, lo que va a instalar actualizaciones de seguridad sin la intervención de un administrador. Para más detalles vea

Sección 5, "Actualizaciones automáticas" [p. 27].

•Administrar el sistema con el paisaje: El paisaje es un servicio de pago proporcionado por Canonical para

ayudar a gestionar sus máquinas con Ubuntu. Véase el Paisaje4 sitio para más detalles.

3 http://www.ubuntu.com/download/server/download 4 http://www.canonical.com/projects/landscape

6

Instalación

• Ahora tiene la opción de instalar o no instalar, varias tareas del paquete. Ver Sección 2.1, "Paquete Tareas "[p. 7] para más detalles. También, hay una opción para iniciar aptitud para elegir específica los paquetes a instalar. Para obtener más información, consulte Sección 4, "Aptitud" [p. 25].

• Finalmente, el último paso antes de reiniciar es para ajustar el reloj en hora

UTC.

Si en algún momento durante la instalación no está satisfecho con la configuración por defecto, utilice el

Go " Volver "función en cualquier mensaje para ser llevado a un menú de instalación detallada que permita modificar la configuración predeterminada.

En algún momento durante el proceso de instalación es posible que desee leer la pantalla de ayuda proporcionada por

el instalación del sistema. Para ello, pulse F1.

Una vez más, para obtener instrucciones detalladas, véase el Guía de instalación de Ubuntu5.

2,1. Las tareas del paquete

Durante la instalación Server Edition tiene la opción de instalación de paquetes adicionales de la CD. Los paquetes se agrupan por el tipo de servicio que prestan.

• Servidor DNS: Selecciona el servidor DNS de BIND y su documentación.

• El servidor LAMP: Linux Selecciona un ready-made / Apache / MySQL / PHP.

• El servidor de correo: Esta tarea selecciona una variedad de paquetes de útiles para un sistema de servidor de correo

electrónico de propósito general. • OpenSSH servidor: Selecciona los paquetes necesarios para un servidor OpenSSH.

• Base de datos PostgreSQL: Esta tarea selecciona paquetes de cliente y servidor de la base de datos PostgreSQL.

• Servidor de impresión: Esta tarea configura el sistema para que sea un

servidor de impresión. • El servidor de archivos Samba: Esta tarea configura el sistema para que sea un servidor de archivos Samba, que

es especialmente adecuada en las redes de ambos sistemas con Windows y Linux.

• Tomcat Java del servidor: Instala Apache Tomcat y dependencias necesarias.

• host de máquina virtual: Incluye los paquetes necesarios para ejecutar máquinas virtuales KVM.

• Los paquetes de forma manual selectos: Ejecuta la aptitud que le permite seleccionar de forma individual

paquetes.

Instalación de los grupos de paquetes se lleva a cabo mediante la utilidad tasksel. Una de las importantes diferencias entre Ubuntu (o Debian) y otra distribución GNU / Linux es que, una vez instalado, un

el paquete también se configura a los valores razonables, con el tiempo se le pidan adicional requerida información. Del mismo modo, cuando se instala una tarea, los paquetes no sólo están instalados, pero no está

configurado también que proporcionan un servicio totalmente integrado.

Una vez que el proceso de instalación ha finalizado, usted puede ver una lista de tareas disponibles mediante la

introducción de la después de una terminal:

tasksel - list-tareas

Https://help.ubuntu.com/12.04/installation-guide/ 5

7

Instalación

El resultado será una lista de tareas de otras distribuciones basadas en Ubuntu como Kubuntu y Edubuntu. Tenga en cuenta que también se puede invocar la tasksel ordenar por sí mismo, que se abrirá un menú de las funciones disponibles.

Puede ver una lista de los paquetes que se instalan con cada tarea con el - La tarea de los paquetes opción. Por ejemplo, para listar los paquetes instalados con el Servidor DNS tarea de escribir lo siguiente:

tasksel - task-paquetes de servidor DNS

La salida del comando debe enumerar:

bind9-doc bind9utils bind9

Si usted no ha instalado una de las tareas durante el proceso de instalación, pero por ejemplo, usted decide

hacer que su servidor LAMP un nuevo servidor DNS, así, simplemente inserte el CD de instalación y de una terminal:

sudo tasksel install servidor DNS

8

Instalación

3. Actualizar

Hay varias formas de actualizar desde una versión de Ubuntu a otro. En esta sección se ofrece una visión general

del método de actualización recomendada.

3,1. do-release-upgrade

La forma recomendada de actualizar una instalación de Server Edition es utilizar el do-release-upgrade utilidad. Parte del update-manager-core paquete, no tiene ninguna dependencia gráficas y es instalado por defecto.

Sistemas basados en Debian también se puede actualizar mediante el uso de apt-get dist-upgrade. Sin embargo,

con do- liberación de la actualización es recomendable porque tiene la capacidad de manejar los cambios de configuración

del sistema veces sea necesario entre versiones.

Para actualizar a una versión más reciente, de una terminal escriba:

do-release-upgrade

También es posible el uso de do-release-upgrade para actualizar a una versión de desarrollo de Ubuntu. A lograr este uso el -D interruptor:

do-release-upgrade-d

La actualización a una versión de desarrollo es no se recomienda para entornos de producción.

9

Instalación

4. Instalación avanzada

4,1. RAID por software

Redundant Array of Independent Disks "RAID" es un método de uso de varios discos para proporcionar

diversos equilibrios de aumentar la fiabilidad de los datos y / o aumentando el rendimiento de entrada / salida,

dependiendo en el nivel de RAID que se utiliza. RAID está implementado en software (donde el sistema operativo sabe de ambas unidades y mantiene activamente tanto de ellos) o hardware (donde un controlador especial hace que el sistema operativo que hay sólo una unidad y mantiene las unidades de "invisible").

El software RAID incluido con las versiones actuales de Linux (y Ubuntu) se basa en la 'mdadm' conductor y funciona muy bien, mejor incluso que los controladores RAID muchos de los llamados 'hardware'. En esta

sección le guiará a través de la instalación de Ubuntu Server Edition con dos particiones RAID 1 en dos física discos duros, uno para /y otra para intercambiar.

4.1.1. Particiones

Siga los pasos de instalación hasta llegar a la Particionar discos duros el paso, a

continuación:

1.

2.

Seleccionar Manual como el método de partición.

Seleccione el primer disco duro, y estoy de acuerdo "Crear una nueva tabla de particiones vacía en este dispositivo?".

Repita este paso para cada unidad que desea ser parte de la matriz RAID.

3.

4.

Seleccione la "ESPACIO LIBRE" en el primer disco a continuación, seleccione "Crear una nueva partición". A continuación, seleccione el Tamaño de la partición. Esta partición será el intercambiar partición, y un

general regla para el tamaño de swap es el doble de memoria RAM. Introduzca el tamaño de la partición, a

continuación, elija Primaria, entonces Comienzo.

Un tamaño de la partición de swap del doble de la capacidad de memoria RAM disponible no

siempre es deseable, especialmente en sistemas con grandes cantidades de RAM. Cálculo de la permuta tamaño de la partición de los servidores es altamente dependiente de cómo el sistema va a ser

utilizado. 5.

6.

7.

8.

Seleccione la "Utilizar como:" línea en la parte superior. Por defecto es "Ext4 diario del sistema de archivos", cambiar para que "Volumen físico para RAID" entonces "Hecho el establecimiento de partición". Para el /partición una vez más, seleccione "Espacio libre" en el disco primero y luego "Crear una nueva partición". Utilice el resto del espacio libre en el disco y elegir Continuar, entonces Primaria.

Al igual que con la partición de intercambio, seleccione el "Utilizar como:" la línea en la parte superior,

cambiándolo por "Volumen físico para RAID ". Asimismo, seleccione el "La bandera de arranque:" línea para cambiar el valor a "Encendido". A continuación, elija "Hecho la creación de la partición ".

9. Repita los pasos del tres al ocho para el otro disco y las particiones.

4.1.2. Configuración de RAID

Con la configuración de las matrices de las particiones está listo para ser

configurado:

10

Instalación

1.

2.

3.

4.

De vuelta en el principal "Partición de los discos", seleccione "Configuración de RAID por software" en la parte superior. Seleccionar "Sí" para escribir los cambios en el

disco. Elegir "Crear un dispositivo MD".

Para este ejemplo, seleccionar "RAID 1", pero si usted está utilizando una configuración diferente elegir la

adecuada tipo (RAID 0 RAID 1, RAID 5).

Con el fin de utilizar RAID 5 necesita por lo menos tres unidades. Uso de RAID0 o RAID1 sólo dos

unidades se requieren.

5. Introduzca el número de dispositivos activos "2", o la cantidad de unidades de disco duro que tiene, para la

matriz. A continuación, seleccione "Continuar".

A continuación, introduzca el número de dispositivos de reserva "0" por defecto, a continuación,

elija "Continuar". Elija las particiones a utilizar. En general serán sda1, sdb1, sdc1, etc Los números por lo general coinciden y las diferentes letras corresponden a diferentes unidades de disco duro.

Para el intercambiar partición de elegir sda1 y sdb1. Seleccionar "Continuar" para ir al paso

siguiente. 8.

9.

Repita los pasos tres a través de siete para el /partición de la elección sda2 y sdb2.

Una vez hecho esto seleccione

"Finalizar".

6.

7.

4.1.3. Formato

Ahora debe haber una lista de los discos duros y dispositivos RAID. El siguiente paso es formatear y establecer el

punto de montaje de los dispositivos RAID. Tratar el dispositivo RAID como un formato de disco duro local, y

montar en consecuencia.

1.

2.

3.

4.

5.

Seleccionar "# 1" bajo el "RAID1 dispositivo # 0" partición.

Elegir "Utilizar como:". A continuación, seleccione "Área de intercambio", entonces

"Hecho el establecimiento de partición". A continuación, seleccione "# 1" bajo el "RAID1 dispositivo # 1" partición. Elegir "Utilizar como:". A continuación, seleccione "Ext4 diario del sistema de archivos". A continuación, seleccione la "Punto de montaje" y elija "/ - El sistema de archivos raíz". Cambiar

cualquiera de los otros opciones, según corresponda, a continuación, seleccione "Hecho el

establecimiento de partición". 6. Por último, seleccione "Finalizar el particionado y escribir los cambios

en el disco".

Si opta por colocar la partición de root en un sistema RAID, el instalador le preguntará si desea para arrancar en un degradado estado. Ver Sección 4.1.4, "RAID degradado" [p. 11] para más detalles.

El proceso de instalación a continuación, continuará normalmente.

4.1.4. RAID degradado

En algún momento de la vida del equipo de un evento fallo de disco se puede producir. Cuando esto sucede,

utilizando RAID por software, el sistema operativo se coloque la matriz en lo que se conoce como un degradado estado.

11

Instalación

Si la matriz se ha degradado, debido a la posibilidad de corrupción de datos, por defecto de Ubuntu Server Edición se iniciará en initramfs después de treinta segundos. Una vez que el initramfs haya arrancado hay un quince segundo requerimiento que le da la opción de seguir adelante y arrancar el sistema, o recuperar manual de tentativa.

Arrancar al sistema initramfs puede o no ser el comportamiento deseado, especialmente si la máquina está

en un lugar remoto. El arranque de un array degradado se puede configurar de varias maneras:

• La utilidad dpkg-reconfigure se puede utilizar para configurar el comportamiento predeterminado, y durante el

proceso se le preguntó acerca de los ajustes adicionales relacionados con la matriz. Tales como el monitoreo, alertas de correo

electrónico, etc Para reconfigurar mdadm escriba lo siguiente:

sudo dpkg-reconfigure mdadm

• El dpkg-reconfigure mdadm proceso va a cambiar el / Etc / initramfs-tools / conf.d / mdadm archivo de configuración. El archivo tiene la ventaja de ser capaz de pre-configurar el comportamiento del sistema, y también puede ser editado manualmente:

BOOT_DEGRADED = true

El archivo de configuración se puede anular mediante el uso de un argumento del

núcleo.

• El uso de un argumento de kernel permitirá que el sistema arranque a una matriz degradada, así:

• Cuando el servidor se está iniciando la prensa Cambiar para abrir el menú

Grub. • Prensa epara editar las opciones de comando del kernel.

• Presione el hacia abajo cursores para marcar la línea del

kernel. • Agregar "Bootdegraded = true" (Sin las comillas) al final de la línea.

• Prensa Ctrl + x para arrancar el sistema.

Una vez que el sistema ha arrancado usted puede reparar la matriz de ver Sección 4.1.5, "RAID

Mantenimiento "[p. 12] Para más información, o copiar los datos importantes en otro equipo debido a la

gran fallo de hardware.

4.1.5. RAID de Mantenimiento

La utilidad mdadm se puede utilizar para ver el estado de una matriz, añadir discos a una matriz, quitar discos, etc:

• Para ver el estado de una matriz, de una terminal escriba:

sudo mdadm-D / dev/md0

La -D dice mdadm para mostrar detallado información sobre el / Dev/md0 dispositivo. Reemplazar / Dev/md0 con el dispositivo RAID apropiada.

• Para ver el estado de un disco en una matriz:

sudo mdadm-E / dev/sda1

12

Instalación

La salida si es muy similar al mdadm-D comando, ajustar / Dev/sda1 para cada disco.

• Si un disco falla y debe ser eliminado de una serie escriba:

sudo mdadm - remove / dev/md0 / dev/sda1

Cambiar / Dev/md0 y / Dev/sda1 en el dispositivo RAID y el disco.

• Del mismo modo, para agregar un nuevo

disco:

sudo mdadm - add / dev/md0 / dev/sda1

A veces un disco se puede cambiar a un defectuoso Estado a pesar de que no hay ningún problema físico la unidad. Por lo general, vale la pena extraer la unidad de la matriz a continuación, volver a agregar. Esto hará que la unidad para volver a sincronizar con la matriz. Si la unidad no se sincronizarán con la matriz, es una buena

indicación de fallo de hardware.

La / Proc / mdstat archivo también contiene información útil acerca de los dispositivos RAID del

sistema:

cat / proc / mdstat Personalidades: [linear] [multipath] [raid0] [raid1] [RAID 6] [RAID 5] [RAID 4] [RAID 10]

md0: active raid1 sda1 [0] sdb1 [1] 10016384 bloques [2/2] [UU]

los dispositivos utilizados:

<none>

El siguiente comando es ideal para ver el estado de una unidad de sincronización:

reloj-n1 cat / proc / mdstat

Presionar Ctrl + c para detener el comando reloj.

Si es necesario reemplazar una unidad defectuosa, después de que la unidad ha sido reemplazado y sincronizado, grub

necesita debe ser instalado. Para instalar grub en el disco nuevo, escriba lo siguiente:

sudo grub-install / dev/md0

Reemplazar / Dev/md0 con el nombre de la matriz de dispositivo

adecuado.

4.1.6. Recursos

El tema de los arreglos RAID es compleja debido a la gran cantidad de formas de RAID se pueden configurar.

Por favor, consulte los siguientes enlaces para más información:

•Ubuntu Wiki Artículos sobre RAID6.

6 https://help.ubuntu.com/community/Installation # redada

13

Instalación

•El software RAID HOWTO7

•Administración de RAID en Linux8

4,2. Logical Volume Manager (LVM)

Lógico Volumen Manager, o LVM, permite a los administradores crear lógico volúmenes de uno o de

varios discos duros físicos. Volúmenes LVM se pueden crear en las dos particiones de software RAID y particiones estándar que reside en un solo disco. Los volúmenes también se puede ampliar, dar una mayor flexibilidad a los sistemas como los requerimientos cambian.

4.2.1. Información general

Un efecto secundario de alimentación de LVM y la flexibilidad es un mayor grado de complicación. Antes de

zambullirse en el proceso de instalación de LVM, lo mejor es familiarizarse con algunos términos. •Volumen físico (PV): disco duro físico, partición de disco o partición RAID por software con formato LVM PV.

•Volumen de Grupo (VG): está hecho de uno o más volúmenes físicos. Un VG puede se puede extender por la adición de más PV. A VG es como una unidad de disco virtual, de la cual uno o más volúmenes lógicos son tallado.

•Logical Volume (LV): es similar a una partición en un sistema no-LVM. Un LV con el formato del deseado del sistema de archivos (ext3, XFS, JFS, etc), que pasa a estar disponible para el montaje y

almacenamiento de datos.

4.2.2. Instalación

Como ejemplo, esta sección cubre la instalación de Ubuntu Server Edition con el / Srv montada en un LVM volumen. Durante la instalación inicial de un solo volumen físico (PV) será parte del grupo de volúmenes (VG). Otro PV se añadirá después de la instalación para demostrar cómo un VG se puede ampliar.

Hay varias opciones de instalación para el LVM, "Guiado - utilizar todo el disco y la configuración de LVM" que También le permitirá asignar una porción del espacio disponible a LVM, "Guiado - utilizar todo el programa de instalación LVM cifrado ", o Manualmente configurar las particiones y configurar LVM. En este momento la única manera de

configurar un sistema con dos particiones LVM y estándar, durante la instalación, es utilizar el Manual

enfoque.

1.

2.

3.

4.

5.

Siga los pasos de instalación hasta llegar a la Particionar discos duros el paso, a

continuación: Al "Los discos de partición pantalla, seleccione "Manual".

Seleccione el disco duro y en la siguiente pantalla, seleccione "sí" a "Crear una nueva tabla de partición vacía en este dispositivo ".

A continuación, cree estándar / Boot, de intercambio, y /particiones con sistema de archivos lo que

usted prefiere. Para el LVM / Srv, crear un nuevo Lógico partición. A continuación, cambie "Utilizar como" a "Volumen físico para LVM " entonces "Terminado de definir la partición".

7 http://www.faqs.org/docs/Linux-HOWTO/Software-RAID-HOWTO.html 8 http://oreilly.com/catalog/9781565927308/

14

Instalación

6. A continuación, seleccione "Configurar el Logical Volume Manager" en la parte superior, y elija "Sí" para

escribir el cambios en el disco.

Para el "LVM acción de configuración" en la siguiente pantalla, seleccione "Crear grupo de volúmenes". Introduzca un nombre para el VG como vg01, o algo más descriptivo. Después de introducir un nombre, seleccione la partición configurado para LVM, y elija "Continuar".

8. De vuelta en el "LVM acción de configuración" pantalla, seleccione "Crear volúmenes lógicos". Seleccione la recién creado grupo de volúmenes, y escriba un nombre para la nueva BT, por ejemplo srv ya que es el destinado punto de montaje. A continuación, elija un tamaño, que puede ser la partición completa, ya que siempre

puede extenderse más tarde. Elegir "Finalizar" y usted debería estar de vuelta en el principal "Los discos de partición" pantalla. Ahora agregue un sistema de archivos a la nueva LVM. Seleccione la partición en "LVM VG vg01, LV srv", o cualquiera sea el nombre que haya elegido, el elegir Usar como. Configuración de un sistema de archivos como

la selección de lo normal / Srv como el punto de montaje. Una vez hecho esto, seleccione "Terminado de definir la partición".

7.

9.

10. Por último, seleccione "Finalizar el particionado y escribir los cambios en el disco". A continuación,

confirme los cambios y continuar con el resto de la instalación.

Hay algunas utilidades para ver la información sobre el LVM:

•pvdisplay: muestra información sobre los volúmenes físicos.

•vgdisplay: muestra información acerca de grupos de volúmenes.

•lvdisplay: muestra información sobre los volúmenes lógicos.

4.2.3. La extensión de los grupos de

volúmenes

Continuando con srv como un ejemplo de volumen LVM, esta sección incluye la adición de un segundo disco duro, la creación de un volumen físico (PV), y agregó que el grupo de volúmenes (VG), que se extiende el volumen lógico

y, finalmente, la ampliación del sistema de archivos. Este ejemplo se supone un segundo disco duro ha sido añadido a el sistema. En este ejemplo, este disco duro se denominará / Dev / sdb y vamos a utilizar todo el disco como un volumen físico (puede optar por crear las particiones y los utilizan como diferentes volúmenes físicos)

srv

Asegúrese de que usted no tiene una ya existente / Dev / sdb antes de emitir los siguientes comandos. Usted podría perder algunos datos si se emite los comandos en un disco que no esté vacía.

1. En primer lugar, crear el volumen físico, ejecutar en un terminal:

sudo pvcreate / dev / sdb

2. Ahora ampliar el grupo de volúmenes (VG):

sudo vg01 vgextend / dev / sdb

3. Utilice vgdisplay para encontrar las extensiones libres físicas - Free PE / tamaño (el tamaño puede asignar).

Nosotros asumirá un tamaño libre de 511 PE (equivalente a 2 GB con un tamaño de 4 MB PE) y vamos a utilizar el todo el espacio libre disponible. Utilice su propio PE y / o espacio libre.

15

Instalación

El volumen lógico (LV), ahora se puede extender por diferentes métodos, sólo veremos cómo utilizar la educación física para extender el LV:

sudo lvextend / 511 dev/vg01/srv-l

La -L opción permite que el ventrículo izquierdo que se extiende utilizando la EP. La -L opción permite

que el ventrículo izquierdo para ser ampliarse con Meg, Gig, Tera, bytes, etc.

4. A pesar de que se supone que son capaces de expandir un sistema de archivos ext3 o ext4 sin desmontarla primero, puede ser una buena práctica para desmontar todos modos y comprobar el sistema de

ficheros, por lo que que usted no estropear el día que quiere reducir un volumen lógico (en ese caso, desmontar primero es obligatorio).

Los siguientes comandos son para un EXT3 o EXT4 sistema de archivos. Si usted está usando otro sistema de archivos que puede haber otros servicios públicos disponibles.

sudo umount / srv sudo e2fsck-f / dev/vg01/srv

La -F opción de las fuerzas de e2fsck corrientes, incluso si el sistema parece limpio.

5. Por último, cambiar el tamaño del

sistema de ficheros:

resize2fs sudo / dev/vg01/srv

6. Ahora montar la partición y comprobar su tamaño.

mount / dev/vg01/srv / srv && df-h / srv

4.2.4. Recursos

• Consulte el Wiki de Ubuntu LVM artículos9.

• Consulte el LVM HOWTO10 para más información.

• Otro buen artículo es Gestión de espacio en disco con LVM11 en el sitio linuxdevcenter.com de O'Reilly.

• Para obtener más información sobre fdisk ver el página de manual de fdisk12.

9 https://help.ubuntu.com/community/Installation # lvm 10 http://tldp.org/HOWTO/LVM-HOWTO/index.html 11 http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html 12 http://manpages.ubuntu.com/manpages/precise/en/man8/fdisk.8.html

16

Instalación

5. Kernel Crash Dump

5,1. Introducción

Un volcado del núcleo se refiere a una porción del contenido de la memoria volátil (RAM) que se copia

en el disco cuando la ejecución del núcleo se interrumpe. Los siguientes eventos pueden causar un kernel interrupción:

• Kernel Panic

• Interrumpe no enmascarable (NMI)

• Excepciones Machine Check (MCE)

• Error de hardware

• Manual de la intervención

Para algunos de esos eventos (pánico, NMI) el kernel va a reaccionar automáticamente y activar el archivo de volcado mecanismo a través del kexec. En otras situaciones una intervención manual se requiere con el fin de capturar el memoria. Cada vez que uno de los eventos anteriores ocurre, es importante averiguar la causa con el fin de para evitar que vuelva a suceder. La causa puede ser determinada mediante la inspección de la memoria copiada contenidos.

5,2. Mecanismo de volcado del núcleo

Cuando un núcleo de pánico se produce, el núcleo se basa en el kexec mecanismo para reiniciar rápidamente una

nueva instancia del núcleo en una sección de pre-reservada de memoria que se le había asignado cuando el sistema arrancado (véase más adelante). Esto permite que el área de memoria existente para permanecer intacto con el fin de

forma segura copiar su contenido a almacenamiento.

5,3. Instalación

El fallo en el núcleo de utilidad de descarga se instala con el siguiente comando:

sudo apt-get install linux-crashdump

Un reinicio es entonces necesario.

5,4. Configuración

Ninguna otra configuración se requiere a fin de tener el mecanismo de volcado del núcleo habilitado.

5,5. Verificación

Para confirmar que el mecanismo de volcado del núcleo está habilitado, hay algunas cosas que debe verificar. En primer

lugar, confirmar la que el crashkernel parámetro de arranque está presente (nota: La siguiente línea se ha dividido en dos para adaptarse

a El formato de este documento:

17

Instalación

cat / proc / cmdline

BOOT_IMAGE = / vmlinuz-3.2.0-17-server root = / dev / mapper / se precisa-ro root crashkernel = 384M-2G: 64M, 2G-: 128M

La crashkernel parámetro tiene la siguiente sintaxis:

crashkernel = <range1>: <size1> [, <range2>: <size2>, ...] [@

desplazamiento] rango = puesta en [final] "inicio" es inclusiva y "fin" es exclusiva.

Así para el parámetro crashkernel encuentra en / Proc / cmdline tendríamos:

crashkernel = 384M-2G: 64M, 2G-: 128M

El valor anterior significa:

• Si la memoria RAM es más pequeño que 384M, luego no hacer nada de reserva (este es el "rescate" de

caso) • Si el tamaño de la RAM es de entre 386m y 2G (exclusivo), entonces la reserva 64M

• Si el tamaño de la RAM es mayor que el 2G, a continuación, reserva

de 128M

En segundo lugar, verificar que el kernel se ha reservado el área de memoria requerida para el kernel kdump haciendo:

dmesg | grep-i accidente

... [ 0.000000] Reserva de 64MB de memoria a 800 MB para crashkernel (Sistema RAM: 1023MB)

5,6. Prueba del mecanismo de volcado

Prueba del mecanismo de volcado hará un reinicio del sistema. En ciertas situaciones, esta

puede causar pérdida de datos si el sistema está bajo de carga pesada. Si quieres poner a prueba el

mecanismo, asegurarse de que el sistema está inactivo o con una carga muy ligera.

Compruebe que el SysRQ mecanismo está habilitado mirando el valor de la / Proc / sys / kernel / sysrq parámetro del núcleo:

cat / proc / sys / kernel / sysrq

Si un valor de 0se devuelve la función está desactivada. Activar con el siguiente comando:

sudo sysctl-w = 1 kernel.sysrq

Una vez hecho esto, debe convertirse en root, como se acaba con sudo no será suficiente. A medida que el raíz usuario, se tendrá que ejecutar el comando c echo> / proc / sysrq de gatillo fácil. Si usted está usando una red

18

Instalación

conexión, se pierde el contacto con el sistema. Por esta razón, es mejor hacer la prueba al tiempo que conectado a la consola del sistema. Esto tiene la ventaja de hacer el proceso de volcado del núcleo visible.

Una salida de la prueba típica debe tener el siguiente aspecto:

sudo-s Contraseña [sudo] para Ubuntu:

#c echo> / proc / sysrq-trigger [31.659002] Pet Sis: el disparo de un accidente

[ [ [ [ [

....

31.659749] 31.662668] 31.662668] 31.662668] 31.662668]

Error: no puede manejar eliminar la referencia del núcleo puntero

NULL en la IP: [<ffffffff8139f166>] sysrq_handle_crash 0 x16/0x20 DGP 3bfb9067 PUD 368a7067 PMD 0 Oops: 0002 [# 1] SMP CPU 1

(Null)

El resto de la producción se trunca, pero hay que ver el reinicio del sistema y en alguna parte en el registro, usted verá la siguiente línea:

Inicio: Guardar vmcore de la caída del núcleo ...

Una vez completado, el sistema se reiniciará a su modo de funcionamiento normal. A continuación, se encuentra el

kernel Crash en el archivo de volcado / Var / crash directorio:

ls / var / crash linux-image-3.0.0-12-server.0.crash

5,7. Recursos

Volcado del núcleo Crash es un tema muy amplio que requiere un buen conocimiento del kernel de Linux. Usted

puede encontrar más información sobre el tema aquí:

•Kdump documentación del núcleo13.

•La herramienta de choque14 •Análisis de Crash Kernel de Linux15 (basado en Fedora, todavía da una buena guía de volcado del núcleo análisis)

13 http://www.kernel.org/doc/Documentation/kdump/kdump.txt 14 http://people.redhat.com/ ~ anderson / 15 http://www.dedoimedo.com/computers/crash-analyze.html

19

Capítulo 3. La administración de paquetes Ubuntu cuenta con un sistema de paquetes de gestión integral para la instalación, actualización, configuración, y eliminación de software. Además de proporcionar acceso a una base organizada de más de 35.000 programas los paquetes para su equipo Ubuntu, las instalaciones de gestión de paquetes también cuentan con la dependencia

las capacidades de resolución y la comprobación de

actualizaciones de software.

Existen varias herramientas para interactuar con el sistema de gestión de paquetes de Ubuntu, desde la simple

utilidades de línea de comandos que pueden ser fácilmente automatizados por los administradores del sistema, a un

gráfico simple interfaz que es fácil de utilizar por los nuevos en Ubuntu.

20

La administración de paquetes

1. Introducción

Sistema de gestión de paquetes de Ubuntu se deriva desde el mismo sistema utilizado por el / Debian GNU

Distribución de Linux. Los archivos de paquetes contienen todos los archivos necesarios, meta-datos e instrucciones en

implementar una funcionalidad particular o aplicación de software en el equipo de Ubuntu.

Los archivos de paquetes de Debian suelen tener la extensión '. Deb', y por lo general existen en repositorios que

son colecciones de paquetes que se encuentran en diversos medios de comunicación, tales como discos CD-ROM o en

línea. Los paquetes son normalmente en un formato binario pre-compilado, por lo que la instalación es rápida y no requiere la compilación

de software. Muchos paquetes complejos utilizan el concepto de dependencias. Las dependencias son paquetes adicionales requerido por el paquete principal con objeto de funcionar adecuadamente. Por ejemplo, la síntesis de voz Festival del paquete depende de la libasound2 paquete, que es un paquete de suministro de la ALSA biblioteca de sonidos necesarios para la reproducción de audio. Con el fin de fiesta a la función, y todas sus dependencias debe estar instalado. Las herramientas de gestión de software en Ubuntu lo hará automáticamente.

21

La administración de paquetes

2. dpkg

dpkg es un gestor de paquetes de Basada en Debian sistemas. Se puede instalar, eliminar y crear los paquetes, pero

a diferencia de otros sistemas de gestión de paquetes, no se puede descargar automáticamente e instalar los paquetes o

sus dependencias. En esta sección se explica el uso de dpkg para administrar los paquetes instalados

localmente: • Para una lista de todos los paquetes instalados en el sistema, de un tipo de terminal del

sistema:

dpkg-l

• Dependiendo de la cantidad de paquetes en su sistema, esto puede generar una gran cantidad de la producción. Canalizar la salida a través de grep para ver si un paquete específico está instalado:

dpkg-l | grep apache2

Reemplazar apache2 con cualquier nombre de paquete, que forma parte de un nombre de paquete, o una

expresión regular otros. • Para una lista de los archivos instalados por un paquete, en este caso el paquete de UFW,

escriba:

dpkg-L UFW

• Si usted no está seguro de qué paquete instalar un archivo, dpkg-S puede ser capaz de decirle. Por ejemplo:

dpkg-S / etc / host.conf base-files: / etc / host.conf

El resultado muestra que el / Etc / host.conf pertenece al paquete de base de archivos.

Muchos archivos se generan automáticamente durante el proceso de instalación del paquete, e incluso a pesar de que están en el sistema de archivos, dpkg-S no puede saber cuál es el paquete al que

pertenecen. • Se puede instalar un local . Deb presentar de este modo:

sudo dpkg-i-4_i386.deb zip_3.0

Cambiar zip_3.0-4_i386.deb al nombre del archivo real del archivo local. deb que desea instalar.

• La desinstalación de un paquete se puede lograr mediante:

sudo dpkg-r zip

Desinstalación de paquetes usando dpkg, en la mayoría de los casos, se NO recomendado. Es mejor

utilizar un gestor de paquetes que maneja dependencias para garantizar que el sistema está en un consistente estado. Por ejemplo usando dpkg-r zip eliminará el paquete postal, pero que los paquetes dependen de ello todavía será instalado y puede funcionar ya no correctamente.

Para las opciones de dpkg más ver la página de manual: el hombre dpkg.

22

La administración de paquetes

3. Apt-get

El comando apt-get es una potente herramienta de línea de comandos, que trabaja con Ubuntu Avanzado Packaging Tool (APT) la realización de funciones tales como la instalación de nuevos paquetes de software,

actualizar de paquetes de software existentes, la actualización del índice de paquetes, e incluso actualización de todo

Sistema Ubuntu.

Al ser una simple herramienta de línea de comandos, apt-get tiene numerosas ventajas sobre la gestión de otro paquete herramientas disponibles en Ubuntu para los administradores de servidores. Algunas de estas ventajas incluyen la

facilidad de uso sobre conexiones sencillas de terminal (SSH), y la capacidad de ser utilizado en las secuencias de comandos de administración

del sistema, que a su vez puede ser automatizado por la utilidad de planificación de

tareas cron.

Algunos ejemplos de los usos populares de la utilidad apt-get:

•Instalar un paquete: Instalación de paquetes utilizando la herramienta apt-get es bastante simple. Por ejemplo, para instalar el escáner de red nmap, escriba lo siguiente:

sudo apt-get install nmap

•Eliminar un paquete: La eliminación de un paquete (o paquetes) es también sencillo. Para quitar el paquete instalado en el ejemplo anterior, escriba lo siguiente:

sudo apt-get remove nmap

Varios paquetes: Usted puede especificar varios paquetes para instalar o desinstalar, separados por espacios.

Además, añadiendo el - Purge opción para apt-get remove eliminará los archivos de configuración de paquetes

como así. Esto puede o no puede ser el efecto deseado, a fin de utilizar con precaución.

•Actualizar el índice de paquetes: El índice de paquetes de APT es esencialmente una base de datos

disponible paquetes en los repositorios definidos en el / Etc / apt / sources.list archivo y en el / Etc / apt / sources.list.d directorio. Para actualizar el índice local de paquetes con los últimos cambios realizados en el repositorios, escriba lo siguiente:

sudo apt-get update

•Actualizar paquetes: Con el tiempo, las versiones actualizadas de los paquetes ya instalados en su ordenador puede llegar a ser disponible en los repositorios de paquetes (por ejemplo, actualizaciones de seguridad). Para

actualizar el sistema, primero actualice su índice de paquetes como se describe anteriormente, a

continuación, escriba:

sudo apt-get upgrade

Para obtener información sobre cómo actualizar a una nueva versión de Ubuntu ve Sección 3,

"Actualización" [p. 9].

Las acciones del comando apt-get, como instalación y desinstalación de paquetes, se registran en el archivo / var / log / dpkg.log registro.

23

La administración de paquetes

Para más información sobre el uso de APT, lea el amplio Manual de Usuario de Debian APT1 o Tipo:

apt-get ayuda

1 http://www.debian.org/doc/user-manuals # apt-howto

24

La administración de paquetes

4. Aptitud

Puesta en marcha de Aptitud sin opciones de línea de comandos, le dará una basada en menú, basado en texto de

primera extremo al Advanced Packaging Tool (APT) del sistema. Muchos de los de gestión de paquetes comunes funciones, como la instalación, desinstalación y actualización, se pueden realizar en la aptitud, con una sola tecla

comandos, que son normalmente letras minúsculas.

Aptitud es el más adecuado para su uso en un entorno de terminal no gráfico para asegurar el funcionamiento apropiado de las teclas de comando. Usted puede iniciar la interfaz basada en menús de Aptitud como un usuario normal, escriba el siguiente comando en una terminal:

sudo aptitude

Cuando inicie Aptitude, usted verá una barra de menú en la parte superior de la pantalla y dos paneles debajo del menú bar. El panel superior contiene las categorías de paquetes, tales como Nuevos Paquetes y No se ha instalado paquetes. El panel inferior contiene información relacionada con los paquetes y categorías de paquetes.

Uso de aptitud para la gestión de paquetes es relativamente sencillo, y hace que la interfaz de usuario tareas comunes fáciles de realizar. Los siguientes son ejemplos de gestión de paquetes comunes

funciones que se realizan en Aptitude:

•Instalar paquetes: Para instalar un paquete, busque el paquete a través de la Paquetes no instalados paquete

categoría, mediante el uso de las teclas de flecha del teclado y las ENTER clave. Resalte el paquete deseado, continuación, pulse el +clave. La entrada de paquete debe girar verde, lo que indica que se ha marcado para la instalación. A continuación, pulse gque se presentará con un resumen de las acciones. Presionar gde nuevo,

y se le pedirá que se convierta en administrador para completar la instalación. Presionar ENTER el que se resultar en una Contraseña: pedirá. Ingrese su contraseña de usuario para entrar como root. Por último, pulse guna

vez más y se le pedirá que descargue el paquete. Presionar ENTER en el Continuar del sistema y, descarga y la instalación del paquete comenzará.

•Desinstalar paquetes: Para eliminar un paquete, busque el paquete a través de la Paquetes instalados paquete

categoría, mediante el uso de las teclas de flecha del teclado y las ENTER clave. Resalte el paquete deseado que desea eliminar y pulse el -clave. La entrada de paquete debe girar rosa, lo que indica que tiene sido marcados para su eliminación. A continuación, pulse gque se presentará con un resumen de las acciones.

Presionar g

otra vez, y se le pedirá que se convierta en administrador para completar la eliminación. Presionar ENTER el que se resultar en una Contraseña: pedirá. Ingrese su contraseña de usuario para entrar como root. Por último, pulse guna

vez más, a continuación, pulse ENTER en el Continuar del sistema, y la eliminación del paquete se iniciará.

•Actualizar índice de paquetes: Para actualizar el índice de paquetes, simplemente presione el ullave y usted será pide que se convierta en administrador para completar la actualización. Presionar ENTER lo que resultará en un

Contraseña: pedirá. Ingrese su contraseña de usuario para entrar como root. La actualización del índice de los paquetes.

Presionar ENTER en el Aceptar del sistema cuando el cuadro de diálogo de descarga para completar el proceso.

•Actualizar paquetes: Para actualizar los paquetes, realizar la actualización del índice de paquetes como se detalla más arriba, y luego presione el Uclave para marcar todos los paquetes con las actualizaciones. A continuación,

pulse gpor el cual usted se presentarán con un resumen de las acciones. Presionar gotra vez, y se le pedirá que

25

La administración de paquetes

convierta en administrador para completar la instalación. Presionar ENTER lo que resultará en un Contraseña: pedirá. Ingrese su contraseña de usuario para entrar como root. Por último, pulse guna vez más, y se le pedirá que descargar los paquetes. Presionar ENTER en el Continuar del sistema, y la actualización de los paquetes

comenzar.

La primera columna de la información que aparece en la lista de paquetes en el panel superior, cuando en realidad ver

paquetes muestra el estado actual del paquete, y utiliza la siguiente clave para describir el estado de la paquete:

•i: Paquete instalado

•c: El paquete no instalado, pero la configuración del paquete permanece en el sistema

•t: Eliminado del sistema

•v: Paquete virtual

•B: Paquetes rotos

•u: Sin embalaje archivos, pero el paquete aún no está

configurado •C: A medio configurar - Error en la configuración y requiere ser reparada

•H: Half-instalado - no de eliminación y requiere ser reparada

Para cerrar Aptitude, simplemente presione el qclave y confirme que desea salir. Muchas otras funciones son disponible en el menú Aptitud pulsando el F10 clave.

4,1. Comando de Aptitud Línea

También se puede utilizar como una herramienta de Aptitud de línea de comandos, similar a apt-get. Para instalar el

paquete nmap con todas las dependencias necesarias, como en el ejemplo apt-get, se utilizaría el siguiente comando:

sudo aptitude install nmap

Para eliminar el mismo paquete, se utiliza el comando:

sudo apt-get remove nmap

Consulte las páginas man para más detalles sobre las opciones de línea de comandos para la

aptitud.

26

La administración de paquetes

5. Actualizaciones automáticas

El paquete de actualización desatendida se puede utilizar para instalar automáticamente los paquetes actualizados, y

puede ser configurado para actualizar todos los paquetes o simplemente instalar actualizaciones de seguridad. En primer lugar,

instalar el paquete mediante la introducción de lo siguiente en una terminal:

sudo apt-get install-actualizaciones desatendidas

Para configurar las actualizaciones desatendida, editar O etc/apt/apt.conf.d/50unattended-upgrades y ajustar lo siguiente de acuerdo a sus necesidades:

Desatendida a la actualización Título de

animales de Orígenes { "Ubuntu precisa de seguridad"; / / };

"Ubuntu precisa de cambios";

Ciertos paquetes también puede ser la lista negra y por lo tanto no se actualiza automáticamente. Para la lista negra un paquete, agregar a la lista:

Desatendida a la actualización del paquete-Lista

Negra :: { / / "Vim"; / /

/ / / /

};

"Libc6";

"Libc6-dev"; "Libc6-i686";

El doble "/ /" servir como comentarios, así que lo que sigue "/ /" no será evaluado.

Para activar las actualizaciones automáticas, editar / Etc/apt/apt.conf.d/10periodic y establecer la adecuada

apt opciones de configuración:

APT :: Periódico :: Paquete de actualización de las

listas-"1"; APT :: Periódico :: Descargar actualizable en los paquetes de

"1"; APT :: Periódico :: AutocleanInterval "7";

APT :: Periódico :: desatendida a la

actualización "1";

Las actualizaciones de configuración por encima de la lista de paquetes, descargas, e instala las actualizaciones

disponibles cada día. El archivo de descarga local se limpia cada semana.

Usted puede leer más acerca de las opciones de configuración aptas periódicos en el / Etc / cron.daily / apt script de cabecera.

Los resultados de la vigilancia de las actualizaciones se registrarán en / Var / log / unattended-

upgrades.

27

La administración de paquetes

5,1. Notificaciones

Configuración Desatendida a la actualización :: Correo en O etc/apt/apt.conf.d/50unattended-upgrades

voluntad permitir que las actualizaciones de vigilancia de correo electrónico a un administrador que detalla todos los paquetes

que necesitan mejorar o tiene problemas.

Otro paquete útil es apticron. apticron va a configurar una tarea programada para enviar un administrador información acerca de los paquetes en el sistema que tienen las actualizaciones disponibles, así como un resumen de cambios en cada paquete.

Para instalar el paquete apticron, en una terminal escriba:

sudo apt-get install apticron

Una vez que se instala el paquete editar / Etc / apticron / apticron.conf, Para establecer la dirección de correo

electrónico y otros opciones:

EMAIL = "[email protected]"

28

La administración de paquetes

6. Configuración

La configuración de la Advanced Packaging Tool (APT) repositorios del sistema se almacena en el / Etc / apt / sources.list archivo y el / Etc / apt / sources.list directorio. Un ejemplo de este archivo se hace referencia

aquí, junto con información sobre la adición o eliminación de las referencias del repositorio del archivo.

Aquí2 es un ejemplo sencillo de un típico / Etc / apt / sources.list archivo.

Usted puede editar el archivo para activar o desactivar repositorios de ellos. Por ejemplo, para desactivar el requisito

de insertar el CD-ROM de Ubuntu cada vez que las operaciones de paquetes se producen, simplemente comentar

la línea apropiada para el CD-ROM, que aparece en la parte superior del archivo:

# No hay más que provocó el CD-ROM por favor # Deb cdrom: [Ubuntu 12.04 Pangolin_ _Precise - Release i386 (20111013.1)] / precisa main restricted

6,1. Repositorios

Además de los repositorios de paquetes disponibles con apoyo oficial para Ubuntu, existen más mantenido por la comunidad repositorios que se suman otros miles de paquetes para la instalación de potencial. Dos de los más populares son el Universo y Multiverso repositorios. Estos depósitos no son

soportados oficialmente por Ubuntu, pero debido a que son mantenidos por la comunidad en general

Ofrecemos paquetes que son seguros para su uso con el equipo de Ubuntu.

Los paquetes en la Multiverso repositorio a menudo tienen problemas con las licencias que les impiden que se distribuye con un sistema operativo libre, y puede ser ilegal en su localidad.

Tenga en cuenta que ni el Universo o Multiverso depósitos contienen con apoyo oficial paquetes. En particular, no pueden ser actualizaciones de seguridad para estos paquetes.

Muchas fuentes de paquetes se dispone de otros, a veces incluso ofreciendo sólo un paquete, como en el caso

de las fuentes de paquetes proporcionados por el desarrollador de una sola aplicación. Usted siempre debe ser muy cuidadoso y cauteloso al utilizar fuentes no estándar del paquete, sin embargo. Investigar el origen y el

paquetes cuidadosamente antes de realizar cualquier instalación, ya que algunas fuentes de paquetes y sus paquetes podría desestabilizar su sistema o que no funciona en algunos aspectos.

Por defecto, el Universo y Multiverso depósitos están habilitados, pero si quieres desactivarlos editar / Etc / apt / sources.list y comentar las siguientes líneas:

deb http://archive.ubuntu.com/ubuntu multiverso universo precisa deb-src http://archive.ubuntu.com/ubuntu multiverso universo precisa

deb http://us.archive.ubuntu.com/ubuntu/ precisa universo deb-src http://us.archive.ubuntu.com/ubuntu/ precisa universo

2 .. / muestra / sources.list

29

La administración de paquetes

deb http://us.archive.ubuntu.com/ubuntu/ precisos-updates universo deb-src http://us.archive.ubuntu.com/ubuntu/ precisos-updates universo

deb http://us.archive.ubuntu.com/ubuntu/ precisa multiverso deb-src http://us.archive.ubuntu.com/ubuntu/ precisa multiverso

deb http://us.archive.ubuntu.com/ubuntu/ precisos-updates multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ precisos-updates multiverse

deb http://security.ubuntu.com/ubuntu precisa-security universe deb-src http://security.ubuntu.com/ubuntu precisa-security universe

deb http://security.ubuntu.com/ubuntu precisa de seguridad multiverso deb-src http://security.ubuntu.com/ubuntu precisa de seguridad multiverso

30

La administración de paquetes

7. Referencias

La mayor parte del material cubierto en este capítulo está disponible en las páginas de manual, muchos de los cuales

están disponibles en línea.

• El Instalar aplicaciones3 página del wiki de Ubuntu tiene más información.

• Para más detalles ver el dpkg más dpkg página de manual4.

• El APT HOWTO5 y apt-get página man6 contienen información útil sobre el uso de apt-get.

• Consulte el página del manual de la aptitud7 para más opciones de aptitud.

• El Añadir repositorios HOWTO (Wiki de Ubuntu)8 página contiene más detalles sobre la adición de repositorios.

3 https://help.ubuntu.com/community/InstallingSoftware 4 http://manpages.ubuntu.com/manpages/precise/en/man1/dpkg.1.html 5 http://www.debian.org/doc/manuals/apt-howto/ 6 http://manpages.ubuntu.com/manpages/precise/en/man8/apt-get.8.html 7 http://manpages.ubuntu.com/manpages/precise/man8/aptitude.8.html 8 https://help.ubuntu.com/community/Repositories/Ubuntu

31

Capítulo 4. Redes

Las redes constan de dos o más dispositivos, como los sistemas de computadoras, impresoras y equipos relacionados los cuales están conectados por cualquiera de cableado físico o enlaces inalámbricos con el fin de compartir y distribuir información entre los dispositivos conectados.

En esta sección se ofrece información general y específica relativa a la creación de redes, incluyendo un descripción de los conceptos de red y la discusión detallada de los protocolos de redes populares.

32

Redes

1. Configuración de la red

Ubuntu viene con una serie de utilidades gráficas para configurar sus dispositivos de red. Este documento es

dirigido a los administradores de servidores y se centrará en la gestión de su red en la línea de comandos.

1,1. Interfaces Ethernet

Interfaces Ethernet son identificados por el sistema utilizando la convención de nomenclatura de ethX, donde X representa un valor numérico. La primera interfaz Ethernet suele ser identificado como eth0, la segunda como eth1, y todos los demás deben moverse hacia arriba en orden numérico.

1.1.1. Identificar las interfaces Ethernet

Para identificar rápidamente todos los disponibles interfaces Ethernet, puede utilizar el comando ifconfig como se

muestra a continuación.

ifconfig-a | grep eth eth0Link encap: Ethernet

HWaddr doce y cuarto: c5: 4a:

16:05 una

Otra aplicación que puede ayudar a identificar todas las interfaces de red disponibles para su sistema es el lshw

comando. En el siguiente ejemplo, lshw muestra una única interfaz de Ethernet con el nombre lógico de eth0 junto con la información de autobuses, los datos del conductor y todas las capacidades de apoyo.

sudo lshw red de clase *-Red

Descripción: Interfaz Ethernet producto: BCM4401-B0 100Base-TX

proveedor: Broadcom Corporation Identificación física: 0

bus info: pci @ 0000:03:00.0

lógica nombre: eth0 Versión: 02

serie: 00:15: C5: 4a: 16:05 una Tamaño: 10 MB / s Capacidad: 100 MB / s

Ancho: 32 bits reloj: 33 MHz

las capacidades de: (cortó por razones de

brevedad) de configuración: (cortó por razones de brevedad) recursos: IRQ: 17 de memoria: ef9fe000-ef9fffff

1.1.2. Interfaz Ethernet nombres lógicos

Interfaz de nombres lógicos se configuran en el archivo O etc/udev/rules.d/70-persistent-net.rules. Si

desea el control de la interfaz que recibe un nombre lógico en particular, busque la línea que coincida con el interfaces de dirección MAC física y modificar el valor de NAME = ethX hasta el nombre lógico. Reinicie el sistema para confirmar los cambios.

33

Redes

1.1.3. Configuración de la interfaz Ethernet

ethtool es un programa que muestra y cambia la configuración de la tarjeta Ethernet, tales como auto-negociación, el

puerto velocidad, modo dúplex y Wake-on-LAN. No se instala por defecto, pero está disponible para la instalación en los repositorios.

sudo apt-get install ethtool

El siguiente es un ejemplo de cómo ver las funciones y la configuración establecida de una red Ethernet

interfaz.

sudo ethtool eth0 Ajustes para eth0: Puertos compatibles: [TP] Modos de enlace: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full

Soporta auto-negociación: Sí Anunciados los modos de enlace: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

1000baseT/Half 1000baseT/Full Anunciado auto-negociación: Sí

Velocidad: 1000Mb / s Dúplex: Completa

Puerto: Par Trenzado PHYAD: 1 Transceptor: interno

La negociación automática: el Soporta Wake-on: g

Wake-on: d Nivel de mensaje actual: 0x000000FF (255) Link detected: yes

Los cambios realizados con el comando ethtool son temporales y se perderán después de un reinicio. Si lo haría

desea conservar la configuración, sólo tiene que añadir deseada ethtool comando a un pre-up declaración en la

interfaz archivo de configuración / Etc / network / interfaces.

El siguiente es un ejemplo de cómo la interfaz identificada como eth0 podría ser permanentemente configurado

con una velocidad de puerto de 1000Mb / s se ejecuta en modo full

duplex.

auto eth0 iface eth0 inet static

pre-up / sbin / ethtool-s eth0 velocidad 1000 full duplex

Aunque el ejemplo anterior muestra la interfaz configurado para utilizar el estático método, en realidad funciona con otros métodos, así como DHCP. El ejemplo está destinado a demostrar sólo la colocación correcta de la pre-up declaración en relación con el resto del interfaz de configuración.

34

Redes

1,2. Direccionamiento IP

La siguiente sección describe el proceso de configurar su dirección IP por defecto de sistemas y puerta de entrada necesario para comunicarse en una red de área local e Internet.

1.2.1. Cesión temporal de la dirección IP

Para las configuraciones de red temporales, puede utilizar comandos estándar como IP, ifconfig y route, que también se encuentran en la mayoría de otros sistemas operativos GNU / Linux. Estos comandos le permiten configurar los ajustes que entrarán en vigor inmediatamente, sin embargo, no son persistentes y se perderán después de reiniciar el sistema.

Para configurar de forma temporal una dirección IP, puede utilizar el comando ifconfig de la siguiente manera. Basta con modificar la dirección IP y la máscara de subred para satisfacer sus necesidades de red.

sudo ifconfig eth0 10.0.0.100 netmask 255.255.255.0

Para comprobar la configuración de la dirección IP de eth0, puede utilizar el comando ifconfig en el siguiente manera.

ifconfig eth0 eth0 Link encap: Ethernet HWaddr doce y cuarto: c5: 4a:

16:05 una inet dirección: 10.0.0.100 Bcast: 10.0.0.255 Mask: 255.255.255.0 inet6: fe80 :: 215: c5ff: fe4a: 165a/64 Alcance: Vínculo

UP DIFUSIÓN CORRIENDO MULTICAST MTU: 1500 Métrica: 1 RX packets: 466475604 errores: 0 disminuido: 0 sobrecostos: 0 marcos: 0

TX packets: 403172654 errores: 0 disminuido: 0 sobrecostos: 0 carrier: 0

colisiones: 0 txqueuelen: 1000 RX bytes: 2574778386 (2.5 GB)

Interrupción: 16 TX bytes: 1618367329 (1.6 GB)

Para configurar una puerta de enlace predeterminada, puede utilizar el comando de ruta de la siguiente manera.

Modificar el dirección de la pasarela por defecto para que coincida con sus requisitos de red.

la ruta sudo add default gw 10.0.0.1 eth0

Para comprobar la configuración de su puerta de enlace predeterminada, puede utilizar el comando route en la

siguiente manera.

route-n IP del Kernel de la tabla de

enrutamiento Destino 10.0.0.0

0.0.0.0

Puerta 0.0.0.0

10.0.0.1

Genmask 255.255.255.0

0.0.0.0

Banderas Metric Ref U10

UG 0 0

Utilice Iface 0 eth0

0 eth0

Si usted requiere DNS para la configuración temporal de la red, puede agregar direcciones IP del servidor DNS en el archivo / Etc / resolv.conf. El siguiente ejemplo muestra cómo introducir dos servidores DNS / Etc /

35

Redes

que debe ser cambiado a los servidores apropiados para su red. A más largo descripción de la configuración del cliente DNS en una sección posterior. resolv.conf,

nameserver 8.8.8.8 nameserver 8.8.4.4

Si usted ya no tendrá esta configuración y desea purgar toda la configuración IP de una interfaz, Puede utilizar el comando ip con la opción de descarga como se muestra a continuación.

ip addr eth0 limpiar

Lavado de la configuración IP mediante el comando ip no borrar el contenido de / Etc / resolv.conf. Debe eliminar o modificar las entradas de forma manual.

1.2.2. Asignación dinámica de direcciones IP (DHCP Client)

Para configurar el servidor para usar DHCP para la asignación dinámica de direcciones, agregue el dhcp método para el dirección de inet familia declaración de la interfaz correspondiente en el archivo / Etc / network / interfaces. La ejemplo siguiente se supone que está configurando la primera interfaz Ethernet identificado como eth0.

auto eth0 iface eth0 inet dhcp

Mediante la adición de una configuración de la interfaz como se muestra arriba, puede activar manualmente la interfaz

a través el comando ifup que inicia el proceso a través de DHCP dhclient.

sudo ifup eth0

Para deshabilitar manualmente la interfaz, puede utilizar el comando ifdown, que a su vez iniciará la

DHCP el proceso de liberación y cerrar la interfaz.

sudo ifdown eth0

1.2.3. Asignación de direcciones IP estáticas

Para configurar el sistema para utilizar una asignación de direcciones IP estáticas, agrega el estático método a la inet Dirección del comunicado de la familia para la interfaz correspondiente en el archivo / Etc / network /

interfaces. La ejemplo siguiente se supone que está configurando la primera interfaz Ethernet identificado como eth0. Cambiar

la dirección, máscara de red, y puerta los valores para cumplir los requisitos de su red.

auto eth0

iface eth0 inet static la dirección 10.0.0.100

máscara de red 255.255.255.0 puerta de enlace 10.0.0.1

36

Redes

Mediante la adición de una configuración de la interfaz como se muestra arriba, puede activar manualmente la interfaz

a través el comando ifup.

sudo ifup eth0

Para deshabilitar manualmente la interfaz, puede utilizar el comando ifdown.

sudo ifdown eth0

1.2.4. Interfaz de bucle invertido

La interfaz de bucle se identifica por el sistema como he aquí y tiene una dirección IP por defecto de 127.0.0.1. Lo se pueden ver utilizando el comando ifconfig.

Lo ifconfig he aquí Link encap: Bucle local

inet dirección: 127.0.0.1 Máscara: 255.0.0.0 inet6 ::: 1/128 Alcance: Anfitrión

ARRIBA LOOPBACK CORRIENDO MTU: 16436 Métrica: 1

RX packets: 2718 errors: 0 disminuido: 0 sobrecostos: 0 marcos: 0 TX packets: 2718 errors: 0 disminuido: 0 sobrecostos: 0 carrier: 0

colisiones: 0 txqueuelen: 0 RX bytes: 183308 (183.3 KB)

TX bytes: 183308 (183.3 KB)

Por defecto, debería haber dos líneas de / Etc / network / interfaces responsable de forma automática

configuración de la interfaz de bucle invertido. Se recomienda que mantenga la configuración predeterminada a menos

que tienen un propósito específico para el cambio de ellos. Un ejemplo de las dos líneas predeterminadas se muestran a

continuación.

Lo automático iface inet loopback he aquí

1,3. De resolución de nombres

La resolución de nombres que se refiere a la creación de redes IP es el proceso de asignación de direcciones IP a

nombres de host, por lo que es más fácil identificar los recursos en una red. La siguiente sección se explica cómo configurar correctamente el sistema de resolución de nombres utilizando DNS estáticos y registros de nombres de

host. 1.3.1. Configuración del cliente DNS

Tradicionalmente, el archivo / Etc / resolv.conf era un archivo de configuración estática que rara vez tenía

que ser modificado o cambiado de forma automática a través de ganchos de cliente DHCP. Hoy en día, un equipo puede

cambiar de una red a otra con bastante frecuencia y el resolvconf marco se está utilizando para realizar un seguimiento de estos los cambios y actualizar la configuración de la resolución de forma automática. Actúa como intermediario entre

programas de servidor de nombres que suministran la información y las aplicaciones que necesitan de dicha

información. Resolvconf se rellena con información por parte de un conjunto de scripts ganchos relacionados con la interfaz de

red configuración. La diferencia más notable para el usuario es que cualquier cambio realizado manualmente a / etc / resolv.conf se pierde a medida que se sobrescribe cada vez que algo desencadena resolvconf. En su lugar,

37

Redes

resolvconf utiliza DHCP ganchos cliente, y / Etc / network / interfaces para generar una lista de servidores de

nombres y los dominios para poner en / de / etc resolv.conf, que ahora es un enlace simbólico:

/ Etc / resolv.conf -> .. / run / resolvconf / resolv.conf

Para configurar la resolución, agregue las direcciones IP de los servidores de nombres que sean apropiados para su red en el archivo / Etc / network / interfaces. También puede agregar una opción de búsqueda sufijo DNS listas para que coincida con sus nombres de dominio de red. Por la otra opción válida de configuración resolv.conf, puede

incluir, en la estrofa, una línea que comienza con el nombre de la opción con un dns- prefijo. El archivo resultante podría ser similar al siguiente:

iface eth0 inet static

la dirección 192.168.3.3 máscara de red 255.255.255.0 puerta de enlace 192.168.3.1 dns-search example.com dns-nameservers 192.168.3.45 192.168.8.10

La búsqueda opción también se puede utilizar con varios nombres de dominio de manera que las consultas DNS será adjunta en el orden en que se introducen. Por ejemplo, la red puede tener varios sub-

dominios de búsqueda, un dominio de los padres example.com, y dos sub-dominios, sales.example.com y dev.example.com.

Si tiene varios dominios que desea buscar, la configuración podría ser similar al siguiente:

iface eth0 inet static la dirección 192.168.3.3

máscara de red 255.255.255.0

puerta de enlace 192.168.3.1 dns-search example.com sales.example.com dev.example.com

dns-nameservers 192.168.3.45 192.168.8.10

Si intenta hacer ping a un host con el nombre de server1, el sistema automáticamente se consulta DNS para su Nombre de dominio completo (FQDN) en el siguiente orden:

1. server1.example.com

2. server1.sales.example.com

3. server1.dev.example.com

Si no se encuentran coincidencias, el servidor DNS proporcionará un resultado de notfound y la consulta DNS se

producirá un error.

1.3.2. Nombres de host estático

Nombres de host estáticos son definidas a nivel local el nombre de host-a-IP asignaciones encuentran en el

archivo / Etc / hosts. Las inscripciones en el los ejércitos archivo tendrá prioridad sobre los DNS por defecto. Esto significa que si su

sistema intenta resolver un nombre de host y coincide con una entrada en / etc / hosts, no se tratará de buscar la registro en el DNS. En algunas configuraciones, sobre todo cuando el acceso a Internet no es necesario, los servidores

que

38

Redes

comunicarse con un número limitado de los recursos pueden ser convenientemente configurado para utilizar

nombres de host estáticos en lugar de DNS.

El siguiente es un ejemplo de un los ejércitos presentar en un número de servidores locales han sido identificados

por nombre de un sistema, los alias y los nombres equivalentes de dominio completo (FQDN).

127.0.0.1 localhost

127.0.1.1 ubuntu-server 10.0.0.11 server1 VPN server1.example.com

10.0.0.12 server2 server2.example.com electrónico 10.0.0.13 servidor3 www server3.example.com 10.0.0.14 servidor4 archivo server4.example.com

En el ejemplo anterior, observará que cada uno de los servidores se han dado alias además a sus nombres propios y los de FQDN. Servidor1 ha sido localizado en el nombre VPN, server2 es denominado electrónico, servidor3 como www, y servidor4 como archivo.

1.3.3. Servicio de nombres de configuración del

interruptor

El orden en que el sistema selecciona un método de resolución de nombres de host a direcciones IP se controla

por el servicio de nombres de archivo de configuración de Switch (NSS) / Etc / nsswitch.conf. Como se mencionó

en el sección anterior, por lo general los nombres de host estáticos definidos en los sistemas de / Etc / hosts presentar

tendrán preferencia sobre los nombres del DNS. El siguiente es un ejemplo de la línea responsable de este orden de

búsquedas de nombres de host en el archivo / Etc /

nsswitch.conf.

anfitriones: archivos mdns4_minimal [NOTFOUND = return] dns mdns4

•archivos primero intenta resolver nombres de hosts estáticos ubicados en / Etc

/ hosts. •mdns4_minimal los intentos de resolver el nombre mediante DNS de multidifusión.

•[NOTFOUND = return] significa que cualquier respuesta de notfound por el anterior mdns4_minimal

proceso debe ser entendido como autoridad y que el sistema no debe tratar de seguir la caza de una respuesta.

•dns representa un legado de consultas DNS unicast.

•mdns4 representa una consulta DNS de multidifusión.

Para modificar el orden de los mencionados métodos de resolución de nombres, puede simplemente cambiar el anfitriones: cadena en el valor de su elección. Por ejemplo, si usted prefiere usar el legado DNS de unidifusión

contra de DNS multicast, puede cambiar la cadena en / Etc / nsswitch.conf como se muestra a

continuación.

anfitriones: files dns [NOTFOUND = return] mdns4_minimal mdns4

1,4. Bridging

Reducción de múltiples interfaces es una configuración más avanzada, pero es muy útil en múltiples escenarios. Un escenario es la creación de un puente con múltiples interfaces de red, a continuación, utilizando un

servidor de seguridad

39

Redes

para filtrar el tráfico entre dos segmentos de red. Otro escenario es usar el puente en un sistema con una interfaz para permitir que las máquinas virtuales de acceso directo a la red exterior. El siguiente ejemplo cubre el escenario de este último.

Antes de configurar un puente usted tendrá que instalar el paquete bridge-utils. Para instalar el paquete, en una terminal escriba:

sudo apt-get install bridge-utils

A continuación, configure el puente mediante la edición de / Etc / network /

interfaces:

Lo automático iface inet loopback he aquí

auto br0 iface br0 inet static

la dirección 192.168.0.10 red 192.168.0.0

máscara de red 255.255.255.0

broadcast 192.168.0.255 puerta de enlace 192.168.0.1

bridge_ports eth0 bridge_fd 9

bridge_hello 2

bridge_maxage 12 bridge_stp fuera

Introduzca los valores apropiados para su interfaz física y de red.

Ahora reinicia la creación de redes para permitir que la interfaz de

puente:

sudo / etc / init.d / networking restart

La interfaz del nuevo puente ya debería estar en funcionamiento. El brctl proporciona información útil sobre el estado del puente, los controles que las interfaces son parte del puente, etc Véase man brctl para más información.

1,5. Recursos

• El Ubuntu Wiki de la Red la página1 tiene enlaces a artículos que cubren la red más avanzada configuración.

• El resolvconf página de manual2 tiene más información sobre resolvconf.

1 https://help.ubuntu.com/community/Network 2 http://manpages.ubuntu.com/manpages/man8/resolvconf.8.html

40

Redes

• El interfaces de página del manual de3 tiene información sobre más opciones para / Etc / network /

interfaces. • El dhclient página de manual4 tiene más detalles sobre las opciones para configurar los ajustes del cliente DHCP.

• Para obtener más información sobre la configuración del cliente DNS ver el resolución de la página del hombre5. Además, el capítulo 6

de O'Reilly Guía de Linux Administración de Redes6 es una buena fuente de servicio de resolución y el nombre la información de configuración.

• Para más información sobre puente véase el página del manual de brctl7 y el de la Fundación Linux Neto: Puente8 página.

3 http://manpages.ubuntu.com/manpages/man5/interfaces.5.html 4 http://manpages.ubuntu.com/manpages/man8/dhclient.8.html 5 http://manpages.ubuntu.com/manpages/man5/resolver.5.html 6 http://oreilly.com/catalog/linag2/book/ch06.html 7 http://manpages.ubuntu.com/manpages/man8/brctl.8.html 8 http://www.linuxfoundation.org/en/Net:Bridge

41

Redes

2. TCP / IP

El Transmission Control Protocol e Internet Protocol (TCP / IP) es un conjunto estándar de protocolos desarrollado en la década de 1970 por la Defense Advanced Research Projects Agency (DARPA) como un

medios de comunicación entre los diferentes tipos de computadoras y redes informáticas. TCP / IP es el la fuerza motriz de la Internet, por lo que es el conjunto más popular de los protocolos de red en la Tierra.

2,1. TCP / IP Introducción

Los dos componentes del protocolo de TCP / IP se ocupan de diferentes aspectos de las redes de computadoras. Internet Protocolo, la "propiedad intelectual" de TCP / IP es un protocolo sin conexión que se trata sólo de paquetes de red encaminamiento utilizando el Datagrama IP como la unidad básica de información en red. El datagrama IP consiste en de una cabecera seguida de un mensaje. La Transmission Control Protocol es el "TCP" de TCP / IP y permite máquinas de la red para establecer conexiones que pueden ser utilizados para el intercambio de flujos de datos.

TCP También garantiza que los datos entre las conexiones se entrega y que llega a una red de acogida en el mismo orden en que fue enviado desde otro principal de la red.

2,2. Configuración TCP / IP

La configuración de TCP / IP se compone de varios elementos que se debe establecer mediante la edición del archivos de configuración apropiados, o la implementación de soluciones tales como la configuración dinámica de

host Protocolo (DHCP) que a su vez, se puede configurar para proporcionar la adecuada configuración TCP / IP ajustes a los clientes de la red de forma automática. Estos valores de configuración se deben establecer correctamente

con el fin de facilitar el funcionamiento de la red adecuada de su sistema Ubuntu.

Los elementos comunes de configuración de TCP / IP y sus efectos son los siguientes:

•Dirección IP La dirección IP es una cadena de identificación única expresada como cuatro números decimales que van desde cero (0) a doscientos cincuenta y cinco (255), separadas por períodos, con cada uno de los

cuatro números que representan a ocho (8) bits de la dirección de una longitud total de treinta y dos (32) bits para la dirección general. Este formato se denomina notación de cuaterna.

•Máscara de red La máscara de subred (o simplemente, máscara de red) es una máscara de bits local, o un conjunto

de banderas que separan las partes de una dirección IP significativos a la red de los bits más significativos de la subred.

Por ejemplo, en una red de Clase C, la máscara de red estándar es 255.255.255.0 que enmascara el primer tres bytes de la dirección IP y permite que el último byte de la dirección IP de estar disponible para especificar los hosts de la subred.

•De direcciones de red La dirección de red representa los bytes que componen la porción de red de una dirección IP. Por ejemplo, el host 12.128.1.2 en una red de clase usaría 12.0.0.0 como

la dirección de red, donde doce (12) representa el primer byte de la dirección IP, (la red parte) y ceros (0) en todos los restantes tres bytes para representar los valores de host potenciales. A host de la red utilizando la dirección IP privada 192.168.1.100, a su vez utilizar una dirección de red de 192.168.1.0, que especifica los tres primeros bytes de la clase C 192.168.1 red y un cero (0) para todos los posibles hosts de la red.

42

Redes

•Difusión Dirección La dirección de broadcast es una dirección IP que permite a la red de datos para ser enviados simultáneamente a todos los hosts de una subred determinada en lugar de especificar un host en particular. La Dirección del estándar de emisión general para las redes IP es 255.255.255.255, pero esta dirección de difusión

No se puede utilizar para enviar un mensaje de difusión a todos los hosts de Internet, ya que los routers bloque

él. Una dirección de difusión más adecuado se establece para que coincida con una determinada subred. Por

ejemplo, en la Clase C de red privada IP, 192.168.1.0, la dirección de difusión es 192.168.1.255. Transmitir mensajes se producen típicamente por los protocolos de red, tales como el Protocolo de resolución de direcciones (ARP) y el Routing Information Protocol (RIP).

•Dirección de la pasarela La dirección de gateway es la dirección IP a través del cual una red en particular, o de acogida en una red, puede ser alcanzado. Si un host de red desea comunicarse con otro servidores de red y host que no se encuentra en la misma red, entonces una puerta debe ser utilizado. En muchos casos, la Dirección de puerta de enlace será la de un router en la misma red, que a su vez pasar el tráfico a otras redes o hosts, tales como servidores de Internet. El valor de la dirección de puerta de enlace configuración debe ser correcta, o el sistema no será capaz de alcanzar cualquier máquina más allá de los de la misma red.

•Nombre del servidor de direcciones Las direcciones de servidores de nombres representan las direcciones IP de

Domain Name Service (DNS) de los sistemas, que se resuelven los nombres de host en direcciones IP de red. Hay tres niveles de Las direcciones de servidores de nombres, que pueden ser especificados en el orden de precedencia: El Primario Nombre del servidor, la Secundario Nombre del servidor, y el Terciario Nombre del servidor. Para que el sistema sea capaz de

para resolver nombres de host de la red en sus correspondientes direcciones IP, debe especificar válida Las direcciones de servidores de nombres que están autorizados a utilizar en su sistema TCP / IP. En muchos casos, estas direcciones pueden y serán proporcionados por su proveedor de servicios de red, pero muchos

libre y de acceso público los servidores de nombres están disponibles para su uso, tales como los Level3 (Verizon)

servidores con las direcciones IP de 4.2.2.1 a 4.2.2.6.

La dirección IP, máscara de red, direcciones de red, dirección de broadcast y puerta de enlace Dirección se especifican normalmente a través de las directivas en el archivo / Etc / network /

las interfaces. Las direcciones de servidores de nombres se especifican normalmente por medio servidor de nombres directivas en el archivo / Etc / resolv.conf. Para obtener más información, vea la página del manual de para las interfaces o resolv.conf respectivamente, con los siguientes comandos escritos en el

terminal:

Acceda a la página del manual de las interfaces con el siguiente comando:

interfaces hombre

Acceda a la página del manual de resolv.conf con el siguiente comando:

el hombre resolv.conf

43

Redes

2,3. Enrutamiento IP

Enrutamiento IP es un medio de especificar y descubrir caminos en una red TCP / IP a lo largo de la red que

datos pueden ser enviados. Enrutamiento utiliza un conjunto de las tablas de enrutamiento para dirigir el envío de

paquetes de datos de red desde su origen hasta el destino, a menudo a través de muchos nodos intermedios conocidos como routers. Hay dos formas primarias de enrutamiento IP: Enrutamiento estático y Enrutamiento

dinámico.

El enrutamiento estático es necesario agregar manualmente rutas IP a la tabla de enrutamiento del sistema, y esto es

por lo general realizado mediante la manipulación de la tabla de encaminamiento con el comando ruta. El enrutamiento estático

goza de muchos ventajas sobre el encaminamiento dinámico, como la sencillez de implementación en redes más pequeñas, previsibilidad (la tabla de encaminamiento se calcula siempre por adelantado, y por lo tanto la ruta es precisamente el mismo cada vez que se utiliza), y bajos costos en otros routers y enlaces de la red debido a la falta de un protocolo de enrutamiento dinámico. Sin embargo, el enrutamiento estático no presentan algunas desventajas

también. Para ejemplo, el enrutamiento estático se limita a las redes de pequeñas y no escala bien. El enrutamiento estático también

falla completamente para adaptarse a las interrupciones de red y los fracasos a lo largo de la ruta debido a la naturaleza fija

del ruta.

El enrutamiento dinámico depende de redes grandes con muchas rutas IP posibles desde un origen a un destino y hace uso de protocolos especiales de encaminamiento, como por ejemplo el protocolo de información del

router (RIP), que manejan los ajustes automáticos en las tablas de encaminamiento que hacen posible el enrutamiento

dinámico. El enrutamiento dinámico tiene varias ventajas sobre el enrutamiento estático, como una escalabilidad superior y la

capacidad del para adaptarse a las fallas e interrupciones a lo largo de las rutas de red. Adicionalmente, hay menos configuración

manual de las tablas de enrutamiento, ya que los routers aprender unos de otros sobre su existencia y rutas disponibles. Esta característica también elimina la posibilidad de introducir errores en las tablas de enrutamiento a través de un error

humano. El enrutamiento dinámico no es perfecto, sin embargo, presenta inconvenientes, tales como la complejidad mayor y la sobrecarga de la red adicional de las comunicaciones del router, que no benefician inmediatamente

los usuarios finales, pero aún así consume ancho de banda de red.

2,4. TCP y UDP

TCP es un protocolo basado en la conexión, que ofrece corrección de errores y garantizar la entrega de datos a

través de lo que se conoce como de control de flujo. El control de flujo determina cuando el flujo de una corriente de datos

tiene que ser se detuvo, y ya enviados los paquetes de datos deben ser re-enviado debido a problemas tales como colisiones, por ejemplo, asegurando así la entrega completa y precisa de los datos. TCP se usa típicamente en el intercambio de información importante, como las transacciones de bases de datos.

El User Datagram Protocol (UDP), por el contrario, es un sin conexión protocolo que rara vez se refiere a la transmisión de datos importantes debido a que carece de control de flujo o cualquier otro método para

garantizar la entrega confiable de los datos. UDP se utiliza comúnmente en aplicaciones tales como audio y video transmisión, donde es considerablemente más rápido que TCP debido a la falta de corrección de errores y el flujo controlar, y donde la pérdida de unos pocos paquetes no es generalmente catastrófica.

44

Redes

2,5. ICMP

El control de Internet Messaging Protocol (ICMP) es una extensión del Protocolo de Internet (IP) como se define en el Request For Comments (RFC) # 792 y es compatible con los paquetes de red que contiene el control,

error y mensajes informativos. ICMP es utilizado por las aplicaciones de red tales como la utilidad ping, que puede determinar la disponibilidad de un host de red o dispositivo. Ejemplos de algunos mensajes de error devuelto por ICMP que son útiles para máquinas de la red como en dispositivos tales como routers, incluyen Destino inalcanzable y Tiempo excedido.

2,6. Demonios

Demonios son aplicaciones especiales del sistema que normalmente se ejecutan continuamente en segundo plano y espera de las solicitudes de las funciones que ofrecen desde otras aplicaciones. Muchos demonios son la red centrada, es decir, un gran número de demonios que se ejecutan en el fondo en un sistema Ubuntu puede proporcionar una red relacionada con la funcionalidad. Algunos ejemplos de los demonios de red son la Hyper Text Transport Protocol Daemon (Httpd), que proporciona funcionalidad de servidor web, el Secure SHell

Demonio (Sshd), que proporciona un shell seguro de acceso remoto y las capacidades de transferencia de

archivos, y el Internet Message Access Protocol Daemon (Imapd), que proporciona servicios de correo electrónico.

2,7. Recursos

• Hay páginas del manual para TCP9 y IP10 que contienen la información más útil.

• Asimismo, consulte la TCP / IP Tutorial y descripción técnica11 IBM Redbook.

• Otro recurso es el de O'Reilly TCP / IP Network Administration12.

9 http://manpages.ubuntu.com/manpages/precise/en/man7/tcp.7.html 10 http://manpages.ubuntu.com/manpages/precise/man7/ip.7.html 11 http://www.redbooks.ibm.com/abstracts/gg243376.html 12 http://oreilly.com/catalog/9780596002978/

45

Redes

3. Dynamic Host Configuration Protocol (DHCP)

El Protocolo de configuración dinámica de host (DHCP) es un servicio de red que permite a los equipos de acogida que se le asigna automáticamente la configuración de un servidor en lugar de tener que configurar manualmente cada

red de acogida. Equipos configurados para ser clientes DHCP no tienen control sobre los ajustes que reciben de el servidor DHCP, y la configuración es transparente para el usuario de la computadora.

La configuración más comunes suministradas por un servidor DHCP para los clientes DHCP

incluyen: • Dirección IP y máscara de red • La dirección IP de la puerta de entrada por defecto

para utilizar • Las direcciones IP de los servidores DNS para utilizar

Sin embargo, un servidor DHCP puede suministrar propiedades de configuración, tales

como: • • • •

Nombre del host De nombres de dominio Servidor de tiempo Servidor de impresión

La ventaja de usar DHCP es que los cambios en la red, por ejemplo un cambio en la dirección de el servidor DNS, sólo tiene que ser cambiado en el servidor DHCP, y todas las máquinas de la red se va a reconfigurar

la próxima vez que sus clientes DHCP sondeo del servidor DHCP. Como una ventaja adicional, es también más

fácil integrar nuevos equipos en la red, ya que no hay necesidad de comprobar la disponibilidad de una IP dirección. Los conflictos en la asignación de direcciones IP también se reducen.

Un servidor DHCP puede proporcionar parámetros de configuración utilizando los siguientes

métodos: Asignación manual (dirección MAC) Este método supone el uso de DHCP para identificar el hardware único de cada tarjeta de red

conectado a la red y continuar suministrando una configuración constante cada vez que el Cliente DHCP hace una petición al servidor DHCP usando ese dispositivo de red. Esto asegura que un dirección particular se asigna automáticamente a la tarjeta de red, basado en su dirección MAC.

La asignación dinámica (grupo de direcciones)

En este método, el servidor DHCP asignará una dirección IP de un conjunto de direcciones (a veces también llamado un rango o ámbito) durante un período de tiempo o alquiler, que está configurado en el servidor

o hasta que el cliente informa al servidor que no necesita la dirección de más. De esta manera, los clientes

va a recibir a sus propiedades de configuración de forma dinámica y en un "primer llegado, primer servido" base. Cuando un cliente DHCP ya no está en la red durante un período determinado, la configuración ha caducado y se libera de nuevo a la lista de direcciones para su uso por otros clientes DHCP. De esta manera,

un

cand dirección de ser arrendados o utilizados por un período de tiempo. Después de este periodo, el cliente tiene

que renegociar el contrato de arrendamiento con el servidor para mantener el uso de la dirección.

Asignación automática El uso de este método, el servidor DHCP asigna automáticamente una dirección IP de forma permanente a un

dispositivo, seleccionándolo de un conjunto de direcciones disponibles. Por lo general se utiliza DHCP para asignar un

temporal atender a un cliente, pero un servidor DHCP puede permitir a un tiempo de concesión infinito.

46

Redes

Los dos últimos métodos se pueden considerar "automático" ya que en cada caso, el servidor DHCP asigna una dirección sin ninguna intervención adicional necesaria. La única diferencia entre ellos radica en la duración de la IP dirección está alquilada, en otras palabras si la dirección de un cliente varía con el tiempo. Ubuntu se distribuye con

tanto el servidor DHCP y el cliente. El servidor es dhcpd (Dynamic Host Configuration Protocol Daemon).

El cliente suministrado por Ubuntu es dhclient y se debe instalar en todos los equipos necesarios para ser

configura automáticamente. Ambos programas son fáciles de instalar y configurar, y será automáticamente comenzó en el arranque del sistema.

3,1. Instalación

En un terminal, introduzca el siguiente comando para instalar el dhcpd:

sudo apt-get install isc-dhcp-server

Usted probablemente tendrá que cambiar la configuración por defecto editando el fichero / etc / dhcp / dhcpd.conf

para adaptarse a sus necesidades y configuración en particular.

También es posible que tenga que editar el archivo / etc / default / isc-dhcp del servidor para especificar las interfaces

que dhcpd debería escuchar.

NOTA: Los mensajes de dhcpd se enviarán a syslog. Mira allí los mensajes de diagnóstico.

3,2. Configuración

El mensaje de error de la instalación puede resultar un poco confuso, pero se los siguientes pasos ayudarle a configurar el servicio:

Por lo general, lo que quiero hacer es asignar una dirección IP al azar. Esto puede hacerse con la configuración de la siguiente manera:

# Mínimo de muestra de / etc / dhcp / dhcpd.conf

default-lease-time 600; max-lease-time 7200;

subnet 192.168.1.0 netmask 255.255.255.0 { 192.168.1.150 192.168.1.200 variar; option routers es 192.168.1.254;

option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "mydomain.example";

}

Esto dará lugar a que el servidor DHCP dando a los clientes una dirección IP de la gama 192.168.1.150-192.168.1.200. La concesión de la dirección IP de 600 segundos si el cliente no pide un marco de tiempo específico. De lo contrario el máximo (permitido) contrato de arrendamiento será de 7200

segundos. El servidor se

También "aconsejan" que el cliente utilice 192.168.1.254 como el default-gateway 192.168.1.1 y 192.168.1.2 y como sus servidores DNS.

Después de cambiar el archivo de configuración que tenga que reiniciar el

dhcpd:

47

Redes

sudo / etc / init.d / isc-dhcp-server restart

3,3. Referencias

• El dhcp3-server de Ubuntu Wiki13 página tiene más información.

• Para obtener más / Etc / dhcp / dhcpd.conf las opciones de ver el página del

manual dhcpd.conf14. •ISC DHCP, servidor de15

13 https://help.ubuntu.com/community/dhcp3-server 14 http://manpages.ubuntu.com/manpages/precise/en/man5/dhcpd.conf.5.html 15 http://www.isc.org/software/dhcp

48

Redes

4. Tiempo de Sincronización con NTP

NTP es un protocolo TCP / IP para sincronizar la hora en la red. Básicamente, un cliente solicita el

la hora actual de un servidor, y lo utiliza para establecer su propio reloj.

Detrás de esta simple descripción, hay una gran cantidad de complejidad - no son los niveles de los servidores NTP, con

la nivel uno servidores NTP conectados a relojes atómicos, y de nivel dos y tres servidores repartir la carga realmente de tramitar las solicitudes a través de Internet. Además, el software de cliente es mucho más compleja de lo

que se podría pensar - tiene que factorizar retrasos en la comunicación, y ajustar el tiempo de una manera que no trastornado todos los demás procesos que se ejecutan en el servidor. Pero por suerte toda esa complejidad se esconde de

ti! Ubuntu usa ntpdate y ntpd.

4,1. ntpdate

Ubuntu viene con ntpdate como estándar, y va a ejecutar una vez en el momento del arranque para configurar el tiempo

de acuerdo con el servidor NTP de Ubuntu.

ntpdate-s ntp.ubuntu.com

4,2. ntpd

El demonio ntpd ntp calcula la desviación de su reloj del sistema y se ajusta de forma continua, por lo que hay grandes correcciones que podrían llevar a los registros inconsistentes, por ejemplo. El costo es un poco

procesamiento el poder y la memoria, pero para un servidor moderno, este es insignificante.

4,3. Instalación

Para instalar ntpd, desde un indicador de la terminal

escriba:

sudo apt-get install ntp

4,4. Configuración

Editar / Etc / ntp.conf para añadir / quitar líneas de servidores. Por defecto estos servidores están

configurados:

# Usar los servidores del Proyecto de Piscina NTP. Aprobado por el Consejo Técnico de

Ubuntu # El 02/08/2011 (LP: # 104525). Ver http://www.pool.ntp.org/join.html~~V de # Información más. servidor de 0.ubuntu.pool.ntp.org servidor de 1.ubuntu.pool.ntp.org

servidor de 2.ubuntu.pool.ntp.org servidor de 3.ubuntu.pool.ntp.org

Después de cambiar el archivo de configuración que tiene que volver a

cargar el ntpd:

49

Redes

sudo / etc / init.d / ntp recarga

4,5. Ver el estado

Utilice ntpq para ver para ver más

información:

# Sudo ntpq-p remoterefidst t cuando jitter sondeo reachdelayoffset ================================================== ============================ + Stratum2-2.NTP. 129.70.130.702 u564 37.768,461 110,334 -44,274 + Ntp2.m-online.n 212.18.1.1062 u564 37.754,629 -27.318 78.882 * 145.253.66.170. DCFa.1 u1064 37.783,607 -30.159 68.343

+ Stratum2-3.NTP. 129.70.130.70 + Europium.canoni 193.79.237.14

2 U 2 U

5 63

64 64

357 337

68.795 81.534

-68.168 104.612 -67.968 92.792

4,6. Referencias

• Consulte el Ubuntu Tiempo16 wiki de la página para más información.

•ntp.org, sede del proyecto de Protocolo de Tiempo de Red17

16 https://help.ubuntu.com/community/UbuntuTime 17 http://www.ntp.org/~~V

50

Capítulo 5. DM-Multipath

51

DM-Multipath

1. Dispositivo múltiple Mapper

Múltiple del mapeador de dispositivos (DM-Multipath) le permite configurar múltiples E / S de los caminos entre nodos de servidor y matrices de almacenamiento en un solo dispositivo. Estas rutas de E / S son conexiones físicas de

SAN que puede incluir cables separados, conmutadores y controladores. Múltiple de los agregados de las rutas de E / S,

creación de un nuevo dispositivo que consta de las trayectorias conjuntadas. En este capítulo se ofrece un resumen de

la características de la DM-Multipath que son nuevas para la versión inicial de Ubuntu Server 12.04. Siguiente que, este capítulo proporciona una descripción de alto nivel de la DM de múltiples rutas y sus componentes, así como

una visión general de DM-Multipath de

configuración.

1,1. Características nuevas y modificadas para el servidor de Ubuntu

12.04

Migrado de multipath-0.4.8-0.4.9 de trayectoria múltiple

1.1.1. La migración desde 0.4.8

Los inspectores de prioridad ya no se ejecuta como binarios independientes, sino como bibliotecas compartidas. El

valor de la clave nombre para esta función también ha cambiado ligeramente. Copie el atributo con el nombre prio_callout a Prío, también modificar el argumento el nombre del corrector de prioridad, una ruta del sistema ya no es necesario. Ejemplo conversión:

dispositivo de { proveedor "NEC" producto "DISK ARRAY"

prio_callout mpath_prio_alua / dev / n% Prío

} ALUA

Consulte la tabla Prioridad Comprobador de conversión [p. 52] Para una lista

completa

Cuadro 5.1. Prioridad de conversión Checker

v0.4.8

prio_callout mpath_prio_emc / dev / n%

prio_callout mpath_prio_alua / dev / n%

prio_callout mpath_prio_netapp / dev / n%

prio_callout mpath_prio_rdac / dev / n%

prio_callout mpath_prio_hp_sw / dev / n%

prio_callout b% mpath_prio_hds_modular

Prío EMC

Prío ALUA

Prío NetApp

Prío RDAC

Prío hp_sw

HDS prio

v0.4.9

Desde la configuración múltiple analizador de archivos esencialmente analiza todos los pares clave / valor que encuentra

y, a continuación hace uso de ellos, es seguro tanto para prio_callout y Prío a convivir y se recomienda que la Prío atributo se inserta antes de comenzar la migración. Después de lo cual puede eliminar la herencia prio_calliout atribuir sin interrumpir el servicio.

52

DM-Multipath

1,2. Información

general

DM-Multipath se puede utilizar para proporcionar:

•Redundancia DM-Multipath puede proporcionar conmutación por error en una configuración activo / pasivo. En un

clúster activo / configuración pasiva, sólo la mitad de las vías se utilizan en cualquier momento para I / O. Si cualquier elemento de

una ruta de acceso de E / S (El cable, interruptor o controlador) falla, dm-multipath interruptores a una ruta alternativa.

•Mejora del rendimiento Rendimiento DM-Multipath puede ser configurado en modo activo / activo el modo, en E / S se transmite a través de los caminos en un round-robin. En algunas configuraciones, DM-Multipath puede detectar la carga en las rutas de E / S y dinámica re-equilibrar la carga.

1,3. Descripción general de

almacenamiento de matriz

De forma predeterminada, DM-Multipath incluye soporte para los dispositivos de almacenamiento más comunes que

apoyan DM- Multitrayecto. Los dispositivos soportados se pueden encontrar en el archivo multipath.conf.defaults. Si el

almacenamiento array admite DM-Multipath y no está configurado por defecto en este archivo, usted puede necesitar agregar que el DM-Multipath archivo de configuración, multipath.conf. Para obtener información sobre el DM-Multipath archivo de configuración, consulte la sección, El DM-Multipath archivo de configuración. Algunos dispositivos de

almacenamiento requieren un manejo especial de los errores de E / S y el cambio de ruta. Estos requieren kernel separado del hardware

controlador módulos.

1,4. Dm-multipath componentes

Tabla "DM-Multipath Componentes " se describen los componentes del paquete de dm-multipath.

Cuadro 5.2. Dm-multipath Componentes

Componente

dm_multipath kernel módulo

múltiple de comandos

Descripción

Redireccionamiento de E / S y soportes conmutación por error para las

rutas y los grupos de rutas.

Listas y configura multipath dispositivos. Normalmente en marcha con / Etc / rc.sysinit, También puede ser iniciado por un programa udev cuando un dispositivo de bloque se añade o se puede ejecutar por el sistema de archivos initramfs.

Monitores caminos, como caminos y no volver, se puede iniciar grupo de ruta interruptores. Proporciona a los cambios interactivos a multipath dispositivos. Este

demonio debe ser reiniciado para que los cambios en el / Etc / multipath.conf presentar a surtir efecto.

multipathd demonio

kpartx comando Crea dispositivos mapeador de dispositivos para las particiones en un dispositivo, es necesaria para utilizar este comando para DOS basados en particiones con DM- Multitrayecto. El kpartx se proporciona en su propio paquete, pero el multipath- instrumentos paquete depende de él.

53

DM-Multipath

1,5. DM-Multipath configuración general

DM-Multipath incluye compilados en la configuración por defecto que son adecuados para múltiples rutas

comunes configuraciones. La creación de marcos alemanes-multipath es a menudo un procedimiento sencillo. El

procedimiento básico para configurar el sistema con DM-Multipath es el siguiente:

1. Instale el multipath-tools y multipath-tools-arranque paquetes

2. Crear un archivo de configuración de vacío, / Etc / multipath.conf, Que re-define el

siguiente 3. Si es necesario, modifique el multipath.conf archivo de configuración para modificar los valores por defecto y

guardar el archivo actualizado. 4. Inicie el daemon de trayectoria

múltiple 5. Actualización de disco de

memoria inicial Para obtener instrucciones detalladas de configuración para la configuración de multipath consulte la sección,

Configuración de dm-multipath.

54

DM-Multipath

2. Dispositivos de múltiples rutas Sin dm-multipath, cada ruta desde un nodo de servidor a un controlador de almacenamiento es tratada por el sistema

de como un dispositivo separado, incluso cuando la ruta de acceso de E / S conecta el nodo mismo servidor al

mismo almacenamiento controlador. DM-Multipath proporciona una forma de organizar las rutas de E / S lógica, mediante la creación de un

único multitrayecto dispositivo en la parte superior de los dispositivos subyacentes.

2,1. Los identificadores de dispositivos de

trayectoria múltiple

Cada dispositivo tiene un identificador múltiple Mundial (WWID), el cual se garantiza que todo el mundo única e inmutable. De forma predeterminada, el nombre de un dispositivo multipath se establece en su WWID.

Alternativamente, se puede establecer el user_friendly_names opción en el archivo de configuración múltiple, que causa DM- Múltiples rutas para utilizar un alias de nodo único de la forma mpathn como el nombre. Por ejemplo, un nodo con dos adaptadores de bus host conectados a un controlador de almacenamiento con dos puertos a través de un solo

interruptor no zonificadas FC ve cuatro dispositivos: / Dev / sda, / dev / sdb, / dev / sdc, y / Dev / sdd. DM-Multipath crea un único dispositivo con un WWID único que redirige I / O para esos cuatro dispositivos subyacentes de acuerdo con la trayectoria

múltiple

configuración. Cuando el user_friendly_names opción de configuración se establece en sí, el nombre del dispositivo multipath se establece mpathn. Cuando los nuevos dispositivos están bajo el control de la DM-Multipath, los nuevos dispositivos puede ser visto en dos lugares diferentes en el marco del / Dev directorio: / Dev / mapper / mpathn y / Dev / dm-n.

• Los dispositivos en / Dev / mapper se crean al inicio del proceso de arranque. El uso de estos dispositivos para

acceder al dispositivos de multirutas, por ejemplo al crear volúmenes lógicos.

• Todos los dispositivos de la forma / Dev / dm-n son sólo para uso interno y no debe ser utilizado.

Para obtener información sobre los valores predeterminados de configuración múltiple, incluyendo la

user_friendly_names opción de configuración, consulte la sección, "Por defecto del archivo de configuración". También puede

establecer el nombre de una múltiple dispositivo a un nombre de su elección mediante el alias opción en el multitrayectorias sección de la multipath archivo de configuración. Para obtener más información sobre la multitrayectorias sección de la

configuración multitrayecto archivos, consulte la sección, "Multitrayectorias atributos de configuración de dispositivos".

2,2. Consistentes nombres multirruta de dispositivo en un clúster

Cuando el user_friendly_names opción de configuración se establece en sí, el nombre del dispositivo multipath es único para un nodo, pero no se garantiza que sea la misma en todos los nodos utilizando el dispositivo de

multitrayecto. Del mismo modo, si se establece la alias opción para un dispositivo en el multitrayectorias sección de la multipath.conf archivo de configuración, el nombre no es automáticamente compatible en todos los nodos del clúster. Esto debería no causará ningún problema si se utiliza LVM para crear dispositivos lógicos desde el dispositivo múltiple, pero si

que requieren que los nombres de los dispositivos de trayectoria múltiple sea consistente en todos los nodos que se

recomienda que dejar el user_friendly_names opción se ajusta a no y que no se configura alias para los dispositivos. Por defecto, si no se establece user_friendly_names para sí o configurar un alias para un dispositivo, un dispositivo

nombre será el WWID para el dispositivo, que es siempre la misma. Si desea que el definido por el sistema fáciles de usar nombres para ser consistente en todos los nodos del clúster, sin embargo, usted puede seguir este procedimiento:

55

DM-Multipath

1. Configure todos los dispositivos de trayectoria múltiple en una

máquina. 2. Desactivar todos los dispositivos de trayectoria múltiple en sus otras máquinas ejecutando los siguientes comandos:

# Service multipath-tools dejar de # Multipath-F

3. Copie el / Etc / múltiple / enlaces archivo de la primera máquina a todas las otras máquinas en la

clúster.

4. Vuelva a habilitar el demonio multipathd en todas las máquinas del clúster, ejecute el siguiente comando:

# Service multipath-tools inicio

Si se agrega un nuevo dispositivo, tendrá que repetir este proceso.

Del mismo modo, si configura un alias para un dispositivo que le gustaría ser coherente en todos los nodos en el clúster, debe asegurarse de que el / Etc / multipath.conf archivo es el mismo para cada nodo en el clúster siguiendo el mismo procedimiento:

1. Configure los alias para los dispositivos multipath en el en el multipath.conf presentar en una sola máquina.

2. Desactivar todos los dispositivos de trayectoria múltiple en sus otras máquinas ejecutando los siguientes comandos:

# Service multipath-tools dejar de # Multipath-F

3. Copie el multipath.conf archivo de la primera máquina que todas las otras máquinas del cluster.

4. Vuelva a habilitar el demonio multipathd en todas las máquinas del clúster, ejecute el siguiente comando:

# Service multipath-tools inicio

Cuando se agrega un nuevo dispositivo tendrá que repetir este proceso.

2,3. Atributos de dispositivos de

trayectoria múltiple

Además de la user_friendly_names y alias opciones, un dispositivo multipath tiene numerosas los atributos. Puede modificar estos atributos de un dispositivo multipath específica mediante la creación de una

entrada para dicho dispositivo en el multitrayectorias sección de la multipath archivo de configuración. Para obtener más

información sobre la multitrayectorias la sección del archivo de configuración múltiple, consulte la sección "Configuración Archivo de

múltiples Atributos ".

2,4. Dispositivos multipath en volúmenes lógicos

Después de la creación de dispositivos de trayectoria múltiple, puede utilizar los nombres de los dispositivos de

trayectoria múltiple del mismo modo que usar un nombre de dispositivo físico al crear un volumen físico LVM. Por ejemplo, si / dev / mapper / mpatha es el nombre de un dispositivo multipath, el siguiente comando marcará / dev / mapper / mpatha como física volumen.

# Pvcreate / dev / mapper / mpatha

56

DM-Multipath

Usted puede utilizar el dispositivo resultante físico LVM al crear un grupo de volumen LVM así como tú se utiliza cualquier otro dispositivo físico LVM.

Si se intenta crear un volumen físico LVM en un dispositivo conjunto en el que tenga

particiones que haya configurado, el comando pvcreate fallará.

Cuando se crea un volumen lógico LVM que utilice activos / pasivos matrices múltiple como la subyacente dispositivos físicos, debe incluir filtros en el lvm.conf para excluir a los discos que subyacen a la dispositivos de trayectoria múltiple. Esto es porque si la matriz cambia automáticamente la ruta activa a la pasiva camino cuando reciba E / S, múltiple se conmutación por error y conmutación por recuperación cada vez que LVM

escanea el camino pasiva si estos dispositivos no se filtran. Para matrices de activos / pasivos que requieren un comando para hacer que el pasivo ruta activa, LVM imprime un mensaje de advertencia cuando esto ocurre. Para filtrar todos los dispositivos SCSI en el

LVM archivo de configuración (lvm.conf), incluyen el siguiente filtro en la sección de dispositivos del archivo.

filter = ["r / block /", "r / disk /", "r / sd. * /", "a /. * /"]

Después de actualizar / Etc / lvm.conf, Es necesario actualizar el initrd por lo que este fichero se copiará allí, donde el filtro que más importa, durante el arranque. Lleve a cabo:

update-initramfs-u-k all

Cada vez que sea / Etc / lvm.conf o / Etc / multipath.conf se actualiza, el initrd debe ser reconstruida para reflejar estos cambios. Esto es imprescindible cuando las listas negras y filtros son

necesarios para mantener una configuración de almacenamiento estable.

57

DM-Multipath

3. Configuración de DM-Multipath general

Esta sección proporciona instrucciones paso a paso los procedimientos de ejemplo para la configuración de DM-

Multipath. Se incluye el siguientes procedimientos: • Basic DM-Multipath configuración

• Ignorar los discos locales

• La adición de más dispositivos para el archivo de

configuración

3,1. Configuración de DM-Multipath

Antes de la creación de DM-Multipath en su sistema, asegúrese de que su sistema ha sido actualizado y incluye el multipath-tools paquete. Si el arranque desde SAN se desea, entonces el multipath-tools-arranque paquete también es necesario.

Un básico / Etc / multipath.conf no necesitan ni siquiera existe, cuando multpath se ejecuta sin un acompañante

extrae de su base de datos interna para encontrar una configuración adecuada, también saca de su lista negra interna. Si después de ejecutar multipath-ll sin un archivo de configuración, no son

multitrayectorias descubierto. Hay que proceder a incrementar el nivel de detalle para descubrir por qué un múltiple no se ha creado. Considere la posibilidad de hacer referencia a la documentación del proveedor de la SAN, los archivos de ejemplo de

configuración múltiple se encuentra en / usr / share / doc / multipath-tools y ejemplos,

/ Etc / multipath.conf,

y la base de datos multipathd en vivo:

# Echo 'show config' | multipathd-k> multipath.conf-en vivo

Para evitar una peculiaridad en multipathd, cuando un / Etc / multipath.conf no existe, el comando anterior devolverá nada, ya que es el resultado de una unir entre el / Etc / multipath.conf y la base de datos en la memoria. Para remediar esta situación, ya sea definir un vacío / Etc /

multipath.conf,

por defecto { user_friendly_names no

}

mediante el uso el tacto, o crear una que redefine un valor por defecto como:

y reinicie multipathd:

# Service multipath-tools reiniciar

Ahora, el "config show" comando devolverá la base de datos en vivo.

3,2. Instalación con el soporte de múltiples

Para habilitar apoyo multitrayecto durante la instalación1 utilizan

instalar disk-detect/multipath/enable = true

en el indicador de instalador. Si los dispositivos de trayectoria múltiple se encuentran éstos se muestran como / Dev / mapper / mpath <X> durante la instalación.

1 http://wiki.debian.org/DebianInstaller/MultipathSupport

58

DM-Multipath

3,3. Haciendo caso omiso de los discos locales de la hora de generar

dispositivos multipath

Algunas máquinas tienen locales para sus tarjetas SCSI discos internos. DM-Multipath no se recomienda

para estos dispositivos. El procedimiento siguiente muestra cómo modificar el archivo de configuración de múltiples a caso omiso de los discos locales en la configuración múltiple.

1. Determine qué discos son los discos internos y marcarlos como los de la lista negra. En este ejemplo, / Dev / sda es el disco interno. Obsérvese que, como originalmente configurado en la multitrayectoria

predeterminada archivo de configuración, la ejecución de la multipath-v2 muestra el disco local, / Dev / sda, en la trayectoria

múltiple mapa. Para más información sobre el multipath la salida del comando, consulte la sección "Multipath Salida del comando ".

# Multipath-v2 crear: SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1 undef WINSYS, SF2372 size = 33 características GB = "0" hwhandler = "0" wp = undef `- + - = Política de 'round-robin 0' prio = 1 estado = undef | - 0:0:0:0 sda 08:00 [---------

el dispositivo de mapeo ioctl cmd 9 no: Argumento no válido

el dispositivo de mapeo ioctl cmd 14 falló: No existe el dispositivo o la

dirección crear: 3600a0b80001327d80000006d43621677 WINSYS undef, SF2372 size = 12G características = '0 'hwhandler = '0' wp = undef

`- + - = Política de 'round-robin 0' prio = 1 estado =

undef | - 2:0:0:0 sdb 8:16 undef listos funcionamiento

`- 3:0:0:0 sdf 8:80 undef listos funcionamiento

crear: 3600a0b80001327510000009a436215ec undef WINSYS, SF2372

size = 12G características = '0 'hwhandler = '0' wp = undef `- + - = Política de 'round-robin 0' prio = 1 estado =

undef | - 2:0:0:1 sdc 8:32 undef listos

`- 3:0:0:1 sdg 8:96 undef listos funcionamiento

funcionamiento

crear: 3600a0b80001327d800000070436216b3 undef WINSYS, SF2372 size = 12G características = '0 'hwhandler = '0' wp = undef

`- + - = Política de 'round-robin 0' prio = 1 estado =

undef | - 2:0:0:2 sdd 8:48 undef listos funcionamiento

funcionamiento `- 3:0:0:2 sdg 8:112 undef listos

crear: 3600a0b80001327510000009b4362163e undef WINSYS, SF2372

size = 12G características = '0 'hwhandler = '0' wp =

undef `- + - = Política de 'round-robin 0' prio = 1 estado =

undef | - 2:0:0:3 sdd 8:64 undef listo funcionando `- 3:0:0:3 sdg 8:128 undef listos funcionamiento

2. Con el fin de evitar que el mapeador de dispositivos de mapeo / Dev / sda en sus mapas de trayectoria

múltiple, modifique el sección de la lista negra / Etc / multipath.conf archivo para incluir este dispositivo. Aunque se puede

la lista negra del sda dispositivo mediante un devnode tipo, que no sería procedimiento seguro desde / Dev / sda es no garantiza que sea el mismo en el reinicio. Para la lista negra de dispositivos individuales, puede utilizar la lista

negra el WWID de ese dispositivo. Nótese que en la salida a la multipath-v2 comando, el WWID del

59

DM-Multipath

la / Dev / sda dispositivo es SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1. Para la lista negra este dispositivo, incluyen lo siguiente en el / Etc / multipath.conf archivo.

{lista negra wwid SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1

}

3. Después de haber actualizado la / Etc / multipath.conf archivo, manualmente debe informar a la multipathd

demonio para volver a cargar el archivo. Las recargas de comandos siguientes de la actualización / Etc /

multipath.conf archivo. # Servicio múltiple-herramientas de

recarga 4. Ejecute el siguiente comando para quitar el dispositivo múltiple:

# Multipath-f-SIBM ESXSST336732LC____F3ET0EP0Q000072428BX1

5. Para comprobar si la eliminación del dispositivo funcionó, puede ejecutar el multipath-ll comando para mostrar la configuración actual multitrayecto. Para obtener más información sobre la multipath-ll comandos, consulte la

sección "Las consultas con multitrayecto comando multipath". Para comprobar que el dispositivo de la lista negra no se

agregó hacia atrás, puede ejecutar el comando multipath, como en el ejemplo siguiente. El comando multipath por defecto a un nivel de detalle de la v2 si no se especifica un -V opción.

# Multipath

crear: 3600a0b80001327d80000006d43621677 WINSYS undef, SF2372

size = 12G características = '0 'hwhandler = '0' wp = undef `- + - = Política de 'round-robin 0' prio = 1 estado =

undef | - 2:0:0:0 sdb 8:16 undef listos funcionamiento

funcionamiento `- 3:0:0:0 sdf 8:80 undef listos

crear: 3600a0b80001327510000009a436215ec undef WINSYS, SF2372 size = 12G características = '0 'hwhandler = '0' wp = undef

`- + - = Política de 'round-robin 0' prio = 1 estado =

undef | - 2:0:0:1 sdc 8:32 undef listo funcionando `- 3:0:0:1 sdg 8:96 undef listos funcionamiento

crear: 3600a0b80001327d800000070436216b3 undef WINSYS, SF2372

size = 12G características = '0 'hwhandler = '0' wp = undef `- + - = Política de 'round-robin 0' prio = 1 estado =

undef | - 2:0:0:2 sdd 8:48 undef listos funcionamiento

funcionamiento `- 3:0:0:2 sdg 8:112 undef listos

crear: 3600a0b80001327510000009b4362163e undef WINSYS, SF2372 size = 12G características = '0 'hwhandler = '0' wp = undef

`- + - = Política de 'round-robin 0' prio = 1 estado =

undef | - 2:0:0:3 sdd 8:64 undef listos funcionamiento

funcionamiento `- 3:0:0:3 sdg 8:128 undef listos

60

DM-Multipath

3,4. Configuración de los dispositivos de

almacenamiento

De forma predeterminada, DM-Multipath incluye soporte para los dispositivos de almacenamiento más comunes

que apoyan DM- Multitrayecto. Los valores de configuración predeterminados, incluyendo los dispositivos compatibles, se pueden

encontrar en el multipath.conf.defaults archivo.

Si es necesario agregar un dispositivo de almacenamiento que no se admite de forma predeterminada como un

dispositivo multipath conocida, editar la / Etc / multipath.conf presentar e introducir la información del dispositivo apropiado.

Por ejemplo, para añadir información sobre la HP Open-de la serie V de la entrada se ve como este, donde N% es el nombre del dispositivo:

dispositivos { dispositivo de { proveedor de "HP" producto "OPEN-V".

getuid_callout "/ lib / udev / scsi_id - lista blanca - device = / dev /% n" }

}

Para obtener más información en la sección de dispositivos del archivo de configuración, consulte la sección Archivo de configuración Dispositivos [p. 70].

61

DM-Multipath

4. El DM-Multipath archivo de configuración

De forma predeterminada, DM-Multipath proporciona valores de configuración para los usos más comunes de

múltiples rutas. Además, la DM-Multipath incluye soporte para los dispositivos de almacenamiento más comunes que apoyan Dm-multipath. Los valores de configuración predeterminados y los dispositivos soportados se pueden encontrar

en el multipath.conf.defaults archivo.

Puede anular los valores de configuración predeterminados para DM-Multipath mediante la edición del / Etc / multipath.conf archivo de configuración. Si es necesario, también puede agregar una matriz de almacenamiento que

no es compatible Por defecto el fichero de configuración. En este capítulo se ofrece información sobre analizar y modificar el multipath.conf archivo. Contiene secciones sobre los siguientes temas:

•Introducción a la Configuración del archivo [p.

62] •Configuración del archivo de lista negra [p. 63] •Valores predeterminados del archivo de configuración [p. 65] •Archivo de configuración de múltiples atributos [p. 69]

•Dispositivos del archivo de configuración [p.

70]

En el archivo de configuración múltiple, es necesario especificar sólo las secciones que usted necesita para su configuración, o que desea cambiar a los valores predeterminados especificados en el multipath.conf.defaults archivo. Si hay secciones del archivo que no son relevantes para su

medio ambiente o para los que no es necesario reemplazar los valores predeterminados, puede dejarlos comentada, ya que están en el archivo inicial.

El archivo de configuración permite la sintaxis regular de descripción de la

expresión.

Una versión anotada del archivo de configuración se puede encontrar en / Usr / share / doc / múltiple de herramientas y ejemplos o multipath.conf.annotated.gz.

4,1. Introducción a la Configuración del

archivo

El archivo de configuración múltiple se divide en las siguientes secciones:

lista negra Listado de los dispositivos específicos que no se tendrán en cuenta para la trayectoria

múltiple.

blacklist_exceptions

Listado de candidatos de trayectoria múltiple que de otro modo en la lista negra de acuerdo con los parámetros de la sección de lista negra.

por defecto Ajustes generales por defecto para DM-Multipath.

multipath Configuración de las características de los dispositivos multipath individuales. Estos valores sobrescribir lo que es especificado en el por defecto y dispositivos secciones del archivo de configuración.

62

DM-Multipath

dispositivos Los ajustes de los controladores de almacenamiento individuales. Estos valores sobreescribir lo que se especifica en

el por defecto sección del archivo de configuración. Si está utilizando una matriz de almacenamiento que no es

compatible con por defecto, usted puede necesitar para crear una subsección de dispositivos para la

matriz.

Cuando el sistema determina los atributos de un dispositivo multipath, primero comprueba la configuración múltiple, a continuación, la configuración de dispositivos, y luego por los valores predeterminados del sistema múltiple.

4,2. Configuración del archivo de lista

negra

La sección de lista negra del archivo de configuración multitrayecto especifica los dispositivos que no se utilizarán cuando el sistema configura los dispositivos de trayectoria múltiple. Los dispositivos que están en listas negras no se

agrupan en una multitrayecto dispositivo.

• Si usted necesita a la lista negra de dispositivos, puede hacerlo de acuerdo con los siguientes criterios:

• Por WWID, tal como se describe Las listas negras WWID [p. 63]

• Para el nombre del dispositivo, como se describe en Lista negra por nombre de dispositivo [p. 63] • Por tipo de dispositivo, como se describe en Listas negras por tipo de dispositivo

[p. 64]

De forma predeterminada, una variedad de tipos de dispositivos en la lista negra, incluso después de comentar la lista

negra inicial sección del archivo de configuración. Para más información, consulte Lista negra por nombre de dispositivo [p. 63]

4.2.1. Las listas negras WWID

Puede especificar los dispositivos individuales a la lista negra por su World-Wide La identificación con un wwid entrada en el lista negra sección del archivo de configuración.

El siguiente ejemplo muestra las líneas en el archivo de configuración que podría poner a un dispositivo con una WWID de 26353900f02796769.

{lista negra wwid 26353900f02796769

}

4.2.2. Lista negra por nombre del dispositivo

Puede lista negra de los tipos de dispositivos por el nombre del dispositivo para que no se agrupan en un múltiple dispositivo mediante la especificación de un devnode entrada en el lista negra sección del archivo de

configuración.

El siguiente ejemplo muestra las líneas en el archivo de configuración de la lista negra que todos los dispositivos SCSI, ya sus listas negras de todos los dispositivos SD *.

{lista negra devnode "^ sd [az]"

}

63

DM-Multipath

Puede utilizar un devnode entrada en el lista negra sección del archivo de configuración para especificar individuo dispositivos a la lista negra en lugar de todos los dispositivos de un tipo específico. Esto no es recomendable, sin

embargo, ya menos que se asignan estáticamente por las reglas de udev, no hay garantía de que un dispositivo específico tendrá

el mismo nombre en el reinicio. Por ejemplo, un nombre de dispositivo podría cambiar desde / Dev / sda a / Dev /

sdb en reiniciar el

sistema.

Por defecto, el siguiente devnode las entradas se recogen en la lista negra por defecto, los dispositivos que estos las entradas de la lista negra por lo general no apoyar a dm-multipath. Para permitir multirruta en cualquiera de estos

dispositivos, usted tendría que especificar en la blacklist_exceptions sección del archivo de configuración, como se describe en Excepciones lista negra [p. 64]

{lista negra devnode "^ (ram | raw | loop | fd | md | dm-| sr | scd | st) [0-

9] *" devnode "^ hd [a-z]" }

4.2.3. Listas negras por tipo de dispositivo

Puede especificar los tipos de dispositivos específicos en la lista negra sección del archivo de configuración con un

dispositivo sección. Las listas negras de todo el siguiente ejemplo DS4200 de IBM y los dispositivos de HP.

{lista negra

dispositivo de { vendedor

} dispositivo de {

proveedor de "HP" producto "*"

} }

"IBM" # DS4200 de productos 10 producto "3S42"

4.2.4. Lista negra excepciones

Usted puede utilizar el blacklist_exceptions sección del archivo de configuración para permitir multirruta sobre dispositivos que han sido incluidos en listas negras por defecto.

Por ejemplo, si usted tiene un gran número de dispositivos y quieren múltiple sólo uno de ellos (con la

WWID de 3600d0230000000000e13955cc3757803), en lugar de las listas negras de forma individual cada uno de los los dispositivos excepto el que usted desea, en su lugar podría lista negra de todos ellos, y permitir que sólo entonces el que desee mediante la adición de las siguientes líneas a la / Etc / multipath.conf archivo.

{lista negra wwid "*"

}

64

DM-Multipath

blacklist_exceptions { WWID "3600d0230000000000e13955cc3757803"

}

Al especificar los dispositivos en el blacklist_exceptions sección del archivo de configuración, debe especificar las excepciones de la misma manera que se especifica en el la lista negra. Por ejemplo, un WWID

excepción no se aplicará a los dispositivos especificados por una devnode lista negra de entrada, incluso si la lista

negra dispositivo está asociado con el WWID. Del mismo modo, las excepciones sólo se aplican a devnode devnode

entradas, y las excepciones de dispositivos sólo se aplican a las entradas de dispositivos.

4,3. Valores predeterminados del archivo

de configuración

La / Etc / multipath.conf archivo de configuración incluye una por defecto sección que

establece el user_friendly_names parámetro para sí, como sigue.

por defecto { user_friendly_names sí

}

Esto sobrescribe el valor predeterminado de la user_friendly_names parámetro.

El archivo de configuración incluye una plantilla de valores de configuración predeterminados. En esta sección se

comenta, como sigue.

Número de valores

por defecto { # #

# #

#

udev_dir polling_interval

selector path_grouping_policy

getuid_callout

directio

/ Dev 5

"Round-robin 0" conmutación por error

"/ Lib / dev / scsi_id - lista blanca - device = / dev /% n"

# Prioconst # Path_checker

# Rr_min_io # Rr_weight

# Conmutación por

recuperación

1000 uniforme

manual fallar # No_path_retry

# User_friendly_names no #}

Para sobrescribir el valor por defecto para cualquiera de los parámetros de configuración, usted puede copiar el

correspondiente la línea de esta plantilla en el por defecto sección y se quite. Por ejemplo, para sobrescribir el path_grouping_policy parámetro de modo que sea multicanal en lugar del valor por defecto de conmutación por error, copiar la línea correspondiente de la plantilla a la inicial por defecto sección del archivo de configuración, y descomentarla, como sigue.

por defecto { user_friendly_names sí

65

DM-Multipath

path_grouping_policy }

multicanal

Mesa Multitrayecto valores predeterminados de configuración [p. 66] describe los atributos que se

establecen en el por defecto sección de la multipath.conf archivo de configuración. Estos valores son utilizados por DM-Multipath a menos que sean sustituidos por los atributos especificados en el dispositivos y multitrayectorias secciones del

multipath.conf archivo.

Cuadro 5.3. Multitrayecto valores predeterminados de configuración

Atributo

polling_interval

Descripción

Especifica el intervalo entre dos controles de ruta en cuestión de segundos. Para la

correcta funcionamiento de las rutas, el intervalo entre los controles se incrementará

gradualmente a (4 * polling_interval). El valor predeterminado es 5. El directorio donde los nodos de dispositivo son creados udev. El valor predeterminado

es / prog.

El directorio donde los objetos dinámicos compartidos se almacenan. El valor por

defecto valor es dependiente del sistema, comúnmente / Lib / multitrayecto.

El nivel de detalle predeterminado. Los valores más altos aumentan el nivel de detalle.

Válido niveles son entre 0 y 6. El valor predeterminado es 2.

Especifica el algoritmo por defecto para usar en la determinación de cuál es el camino a

utilizar para la siguiente operación I / O. Los valores posibles son: •round-robin 0: Recorrer todos los caminos en el grupo de rutas, el envío de la

misma cantidad de I / O para cada uno.

•la cola de longitud 0: Enviar el siguiente grupo de E / S por el camino con la menor número de E / S pendientes las solicitudes.

•servicio en tiempo 0: Enviar el siguiente grupo de E / S por el camino con la menor tiempo estimado de servicio, que se determina dividiendo el tamaño total de la E / S pendiente de cada ruta por su rendimiento relativo.

El valor predeterminado es round-robin 0.

path_grouping_policy Especifica la ruta predeterminada de la política de grupo para aplicar a la no

especificada multitrayectorias. Los valores posibles son: •conmutación por error = 1 camino por grupo

prioritario •multicanal = Todas las rutas de acceso válidas en el grupo

de prioridad 1 •group_by_serial = 1 la prioridad del grupo por número de serie detectado

•group_by_prio = 1 la prioridad del grupo por valor de ruta de prioridad

•group_by_node_name = 1 grupo de prioridad por cada nombre de nodo de

destino.

El valor predeterminado es

conmutación por error.

udev_dir

multipath_dir

verbosidad

path_selector

66

DM-Multipath

Atributo

getuid_callout

Descripción

Especifica el programa por defecto y los argumentos para llamar a cabo para obtener una

única camino de identificador. Una ruta absoluta se requiere.

El valor predeterminado es / Lib / udev / scsi_id - lista blanca - device = / dev /% n.

Prío Especifica la función predeterminada de llamar para obtener un valor de prioridad de

paso. Para ejemplo, los bits ALUA en SPC-3 proporcionan un valor prio explotable. Los valores posibles son:

•const: Establecer una prioridad de 1 a todos los

caminos. •EMC: Generar la prioridad camino para arrays EMC.

•ALUA: Generar la prioridad trayectoria basada en la configuración de SCSI-3 ALUA.

•NetApp: Generar la prioridad de ruta para las matrices de NetApp.

•RDAC: Generar la prioridad de ruta para LSI / Engenio RDAC controlador.

•hp_sw: Generar la prioridad camino para Compaq / HP controlador activo / el modo de espera.

•HDS: Generar el camino para que la prioridad de almacenamiento de Hitachi

HDS modular matrices.

El valor predeterminado es const.

prio_args La cadena de argumentos que se pasan a la función prio mayoría de las funciones

prio no necesitan argumentos. El Priorizador DataCore necesita. Ejemplo, "Tiempo de espera = 1000 = preferredsds foo". El valor predeterminado es

(null) "". Las características adicionales de los dispositivos de trayectoria múltiple. La única

característica existente es queue_if_no_path, que es el mismo que establecer no_path_retry a cola. Para obtener información sobre cuestiones que puedan surgir al utilizar esta

función, véase la sección, "Problemas con la función de

queue_if_no_path".

características

path_checker Especifica el método utilizado para determinar el estado de los caminos. Los valores posibles son:

•readsector0: Leer el primer sector del dispositivo.

•TUR: Emitir una unidad de prueba LISTO para el dispositivo.

•emc_clariion: Consultar las EMC CLARiiON específicos 0xC0 página EVPD de determinar la ruta.

•hp_sw: Compruebe el estado de ruta para los arreglos de almacenamiento HP con

Active / Standby firmware. •RDAC: Compruebe la ruta de estadísticas para LSI / Engenio controlador de

almacenamiento RDAC. •directio: Lea el primer sector con E / S directa

El valor predeterminado es directio.

67

DM-Multipath

Atributo

conmutación por recuperación

Descripción

Gestiona la conmutación por

recuperación ruta del grupo. • Un valor de inmediato especifica la conmutación por recuperación inmediata de

la más alta grupo de prioridad ruta que contiene las rutas activas.

• Un valor de manual especifica que no debe ser inmediata conmutación por recuperación, pero la conmutación por recuperación que puede

suceder solamente con la intervención del operador. • Un valor numérico mayor que cero indica la conmutación por recuperación

diferida, expresado en segundos.

El valor predeterminado es manual.

rr_min_io Especifica el número de peticiones de E / S a la ruta de un camino antes de pasar a el siguiente camino en el grupo de trayectoria de corriente.

El valor predeterminado es 1000.

rr_weight Si se establece en prioridades, a continuación, en lugar de enviar rr_min_io solicitudes

a un camino antes de llamar path_selector elegir el camino siguiente, el número de peticiones de enviar está determinada por rr_min_io tiempos prioritarios del trazado,

como determinado por la función de Prío. Si se establece en uniforme, todos los pesos de ruta

son iguales.

El valor predeterminado es uniforme.

no_path_retry Un valor numérico de este atributo especifica el número de veces que el el sistema debe intentar utilizar un camino no antes de deshabilitar la cola. A valor de fallo indica inmediato fracaso, sin hacer la fila. Un valor de

cola indica que la cola no debe parar hasta que la ruta es fija.

El valor predeterminado es 0.

user_friendly_names Si se establece en sí, especifica que el sistema debe utilizar el / Etc / múltiple / enlaces presentar para asignar un persistente y única alias al múltiple, en

la forma de mpathn. Si se establece a no, especifica que el sistema debe utilizar el WWID como el alias para el múltiple. En cualquier caso, lo que se especifica

aquí será anulado por los alias específicos del dispositivo que se especifiquen en el

multitrayectorias sección del archivo de configuración.

El valor predeterminado es

ninguna. queue_without_daemon Si se establece a no, el multipathd daemon desactivar la cola de todos los dispositivos cuando se cierra.

El valor predeterminado es Sí.

flush_on_last_del Si se establece en sí, entonces multipath se desactivará cuando la cola de la última ruta a

un dispositivo ha sido eliminada.

68

DM-Multipath

Atributo Descripción

El valor predeterminado es

ninguna. max_fds Establece el número máximo de descriptores de archivos abiertos que pueden ser

abiertos por multipath y el multipathd demonio. Esto es equivalente a la ulimit - n de comandos. Un valor de max se ponga esto en el límite del sistema de / Proc /

sys / fs / NR_OPEN. Si esto no se ha establecido, el número máximo de fichero

abierto descriptores se toma del proceso de llamada, sino que generalmente es 1024. Para ser segura, esto se debe establecer en el número máximo de caminos más 32, si que número es mayor que 1024.

checker_timer El tiempo de espera que se utilizará para las damas de ruta que emitir comandos SCSI

con una tiempo de espera explícito, en cuestión de segundos.

El valor predeterminado se toma de / Sys / block / sdx / dispositivo / tiempo de

espera, Que es 30 segundo a partir de 12.04 LTS

fast_io_fail_tmo El número de segundos de la capa SCSI esperar después de un problema ha sido detectado en un puerto FC a distancia antes de fallar de E / S a los dispositivos de control

remoto que el puerto. Este valor debe ser menor que el valor de dev_loss_tmo. Ajuste esto, se desactivará el tiempo de espera.

El valor predeterminado es determinada por el sistema

operativo. dev_loss_tmo El número de segundos de la capa SCSI esperar después de un problema tiene

sido detectado en un puerto remoto FC antes de sacarla del sistema.

Al establecer esta hasta el infinito lo configuran a 2147483647 segundos, o 68 años. El valor predeterminado es determinada por el sistema operativo.

4,4. Atributos de los archivos de configuración

multirruta Mesa Los atributos de múltiples rutas [p. 69] se muestran los atributos que se pueden establecer en el

multitrayectorias sección de los multipath.conf archivo de configuración para cada dispositivo multipath específico. Estos atributos se aplican sólo a la multitrayectoria un especificado. Estos valores son utilizados por DM-Multipath y los atributos de anulación establecido en el por defecto y dispositivos secciones del archivo de multipath.conf.

Cuadro 5.4. Los atributos de múltiples rutas Atributo

wwid

Descripción

Especifica el WWID del multipath producto al que se multipath atributos se aplican. Este parámetro es obligatorio para esta sección de la

multipath.conf archivo.

alias Especifica el nombre simbólico para el multipath producto al que se multipath atributos se aplican. Si está utilizando user_friendly_names, no establecer este valor en mpathn, lo que puede entrar en conflicto con una asigna

automáticamente nombre de usuario amigable y le dará incorrectos los nombres de nodo del dispositivo.

69

DM-Multipath

Además, los siguientes parámetros puede ser anulado en este multipath sección

•path_grouping_policy

•path_selector

•conmutación por

recuperación •Prío

•prio_args

•no_path_retry

•rr_min_io

•rr_weight

•flush_on_last_del

El siguiente ejemplo muestra los atributos de trayectoria múltiple se especifican en el fichero de configuración

específica para dos dispositivos de trayectoria múltiple. El primer dispositivo tiene un WWID de 3600508b4000156d70001200000b0000 y

un nombre simbólico de amarillo.

El dispositivo de multitrayectoria en el segundo ejemplo tiene un WWID de 1DEC_____321816758474 y un nombre simbólico de rojo. En este ejemplo, el rr_weight atributos se ajusta a las prioridades.

multitrayectorias { {multipath

wwid

alias path_grouping_policy

path_selector conmutación por

recuperación rr_weight no_path_retry

}

{multipath wwid

alias rr_weight

} }

1DEC_____321816758474 rojo prioridades

3600508b4000156d70001200000b0000

amarillo multicanal

"Round-robin 0" manual

prioridades 5

4,5. Dispositivos de archivos de

configuración

Mesa Los atributos de dispositivos [p. 71] se muestran los atributos que se pueden establecer para cada uno de

almacenamiento individual dispositivo en la sección de dispositivos del archivo de configuración multipath.conf. Estos atributos son utilizados por DM-Multipath a menos que sean sustituidos por los atributos especificados en el multitrayectorias sección de la multipath.conf archivo de rutas que contienen el dispositivo. Estos atributos anular los atributos establecidos en la la por defecto sección de la multipath.conf archivo.

Muchos dispositivos que soportan múltiples rutas se incluyen por defecto en una configuración múltiple. La los valores de los dispositivos que son compatibles por defecto se muestran en la multipath.conf.defaults archivo.

70

DM-Multipath

Usted probablemente no tendrá que modificar los valores de estos dispositivos, pero si lo haces, puede sobrescribir los valores por defecto, incluyendo una entrada en el fichero de configuración para el dispositivo que sobrescribe los valores. Puede copiar los valores predeterminados de configuración del dispositivo de la

multipath.conf.annotated.gz o si

usted desea tener un archivo de configuración breve, multipath.conf.synthetic presentar para el dispositivo y

anular la valores que se desea cambiar.

Para añadir un dispositivo a esta sección del archivo de configuración que no se configura automáticamente de forma

predeterminada, debe establecer el vendedor y producto parámetros. Usted puede encontrar estos valores observando / Sys / block / nombre_dispositivo / dispositivo / proveedor y / Sys / block / nombre_dispositivo / dispositivo / modelo donde

nombre_dispositivo es el dispositivo que se multirruta, como en el ejemplo siguiente:

# Cat / sys / block / sda / dispositivo /

proveedor WINSYS # Cat / sys / block / sda / dispositivo /

modelo SF2372

Los parámetros adicionales para especificar dependerá de su dispositivo específico. Si el dispositivo está activo /

activo, que por lo general no necesita configurar parámetros adicionales. Es posible que desee configurar

path_grouping_policy a multicanal. Otros parámetros que usted puede necesitar para configurar son no_path_retry y rr_min_io, como se

describe en Mesa Los atributos de múltiples rutas [p. 69]. Si el dispositivo está activo / pasivo, sino que cambia automáticamente las rutas de E / S a la ruta de pasivo,

es necesario cambiar la función de corrector a uno que no envía E / S a la ruta para probar si es

de trabajo (de lo contrario, el dispositivo se mantendrá la conmutación por error). Esto casi siempre significa que se

establece la path_checker a tur; esto funciona para todos los dispositivos SCSI que admiten el comando Test Unit Ready, que la mayoría lo hace.

Si el dispositivo necesita una orden especial para cambiar las rutas, a continuación, configurar este dispositivo para

múltiples rutas requiere un controlador de hardware de módulo del kernel. El controlador de hardware disponible actual es de EMC.

Si este es no es suficiente para su dispositivo, puede que no sea capaz de configurar el dispositivo para el multipath.

Cuadro 5.5. Los atributos de dispositivos

Atributo

vendedor

Descripción

Especifica el nombre del fabricante del dispositivo de almacenamiento a la que el

dispositivo atributos se aplican, por ejemplo COMPAQ.

Especifica el nombre de producto del dispositivo de almacenamiento para que el

dispositivo atributos se aplican, por ejemplo HSV110 (C) COMPAQ.

Especifica el identificador de revisión de producto del dispositivo de

almacenamiento. Especifica una expresión regular utilizada para los dispositivos de la lista negra

por el producto. Especifica un módulo que se utilizará para llevar a cabo acciones específicas de hardware cuando se cambia de grupos de rutas o el manejo de errores de E / S. Los valores posibles incluyen:

71

producto

revisión

product_blacklist

hardware_handler

DM-Multipath

Atributo Descripción

•1 EMC: hardware de controlador para dispositivos de

almacenamiento de EMC •1 ALUA: hardware de controlador para arreglos ALUA SCSI-3.

•1 hp_sw: hardware de controlador para Compaq / HP controladores.

•1 RDAC: hardware de controlador para los controladores de LSI / Engenio

RDAC.

Además, los siguientes parámetros puede ser anulado en este dispositivo sección

•path_grouping_policy

•getuid_callout

•path_selector

•path_checker

•características

•conmutación por

recuperación •Prío

•prio_args

•no_path_retry

•rr_min_io

•rr_weight

•fast_io_fail_tmo

•dev_loss_tmo

•flush_on_last_del

Cada vez que un hardware_handler se especifica, es su responsabilidad asegurarse de que el

módulo del núcleo correspondiente se carga en apoyo de la interfaz especificada. Estos módulos pueden se encuentran en / Lib / modules / `uname-r` / kernel / drivers / scsi / device_handler / . La módulo requisite deben integrarse en el initrd para asegurar el descubrimiento necesario y conmutación por error, la conmutación por recuperación de capacidad está disponible en el momento del

arranque. Ejemplo,

# Cat scsi_dh_alua >> / etc / initramfs-tools y módulos # Update-initramfs-u-k all

# # Agregar el módulo a presentar

El siguiente ejemplo muestra una entrada de dispositivo en el archivo de configuración

multitrayecto.

Número de

dispositivos { # Dispositivo { # #

# #

# #} #}

vendedor producto

"COMPAQ " " "MSA1000

multicanal path_grouping_policy path_checker tur

rr_weight prioridades

72

DM-Multipath

El espaciamiento reservado en el proveedor, producto, y revisión los campos son importantes como la trayectoria

múltiple es realizando una coincidencia directa contra estos atributos, cuyo formato está definido por la especificación SCSI, específicamente el INVESTIGACIÓN estándar2 comandos. Cuando las comillas se usan, el proveedor, producto, y

campos de revisión será interpretada estrictamente de acuerdo con la especificación. Las expresiones regulares se pueden

integrar en las cadenas entre comillas. Si un campo se define sin el espacio necesario, múltiple se

copiar la cadena en el búfer de tamaño adecuado y una almohadilla con el número apropiado de espacios. La especificación espera todo el campo a ser poblada por caracteres imprimibles o espacios, como se ve en la ejemplo anterior

• Proveedor: 8 caracteres

• Producto: 16 caracteres

• Revisión: 4 caracteres

Para crear un archivo de configuración más robusta, las expresiones regulares también se pueden utilizar. Los operadores

incluyen ^ $ []. *? +. Ejemplos de expresiones regulares funcionales se pueden encontrar mediante el examen de la trayectoria

múltiple en vivo base de datos y multipath.conf archivos de ejemplo se encuentra en / Usr / share / doc / multipath-tools / examples: # Echo 'show config' | multipathd-k

2 http://en.wikipedia.org/wiki/SCSI_Inquiry_Command

73

DM-Multipath

5. DM-Multipath Administración y solución de problemas

5,1. Cambiar el tamaño de un dispositivo de múltiples

rutas en línea

Si necesita cambiar el tamaño de un dispositivo multipath online, utiliza el siguiente

procedimiento

1.

2.

Cambiar el tamaño de su dispositivo físico. Esto es específico de

almacenamiento de la plataforma. Utilice el siguiente comando para encontrar las rutas de acceso al LUN:

# Multipath-l

3. El tamaño de tus caminos. Para los dispositivos SCSI, escribir 1 a la volver a examinar archivo para el

dispositivo hace que el SCSI conductor que vuelva a examinar, como en el siguiente comando:

# Echo 1> / sys / block / nombre_dispositivo / dispositivo

/ volver a examinar 4. Cambiar el tamaño de su dispositivo multipath, ejecute el comando de cambio de tamaño

multipathd: # Multipathd-k 'redimensionar el mapa mpatha'

5. Cambiar el tamaño del sistema de archivos (suponiendo que no LVM o particiones de

DOS se utilizan): # Resize2fs / dev / mapper / mpatha

5,2. Moving Systems raíz de archivos desde un dispositivo único camino para una

trayectoria múltiple Dispositivo

Esto es dramáticamente simplificada por el uso de UUID para identificar los dispositivos como una etiqueta intrínseca.

Simplemente instalar multipath-tools-arranque y reiniciar el sistema. Esto volverá a generar el disco RAM inicial y darse el lujo de

la trayectoria múltiple oportunidad de construir su ruta antes de que el sistema de archivos raíz se monta por UUID.

Cuando multipath.conf se actualiza, así que si el initrd mediante la ejecución de update-initramfs

-U-k all. La razón de ser es multipath.conf se copia en el disco de memoria y es parte integral de determinación de los dispositivos disponibles para agrupar a través de su lista negra y las secciones del

dispositivo.

5,3. Moving Systems de intercambio de archivos desde un dispositivo único camino a una

trayectoria múltiple Dispositivo

El procedimiento es exactamente el mismo que el ilustrado en la sección anterior llamado Mover archivos raíz Sistemas de un solo camino para un dispositivo de múltiples rutas.

5,4. El demonio de múltiples

Si usted encuentra que tiene problemas para implementar una configuración multipath, debe asegurarse de la trayectoria

múltiple demonio se está ejecutando como se describe en "Configuración de DM-Multipath". La multipathd el demonio debe

ser en ejecución para el uso de dispositivos multipathd. Véase también la sección Solución de problemas con la multipathd interactivo de la consola relativa interactúan con multipathd como una ayuda de depuración.

74

DM-Multipath

5,5. Problemas con queue_if_no_path

Si características "queue_if_no_path 1" se especifica en el / Etc / multipath.conf archivo, entonces

cualquier proceso que usa E / S se bloqueará hasta que una o más vías de acceso se restauran. Para evitar esto, establezca el

no_path_retry N parámetro en el / Etc / multipath.conf.

Cuando se establece la no_path_retry parámetro, elimine el características "queue_if_no_path 1" opción desde / Etc / multipath.conf presentar también. Sin embargo, si usted está usando un dispositivo para la

multirruta que el características "queue_if_no_path 1" opción se configura como un compilado en su defecto, como lo es

para muchos Dispositivos SAN, debe agregar características de "0" para invalidar este valor predeterminado. Usted puede hacer

esto mediante la copia del existente dispositivos sección, y sólo esa sección (no el archivo completo), de / Usr/share/doc/multipath- herramientas / examples / multipath.conf.annotated.gz en / Etc / multipath.conf y la edición para

adaptarse a su necesidades. Si necesita utilizar el características "queue_if_no_path 1" opción y experimenta el problema señalado aquí, utiliza el dmsetup comando para editar la política en tiempo de ejecución de un LUN en particular (es decir, para

el que todos los caminos no están disponibles). Por ejemplo, si desea cambiar la política en el dispositivo multipath mpathc de "Queue_if_no_path" a "Fail_if_no_path", Ejecute el comando siguiente.

# Dmsetup mensaje mpathc 0 "fail_if_no_path"

Se debe especificar la mpathN alias en lugar de la ruta

5,6. Múltiples rutas de salida del comando

Al crear, modificar o incluir un dispositivo multipath, se obtiene una impresión de la configuración del dispositivo

actual. El formato es como sigue. Para cada dispositivo multipath:

action_if_any: alias (wwid_if_different_from_alias) dm_device_name_if_known proveedor, producto size = tamaño de las características = 'características' hwhandler = 'hardware_handler' wp =

write_permission_if_known

Para cada grupo de rutas:

- + - Política = 'scheduling_policy' PRIO = prio_if_known estado = path_group_status_if_known

Para cada ruta:

`- Host: Canal: Identificación: lun importante devnode: menor path_status

dm_status_if_known online_status

Por ejemplo, la salida de un comando multipath podría aparecer como sigue:

3600d0230000000000e13955cc3757800 DM-1, la WINSYS SF2372

size = 269g características = '0 'hwhandler = '0' wp

= rw | - + - = Prío política de 'round-robin 0' = 1 = estado

activo | `- 6:0:0:0 sdb 8:16 funcionamiento lista activa `- + - = Política de Prío 'round-robin 0' = 1 = habilitado el

estado

75

DM-Multipath

`- 7:0:0:0 sdf 8:80 activa listos funcionamiento

Si la ruta está en marcha y listo para I / O, el estado de la ruta de acceso es listo o fantasma. Si la ruta es hacia

abajo, el estado es defectuoso o inestable. El estado de la ruta se actualiza periódicamente por el multipathd basado en

demonio el intervalo de sondeo se define en el / Etc / multipath.conf archivo.

El estado dm es similar al estado de la ruta, pero desde el punto de vista del núcleo. El estado cuenta con dm dos estados: no, que es análoga a defectuoso, y activo que cubre todos los estados otro camino.

En ocasiones, el estado de ruta y el estado de MS de un dispositivo que no se suspenderá

temporalmente de acuerdo.

Los valores posibles para online_status son funcionamiento y fuera de línea. Un estado de fuera de línea significa que el Dispositivo SCSI ha sido desactivado.

Cuando un dispositivo multipath está siendo creado o modificado, el estado del grupo de rutas, el dispositivo

dm nombre, los permisos de escritura, y el estado de MS no se conocen. Además, las características no son siempre correcta

5,7. Las consultas con multitrayecto comando multipath

Usted puede utilizar el -L y -Ll opciones del multipath comando para mostrar el múltiple actual configuración. La -L múltiple opción, se muestra la topología de recogida de información en sysfs y la mapeador de dispositivos. La -Ll opción, se muestra la información del -L pantallas, además de todos los disponibles

otros componentes del sistema.

Cuando se muestra la configuración múltiple, hay tres niveles de detalle que puede especificar con la -V opción del comando multitrayecto. Especificación -V0 produce ninguna salida. Especificación -V1 salidas

los nombres creados o actualizados de trayectoria múltiple, que sólo se puede alimentar a otras herramientas tales

como kpartx. Especificación -V2 caminos imprime toda detectados, trayectorias múltiples, y los mapas del dispositivo.

El valor por defecto verbosidad nivel de multipath es 2y puede ser modificada globalmente por la

definición del nivel de detalle del atributo en el por defecto sección de multipath.conf.

El siguiente ejemplo muestra la salida de un multipath-l comando.

# Multipath-l

3600d0230000000000e13955cc3757800 DM-1, la WINSYS SF2372 size = 269g características = '0 'hwhandler = '0' wp = rw

| - + - = Prío política de 'round-robin 0' = 1 = estado

activo | `- 6:0:0:0 sdb 8:16

`- 7:0:0:0 sdf 8:80

activa listos

activa listos

funcionamiento

funcionamiento `- + - = Política de Prío 'round-robin 0' = 1 = habilitado el

estado

El siguiente ejemplo muestra la salida de un multipath-ll comando.

# Multipath-ll 3600d0230000000000e13955cc3757801 DM-10, los WINSYS SF2372

size = 269g características = '0 'hwhandler = '0' wp

= rw | - + - = Prío política de 'round-robin 0' = 1 = habilitado

el estado | `- 19:0:0:1 sdc 8:32 activa listos funcionamiento

76

DM-Multipath

`- + - = Política de Prío 'round-robin 0' = 1 = habilitado el

estado `- 18:0:0:1 SDH 8:112 funcionamiento lista activa 3600d0230000000000e13955cc3757803 DM-2, los WINSYS SF2372

size = 125G características = '0 'hwhandler = '0' wp

= rw `- + - = Política de Prío 'round-robin 0' = 1 = estado

activo | - 19:0:0:3 sde 8:64 listos funcionamiento activo `- 18:0:0:3 SDJ 8:144 funcionamiento lista activa

5,8. Opciones del comando de trayectoria

múltiple

Mesa Útiles Opciones de comando múltiple [p. 77] describe algunas de las opciones de la multipath mando que le puede resultar útil.

Cuadro 5.6. Opciones de comandos útiles múltiple

Opción

-L

Descripción

Mostrar la configuración actual de recogida de trayectoria múltiple sysfs y el mapeador de dispositivos.

Mostrar la configuración actual de recogida de trayectoria múltiple sysfs, la mapeador de dispositivos, y todos los otros componentes disponibles en el sistema.

Retire el dispositivo multipath nombre.

Retire todos los dispositivos de trayectoria

múltiple no utilizados.

-Ll

-F dispositivo

-F

5,9. La determinación de los comentarios del mapeador de dispositivos con el

Comando dmsetup

Usted puede utilizar el dmsetup comando para saber que las entradas del mapeador de dispositivos que coincida con el

multirruta dispositivos.

El siguiente comando muestra todos los dispositivos de mapeo de dispositivos y sus números mayores y menores. Los números menores de determinar el nombre del dispositivo dm. Por ejemplo, un número menor de 3

corresponde al dispositivo multirruta / Dev/dm-3.

# Ls dmsetup mpathd (253, 4)

mpathep1 mpathfp1 mpathb

mpathgp1 mpathhp1

mpatha mpathh mpathg

(253, 12) (253, 11)

(253, 14) (253, 13)

(253, 3)

(253, 2) (253, 9) (253, 8)

(253, 1)

(253, 0)

VolGroup00-LogVol01 mpathf (253, 7)

VolGroup00-LogVol00 mpathe (253, 6)

77

DM-Multipath

mpathbp1 mpathd

(253, 10) (253, 5)

5,10. Solución de problemas con la consola interactiva multipathd

La multipathd-k comando es una interfaz interactiva de la multipathd demonio. Al entrar en este comando abre una consola interactiva múltiple. Después de entrar en este comando, usted puede ayudar a entrar en

para obtener una lista de comandos disponibles, se puede introducir un comando interactivo, o usted puede entrar

CTRL-D dejar de fumar.

La consola interactiva multipathd se puede utilizar para solucionar los problemas que pueda tener con su sistema. Por ejemplo, la siguiente secuencia de comandos muestra la configuración de la trayectoria múltiple, incluyendo los valores por defecto, antes de salir de la consola. Véase el artículo de IBM "Trucos con multipathd"3

para más ejemplos.

# Multipathd-k Show config >>

>> CTRL-D

La siguiente secuencia de comandos se asegura de que por trayectoria múltiple se ha recuperado ningún

cambio en el multipath.conf,

# Multipathd-k Reconfigurar >>

>> CTRL-D

Utilice la siguiente secuencia de comandos para asegurarse de que el corrector ruta funciona correctamente.

# Multipathd-k >> Muestran caminos >> CTRL-D

Los comandos también se puede transmitir a stdin multipathd utilizando de este

modo: # Echo 'show config' | multipathd-k

3 http://www-01.ibm.com/support/docview.wss?uid=isg3T1011985

78

Capítulo 6. Administración remota

Hay muchas maneras de administrar remotamente un servidor Linux. Este capítulo cubre dos de los más populares aplicaciones OpenSSH y marionetas.

79

Administración remota

1. OpenSSH servidor

1,1. Introducción

Esta sección de la Guía de Ubuntu Server introduce una potente colección de herramientas para el control remoto

el control y la transferencia de datos entre los ordenadores conectados en red llamada OpenSSH. Usted también

aprenderá sobre algunas de las posibles opciones de configuración con la aplicación de servidor OpenSSH y cómo cambios en su sistema Ubuntu.

OpenSSH es una versión libre de la familia del protocolo Secure Shell (SSH) de herramientas de forma remota el control de, o transferir archivos entre las computadoras. Las herramientas tradicionales utilizadas para alcanzar dichos

objetivos funciones, tales como telnet o el rcp, son inseguras y transmiten la contraseña del usuario en texto sin cifrar cuando se

utiliza. OpenSSH proporciona un demonio y herramientas de cliente para facilitar el control seguro y encriptado a distancia y operaciones de transferencia de archivos, reemplazando de manera efectiva las herramientas heredadas.

El componente de servidor OpenSSH, sshd, escucha continuamente las conexiones de cliente de cualquiera de los herramientas de cliente. Cuando una solicitud de conexión, sshd establece la conexión correcta en función de la tipo de herramienta de cliente que se conecta. Por ejemplo, si el equipo remoto se conecta con el cliente de ssh aplicación, el servidor OpenSSH establecerá una sesión de control remoto después de la autenticación. Si un usuario

remoto se conecta a un servidor OpenSSH con scp, el demonio del servidor OpenSSH iniciará una copia segura de archivos

entre el servidor y el cliente tras la autenticación. OpenSSH puede usar muchos métodos de autenticación, incluyendo contraseñas planas, claves públicas y tickets de Kerberos.

1,2. Instalación

La instalación de las aplicaciones de cliente y servidor OpenSSH es simple. Para instalar el cliente OpenSSH aplicaciones en su sistema Ubuntu, use este comando en una terminal:

sudo apt-get install openssh-client

Para instalar el servidor OpenSSH, y los archivos de soporte relacionados, use este comando en una terminal

del sistema:

sudo apt-get install openssh-server

El paquete openssh-server también puede ser seleccionado para instalar durante la instalación de Server Edition proceso.

1,3. Configuración

Usted puede configurar el comportamiento predeterminado del servidor OpenSSH, sshd, editando el archivo / Etc / ssh / sshd_config. Para obtener información sobre las directivas de configuración usadas en este archivo, es

posible ver la página de manual correspondiente con el siguiente comando, emitida en una terminal:

el hombre sshd_config

80

Administración remota

Existen muchas directivas en el archivo de configuración de sshd que controlan cosas como la comunicación ajustes y modos de autenticación. Los siguientes son ejemplos de directivas de configuración que pueden ser cambiar editando el / Etc / ssh / sshd_config archivo.

Antes de editar el fichero de configuración, debe hacer una copia del archivo original y protegerlo contra escritura por lo que tendrá la configuración original como referencia y reutilizar cuando sea necesario.

Copie el / Etc / ssh / sshd_config presentar y proteger contra escritura con los siguientes comandos, emitidos en un terminal:

sudo cp / etc / ssh / sshd_config / etc / ssh / sshd_config.original sudo chmod a-w / etc / ssh / sshd_config.original

Los siguientes son ejemplos de directivas de configuración que puede cambiar:

• Para configurar su OpenSSH escuche por el puerto TCP 2222 en lugar del puerto TCP por defecto 22, cambiar el Puerto de la Directiva como tal:

Puerto 2222

• Para que sshd permita basados en clave pública credenciales de inicio de sesión, sólo tiene que añadir o

modificar la línea:

PubkeyAuthentication sí

Si la línea está ya presente, y luego asegurarse de que no está comentada.

• Para hacer que el servidor OpenSSH muestre el contenido de la / Etc / issue.net archivo como un pre-inicio

de sesión bandera, sólo tiene que añadir o modificar la línea:

Banner / etc / issue.net

En el / Etc / ssh / sshd_config archivo.

Después de realizar cambios en el / Etc / ssh / sshd_config archivo, guardar el archivo y reiniciar el servidor

sshd la aplicación para efectuar los cambios con el siguiente comando en una terminal:

sudo / etc / init.d / ssh restart

Muchas otras directivas de configuración de sshd están disponibles para cambiar la aplicación de servidor comportamiento de acuerdo a sus necesidades. Tenga en cuenta, sin embargo, si su único método de acceso a

un servidor es ssh, y comete un error en la configuración de sshd a través de la / Etc / ssh / sshd_config archivo,

puede encontrar lo que están bloqueados del servidor al reiniciarlo. Además, si una incorrecta directiva de configuración se suministra, el servidor sshd puede negarse a comenzar, así que ten mucho

cuidado al editar este archivo en un servidor remoto.

1,4. SSH Keys

SSH claves permitir la autenticación entre dos hosts sin la necesidad de una contraseña. Claves SSH de autenticación utiliza dos claves, una privado clave y un público clave.

81

Administración remota

Para generar las claves, desde una terminal escriba:

ssh-keygen-t dsa

Esto generará las claves utilizando el Algoritmo de firma digital (DSA) método. Durante el proceso

se le solicitará una contraseña. Simplemente pulse Entrar cuando se le pida para crear la clave.

Por defecto, el público clave se guarda en el archivo ~ / .ssh / Id_dsa.pub, Mientras que ~ / .ssh / Id_dsa es el

privado clave. Ahora copia el id_dsa.pub presentar a la máquina remota y añadirlo a ~ / .ssh / Authorized_keys por entrada:

ssh-copy-id nombre de usuario @ máquina_remota

Por último, vuelva a comprobar los permisos en el authorized_keys archivo, sólo el usuario autenticado debe tener leer y escribir. Si los permisos no son correctos cambiarlas por:

chmod 600 .ssh / authorized_keys

Ahora debería ser capaz de SSH a la máquina sin que se le pida una contraseña.

1,5. Referencias

•Wiki de Ubuntu SSH1 página.

•OpenSSH Web2

•Advanced OpenSSH página wiki3

1 https://help.ubuntu.com/community/SSH 2 http://www.openssh.org/~~V 3 https://wiki.ubuntu.com/AdvancedOpenSSH

82

Administración remota

2. Títere

Títeres es un marco de plataforma cruzada permite a los administradores de sistemas realizar tareas comunes con

código. El código se puede hacer una variedad de tareas de instalación de nuevo software, a la comprobación de los

permisos de archivos, o la actualización de las cuentas de usuario. Títeres es grande no sólo durante la instalación inicial de un sistema, sino

también durante todo el ciclo del sistema de toda la vida. En la mayoría de circunstancias títere se utilizará en un cliente /

servidor configuración.

En esta sección se describe la instalación y configuración de Títeres en una configuración cliente / servidor. Este

sencillo ejemplo demostrará cómo instalar Apache usando marionetas.

2,1. Instalación

Para instalar Títeres, en un terminal en el servidor escriba:

sudo apt-get install titiritero

En el cliente máquina o máquinas, escriba:

sudo apt-get install títeres

2,2. Configuración

Antes de la configuración de títeres es posible que desee agregar un DNS CNAME récord de

puppet.example.com, donde example.com es su dominio. Por defecto los clientes DNS para ver títeres como puppet.example.com el nombre del servidor de títeres, o Puppet Master. Ver Capítulo 8, el Servicio de Nombres de Dominio (DNS) [p. 139] para más detalles DNS.

Si no desea utilizar DNS, puede agregar entradas al servidor y el cliente / Etc / hosts archivo. Para ejemplo, en el servidor de Títeres / Etc / hosts presentar agregar:

127.0.0.1 localhost localhost títeres 192.168.1.17 meercat02.example.com meercat02

En cada cliente de Títeres, agregue una entrada para el servidor:

192.168.1.16 meercat.example.com meercat títeres

Vuelva a colocar las direcciones IP y nombres de dominio ejemplo anterior con el servidor real y

direcciones de los clientes y los nombres de

dominio.

Ahora configurar algunos recursos para apache2. Cree un archivo / Etc / puppet / manifiestos / site.pp que

contiene el siguiente:

package {

83

Administración remota

'Apache2': garantizar => instalado

}

servicio de {

'Apache2': garantizar => true,

enable => true, requieren => paquete ['apache2']

}

A continuación, cree un archivo de nodos / Etc / puppet / manifiestos /

nodes.pp con:

nodo meercat02.example.com '{ incluyen apache2

}

Reemplazar meercat02.example.com con el nombre de host del cliente real de Títeres.

El paso final para este servidor Puppet simple es reiniciar el demonio:

sudo / etc / init.d / titiritero reinicio

Ahora todo está configurado en el servidor de Títeres, es el momento de configurar el cliente.

En primer lugar, configurar el demonio Puppetagent para empezar. Editar / Etc / default / títeres, Cambiando

INICIO para sí:

START = yes

A continuación, iniciar el

servicio:

sudo / etc / init.d / puppet inicio

De vuelta en el servidor Puppet firmar el certificado de cliente mediante la

introducción de:

sudo puppetca - meercat02.example.com signo

Comprobar / Var / log / syslog por cualquier error con la configuración. Si todo va bien el paquete apache2

Y sus dependencias se instalará en el cliente de marionetas.

Este ejemplo es muy simple, y no pone de manifiesto muchas de las funciones de títeres y los beneficios. Para obtener más información, consulte Sección 2.3, "Recursos" [p. 84].

2,3. Recursos

• Consulte el Documentación de Títeres Oficial4 sitio web.

4 http://docs.puppetlabs.com/

84

Administración remota

• Ver también Títeres Pro5.

• Otra fuente de información adicional es la Wiki de Ubuntu Página de Títeres6.

5 http://www.apress.com/9781430230571 6 https://help.ubuntu.com/community/Puppet

85

Administración remota

3. Zentyal

Zentyal es un servidor Linux de la pequeña empresa, que puede ser configurado como puerta de enlace,

Infraestructura Administrador, Gerente unificada de amenazas, servidor de Office, el servidor de comunicaciones unificadas o una

combinación de de ellos. Todos los servicios de red gestionados por Zentyal están estrechamente integrados, la automatización de la

mayoría de las tareas. Este ayuda a evitar errores en la configuración de red y la administración y permite ahorrar tiempo. Zentyal es de código abierto, distribuido bajo licencia GNU General Public License (GPL) y se ejecuta en la parte superior de

Ubuntu GNU / Linux.

Zentyal se compone de una serie de paquetes (generalmente una para cada módulo) que proporcionan una interfaz web

para configurar los servidores o servicios diferentes. La configuración se almacena en una base de datos clave-valor Redis pero los usuarios, grupos y dominios relacionados con la configuración es en OpenLDAP. Al configurar cualquiera de los parámetros disponibles a través de la interfaz web, los archivos de configuración finales son sobrescritos con el plantillas de configuración proporcionada por los módulos. Las principales ventajas de la utilización de Zentyal son:

unificado, interfaz gráfica de usuario para configurar todos los servicios de red y de alta, fuera de la caja de la integración entre el ellos.

3,1. Instalación

Zentyal 2.3 está disponible en el repositorio de Ubuntu Universe 12,04. Los módulos disponibles son:

• Zentyal-core y Zentyal común: el núcleo de la interfaz de Zentyal y las bibliotecas comunes de la

marco. También se incluyen los registros y módulos de eventos que dan al administrador una interfaz para ver los registros y generar eventos de ellos.

• Zentyal de la red: administra la configuración de la red. Desde las interfaces (con soporte estático IP, DHCP, VLAN, puentes o PPPoE), a varias puertas de enlace, cuando tengan más de uno en Internet

sentido, de balanceo de carga y enrutamiento avanzado, rutas estáticas o dinámicas de DNS.

• Los objetos de Zentyal Zentyal y servicios de: proporcionar un nivel abstration de direcciones de red (por ejemplo,

LAN en lugar de 192.168.1.0/24) y los puertos nombrados como los servicios (por ejemplo, HTTP en lugar de

80/TCP). • Zentyal-firewall: configura las reglas de iptables para bloquear las conexiones Forbiden, NAT y el puerto redirecciones.

• Zentyal-ntp: instala el demonio NTP para mantener el servidor en el tiempo y permitir que los clientes de la

red para sincronizar sus relojes con el servidor.

• Zentyal-dhcp: configura ISC servidor DHCP apoyo rangos estáticos de la red, contratos de arrendamiento y otros opciones avanzadas como NTP, WINS, DNS y actualizaciones dinámicas de arranque en red con PXE.

• Zentyal-dns: trae ISC Bind9 servidor DNS en el servidor de almacenamiento en caché de las consultas locales, como

un promotor de la o como un servidor con autoridad para los dominios configurados. Permite configurar A, CNAME, MX, NS, TXT y SRV.

• Zentyal-ca: integra la gestión de una autoridad de certificación dentro de Zentyal para que los usuarios pueden utilizar

certificados para la autenticación en los servicios, al igual que con OpenVPN.

• Zentyal-openvpn: permite configurar varios servidores VPN y clientes utilizando OpenVPN con dinámica de configuración de enrutamiento utiliza Quagga.

86

Administración remota

• Los Zentyal de los usuarios: proporciona una interfaz para configurar y administrar usuarios y grupos en

OpenLDAP. Otros servicios de Zentyal se autentican contra LDAP con un usuario centralizadas y grupos gestión. También es posible sincronizar los usuarios, contraseñas y grupos de un Microsoft

Dominio de Active Directory.

• Zentyal-calamar: configura Squid y Dansguardian para acelerar la navegación, gracias a la caché capacidades y filtrado de contenido.

• Zentyal-samba: permite la configuración de Samba y la integración con LDAP existentes. De la misma la interfaz que puede definir las políticas de contraseñas, crear los recursos compartidos y asignar permisos.

• Las impresoras de Zentyal integra: CUPS con Samba y permite no sólo para configurar las impresoras, sino también

darles permisos sobre la base de usuarios y grupos LDAP.

Para instalar Zentyal, en un terminal en el servidor ENTRAR (donde <zentyal-module> es cualquiera de los módulos de la lista anterior):

sudo apt-get install <zentyal-module>

Zentyal publica una versión estable importante una vez al año (en septiembre), basado en la última

Ubuntu LTS liberación. Versiones estables siempre tienen números pares menores (por ejemplo, 2.2, 3.0)

y versiones beta tienen un número impar de menor importancia (por ejemplo, 2.1, 2.3). Ubuntu 12.04 viene

con Zentyal 2.3 paquetes. Si desea actualizar a una nueva versión estable publicada después de la liberación de Ubuntu 12.04 se puede utilizar Zentyal equipo PPA7. La actualización a nuevas versiones estables pueden proporcionarle correcciones de errores menores que no portado a 2,3 en las características precisas y más

reciente.

Si necesita más información sobre cómo agregar paquetes desde un PPA ver Añadir un personal Paquete Archive (PPA)8.

No está presente en los repositorios Universe de Ubuntu, pero en Zentyal equipo PPA9 se encuentran estas otros módulos:

• Zentyal-antivirus: antivirus ClamAV integra con otros módulos como el proxy, archivo compartir o MailFilter.

• Los Zentyal-asterisco: configura Asterisk para proporcionar un PBX basado en LDAP simple con

autenticación.

• Zentyal-bwmonitor: permite controlar el uso de ancho de banda de sus clientes de la LAN.

• Zentyal-captiveportal: integra un portal cautivo con el firewall y los usuarios de LDAP y grupos.

• Zentyal-eBackup: permite realizar copias de seguridad programadas de su servidor utilizando el

popular duplicidad de herramienta de

copia de seguridad. • Zentyal-ftp: permite configurar un servidor FTP con la autenticación basada en LDAP.

7 https://launchpad.net/ ~ Zentyal / 8 https://help.ubuntu.com/12.04/ubuntu-help/addremove-ppa.html 9 https://launchpad.net/ ~ Zentyal /

87

Administración remota

• Zentyal-IDS: integra un sistema de detección de intrusiones en la red.

• Zentyal-ipsec: permite configurar túneles IPSec utilizando Openswan.

• Zentyal-mac.com: integra el servidor ejabberd XMPP con los usuarios y grupos LDAP.

• Zentyal-thinclients: una solución basada en LTSP los clientes ligeros.

• Zentyal-mail: una pila de correo electrónico completa, incluyendo Postfix y Dovecot con el backend

LDAP. • Zentyal-MailFilter: configura amavisd con la pila de correo para filtrar el spam y los virus adjunto.

• Zentyal monitores: integra collectd para supervisar el rendimiento de servidores y servicios que se

ejecutan. • Zentyal-PPTP: permite configurar un servidor VPN PPTP.

• Zentyal de radio: se integra con FreeRADIUS usuarios y grupos LDAP.

• Zentyal de software: interfaz sencilla de manejar los módulos instalados y el sistema de Zentyal actualizaciones.

• Zentyal-trafficshaping: el tráfico de la limitación configura las reglas para hacer el límite de ancho de

banda y mejorar la latencia.

• Zentyal-UserCorner: permite al usuario editar sus propios atributos LDAP utilizando un navegador web.

• Zentyal-virt: interfaz sencilla para crear y gestionar máquinas virtuales basadas en libvirt.

• Zentyal-webmail: permite acceder a su correo usando el popular correo web Roundcube.

• Zentyal-servidor web: configura el servidor web Apache para alojar sitios diferentes en su equipo.

• Zentyal-Zarafa: integra Zarafa groupware suite con pila de correo de Zentyal y LDAP.

3,2. Primeros pasos

Cualquier cuenta del sistema perteneciente al grupo sudo está permitido para acceder a la interfaz web de Zentyal. Si

está utilizando el usuario creado durante la instalación, este debe estar en el grupo sudo por defecto.

Si necesita agregar otro usuario al grupo sudo, sólo hay que ejecutar:

sudo sudo adduser nombre de usuario

Para acceder a la interfaz web de Zentyal, navegar en https://localhost/ (o la IP de su servidor remoto). Como Zentyal crea su propio certificado auto-firmado SSL, usted tendrá que aceptar una excepción de seguridad en la

su navegador.

Una vez conectado, verá el cuadro de instrumentos con una visión general de su servidor. Para configurar cualquiera de

los características de los módulos instalados, vaya a las diferentes secciones en el menú de la izquierda. Al realizar

cualquier cambios, en la esquina superior derecha aparece un color rojo Guardar los cambios botón que debe pulsar para salvar

a todos los cambios de configuración. Para aplicar estos cambios de configuración en el servidor, el módulo debe ser permitió en primer lugar, usted puede hacerlo desde la Estado del módulo entrada en el menú de la izquierda. Cada

vez que se habilita un módulo, un pop-up aparecerá que pide la confirmación para llevar a cabo las acciones necesarias y los cambios en el servidor y los archivos de configuración. 88

Administración remota

Si necesita personalizar cualquier archivo de configuración o ejecutar ciertas acciones (scripts o comandos) para configurar las características no disponibles en el lugar de Zentyal las plantillas de configuración de

archivos personalizados en / etc / o recibos de Zentyal o <module> / y los ganchos en / etc / Zentyal / hooks / <module>. <acción>.

3,3. Referencias

Documentación Oficial de Zentyal 10 páginas.

Véase también Documentación de la Comunidad de Zentyal11

páginas.

Y no se olvide de visitar el foro 12 para la comunidad solicita apoyo, información, características, etc

10 http://doc.zentyal.org/~~V 11 http://trac.zentyal.org/wiki/Documentation 12 http://forum.zentyal.org/~~V

89

Capítulo 7. Autenticación de red

Esta sección se aplica LDAP para la autenticación de red y la autorización.

90

Autenticación de red

1. OpenLDAP Servidor

El Lightweight Directory Access Protocol o LDAP, es un protocolo para consultar y modificar X.500 un directorio basado en servicio que se ejecuta a través de TCP / IP. La versión actual es LDAP LDAPv3,

como define en RFC45101, y la implementación de LDAP utilizado en Ubuntu es OpenLDAP, actualmente en la versión 2.4.25 (onírico).

Así que este protocolo de acceso a directorios LDAP. Estos son algunos conceptos y términos clave:

• Un directorio LDAP es un árbol de datos entradas que es de naturaleza jerárquica y se llama el Directorio Árbol de la Información (DIT).

• Una entrada consiste en un conjunto de los atributos. • Un atributo tiene un tipo (Un nombre / descripción) y una o más valores.

• Cada atributo debe estar definido en al menos un objectClass.

• Los atributos y clases de objetos se definen en esquemas (Una clase de objeto es actualmente considerada

como una tipo especial de atributo). • Cada entrada tiene un identificador único: es Nombre completo (DN DN). Esto consiste en que es Relativo Nombre completo (RDN), seguido por el DN de la entrada de los padres.

• DN de la entrada no es un atributo. No se considera parte de la propia entrada.

Los términos objeto, contenedor, y nodo tiene ciertas connotaciones, pero en esencia todos significa lo mismo que de entrada, el término técnicamente correcto.

Por ejemplo, a continuación tenemos una sola entrada que consta de 11 atributos. Es la DN es "cn = John Pérez, dc = ejemplo, dc = com ", es RDN es" cn = John Doe ", y su padre es DN" dc = ejemplo, dc = com ".

dn: cn = John Doe, dc = ejemplo, dc = com

cn: Juan Pérez givenName: John

SN: Pérez telephoneNumber: +1 888 555 6789 telephoneNumber: +1 888 555 1232

mail: [email protected] manager: cn = Larry Smith, dc = ejemplo, dc = com

objectClass: inetOrgPerson objectClass: organizationalPerson

objectClass: persona objectClass: top

La entrada de arriba es en LDIF formato (LDAP Data Interchange Format). Cualquier información que usted alimenta

a en su DIT también debe ser de tal formato. Se define en RFC28492.

Aunque esta guía se describe cómo se utiliza para la autenticación central, LDAP sirve para nada que involucra a un gran número de solicitudes de acceso a una mayor parte de lectura, basada en atributos (nombre:

valor)

1 http://tools.ietf.org/html/rfc4510 2 http://tools.ietf.org/html/rfc2849

91

Autenticación de red

back-end. Los ejemplos incluyen una libreta de direcciones, una lista de direcciones de correo electrónico,

y un servidor de correo es configuración.

1,1. Instalación

Instale el demonio del servidor OpenLDAP y los servicios tradicionales de gestión de LDAP. Estos son

en los empaques de slapd y ldap-utils, respectivamente.

La instalación de slapd crear una configuración de trabajo. En particular, se creará una base de datos instancia que se puede utilizar para almacenar sus datos. Sin embargo, el sufijo (o base DN) de este ejemplo será determina a partir del nombre de dominio de la máquina local. Si quieres algo diferente, editar / Etc / hosts y reemplazar el nombre de dominio con uno que le dará el sufijo que desee. Por ejemplo, si quiero un sufijo de dc = ejemplo, dc = com a continuación, su imagen tendrá una línea similar a esta:

127.0.1.1 hostname.example.com nombre de host

Puede revertir el cambio después de la instalación del paquete.

En esta guía se utilizará un sufijo base de datos de dc = ejemplo, dc =

com.

Proceda con la instalación:

sudo apt-get install slapd ldap-utils

Desde Ubuntu 8.10 slapd está diseñado para ser configurado en slapd sí, dedicando una por separado

DIT para ese propósito. Esto permite que uno dinámicamente configurar slapd sin la necesidad de reiniciar el servicio. Esta base de datos de configuración se compone de una colección de archivos LDIF de texto ubicados en / etc / ldap / slapd.d. Esta forma de trabajar que se conoce por varios nombres: el método de configuración de

slapd-, el

Método de RTC (configuración en tiempo real), o el método de cn = config. Puede seguir utilizando el tradicional el método de archivo plano (slapd.conf), pero no es recomendable, y la función será finalmente eliminado.

Ubuntu utiliza ahora el slapd-config método de configuración de slapd y esta guía refleja que.

Durante la instalación se le pedirá que defina las credenciales administrativas. Se trata de LDAP

basados en las credenciales para el rootdn de la instancia de base de datos. De forma predeterminada, DN del

usuario es cn = admin, dc = ejemplo, dc = com. También por defecto, no hay ninguna cuenta administrativa creada para el slapd-config base de datos y por lo tanto, tendrá que autenticarse con el servidor LDAP externo con el fin de

acceder a ella. Vamos a ver cómo hacer esto más adelante.

Algunos esquemas clásicos (coseno, nis, inetorgperson) viene incorporado con slapd hoy en día. También hay incluye un "núcleo" del esquema, un pre-requisito para cualquier esquema de trabajo.

92

Autenticación de red

1,2. Post-instalación de Inspección

El proceso de instalación creado 2 DIT. Uno de slapd-config y otra para sus propios datos (Dc = ejemplo, dc = com). Vamos a echar un vistazo.

• Esto es lo que la base de datos slapd-config / DIT parece. Recordemos que esta base de datos LDIF y basado en vive bajo / Etc / ldap / slapd.d:

/ Etc / ldap / slapd.d /

# # # Cn = config

# # # # #

# #

# #

# #

# # # # # # # # #

cn = módulo {0}. ldif CN = Schema # # # Cn = {0} core.ldif # # # Cn = {1} cosine.ldif # # # Cn = {2} nis.ldif

# # # # Cn = {3} inetorgperson.ldif # # # Cn = schema.ldif

# # # OlcBackend = {0} hdb.ldif # # # OlcDatabase = {0} config.ldif

# # # OlcDatabase = {1} frontend.ldif # # # OlcDatabase = {1} hdb.ldif

# # # Cn = config.ldif

No modifique la base de datos slapd-config directamente. Haga los cambios a través del protocolo

LDAP (Servicios públicos).

• Esto es lo que las miradas DIT slapd-config como a través del protocolo LDAP:

ldapsearch-Q-LLL-Y EXTERNA sudo-H ldapi :/ / /-B DN cn = config

dn: cn = config

dn: cn = módulo {0}, cn = config

dn: cn = schema, cn = config

dn: cn = {0} núcleo, CN = Schema, cn =

config

dn: cn = {1} coseno, CN = Schema, cn = config

dn: cn = {2} nis, CN = Schema, cn = config

dn: cn = {3} inetorgperson, CN = Schema, cn = config

dn: olcBackend = {0} hdb, cn = config

dn: olcDatabase = {1} frontend, cn = config

93

Autenticación de red

dn: olcDatabase = {0} de configuración, cn =

config

dn: olcDatabase = {1} hdb, cn = config

Explicación de las entradas:

•cn = config: configuración global

•cn = módulo {0}, cn = config: un módulo de carga dinámica

•CN = Schema, cn = config: contiene codificada a nivel de sistema de esquema

•cn = {0} núcleo, CN = Schema, cn = config: la rígida central del esquema

•cn = {1} coseno, CN = Schema, cn = config: el esquema del coseno

•cn = {2} nis, CN = Schema, cn = config: el esquema de NIS

•cn = {3} inetorgperson, CN = Schema, cn = config: el esquema InetOrgPerson

•olcBackend = {0} hdb, cn = config: tipo de almacenamiento backend 'hdb'

•olcDatabase = {1} frontend, cn = config: base de datos de interfaz, por defecto la configuración de otras

bases de datos •olcDatabase = {0} de configuración, cn = config: slapd configuración de base de datos (cn

= config) •olcDatabase = {1} hdb, cn = config: su base de datos de instancia (dc = examle, dc = com)

• Esto es lo que dc = ejemplo, dc = com miradas DIT como:

ldapsearch-x-LLL-H ldap :/ / /-b dc = ejemplo, dc = com dn

dn: dc = ejemplo, dc = com

dn: cn = admin, dc = ejemplo, dc = com

Explicación de las entradas:

•dc = ejemplo, dc = com: base de la DIT

•cn = admin, dc = ejemplo, dc = com: administrador (rootdn) para este DIT (creado durante el paquete instalar)

1,3. Modificar / Llenar su base de datos

Vamos a introducir algún contenido a nuestra base de datos. Vamos a añadir lo

siguiente: • un nodo denominado Personas (Para almacenar

los usuarios) • un nodo denominado Grupos (Para almacenar

grupos) • un grupo llamado mineros

• un usuario llamado Juan

Crear el archivo LDIF siguiente y lo llaman add_content.ldif:

dn: ou = People, dc = ejemplo, dc = com

94

Autenticación de red

objectClass: organizationalUnit ou: personas

dn: ou = grupos, dc = ejemplo, dc = com objectClass: organizationalUnit ou: Grupos

dn: cn = mineros, ou = grupos, dc = ejemplo, dc =

com objectClass: posixGroup NC: mineros gidNumber: 5000

dn: uid = Juan, ou = People, dc = ejemplo, dc = com objectClass: inetOrgPerson

objectClass: posixAccount objectClass: shadowAccount uid: juan SN: Pérez givenName: John cn: Juan Pérez

displayName: Juan Pérez

uidNumber: 10000 gidNumber: 5000

userPassword: johnldap gecos: Juan Pérez

loginShell: / bin / bash directorio home: / home / juan

Es importante que los valores de uid y gid en su directorio de no chocar con los valores locales. Utilizar rangos altos de número, como a partir de 5000. Al establecer el uid y gid en valores de alta ldap, que también permiten un control más fácil de lo que se puede hacer con un usuario local frente a un ldap uno.

Más

en que más tarde.

Añadir el contenido:

ldapadd-x-D cn = admin, dc = ejemplo, dc = com-W-f add_content.ldif

Escriba la contraseña LDAP: ********

la adición de nueva entrada "ou = People, dc = ejemplo, dc

= com"

la adición de nueva entrada "ou = grupos, dc = ejemplo, dc

= com"

la adición de nueva entrada "cn = mineros, ou = grupos, dc = ejemplo,

dc = com"

la adición de nueva entrada "uid = Juan, ou = People, dc = ejemplo,

dc = com"

Podemos comprobar que la información se ha añadido correctamente con la utilidad ldapsearch:

ldapsearch-x-LLL-b dc = ejemplo, dc = com 'uid = john' cn gidNumber

95

Autenticación de red

dn: uid = Juan, ou = People, dc = ejemplo, dc = com

cn: Juan Pérez gidNumber: 5000

Explicación de los interruptores:

•-X: "Simple" vinculante; no usará el valor por defecto el método SASL

•-LLL: desactivar la impresión de información superflua

•uid = John: un "filtro" para encontrar el usuario juan

•cn gidNumber: solicitudes de ciertos atributos a visualizar (el valor por defecto es mostrar todos los atributos)

1,4. Modificación de la base de datos de configuración de

slapd

El DIT slapd-config también se puede consultar y modificar. Aquí hay algunos ejemplos.

• Use ldapmodify para añadir un "Índice" (DbIndex atributo) a su {1} hdb, cn = base de datos de

configuración (Dc = ejemplo, dc = com). Cree un archivo, lo llaman uid_index.ldif, Con el siguiente contenido:

dn: olcDatabase = {1} hdb, cn = config añadir: olcDbIndex

olcDbIndex: uid eq, pres, sub

A continuación, ejecute el comando:

sudo ldapmodify-Q-Y EXTERNA-H ldapi :/ / /-f uid_index.ldif

modificar la entrada "olcDatabase = {1} hdb, cn = config"

Puede confirmar el cambio de esta manera:

ldapsearch-Q-LLL-Y EXTERNA sudo-H ldapi :/ / / b \ cn = config "(olcDatabase = {1} hdb) 'olcDbIndex

dn: olcDatabase = {1} hdb, cn = config olcDbIndex: objectClass eq olcDbIndex: uid eq, pres, sub

• Vamos a añadir un esquema. En primer lugar, tendrá que ser convertido a formato LDIF. Usted puede encontrar

inconverso esquemas, además de los convertidos en el / Etc / ldap / schema directorio.

• No es trivial para quitar un esquema de la base de datos slapd-config. Practique la adición de esquemas en un sistema de prueba.

• Antes de realizar un esquema, se debe verificar qué esquemas ya están instalados (Que se muestra es un defecto, fuera de la caja de salida):

96

Autenticación de red

ldapsearch-Q-LLL-Y EXTERNA sudo-H ldapi :/ / / b \ cn = schema, cn = config dn

dn: cn = schema, cn = config

dn: cn = {0} núcleo, CN = Schema, cn =

config

dn: cn = {1} coseno, CN = Schema, cn = config

dn: cn = {2} nis, CN = Schema, cn = config

dn: cn = {3} inetorgperson, CN = Schema, cn = config

En el siguiente ejemplo vamos a añadir el esquema CORBA.

1. Crear el fichero de configuración de conversión schema_convert.conf con las siguientes líneas:

include / etc / ldap / schema / core.schema

include / etc / ldap / schema / collective.schema include / etc / ldap / schema / corba.schema

include / etc / ldap / schema / cosine.schema include / etc / ldap / schema / duaconf.schema

include / etc / ldap / schema / dyngroup.schema

include / etc / ldap / schema / inetorgperson.schema include / etc / ldap / schema / java.schema

include / etc / ldap / schema / misc.schema include / etc / ldap / schema / nis.schema

include / etc / ldap / schema / openldap.schema

include / etc / ldap / schema / ppolicy.schema include / etc / ldap / schema / ldapns.schema

include / etc / ldap / schema / pmi.schema

2.

3.

Crear el directorio de salida ldif_output.

Determinar el índice del esquema:

slapcat-f-F schema_convert.conf ldif_output-n 0 | grep CORBA, CN = Schema

cn = {1} CORBA, CN = Schema, cn = config

Cuando los objetos injests slapd con el DN padre del mismo se creará una índice para que

objeto. Un índice se encuentra entre llaves: {X}.

4. Utilice slapcat para llevar a cabo la conversión:

slapcat-f-F schema_convert.conf ldif_output-n0-H \ ldap :/ / / cn = {1} CORBA, CN = Schema, cn = config-l = cn corba.ldif

El esquema convierte ahora está en cn = corba.ldif

97

Autenticación de red

5. Editar cn = corba.ldif para llegar a los siguientes atributos:

dn: cn = corba, CN = Schema, cn = config

... cn: corba

Quite también las siguientes líneas de la parte inferior:

structuralObjectClass: olcSchemaConfig

entryUUID: 52109a02-66ab-1030-8be2-bbf166230478 creatorsName: cn = config createTimestamp: 20110829165435Z entryCSN: 20110829165435.935248Z # 000000 # 000 # 000000 modifiersName: cn = config

modifyTimestamp: 20110829165435Z

Sus valores de los atributos pueden variar.

6. Por último, utilice ldapadd para agregar el nuevo esquema al DIT slapd-config:

sudo ldapadd-Q-Y EXTERNA-H ldapi :/ / /-f cn \ = corba.ldif

la adición de nueva entrada "cn = corba, CN = Schema, cn =

config"

7. Confirme esquemas cargados:

sudo ldapsearch-Q-LLL-Y EXTERNA-H ldapi :/ / /-b cn = schema, cn = config dn

dn: cn = schema, cn = config

dn: cn = {0} núcleo, CN = Schema, cn =

config

dn: cn = {1} coseno, CN = Schema, cn = config

dn: cn = {2} nis, CN = Schema, cn = config

dn: cn = {3} inetorgperson, CN = Schema, cn = config

dn: cn = {4} CORBA, CN = Schema, cn = config

Para aplicaciones externas y clientes para autenticarse usando LDAP que cada uno necesita específicamente configurado para ello. Consulte el caso del lado del cliente la documentación para

detalles.

98

Autenticación de red

1,5. Inicio de sesión

Registro de actividades para slapd es indispensable en la aplicación de una solución basada en OpenLDAP aún que debe ser activado manualmente después de la instalación de software. De lo contrario, sólo los mensajes

rudimentarios aparecerá en los registros. Registro, al igual que cualquier otra configuración slapd, está habilitada a través de la

configuración de slapd- base de datos.

OpenLDAP viene con múltiples subsistemas de registro (los niveles) con cada uno que contiene la más baja (Aditivo). Un buen nivel para tratar de es estadísticas. La slapd-config3 página el hombre tiene más que decir sobre las diferentes subsistemas.

Cree el archivo logging.ldif con el siguiente contenido:

dn: cn = config changetype: modificar

añadir: olcLogLevel olcLogLevel: estadísticas

Implementar el cambio:

sudo ldapmodify-Q-Y EXTERNA-H ldapi :/ / /-f logging.ldif

Esto producirá una cantidad significativa de la tala y que va a querer el acelerador de nuevo a una menos detallado el nivel una vez que su sistema se encuentra en producción. En este modo detallado el motor de su anfitrión syslog

(Rsyslog) pueden tener dificultades para mantenerse al día y puede eliminar los

mensajes:

rsyslogd-2177: imuxsock perdió 228 mensajes de pid 2547 debido a la limitante de la

velocidad

Usted puede considerar un cambio a la configuración de rsyslog. En / Etc / rsyslog.conf,

Ponga:

# Deshabilitar la limitación de

velocidad # (Por defecto es de 200 mensajes en 5 segundos, a continuación hacemos el 5 a 0) $ 0 SystemLogRateLimitInterval

Y a continuación, reinicie el demonio rsyslog:

rsyslog servicio sudo reiniciar

1,6. Replicación

El servicio LDAP cada vez más importante a medida que más sistemas en red comienzan a depender de ello. En tal ambiente, es una práctica habitual para construir la redundancia (alta disponibilidad) en LDAP prevenir el caos si el servidor LDAP que no responda. Esto se realiza mediante La replicación de LDAP.

3 http://manpages.ubuntu.com/manpages/en/man5/slapd-config.5.html

99

Autenticación de red

La replicación se realiza a través de la Syncrepl motor. Esto permite que los cambios se sincronizan con un Consumidor -Proveedor modelo. El tipo específico de la replicación vamos a implementar en esta guía es un combinación de los modos siguientes: refreshAndPersist y delta-syncrepl. Esto tiene el proveedor de

impulsar cambiado las entradas para el consumidor, tan pronto como se les hizo, pero, además, sólo los cambios

reales Se enviará, no entradas completas.

1.6.1. Proveedor de configuración

Comience por la configuración de la

Proveedor.

1. Crear un archivo LDIF con el siguiente contenido y el nombre de provider_sync.ldif:

# Añadir los índices de la base de datos de

la interfaz. dn: olcDatabase = {1} hdb, cn = config changetype: modificar añadir: olcDbIndex olcDbIndex: entryCSN eq

- añadir: olcDbIndex

olcDbIndex: entryUUID eq

# Cargue el syncprov y los módulos de accesslog.

dn: cn = módulo {0}, cn = config changetype: modificar

añadir: olcModuleLoad

olcModuleLoad: syncprov -

añadir: olcModuleLoad olcModuleLoad: accesslog

# Accesslog definiciones de base de datos dn: olcDatabase = {2} hdb, cn = config

objectClass: olcDatabaseConfig objectClass: olcHdbConfig

olcDatabase: {2} hdb olcDbDirectory: / var / lib / ldap / accesslog

olcSuffix: cn = accesslog olcRootDN: cn = admin, dc = ejemplo, dc = com

olcDbIndex: default eq olcDbIndex: entryCSN, objectClass, reqEnd, reqResult, reqStart

# Accesslog syncprov db. dn: olcOverlay = syncprov, olcDatabase = {2} hdb, cn = config

changetype: agregue objectClass: olcOverlayConfig objectClass: olcSyncProvConfig

olcOverlay: syncprov olcSpNoPresent: TRUE

olcSpReloadHint: TRUE

100

Autenticación de red

Proveedor # syncrepl para db primaria

dn: olcOverlay = syncprov, olcDatabase = {1} hdb, cn = config changetype: agregue

objectClass: olcOverlayConfig objectClass: olcSyncProvConfig

olcOverlay: syncprov olcSpNoPresent: TRUE

# Accesslog definiciones de superposición para db primaria dn: olcOverlay = accesslog, olcDatabase = {1} hdb, cn = config

objectClass: olcOverlayConfig objectClass: olcAccessLogConfig olcOverlay: accesslog olcAccessLogDB: cn = accesslog

olcAccessLogOps: escribe olcAccessLogSuccess: TRUE # Escanear la base de datos accesslog todos los días, y las entradas de purga de más

de 7 días olcAccessLogPurge: 07 +00:00 01 +00:00

Cambiar el rootdn en el archivo LDIF para que coincida con el que usted tiene para el directorio.

2. El perfil de AppArmor para slapd tendrá que ser ajustado para la ubicación de la base de datos accesslog. Editar / Etc / apparmor.d / local / usr.sbin.slapd añadiendo el siguiente:

/ Var / lib / ldap / accesslog / r, / Var / lib / ldap / accesslog / ** RWK,

Cree un directorio, crear un archivo de configuración databse, y volver a cargar el perfil de

AppArmor:

sudo-u openldap mkdir / var / lib / ldap / accesslog sudo-u openldap cp / var / lib / ldap / DB_CONFIG / var / lib / ldap / accesslog

servicio de recarga sudo apparmor

3. Añadir el nuevo contenido y, debido al cambio de AppArmor, reiniciar el demonio:

sudo ldapadd-Q-Y EXTERNA-H ldapi :/ / provider_sync.ldif /-f sudo service slapd restart

El proveedor está configurado.

1.6.2. Configuración del Consumidor

Y ahora configurar el Del Consumidor.

1. Instale el software pasando a través de Sección 1.1, "Instalación" [p. 92]. Asegúrese de que el

slapd-config databse es idéntica a la del proveedor. En particular, hacer esquemas de seguros y los sufijo databse son los mismos.

2. Crear un archivo LDIF con el siguiente contenido y el nombre de consumer_sync.ldif:

101

Autenticación de red

dn: cn = módulo {0}, cn = config

changetype: modificar añadir: olcModuleLoad

olcModuleLoad: syncprov

dn: olcDatabase = {1} hdb, cn = config changetype: modificar

añadir: olcDbIndex olcDbIndex: entryUUID eq -

añadir: olcSyncRepl olcSyncRepl: rid = 0 = proveedor de LDAP :/ / ldap01.example.com bindmethod = sencilla binddn = "cn = admin, dc

= EXA credenciales = secreta searchbase = "dc = ejemplo, dc = com" logbase = "cn = accesslog" logfilter = "(& (objectClass = auditWriteObject) (reqResult = 0))" = schemachecking en

type = refreshAndPersist retry = "60 +" syncdata = accesslog

- añadir: olcUpdateRef olcUpdateRef: ldap :/ / ldap01.example.com

Asegúrese de que los siguientes atributos tienen los valores

correctos: •proveedor (Proveedor de nombre de la máquina - ldap01.example.com en este ejemplo - o la dirección IP)

•binddn (El nombre completo de administración

que se utilice) •credenciales (La contraseña de administrador de DN que está

utilizando) •searchbase (El sufijo base de datos que está utilizando)

•olcUpdateRef (Nombre o dirección IP del servidor del proveedor)

•librar (Réplica de identidad, una única de 3 dígitos que identifica a la réplica. Cada consumidor debe tener en al menos un deshacerse)

3. Añadir el nuevo contenido:

sudo ldapadd-Q-Y EXTERNA-H ldapi :/ / consumer_sync.ldif /-f

Eso es todo. Las dos bases de datos (sufijo: dc = ejemplo, dc = com) debería ser de sincronización.

1.6.3. Pruebas

Una vez que se inicia la replicación, se puede monitorear mediante

la ejecución de

ldapsearch-Z1-LLLQY EXTERNA-H ldapi :/ / /-s contextCSN base de

dn: dc = ejemplo, dc = com contextCSN: 20120201193408.178454Z # 000000 # 000 # 000000

tanto en el proveedor y el consumidor. Una vez que la salida (20120201193408.178454Z # 000000 # 000 # 000000 en el ejemplo anterior), tanto para partido máquinas, que tienen la replicación. Cada vez que se realiza un cambio en el proveedor, este valor se cambia y así debería el una en el consumidor (s).

102

Autenticación de red

Si su conexión es lenta y / o su base de datos LDAP grande, puede ser que tome un tiempo para que los derechos del

consumidor contextCSN coincide con el del proveedor. Sin embargo, usted sabrá que está avanzando desde la década de los

consumidores contextCSN será steadly creciente. Si el consumidor contextCSN Falta o no coincide con el proveedor, usted debe parar y pensar el problema antes de continuar. Intente comprobar el slapd (syslog) y los archivos de registro en el proveedor de

autenticación para ver si las peticiones de los consumidores de autenticación tuvieron éxito o de sus peticiones para recuperar los

datos (que parecerse a una gran cantidad de declaraciones ldapsearch) devuelven ningún error.

Para probar si funcionaba, simplemente consulta, en el consumidor, el DNS en la base de

datos:

ldapsearch-Q-LLL-Y EXTERNA sudo-H ldapi :/ / /-b dc = ejemplo, dc = com dn

Usted debe ver a 'Juan' el usuario y "mineros del grupo, así como de las personas 'de los nodos y' Grupos '.

1,7. Control de Acceso

El manejo del tipo de acceso (lectura, escritura, etc) los usuarios deben concederse a los recursos es conocida como control de acceso. Las directivas de configuración en cuestión se denominan acceder a las listas de control o ACL.

Cuando instalamos el paquete slapd varias ACL se configura automáticamente. Vamos a ver unos cuantos importantes consecuencias de los incumplimientos y, al hacerlo, vamos a tener una idea de cómo trabajar y ACL cómo están configurados.

Para obtener la efectiva ACL para una consulta LDAP que tenemos que mirar a las entradas de la LCA de la base de

datos que se consulta, así como los del ejemplo interfaz de base de datos especial. Las ACL que pertenecen a la Éstos actúan como valores por defecto en el caso de los de la antigua no coinciden. La base de datos de interfaz de

usuario es el segundo a ser consultados ya la ACL que se aplica es el primero para que coincida ("gana el primer partido") entre ellos 2 fuentes de ligamento cruzado anterior. Los siguientes comandos se dan, respectivamente, las ACL de la base de

datos hdb ("Dc = ejemplo, dc = com") y los de la base de datos de interfaz:

ldapsearch-Q-LLL-Y EXTERNA sudo-H ldapi :/ / / b \ cn = config "(olcDatabase = {1} hdb) 'olcAccess

dn: olcDatabase = {1} hdb, cn = config olcAccess: {0} a attrs = userPassword, shadowLastChange por la escritura auto por anónimo

autenticación por dn = "cn = admin, dc = ejemplo, dc = com" write

by * none olcAccess: {1} a dn.base = "" por la lectura *

olcAccess: {2} a * por escritura auto por dn = "cn = admin, dc = ejemplo, dc = com" write by

* leer

El rootdn siempre tiene pleno derecho a su base de datos. Su inclusión en una lista ACL proporciona un

configuración explícita, pero también hace que slapd a incurrir en una penalización de

rendimiento.

ldapsearch-Q-LLL-Y EXTERNA sudo-H ldapi :/ / / b \ cn = config "(olcDatabase = {1} frontend) 'olcAccess

103

Autenticación de red

dn: olcDatabase = {1} frontend, cn = config olcAccess: {0} a * = por dn.exact gidNumber = 0 + uidNumber = 0, cn = peercred,

cn = externa, cn = auth manejar por rotura * olcAccess: {1} a dn.exact = "" por la lectura * olcAccess: {2} para dn.base = "cn = subesquema" por leer *

El primer ACL es crucial:

olcAccess: {0} a attrs = userPassword, shadowLastChange por la escritura auto por anónimo

autenticación por dn = "cn = admin, dc = ejemplo, dc = com" write

by * none

Esto se puede representar de forma diferente para facilitar la

digestión:

de attrs = userPassword por la escritura de auto por la autenticación anónima por dn = "cn = admin, dc = ejemplo, dc = com" write

por nada *

de attrs = shadowLastChange

por la escritura de auto por la autenticación

anónima por dn = "cn = admin, dc = ejemplo, dc = com" write por nada *

Este compuesto ACL (hay 2) hace cumplir lo siguiente:

• Acceso Anónimo 'auth' se proporciona a la userPassword atributo para la conexión inicial a ocurrir. Tal vez contra-intuitivo, "por autenticación anónima" que se necesita el acceso, incluso cuando anónima

el DIT no es deseada. Una vez que el extremo remoto está conectado, Howerver, puede producirse la autenticación

(véase el siguiente punto).

• La autenticación puede ocurrir porque todos los usuarios tienen "leer" (debido a la "escritura por sí mismo»)

el acceso a la userPassword atributo. • El userPassword atributo es inaccesible de otro modo por todos los demás usuarios, con la excepción del

rootdn, que tiene acceso completo a ella.

• Para que los usuarios a cambiar su propia contraseña, utilizando passwd o de otros servicios

públicos, los shadowLastChange atributo tiene que ser accesible una vez que un usuario se ha autenticado.

Este DIT se puede buscar de forma anónima debido a la '* por leer "en esta ACL:

a *

por la escritura de

auto por dn = "cn = admin, dc = ejemplo, dc = com" write por la lectura *

Si esto no es deseado, entonces usted necesita para cambiar las ACL. Para forzar la autenticación durante una solicitud

de enlace alternativamente puede (o en combinación con la ACL modificada) usar el 'olcRequire: authc' Directiva.

104

Autenticación de red

Como se mencionó anteriormente, no existe una cuenta administrativa creada para la base de datos slapd-config. Hay, sin embargo, una identidad SASL que se concede acceso total a la misma. Representa la de localhost superusuario (root / sudo). Aquí está:

dn.exact = gidNumber = 0 + uidNumber = 0, cn = peercred, cn = externa, cn =

auth

El siguiente comando muestra las ACL de la base de datos slapd-config:

ldapsearch-Q-LLL-Y EXTERNA sudo-H ldapi :/ / / b \ cn = config "(olcDatabase = {0} config) 'olcAccess

dn: olcDatabase = {0} de configuración, cn =

config olcAccess: {0} a * = por dn.exact gidNumber = 0 + uidNumber = 0, cn = peercred, cn = externa, cn = auth manejar por rotura *

Como se trata de una identidad SASL tenemos que utilizar un SASL mecanismo cuando se invoca la utilidad LDAP

en pregunta y ya lo hemos visto muchas veces en esta guía. Es el mecanismo externo. Ver el comando anterior para ver un ejemplo. Nótese que:

1.

2.

Usted debe utilizar sudo para convertirse en la identidad de raíz para que el ligamento

cruzado anterior de igualar. El mecanismo externo funciona a través de IPC (UNIX sockets de dominio). Esto significa que usted debe utilizar la ldapi URI formato.

Una forma sucinta para obtener todos los ACL es la

siguiente:

ldapsearch-Q-LLL-Y EXTERNA sudo-H ldapi :/ / / b \ cn = config "(olcAccess = *) 'olcSuffix olcAccess

No hay mucho que decir sobre el tema de control de acceso. Consulte la página del manual de

slapd.access4.

1,8. TLS

Cuando la autenticación a un servidor OpenLDAP lo mejor es hacerlo a través de una sesión cifrada. Esto puede

llevarse a cabo utilizando Transport Layer Security (TLS).

En este sentido, será nuestra propia Autoridad de Certificación y luego crear y firmar nuestro certificado de servidor

LDAP como que CA. Desde slapd se compila utilizando la biblioteca gnutls, vamos a utilizar la utilidad de certtool completar estas tareas.

1. Instale los paquetes gnutls-bin y ssl-cert:

sudo apt-get install gnutls-bin ssl-cert

2. Crear una clave privada para la entidad emisora de

certificados:

4 http://manpages.ubuntu.com/manpages/en/man5/slapd.access.5.html

105

Autenticación de red

sudo sh-c "certtool - generate-privkey> / etc / ssl / private / cakey.pem"

3. Cree la plantilla / archivo / Etc / ssl / ca.info para definir el CA:

cn = Ejemplo de empresa California

cert_signing_key

4. Crear el certificado con firma CA:

certtool sudo - generate-auto-firmado \ - Load-privkey / etc / ssl / private / cakey.pem \

- Plantilla / etc / ssl / ca.info \ - Outfile / etc / ssl / certs / cacert.pem

5. Haga una clave privada para el servidor:

sudo certtool - generate-privkey \ - Bits de 1024 \

- Outfile / etc/ssl/private/ldap01_slapd_key.pem

Reemplazar ldap01 en el nombre de archivo con el nombre de host de su servidor. Nombrar el

certificado y clave para la acogida y el servicio que va a utilizar los ayudará a mantener las cosas claras.

6. Crear el / Etc/ssl/ldap01.info Información de archivo que

contiene:

organización = Ejemplo de empresa cn = ldap01.example.com

tls_www_server encryption_key

signing_key expiration_days = 3650

El certificado anterior es válido por 10 años. Ajuste en consecuencia.

7. Crear el certificado del servidor:

sudo certtool - Generar certificado de \ - Load-privkey / etc/ssl/private/ldap01_slapd_key.pem \ - Load-ca-certificado de / etc / ssl / certs / cacert.pem \ - Load-ca-privkey / etc / ssl / private / cakey.pem \

- Plantilla / etc/ssl/ldap01.info \ - Outfile / etc/ssl/certs/ldap01_slapd_cert.pem

Cree el archivo certinfo.ldif con el siguiente contenido (ajustar en consecuencia, nuestro ejemplo se supone que hemos creado certs con https://www.cacert.org):

dn: cn = config añadir: olcTLSCACertificateFile

106

Autenticación de red

olcTLSCACertificateFile: / etc / ssl / certs / cacert.pem

- añadir: olcTLSCertificateFile

olcTLSCertificateFile: / etc/ssl/certs/ldap01_slapd_cert.pem -

añadir: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: / etc/ssl/private/ldap01_slapd_key.pem

Utilice el comando ldapmodify para decirle a slapd sobre nuestro trabajo TLS a través de la base de datos

slapd-config:

sudo ldapmodify-Y EXTERNA-H ldapi :/ / /-f / etc / ssl / certinfo.ldif

Contratry a la creencia popular, no es necesario ldaps :/ / en / Etc / default / slapd el fin de utilizar cifrado. Usted debe tener sólo:

SLAPD_SERVICES = "ldap :/ / / ldapi :/ / /"

LDAP sobre SSL / TLS (ldaps :/ /) está en desuso en favor de StartTLS. El último se refiere a una sesión existente LDAP (escuchando en el puerto TCP 389) cada vez protegido por TLS / SSL mientras que LDAPS, como HTTPS, es un claro encriptado-de-la puesta en el protocolo que opera través del puerto TCP 636.

Apriete propiedad y los permisos:

sudo adduser openldap ssl-cert sudo chgrp ssl-cert / etc/ssl/private/ldap01_slapd_key.pem sudo chmod g + r / etc/ssl/private/ldap01_slapd_key.pem sudo chmod etc/ssl/private/ldap01_slapd_key.pem /

Reinicie OpenLDAP:

sudo service slapd restart

Compruebe los registros de su anfitrión (/ var / log / syslog) para ver si el servidor se ha iniciado

correctamente.

1,9. Replicación y TLS

Si ha configurado la replicación entre los servidores, es una práctica común para cifrar (StartTLS) el

el tráfico de replicación para evitar evesdropping. Esto es diferente de usar el cifrado con autenticación como lo hicimos anteriormente. En esta sección se basará en que el trabajo de TLS de autenticación.

La suposición aquí es que se han puesto en marcha la replicación entre proveedor y consumidor de acuerdo a Sección 1.6, "réplica" [p. 99] y se han configurado para la autenticación de TLS en el proveedor de

siguiente Sección 1.8, "TLS" [p. 105].

Como se dijo anteriormente, el objetivo (para nosotros) con la replicación es availablity de alta en el servicio LDAP. Ya que tenemos TLS para la autenticación en el proveedor vamos a exigir lo mismo en el consumidor.

Además de esto, sin embargo, queremos cifrar el tráfico de replicación. Lo que queda por hacer es

107

Autenticación de red

crear una clave y un certificado para el consumidor y luego configurar en consecuencia. Vamos a generar el clave / certificado en el proveedor, para evitar tener que crear otro certificado de la CA, y luego transferir la material necesario sobre el consumidor.

1. En el Proveedor,

Crear un directorio que contiene (que será utilizado para la transferencia final) y luego el Consumidor clave privada:

mkdir ldap02-ssl cd ldap02-ssl sudo certtool - generate-privkey \ - Bits de 1024 \ - Outfile ldap02_slapd_key.pem

Crear un archivo de información, ldap02.info, Para el servidor del Consumidor, el ajuste de su valor en

consecuencia:

organización = Ejemplo de empresa

cn = ldap02.example.com tls_www_server

encryption_key signing_key

expiration_days = 3650

Crear el certificado del consumidor:

sudo certtool - Generar certificado de \ - Load-privkey ldap02_slapd_key.pem \ - Load-ca-certificado de / etc / ssl / certs / cacert.pem \ - Load-ca-privkey / etc / ssl / private / cakey.pem \

- Plantilla de ldap02.info \ - Outfile ldap02_slapd_cert.pem

Obtenga una copia del certificado de la CA:

cp / etc / ssl / certs / cacert.pem.

Ya hemos terminado. Ahora transferir el ldap02-ssl directorio para el consumidor. Aquí usamos scp (ajuste

en consecuencia):

cd .. usuario scp-r ldap02-ssl @ de los consumidores:

2. En el consumidor,

Configurar la autenticación TLS:

108

Autenticación de red

sudo apt-get install ssl-cert sudo adduser openldap ssl-cert sudo cp ldap02_slapd_cert.pem cacert.pem / etc / ssl / certs

sudo cp ldap02_slapd_key.pem / etc / ssl / private sudo chgrp ssl-cert / etc/ssl/private/ldap02_slapd_key.pem sudo chmod g + r / etc/ssl/private/ldap02_slapd_key.pem sudo chmod etc/ssl/private/ldap02_slapd_key.pem /

Cree el archivo / Etc / ssl / certinfo.ldif con el siguiente contenido (los ajustes correspondientes):

dn: cn = config añadir: olcTLSCACertificateFile

olcTLSCACertificateFile: / etc / ssl / certs / cacert.pem - añadir: olcTLSCertificateFile olcTLSCertificateFile: / etc/ssl/certs/ldap02_slapd_cert.pem -

añadir: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: / etc/ssl/private/ldap02_slapd_key.pem

Configurar la base de datos slapd-config:

sudo ldapmodify-Y EXTERNA-H ldapi :/ / /-f certinfo.ldif

Configurar / Etc / default / slapd como en el proveedor (SLAPD_SERVICES).

3. En el consumidor,

Configuración de TLS para la replicación del Consumidor-lado. Modificar el actual olcSyncrepl atributo

viradas en algunas de las opciones de TLS. De este modo, se verá, por primera vez, la forma de cambiar un atributo de valor (s).

Cree el archivo consumer_sync_tls.ldif con el siguiente contenido:

dn: olcDatabase = {1} hdb, cn = config reemplazar: olcSyncRepl

olcSyncRepl: rid = 0 = proveedor de LDAP :/ / ldap01.example.com bindmethod = sencilla binddn = "cn = admin, dc = ejemplo, dc = com" credentials = secreta searchbase = "dc = ejemplo, dc =

com" logbase = "cn = accesslog" logfilter = "(& (objectClass = auditWriteObject) (reqResult = 0))" = schemachecking sobre el tipo = refreshAndPersist retry = "60 +" syncdata = accesslog STARTTLS = crítico tls_reqcert = demanda

Las opciones adicionales especificar, respectivamente, que el consumidor debe utilizar StartTLS y que la CA certificado es necesario para verificar la identidad del proveedor. También tenga en cuenta la sintaxis LDIF para

el cambio los valores de un atributo ("sustituir").

Poner en práctica estos cambios:

sudo ldapmodify-Y EXTERNA-H ldapi :/ / /-f consumer_sync_tls.ldif

109

Autenticación de red

Y reiniciar slapd:

sudo service slapd restart

4. En el Proveedor,

Compruebe que una sesión TLS se ha establecido. En / Var / log / syslog, Siempre y cuando tengas

'Conns' registro a nivel establecido, debería ver mensajes similares a:

slapd [3620]: slapd [3620]: slapd [3620]: slapd [3620]:

slapd [3620]: slapd [3620]: slapd [3620]: slapd [3620]:

conn = 1047 conn = 1047 conn = 1047 conn = 1047

conn = 1047 conn = 1047 conn = 1047 conn = 1047

fd = 20 = ACEPTAR desde la IP 10.153.107.229:57922 (IP = 0.0.0.0:389) op = 0 EXT oid = 1.3.6.1.4.1.1466.20037 op = 0 STARTTLS op = 0 RESULTADO oid = err = 0 text =

fd = 20 TLS establecido tls_ssf = 128 = 128 ssf op = 1 DN de enlace = "cn = admin, dc = ejemplo, dc = com" method = 128 op = 1 DN de enlace = "cn = admin, dc = ejemplo, dc = com" mech = SIMPLE

SSF = 0 op = 1 RESULT tag = 97 err = 0 text

1,10. Autenticación LDAP

Una vez que tenga un servidor LDAP de trabajo, tendrá que instalar las librerías en el cliente que se sabe cómo y cuándo comunicarse con ella. En Ubuntu, este ha sido tradicionalmente accomplishd mediante la instalación de

la libnss-ldap paquete. Este paquete traerá otras herramientas que le ayudarán en la configuración el paso. Instalar este paquete ahora:

sudo apt-get install libnss-ldap

Se le pedirá para los detalles de su servidor LDAP. Si usted comete un error, puede volver a intentarlo mediante:

sudo dpkg-reconfigure ldap-auth-config

Los resultados del diálogo se puede ver en / Etc / ldap.conf. Si el servidor requiere opciones no están cubiertos

en el menú de editar este archivo en

consecuencia.

Ahora configurar el perfil de LDAP para NSS:

sudo auth-client-config-t NSS-p lac_ldap

Configurar el sistema para utilizar LDAP para la autenticación:

sudo pam-auth-update

Desde el menú, seleccione LDAP y los mecanismos de autenticación que necesita.

Ahora debería ser capaz de iniciar sesión con credenciales basados en LDAP.

110

Autenticación de red

Los clientes LDAP tendrá que referirse a varios servidores si la replicación está en uso. En / Etc / ldap.conf

usted tendría algo así como:

uri ldap :/ / ldap01.example.com ldap :/ / ldap02.example.com

La solicitud será el tiempo de espera y el Consumidor (ldap02) tratará de alcanzar si el proveedor (Ldap01) deja de responder.

Si usted va a utilizar LDAP para almacenar usuarios Samba tendrá que configurar el servidor Samba autenticarse usando LDAP. Ver Sección 2, "Samba y LDAP" [p. 117] para más detalles.

Una alternativa al paquete de libnss-ldap es el paquete de libnss-ldapd. Esto, sin embargo, se poner en el paquete nscd que no es problably quería. Basta con retirar una olla.

1,11. Administración de usuarios y Grupo

El paquete ldap-utils viene con utilidades suficientes para manejar el directorio, pero la larga cadena de opciones que se necesitan pueden hacer que una carga para su uso. El paquete contiene ldapscripts guiones envoltorio

para estas utilidades que algunas personas encuentran más fácil de usar.

Instala el paquete:

sudo apt-get install ldapscripts

A continuación, edite el archivo / Etc / ldapscripts o ldapscripts.conf llegar a algo similar al

siguientes:

SERVER = localhost Binddn = "cn = admin, dc = ejemplo, dc = com ' BINDPWDFILE = "/ etc / ldapscripts / ldapscripts.passwd"

SUFIJO = "dc = ejemplo, dc = com '

GSUFFIX = "ou = Grupos de USUFFIX = 'Los ou = People'

MSUFFIX = 'Los ou = Computers' GIDSTART = 10000

UIDSTART = 10000 MIDSTART = 10000

Ahora, cree el ldapscripts.passwd presentar para permitir el acceso rootdn en el directorio:

"" secreto "echo-n> / etc / ldapscripts / ldapscripts.passwd" sudo sh-c sudo chmod 400 / etc / ldapscripts o ldapscripts.passwd

Vuelva a colocar "secreto" con la contraseña real para el usuario rootdn de su base de

datos.

Los guiones están listos para ayudar a manejar su directorio. Estos son algunos ejemplos de cómo utilizar

ellos:

111

Autenticación de red

• Crear un nuevo usuario:

sudo ldapadduser George ejemplo

Esto creará un usuario con UID george y establecer el grupo principal del usuario (GID) ejemplo

• Cambiar la contraseña de un usuario:

sudo ldapsetpasswd George Cambio de contraseña para el usuario uid = george, ou = People, dc = ejemplo,

dc = com Nueva contraseña: Nueva Contraseña (verificar):

• Eliminar un usuario:

sudo George ldapdeleteuser

• Adición de un grupo:

sudo qa ldapaddgroup

• Eliminar un grupo:

sudo qa ldapdeletegroup

• Añadir un usuario a un grupo:

sudo ldapaddusertogroup george qa

Ahora debe ver una memberUid atributos para el qa grupo con un valor de george.

• Quitar un usuario de un grupo:

sudo ldapdeleteuserfromgroup george qa

La memberUid atributo ahora debe ser removido del qa grupo.

• El guión ldapmodifyuser le permite agregar, quitar o cambiar los atributos de un usuario. El script usa la misma sintaxis que la utilidad ldapmodify. Por ejemplo:

sudo George ldapmodifyuser # Acerca de modificar la siguiente entrada:

dn: uid = george, ou = People, dc = ejemplo, dc = com objectClass: Cuenta

objectClass: posixAccount cn: george uid: george

uidNumber: 1001 gidNumber: 1001

directorio home: / home / George

112

Autenticación de red

loginShell: / bin / bash

gecos: george Descripción: Cuenta de usuario

userPassword :: e1NTSEF9eXFsTFcyWlhwWkF1eGUybVdFWHZKRzJVMjFTSG9vcHk =

# Introducir las modificaciones aquí, terminar con CTRL-D. dn: uid = george, ou = People, dc = ejemplo, dc = com

reemplazar: gecos gecos: George Carlin

El usuario gecos Ahora debería ser "George Carlin".

• Una buena característica de ldapscripts es el sistema de plantillas. Las plantillas le permiten personalizar el

atributos de objectes usuario, grupo, y la máquina. Por ejemplo, para permitir que el usuario edición de la plantilla / Etc / ldapscripts o ldapscripts.conf cambiando:

UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"

Hay muestra plantillas en el / Etc / ldapscripts directorio. Copiar o cambiar el nombre del ldapadduser.template.sample presentar a la / Etc / ldapscripts o ldapadduser.template:

sudo cp / usr / share / doc / ldapscripts / examples / ldapadduser.template.sample \ / Etc / ldapscripts o ldapadduser.template

Editar la nueva plantilla para agregar los atributos deseados. A continuación se va a crear nuevos usuarios con un

objectClass de inetOrgPerson:

dn: uid = <usuario>, <usuffix>, <sufijo> objectClass: inetOrgPerson

objectClass: posixAccount cn: <usuario>

SN: <ask> uid: <usuario>

uidNumber: <uid>

gidNumber: <gid> homeDirectory: <Inicio>

loginShell: <shell> gecos: <usuario> Descripción: Cuenta de usuario

Título: Empleado

Observe el <ask> opción utilizada para el sn atributo. Esto hará que ldapadduser le pedirá es

valor.

Hay empresas de servicios públicos en el paquete que no se cubren aquí. Aquí está una lista

completa:

ldaprenamemachine5

5 http://manpages.ubuntu.com/manpages/en/man1/ldaprenamemachine.1.html

113

Autenticación de red

ldapadduser6 ldapdeleteuserfromgroup7 ldapfinger8

ldapid9 ldapgid10 ldapmodifyuser11 ldaprenameuser12

lsldap13 ldapaddusertogroup14 ldapsetpasswd15

ldapinit16 ldapaddgroup17 ldapdeletegroup18 ldapmodifygroup19

ldapdeletemachine20 ldaprenamegroup21 ldapaddmachine22 ldapmodifymachine23 ldapsetprimarygroup24 ldapdeleteuser25

1,12. Backup and Restore

Ahora tenemos LDAP funcionando de la manera que queremos, es el momento para garantizar que podemos salvar a

todos de nuestro trabajo y restauración si es necesario.

Lo que necesitamos es un modo de copia de seguridad de la base de datos LDAP (s), específicamente el back-end (cn =

config) y frontend (dc = ejemplo, dc = com). Si vamos a realizar copias de seguridad en las bases de datos, por ejemplo, / Export

/ copia de seguridad, podríamos utilizar slapcat como se muestra en el siguiente script, llamado / Usr / local / bin / ldapbackup:

#! / Bin / bash

6 http://manpages.ubuntu.com/manpages/en/man1/ldapadduser.1.html 7 http://manpages.ubuntu.com/manpages/en/man1/ldapdeleteuserfromgroup.1.html 8 http://manpages.ubuntu.com/manpages/en/man1/ldapfinger.1.html 9 http://manpages.ubuntu.com/manpages/en/man1/ldapid.1.html 10 http://manpages.ubuntu.com/manpages/en/man1/ldapgid.1.html 11 http://manpages.ubuntu.com/manpages/en/man1/ldapmodifyuser.1.html 12 http://manpages.ubuntu.com/manpages/en/man1/ldaprenameuser.1.html 13 http://manpages.ubuntu.com/manpages/en/man1/lsldap.1.html 14 http://manpages.ubuntu.com/manpages/en/man1/ldapaddusertogroup.1.html 15 http://manpages.ubuntu.com/manpages/en/man1/ldapsetpasswd.1.html 16 http://manpages.ubuntu.com/manpages/en/man1/ldapinit.1.html 17 http://manpages.ubuntu.com/manpages/en/man1/ldapaddgroup.1.html 18 http://manpages.ubuntu.com/manpages/en/man1/ldapdeletegroup.1.html 19 http://manpages.ubuntu.com/manpages/en/man1/ldapmodifygroup.1.html 20 http://manpages.ubuntu.com/manpages/en/man1/ldapdeletemachine.1.html 21 http://manpages.ubuntu.com/manpages/en/man1/ldaprenamegroup.1.html 22 http://manpages.ubuntu.com/manpages/en/man1/ldapaddmachine.1.html 23 http://manpages.ubuntu.com/manpages/en/man1/ldapmodifymachine.1.html 24 http://manpages.ubuntu.com/manpages/en/man1/ldapsetprimarygroup.1.html 25 http://manpages.ubuntu.com/manpages/en/man1/ldapdeleteuser.1.html

114

Autenticación de red

BACKUP_PATH = / export / copia de

seguridad Slapcat = / usr / sbin / slapcat

agradable $ {} slapcat-n 0> $ {} BACKUP_PATH / config.ldif agradable $ {} slapcat-n 1> $ {} BACKUP_PATH / example.com.ldif

agradable $ {} slapcat-n 2> $ {} BACKUP_PATH / access.ldif chmod 640 $ {BACKUP_PATH} / *. ldif

Estos archivos son los archivos sin comprimir de texto que contienen todo lo que en sus bases de

datos LDAP incluyendo el diseño de árbol, nombres de usuario y contraseña cada. Por lo tanto, es posible que desee

considerar la posibilidad hacer / Export / copia de seguridad una partición cifrada y ni siquiera tener el guión cifrar los los archivos a medida que los crea. Lo ideal es hacer ambas cosas, pero eso depende de su seguridad requisitos.

Entonces, es sólo una cuestión de tener un script cron para ejecutar este programa con la frecuencia que nos sentimos

cómodos con. Para muchos, una vez al día es suficiente. Para otros, más a menudo se requiere. Aquí es un ejemplo de un cron script llamado / Etc / cron.d / ldapbackup que se ejecuta cada noche a las 22:45 h:

MAILTO = [email protected] 45 22 *** root / usr / local / bin / ldapbackup

Ahora los archivos se crean, deben ser copiados a un servidor de copia de

seguridad.

Asumiendo que se vuelva a instalar un nuevo máximo de LDAP, el proceso de restauración podría ser algo

como esto:

sudo service slapd stop sudo mkdir / var / lib / ldap / accesslog sudo slapadd-F / etc / ldap / slapd.d-n 0-l / exportación / copia de seguridad / config.ldif sudo slapadd-F / etc / ldap / slapd.d-n 1-l / exportación / copia de seguridad / domain.com.ldif

sudo slapadd-F / etc / ldap / slapd.d-n 2-l / exportación / copia de seguridad / access.ldif sudo chown-R openldap: openldap / etc / ldap / slapd.d /

sudo chown-R openldap: openldap / var / lib / ldap / sudo service slapd inicio

1,13. Recursos

• El principal recurso es la documentación del autor original: www.openldap.org26

• Hay muchas páginas de manual que vienen con el paquete slapd. Estas son algunas de las más importantes, especialmente teniendo en cuenta el material presentado en esta guía:

slapd27 slapd-config28 slapd.access29

26 http://www.openldap.org/~~V 27 http://manpages.ubuntu.com/manpages/en/man8/slapd.8.html 28 http://manpages.ubuntu.com/manpages/en/man5/slapd-config.5.html 29 http://manpages.ubuntu.com/manpages/en/man5/slapd.access.5.html

115

Autenticación de red

slapo-syncprov30

• Las páginas de otro hombre:

auth-client-config31 pam-auth-update32

• Zytrax de LDAP para los científicos de cohetes33, un tratamiento menos pedante, pero completa de LDAP

• Una comunidad de Ubuntu OpenLDAP wiki34 página cuenta con una colección de notas

• O'Reilly Administración del sistema LDAP35 (libro de texto, 2003)

• Packt de El dominio de OpenLDAP36 (libro de texto, 2007)

30 http://manpages.ubuntu.com/manpages/en/man5/slapo-syncprov.5.html 31 http://manpages.ubuntu.com/manpages/en/man8/auth-client-config.8.html 32 http://manpages.ubuntu.com/manpages/en/man8/pam-auth-update.8.html 33 http://www.zytrax.com/books/ldap/ 34 https://help.ubuntu.com/community/OpenLDAPServer 35 http://www.oreilly.com/catalog/ldapsa/ 36 http://www.packtpub.com/OpenLDAP-Developers-Server-Open-Source-Linux/book

116

Autenticación de red

2. Samba y LDAP

Esta sección abarca la integración de Samba con LDAP. La función del servidor Samba será la de un "independiente" del servidor y el directorio LDAP proporcionará el nivel de autenticación, además de que contiene el usuario, grupo, y la información de la máquina cuenta que Samba necesita para funcionar (En cualquiera de sus 3 posibles funciones). El pre-requisito es un servidor OpenLDAP configurado con un directorio que puede aceptar las solicitudes de autenticación. Ver Sección 1, "OpenLDAP Server" [p. 91] para más detalles

sobre

el cumplimiento de este requisito. Una vez que esta sección se ha completado, usted tendrá que decidir qué es

exactamente lo quieres que Samba a hacer por usted y luego configurar en consecuencia.

2,1. Instalación del software

Hay tres paquetes necesarios cuando se integra con LDAP de Samba: samba, samba-doc, y smbldap-tools paquetes.

En rigor, el paquete smbldap-tools no es necesario, pero a menos que tenga alguna otra forma de gestión de las diversas entidades de Samaba (usuarios, grupos, equipos) en un contexto LDAP, entonces debería instalarlo.

Instalar estos paquetes ahora:

sudo apt-get install samba samba-doc smbldap-tools

2,2. Configuración de LDAP

Ahora vamos a configurar el servidor LDAP para que se pueda acomodar los datos de Samba. Vamos a realizar tres

tareas en esta sección:

1.

2.

3.

Importar un esquema de

Índice de algunas de las

entradas Añadir objetos

2.2.1. Samba esquema

Con el fin de OpenLDAP para ser usado como backend para Samba, lógicamente, el DIT tendrá que utilizar

atributos que puede describir adecuadamente los datos de Samba. Estos atributos se pueden obtener mediante la

introducción de un Samba LDAP esquema. Vamos a hacer esto ahora.

Para obtener más información acerca de los esquemas y su instalación ver Sección 1.4, "Modificación de la slapd base de datos de configuración "[p. 96].

1. El esquema se encuentra en la actualidad instalado paquete samba-doc. Tiene que ser descomprimido y copiado al / Etc / ldap / schema directorio:

117

Autenticación de red

sudo cp / usr / share / doc / samba-doc / examples / LDAP / samba.schema.gz / etc / ldap / schema sudo gzip-d / etc / ldap / schema / samba.schema.gz

2. Haga que el archivo de configuración schema_convert.conf que contiene las siguientes líneas:

include / etc / ldap / schema / core.schema

incluir incluir incluir incluir

incluir incluir incluir incluir incluir

incluir incluir incluir incluir incluir

/ Etc / ldap / schema / collective.schema / Etc / ldap / schema / corba.schema / Etc / ldap / schema / cosine.schema / Etc / ldap / schema / duaconf.schema

/ Etc / ldap / schema / dyngroup.schema / Etc / ldap / schema / inetorgperson.schema / Etc / ldap / schema / java.schema / Etc / ldap / schema / misc.schema / Etc / ldap / schema / nis.schema

/ Etc / ldap / schema / openldap.schema / Etc / ldap / schema / ppolicy.schema / Etc / ldap / schema / ldapns.schema / Etc / ldap / schema / pmi.schema / Etc / ldap / schema / samba.schema

3.

4.

Tener el directorio ldif_output mantener la producción.

Determinar el índice del esquema:

slapcat-f-F schema_convert.conf ldif_output-n 0 | grep samba, CN = Schema

dn: cn = {14} samba, CN = Schema, cn = config

5. Convertir el esquema de formato LDIF:

slapcat-f-F schema_convert.conf ldif_output-n0-H \ ldap :/ / / cn = {14} samba, CN = Schema, cn = config-l cn = samba.ldif

6. Edite el generado por el cn = samba.ldif archivo mediante la eliminación de información de los

índices para llegar a:

dn: cn = samba, CN = Schema, cn = config

... cn: samba

Quite las líneas de fondo:

structuralObjectClass: olcSchemaConfig entryUUID: b53b75ca-083f-102d-9FFF-2f64fd123c95 creatorsName: cn = config

createTimestamp: 20080827045234Z entryCSN: 20080827045234.341425Z # 000000 # 000 # 000000

modifiersName: cn = config modifyTimestamp: 20080827045234Z

Sus valores de los atributos pueden variar.

118

Autenticación de red

7. Añadir el nuevo esquema:

sudo ldapadd-Q-Y EXTERNA-H ldapi :/ / /-f cn \ = samba.ldif

Para consultar y ver este nuevo esquema:

sudo ldapsearch-Q-LLL-Y EXTERNA-H ldapi :/ / /-b cn = schema, cn = config 'cn = * Samba *'

2.2.2. Samba índices

Ahora que slapd sabe acerca de los atributos Samba, podemos establecer algunos índices basados en ellos. Entradas de indexación es una manera de mejorar el rendimiento cuando un cliente realiza una búsqueda filtrada en el

DIT.

Cree el archivo samba_indices.ldif con el siguiente contenido:

dn: olcDatabase = {1} hdb, cn = config

changetype: modificar añadir: olcDbIndex

olcDbIndex: uidNumber eq olcDbIndex: gidNumber eq

olcDbIndex: loginShell eq

olcDbIndex: uid eq, pres, sub olcDbIndex: memberUid eq, pres, sub

olcDbIndex: uniqueMember eq, pres olcDbIndex: sambaSID eq

olcDbIndex: sambaPrimaryGroupSID eq

olcDbIndex: sambaGroupType eq olcDbIndex: sambaSIDList eq

olcDbIndex: sambaDomainName eq olcDbIndex: sub defecto

Uso de la utilidad ldapmodify cargar los nuevos índices:

sudo ldapmodify-Q-Y EXTERNA-H ldapi :/ / /-f samba_indices.ldif

Si todo ha ido bien debería ver los nuevos índices usando ldapsearch:

sudo ldapsearch-Q-LLL-Y EXTERNA-H \ ldapi :/ / /-b cn = config olcDatabase = {1} olcDbIndex hdb

2.2.3. Adición de objetos LDAP Samba

A continuación, configurar el paquete smbldap-tools para que coincida con su entorno. El paquete viene con una

configuración de secuencia de comandos que le hará preguntas acerca de las opciones necesarias. Para

ejecutar la secuencia de comandos escriba:

sudo gzip-d / usr / share / doc / smbldap-herramientas / configure.pl.gz sudo perl / usr / share / doc / smbldap-tools / configure.pl

119

Autenticación de red

Es posible que tenga que comentar el pragma strict en el configure.pl archivo.

Una vez que haya respondido a las preguntas, los archivos / Etc / smbldap-tools o smbldap.conf y / Etc / smbldap-tools/smbldap_bind.conf debe ser generada. Si cometió algún error durante la ejecución de

el guión siempre se puede editar los archivos después.

El script smbldap-populate añadirá los objetos LDAP necesarios para Samba. Es una buena idea a la primera

hacer una copia de seguridad de su directorio entero usando

slapcat:

sudo slapcat-l backup.ldif

Una vez que tengas una copia de seguridad proceder a rellenar el

directorio:

sudo smbldap-populate

Usted puede crear un archivo LDIF que contiene los nuevos objetos Samba ejecutando sudo smbldap-populate

-E samba.ldif. Esto le permite mirar por encima de los cambios que hacen que todo está correcto. Si lo es, volver a ejecutar el script sin el parámetro '-e'. Alternativamente, usted puede tomar el archivo LDIF e importarlo de

datos por costumbre.

Su directorio LDAP ahora tiene la información necesaria para autenticar a los usuarios de Samba.

2,3. Configuración de Samba

Hay varias formas de configurar Samba. Para más detalles sobre algunas configuraciones comunes

ver Capítulo 18, Red de Windows [p. 276]. Para configurar Samba para usar LDAP, editar es archivo de configuración / Etc / samba / smb.conf comentando el valor por defecto passdb backend parámetro

y la adición de algunos otros relacionados con LDAP:

# passdb backend = tdbsam

# Configuración de LDAP passdb backend = ldapsam: ldap :/ / hostname sufijo LDAP = dc = ejemplo, dc = com

sufijo usuario ldap = ou = People sufijo de grupo de LDAP = ou = Groups sufijo máquina ldap = ou = Computers

ldap idmap sufijo = ou = idmap LDAP dn = admin cn = admin, dc = ejemplo, dc = com

ldap ssl = start tls ldap passwd sync = sí

...

agregar secuencias de comandos de la máquina = sudo / usr / sbin / smbldap-

useradd-t 0-w "% u"

Cambie los valores para que coincida con su entorno.

Reinicie samba para activar la nueva configuración:

120

Autenticación de red

reinicio sudo smbd reinicio sudo nmbd

Ahora informará acerca de Samba la contraseña del usuario rootdn (el conjunto de uno durante la instalación del slapd el paquete):

sudo smbpasswd-w contraseña

Si ya dispone de los usuarios de LDAP que desea incluir en su nueva LDAP respaldo que Samba Por supuesto, también es necesario dado algunos de los atributos adicionales. La utilidad smbpasswd puede hacer esto y (su anfitrión tendrá que ser capaz de ver (enumerar) los usuarios a través de NSS, instalar y configurar ya sea libnss-ldapd o libnss LDAP):

sudo smbpasswd-a usuario

Se le pedirá que introduzca una contraseña. Se considera como la nueva contraseña para ese usuario. Haciendo que el mismo que antes es razonable.

Para administrar usuarios, grupos y cuentas de equipo usar las utilidades proporcionadas por las herramientas

smbldap- paquete. He aquí algunos ejemplos:

• Para añadir un usuario nuevo:

sudo smbldap-useradd-a-P nombre de usuario

La -Un opción agrega los atributos Samba, y el -P opción llama a la utilidad smbldap-passwd después de la usuario se crea que le permite introducir una contraseña para el usuario.

• Para eliminar un usuario:

sudo smbldap-userdel nombre de usuario

En el comando anterior, utilice el -R opción de eliminar el directorio home del usuario.

• Para añadir un grupo:

sudo smbldap-groupadd-un nombre de grupo

En cuanto a, smbldap-useradd la -Un Agrega los atributos Samba.

• Para que un usuario existente a un miembro de un grupo:

sudo smbldap-groupmod-m nombre de usuario nombre de grupo

La M opción se puede añadir más de un usuario a la vez, mediante su inclusión en el formato de valores separados

por comas. • Para eliminar un usuario de un grupo:

121

Autenticación de red

sudo smbldap-groupmod-x nombre de usuario nombre de grupo

• Para agregar una cuenta de equipo de Samba:

sudo smbldap-useradd-t 0-w nombre de usuario

Reemplazar Nombre de usuario con el nombre de la estación de trabajo. La -T 0 opción, se crea la cuenta del

equipo sin un retardo, mientras que el -W opción especifica el usuario como una cuenta de equipo. Además, tenga en

cuenta añadir máquina de secuencia de comandos parámetro en / Etc / samba / smb.conf fue cambiado para

usar smbldap-useradd.

Hay empresas de servicios públicos en el paquete smbldap-tools que no estaban cubiertos aquí. Aquí está una lista

completa:

smbldap-groupadd37 smbldap-groupdel38 smbldap-groupmod39 smbldap-groupshow40 smbldap-passwd41

smbldap-populate42 smbldap-useradd43

smbldap-userdel44 smbldap-userinfo45 smbldap-Lista de usuarios46

smbldap-usermod47 smbldap-usershow48

2,4. Recursos

• Para obtener más información sobre la instalación y configuración de Samba ver Capítulo 18, Windows Redes [p. 276] de esta Guía de Ubuntu Server.

• Hay varios lugares donde LDAP y Samba se pueden consultar en el enlace ascendente HOWTOs de Samba Colección49.

• En cuanto a lo anterior, véase en particular la passdb sección50.

• Aunque la fecha (2007), el Linux Samba-HOWTO OpenLDAP51 contiene valiosas notas.

37 http://manpages.ubuntu.com/manpages/en/man8/smbldap-groupadd.8.html 38 http://manpages.ubuntu.com/manpages/en/man8/smbldap-groupdel.8.html 39 http://manpages.ubuntu.com/manpages/en/man8/smbldap-groupmod.8.html 40 http://manpages.ubuntu.com/manpages/en/man8/smbldap-groupshow.8.html 41 http://manpages.ubuntu.com/manpages/en/man8/smbldap-passwd.8.html 42 http://manpages.ubuntu.com/manpages/en/man8/smbldap-populate.8.html 43 http://manpages.ubuntu.com/manpages/en/man8/smbldap-useradd.8.html 44 http://manpages.ubuntu.com/manpages/en/man8/smbldap-userdel.8.html 45 http://manpages.ubuntu.com/manpages/en/man8/smbldap-userinfo.8.html 46 http://manpages.ubuntu.com/manpages/en/man8/smbldap-userlist.8.html 47 http://manpages.ubuntu.com/manpages/en/man8/smbldap-usermod.8.html 48 http://manpages.ubuntu.com/manpages/en/man8/smbldap-usershow.8.html 49 http://samba.org/samba/docs/man/Samba-HOWTO-Collection/ 50 http://samba.org/samba/docs/man/Samba-HOWTO-Collection/passdb.html 51 http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/

122

Autenticación de red

• La página principal de la Samba Ubuntu comunidad de documentación52 tiene una gran cantidad de enlaces a artículos que puede resultar útil.

# 52 https://help.ubuntu.com/community/Samba samba-ldap

123

Autenticación de red

3. Kerberos

Kerberos es un sistema de autenticación de red basada en el principio de una tercera parte de confianza. El otro

dos partes siendo el usuario y el servicio que el usuario desee para autenticar. No todos los servicios y las aplicaciones pueden utilizar Kerberos, pero para aquellos que pueden, que aporta el entorno de red a un paso más cerca de ser Single Sign On (SSO).

Esta sección cubre la instalación y configuración de un servidor de Kerberos, y algún cliente ejemplo configuraciones.

3,1. Información

general

Si usted es nuevo en Kerberos hay algunos términos que son buenos para entender antes de configurar un servidor de Kerberos. La mayor parte de los términos se refieren a cosas que usted puede estar familiarizado

con el de otros ambientes:

•Director: los usuarios, equipos y servicios proporcionados por servidores tienen que ser definidos como Kerberos Los directores.

•Instancias: se utilizan para los directores de servicios especiales y los directores

administrativos. •Reinos: el ámbito único de control previstos por la instalación de Kerberos. Piense en ello como el

de dominio o grupo de sus anfitriones y de los usuarios pertenecen. Convención dicta el reino debe estar en mayúsculas. Por defecto, Ubuntu usará el dominio DNS convierte a mayúsculas (EXAMPLE.COM) como el reino.

•Centro de distribución de claves: (KDC) constará de tres partes, una base de datos de todos los

directores, los servidor de autenticación, y el servidor de tickets. Para cada esfera debe haber al menos un KDC.

•De concesión de vales de entradas: emitido por el servidor de autenticación (AS), el billete de concesión de

vales (TGT) se cifran en la contraseña del usuario, que sólo es conocido por el usuario y el KDC.

•De concesión de vales del servidor: (TGS) emite tickets de servicio a los clientes que lo

soliciten. •Venta de entradas: confirmar la identidad de los dos principios. Una principal que es un usuario y el otro un

servicio solicitado por el usuario. Entradas a establecer una clave de cifrado que se utiliza para la comunicación

segura durante la sesión autenticada.

•Keytab Archivos: son los archivos extraídos de la base de datos principal KDC y contienen la clave de cifrado por un servicio o de acogida.

Para poner las piezas juntas, un reino tiene al menos un KDC, preferiblemente más de redundancia, que

contiene una base de datos de Directores. Cuando un director usuario inicia sesión en una estación de trabajo que se

configura para la autenticación Kerberos, los KDC emite un vale de concesión de vales (TGT). Si el usuario suministra credenciales coinciden, el usuario autenticado y luego se puede solicitar entradas para los servicios de Kerberos el servidor de concesión de vales (TGS). Los tickets de servicio permite al usuario autenticarse en el servicio sin entrar en otro nombre de usuario y contraseña.

124

Autenticación de red

3,2. Servidor Kerberos

3.2.1. Instalación

Para esta discusión, vamos a crear un dominio de Kerberos del MIT con las siguientes características (editarlos para

se ajuste a sus

necesidades): •Reino: EXAMPLE.COM

•KDC principal: kdc01.example.com (192.168.0.1)

•KDC secundario: kdc02.example.com (192.168.0.2)

•Principal del usuario: steve

•Director de administración: steve /

admin

Es fuertemente recomienda que los autenticados de la red los usuarios tienen su uid en una rango diferente (por ejemplo, a partir de 5000) que la de los usuarios locales.

Antes de instalar el servidor de Kerberos un servidor DNS configurado correctamente es necesario para su dominio. Desde el reinado de Kerberos por convención coincide con el nombre de dominio, en esta sección utiliza

el EXAMPLE.COM dominio configurado en Sección 2.3, "Primary Master" [p. 142] del DNS documentación.

Además, Kerberos es un protocolo sensible del tiempo. Así que si la hora del sistema local entre un equipo cliente y el servidor difiere en más de cinco minutos (por defecto), la estación de trabajo no podrá para autenticar. Para corregir el problema a todos los hosts deben tener su tiempo sincronizado con el mismo Network Time Protocol (NTP) servidor. Para obtener más información sobre la configuración de NTP

ver Sección 4: "El tiempo

Sincronización con NTP "[p. 49].

El primer paso en la creación de un reino Kerberos es el de instalar los paquetes krb5-kdc y krb5-administrador del

servidor. Desde un terminal escriba:

sudo apt-get install krb5-kdc krb5-admin-server

Se le pedirá a la final de la instalación para suministrar el nombre de host para el Kerberos y servidores de

administración, que pueden o no ser el mismo servidor, para el reino.

Por defecto, el reino se crea a partir del nombre de dominio del KDC.

A continuación, cree el nuevo reino con la utilidad kdb5_newrealm:

krb5_newrealm sudo

3.2.2. Configuración

Las preguntas formuladas durante la instalación se utilizan para configurar el / Etc/krb5.conf archivo. Si usted

necesita para ajustar el Key Distribution Center (KDC) la configuración sólo tiene que editar el archivo y reiniciar el krb5-

kdc

125

Autenticación de red

demonio. Si necesita volver a configurar Kerberos desde el principio, tal vez para cambiar el nombre de reino, Puede hacerlo escribiendo

sudo dpkg-reconfigure krb5-kdc

1. Una vez que el KDC se ejecuta correctamente, un usuario administrador - el principal admin - Es necesario. Es recomienda el uso de un nombre de usuario diferente de su nombre de usuario todos los días. Usando el

kadmin.local utilidad en una terminal escriba:

kadmin.local sudo Autenticación como usuario root director / admin @ EXAMPLE.COM con contraseña.

kadmin.local: addprinc steve / admin ADVERTENCIA: no existe una política especifica para steve / admin @ EXAMPLE.COM; incumplimiento

de una política Introduzca la contraseña para el principal "steve / admin @ EXAMPLE.COM": Vuelva a introducir la contraseña para el principal "steve / admin @ EXAMPLE.COM": Principal "steve / admin @ EXAMPLE.COM" creado.

kadmin.local: dejar de

En el ejemplo anterior steve es el Principal, / admin es un Instancia, y @ EXAMPLE.COM significa el reino. La "Todos los días" Principal, alias el principal de usuario, sería [email protected], y debe tener sólo derechos de los usuarios normales.

Reemplazar EXAMPLE.COM y steve con su Reino y nombre de usuario admin.

2. A continuación, el usuario admin nueva tiene que tener la lista de control de acceso correspondiente (ACL). Los permisos se configuran en el / Etc/krb5kdc/kadm5.acl archivo:

steve / admin @ EXAMPLE.COM *

En virtud del presente entrada steve / admin la capacidad de realizar cualquier operación en todos los

principales del reino. Puede configurar los directores con los privilegios más restrictivos, lo cual es conveniente si usted necesita un director de administración que el personal subalterno puede utilizar en los clientes de Kerberos. Por favor vea el

kadm5.acl La página man para más detalles.

3. Ahora, reinicie el krb5-admin-servidor para la nueva ACL surtan efecto:

sudo / etc/init.d/krb5-admin-server reinicio

4. El director nuevo usuario se puede probar mediante la utilidad kinit:

kinit steve / admin steve / admin @ EXAMPLE.COM 's Contraseña:

Después de introducir la contraseña, utilice la utilidad klist para ver información acerca de la concesión de vales Vales (TGT):

126

Autenticación de red

klist Caché de Verificación de Poderes: file :/

tmp/krb5cc_1000 Director: Steve / admin @ EXAMPLE.COM

Emitido 13 de julio 17:53:34

Expira 14 de julio 03:53:34

Principal krbtgt / EXAMPLE.COM @ EXAMPLE.COM

Cuando el nombre del archivo caché krb5cc_1000 está compuesto por el prefijo krb5cc_ y el identificador de

usuario (UID), que en este caso es 1000. Puede que tenga que añadir una entrada en el / Etc / hosts para el KDC por lo que el el cliente puede encontrar el KDC. Por ejemplo:

192.168.0.1 kdc01.example.com kdc01

Sustitución 192.168.0.1 con la dirección IP de su KDC. Esto suele suceder cuando se tiene un Realm de Kerberos que abarca las diferentes redes separadas por routers.

5. La mejor manera de permitir a los clientes para determinar automáticamente el KDC para el Reino está usando

DNS Registros SRV. Agregue lo siguiente al / Etc / named / db.example.com:

_kerberos._udp.EXAMPLE.COM. _kerberos._tcp.EXAMPLE.COM.

_kerberos._udp.EXAMPLE.COM. _kerberos._tcp.EXAMPLE.COM.

IN SRV 1 IN SRV 1

0 88 0 88

kdc01.example.com. kdc01.example.com.

kdc02.example.com. kdc02.example.com.

IN SRV 10 0 88 IN SRV 10 0 88

_kerberos-adm._tcp.EXAMPLE.COM. IN SRV 1 _kpasswd._udp.EXAMPLE.COM.IN SRV 1

0 749 kdc01.example.com. 0 464 kdc01.example.com.

Reemplazar EXAMPLE.COM, kdc01, y kdc02 con su nombre de dominio, principal KDC, y el KDC secundario.

Ver Capítulo 8, el Servicio de Nombres de Dominio (DNS) [p. 139] para obtener instrucciones

detalladas sobre cómo configurar DNS.

Su nuevo territorio Kerberos está listo para autenticar a los clientes.

3,3. Secundaria KDC

Una vez que tenga un centro de distribución de claves (KDC) en su red, es una buena práctica tener un KDC secundaria en caso de que el principal no esté disponible. Además, si usted tiene los clientes de Kerberos que son

en redes diferentes (posiblemente separados por routers mediante NAT), es aconsejable colocar un KDC secundaria en cada una de dichas redes.

1. En primer lugar, instale los paquetes, y cuando se le preguntó por los nombres de servidor de Kerberos y Admin

entrar en el nombre de la KDC principal:

sudo apt-get install krb5-kdc krb5-admin-server

2. Una vez que tenga los paquetes instalados, crear la secundaria KDC principal del equipo. Desde un terminal, escriba:

127

Autenticación de red

kadmin-q "addprinc-randkey host/kdc02.example.com"

Después, la emisión de los comandos kadmin se le pedirá para su nombre de usuario / [email protected]~~V la contraseña principal.

3. Extraiga el keytab archivo:

kadmin-q "ktadd-norandkey-k keytab.kdc02 host/kdc02.example.com"

4. Ahora debe haber un keytab.kdc02 en el directorio actual, mover el archivo a / Etc / krb5.keytab:

sudo keytab.kdc02 mv / etc/krb5.keytab

Si la ruta de acceso al keytab.kdc02 archivo es diferente a los ajustes

correspondientes.

Además, usted puede enumerar los principios de una tabla de claves, que puede ser útil para solucionar

problemas, mediante la utilidad klist:

sudo klist-k / etc/krb5.keytab

La opción-k indica que el archivo es un archivo de tabla de

claves. 5. A continuación, es necesario que haya un kpropd.acl archivo en cada KDC que enumera todos los KDC para

el Reino. Para ejemplo, en KDC tanto primaria como secundaria, crear / Etc/krb5kdc/kpropd.acl:

host/kdc01.example.com @ EXAMPLE.COM host/kdc02.example.com @ EXAMPLE.COM

6. Crear una base de datos vacía en el KDC secundario:

sudo-s Crear kdb5_util

7. Ahora inicie el demonio kpropd, que escucha las conexiones de la utilidad kprop. kprop se utiliza

para transferir los archivos de

volcado:

sudo kpropd-S

8. Desde un terminal en el Primaria KDC, crear un archivo de volcado de la base de datos principal:

volcado kdb5_util sudo / var/lib/krb5kdc/dump

9. Extracto de la Primaria KDC keytab presentar, con copia a / Etc/krb5.keytab:

kadmin-q "ktadd-k keytab.kdc01 host/kdc01.example.com" sudo keytab.kdc01 mv / etc/krb5.keytab

128

Autenticación de red

Asegúrese de que hay una anfitrión para kdc01.example.com antes de extraer la tabla de

claves.

10. Uso de la utilidad kprop empujar la base de datos para el KDC secundario:

sudo kprop-r EXAMPLE.COM-f / kdc02.example.com var/lib/krb5kdc/dump

No debe haber un ÉXITO mensaje si la propagación trabajado. Si hay un error mensaje de verificación / Var / log / syslog en el KDC secundaria para más información.

También puede crear una tarea programada para actualizar periódicamente la base de datos en la secundaria

KDC. Por ejemplo, el siguiente empujará la base de datos cada hora (véase la línea de tiempo ha sido divididos de acuerdo al formato de este documento):

# M h dom lun dowcommand 0 **** / usr/sbin/kdb5_util volcado / var/lib/krb5kdc/dump && / Usr / bin / kprop-r EXAMPLE.COM-f / kdc02.example.com var/lib/krb5kdc/dump

11. De vuelta a la Secundaria KDC, crear una esconder presentar para sostener la clave maestra de

Kerberos:

sudo alijo kdb5_util

12. Por último, iniciar el demonio krb5-kdc en el KDC secundario:

sudo / etc/init.d/krb5-kdc inicio

La Secundaria KDC Ahora debería ser capaz de emitir boletos para el Reino. Puede probar esto al detener el demonio krb5-kdc en el KDC principal, a continuación, mediante kinit para pedir un ticket. Si todo va bien deben recibir un boleto de la KDC secundario. De lo contrario, marque / Var / log / syslog y / Var / log /

auth.log en el KDC secundario.

3,4. Kerberos Client Linux

Esta sección cubre la configuración de un sistema Linux como un cliente de Kerberos. Esto permitirá el acceso a

cualquiera servicios Kerberizados vez que un usuario ha iniciado una sesión en el sistema.

3.4.1. Instalación

Con el fin de autenticarse en un territorio Kerberos, la krb5-usuario y paquetes libpam-krb5 se necesitan, junto con algunos otros que no son estrictamente necesarios pero que hacen la vida más fácil. Para instalar los

paquetes escriba lo siguiente en una terminal:

sudo apt-get install krb5 usuario libpam-krb5 libpam-ccreds auth-client-config

El paquete de auth-client-config permite una sencilla configuración de PAM para la autenticación de múltiples fuentes, y los ccreds libpam-en caché las credenciales de autenticación que le permite acceder en caso de

129

Autenticación de red

Key Distribution Center (KDC) no está disponible. Este paquete también es útil para los ordenadores portátiles que

pueden autenticarse mediante Kerberos, mientras que en la red corporativa, sino que es necesario tener acceso de la red también.

3.4.2. Configuración

Para configurar el cliente en una terminal escriba:

sudo dpkg-reconfigure krb5-config

A continuación se le pedirá que introduzca el nombre del realm de Kerberos. Además, si usted no tiene DNS configurado con Kerberos SRV registros, el menú le pedirá el nombre del host de la Llave Centro de Distribución (KDC) y el Servidor de Administración Reino.

El dpkg-reconfigure añade entradas a la / Etc/krb5.conf archivo para su Reino. Usted debe tener entradas similares a lo siguiente:

[Libdefaults] default_realm = EXAMPLE.COM

... [Reinos]

EXAMPLE.COM =}

kdc = 192.168.0.1 admin_server = 192.168.0.1

}

Si establece el UID de cada uno de sus autenticados en red a los usuarios comenzar en 5000, como se

sugiere en Sección 3.2.1, "Instalación" [p. 125], A continuación, puede decir pam probar sólo para autenticar con los usuarios de Kerberos con uid> 5000:

# Kerberos sólo se debe aplicar a LDAP / Kerberos los usuarios, no de los locales. for i in common-auth common-session common-account common-password, haz

sudo sed-i-r \ -E 's/pam_krb5.so minimum_uid = 1000/pam_krb5.so minimum_uid = 5000 /' \

/ Etc / pam.d / $ i hecho

Esto evitará que se le pedirá la contraseña (inexistente) de Kerberos de un local

usuario autenticado cuando se cambia la contraseña utilizando passwd.

Usted puede probar la configuración mediante la solicitud de un boleto mediante la utilidad kinit. Por

ejemplo:

kinit [email protected] Contraseña para [email protected]:

Cuando un billete ha sido concedida, los detalles se pueden ver con klist:

130

Autenticación de red

klist Caché de entradas: file :/ tmp/krb5cc_1000 Principal predeterminado: [email protected]

Válido a partir Expira Principal de servicio

07/24/08 05:18:56 07/24/08 15:18:56 krbtgt / EXAMPLE.COM @ EXAMPLE.COM prorrogar hasta el 07/25/08 05:18:57

Kerberos 4 entradas de caché: / tmp/tkt1000 klist: No tiene entradas en caché

A continuación, utilice el auth-client-config para configurar el módulo de libpam-krb5 para pedir un ticket durante el

inicio de sesión:

sudo auth-client-config-a-p kerberos_example

Usted debe ahora recibir un boleto en la autenticación de inicio de sesión con éxito.

3,5. Recursos

• Para más información sobre la versión del MIT de Kerberos, consulte la MIT Kerberos53 sitio.

• El Wiki de Ubuntu Kerberos54 página tiene más detalles.

• O'Reilly Kerberos: The Definitive Guide55 es una gran referencia al configurar Kerberos.

• Además, no duden en pasar por el # Ubuntu-server y # Kerberos Canales de IRC en Freenode56 si tiene preguntas de Kerberos.

53 http://web.mit.edu/Kerberos/ 54 https://help.ubuntu.com/community/Kerberos 55 http://oreilly.com/catalog/9780596004033/ 56 http://freenode.net/

131

Autenticación de red

4. Kerberos y LDAP

La mayoría de las personas no utilizan Kerberos por sí misma, una vez que un usuario se autentica (Kerberos),

tenemos que averiguar lo que este usuario puede hacer (autorización). Y eso sería el trabajo de programas como LDAP.

Replicar una base de datos principal de Kerberos entre dos servidores puede ser complicado, y añade un

base de datos de usuario adicional a la red. Afortunadamente, el MIT Kerberos puede ser configurado para usar un Directorio LDAP como una base de datos principal. Esta sección cubre la configuración de una primaria y

secundaria kerberos servidor para utilizar OpenLDAP para la base de datos principal.

Los ejemplos que se presentan aquí suponen MIT Kerberos y OpenLDAP.

4,1. Configuración de OpenLDAP

En primer lugar, la necesaria esquema necesita ser cargado en un servidor OpenLDAP que tiene conectividad de red

a los KDC primario y secundario. El resto de esta sección se supone que también tienen LDAP configurada la replicación entre al menos dos servidores. Para obtener más información sobre la configuración de

OpenLDAP Santa Sección 1, "OpenLDAP Server" [p. 91].

También se requiere para configurar OpenLDAP para TLS y conexiones SSL, de modo que el tráfico entre el Servidor KDC y LDAP se cifra. Ver Sección 1.8, "TLS" [p. 105] para más detalles.

cn = admin, cn = config es un usuario que hemos creado con los derechos para editar la base de datos LDAP.

Muchas veces es la rootdn. Cambie el valor para reflejar su configuración.

• Para cargar el esquema en LDAP, en el servidor LDAP de instalar el paquete krb5-kdc-ldap. Desde un la terminal escriba:

sudo apt-get install krb5-kdc-ldap

• A continuación, extraer el kerberos.schema.gz archivo:

sudo gzip-d / usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz sudo cp / usr/share/doc/krb5-kdc-ldap/kerberos.schema / etc / ldap / schema /

• El kerberos esquema necesita ser añadido a la cn = config árbol. El procedimiento para agregar un nuevo esquema

a slapd también se detalla en Sección 1.4, "Modificación de la base de datos de configuración de slapd" [p. 96]. 1. En primer lugar, crear un archivo de configuración llamado schema_convert.conf, O un nombre descriptivo

similares, con las siguientes líneas:

include / etc / ldap / schema / core.schema include / etc / ldap / schema / collective.schema

include / etc / ldap / schema / corba.schema include / etc / ldap / schema / cosine.schema

132

Autenticación de red

include / etc / ldap / schema / duaconf.schema

include / etc / ldap / schema / dyngroup.schema include / etc / ldap / schema / inetorgperson.schema

include / etc / ldap / schema / java.schema include / etc / ldap / schema / misc.schema

include / etc / ldap / schema / nis.schema include / etc / ldap / schema / openldap.schema

include / etc / ldap / schema / ppolicy.schema include / etc / ldap / schema / kerberos.schema

2. Cree un directorio temporal para guardar los archivos LDIF:

mkdir / tmp / ldif_output

3. Ahora usa slapcat para convertir los archivos de

esquema:

slapcat-f schema_convert.conf-f / tmp / ldif_output-n0-s \ "Cn = {12} kerberos, CN = Schema, cn = config"> / tmp / cn = kerberos.ldif

Cambie los nombres anteriores de archivos y la ruta para que coincida con su cuenta si son

diferentes. 4. Edite el generado por el / Tmp / cn \ = kerberos.ldif archivo, cambiar los atributos siguientes:

dn: cn = kerberos, CN = Schema, cn = config ...

cn: kerberos

Y elimine las siguientes líneas del final del archivo:

structuralObjectClass: olcSchemaConfig entryUUID: 18ccd010-746b-102d-9fbe-3760cca765dc

creatorsName: cn = config

createTimestamp: 20090111203515Z entryCSN: 20090111203515.326445Z # 000000 # 000 # 000000

modifiersName: cn = config modifyTimestamp: 20090111203515Z

Los valores de los atributos pueden variar, sólo asegúrese de que los atributos son

eliminados. 5. Cargue el nuevo esquema con ldapadd:

ldapadd-x-D cn = admin, cn = config-W-f / tmp / cn \ = kerberos.ldif

6. Añadir un índice para el krb5principalname atributo:

ldapmodify-x-D cn = admin, cn = config-W Escriba la contraseña de LDAP: dn: olcDatabase = {1} hdb, cn = config

añadir: olcDbIndex olcDbIndex: krbPrincipalName eq, pres, sub

133

Autenticación de red

modificar la entrada "olcDatabase = {1} hdb, cn = config"

7. Por último, actualizar las listas de control de acceso (ACL):

ldapmodify-x-D cn = admin, cn = config-W Escriba la contraseña de LDAP: dn: olcDatabase = {1} hdb, cn = config

reemplazar: olcAccess olcAccess: a attrs = userPassword, shadowLastChange, por krbPrincipalKey

dn = "cn = admin, dc = ejemplo, dc = com" escribir con autenticación anónima por escritura sí mismo por no * - añadir: olcAccess olcAccess: a dn.base = "" por la lectura *

- añadir: olcAccess olcAccess: a * por dn = "cn = admin, dc = ejemplo, dc = com" write by * read

modificar la entrada "olcDatabase = {1} hdb, cn = config"

Eso es todo, su directorio LDAP ya está listo para servir como una base de datos principal de Kerberos.

4,2. Configuración del KDC primario

Con OpenLDAP configurado es el momento de configurar el KDC.

• En primer lugar, instale los paquetes necesarios, desde una terminal

escriba:

sudo apt-get install krb5-kdc krb5-admin-server krb5-kdc-ldap

• Ahora edite / Etc/krb5.conf añadir las siguientes opciones a bajo las secciones correspondientes:

[Libdefaults] default_realm = EXAMPLE.COM

...

[Reinos] EXAMPLE.COM = {

kdc = kdc01.example.com

kdc = kdc02.example.com admin_server = kdc01.example.com

admin_server = kdc02.example.com default_domain = example.com database_module = openldap_ldapconf

}

...

[Domain_realm] . Example.com = EXAMPLE.COM

134

Autenticación de red

...

[Dbdefaults] ldap_kerberos_container_dn = dc = ejemplo, dc = com

[Dbmodules] openldap_ldapconf = { db_library = kldap

ldap_kdc_dn = "cn = admin, dc = ejemplo, dc = com"

# Este objeto tiene que haber leído los derechos de # El ámbito contenedor, contenedor de dominio principal y sub-árboles

ldap_kadmind_dn = "cn = admin, dc = ejemplo, dc = com"

# Este objeto necesita tener derechos de lectura y escritura en # El ámbito contenedor, contenedor de dominio principal y sub-árboles ldap_service_password_file = / etc/krb5kdc/service.keyfile ldap_servers = ldaps :/ / ldap01.example.com ldaps :/ / ldap02.example.com

ldap_conns_per_server = 5 }

Cambiar example.com, dc = ejemplo, dc = com, cn = admin, dc = ejemplo, dc = com, y

ldap01.example.com para el dominio, objeto LDAP y servidor LDAP para su red.

• A continuación, utilice la utilidad kdb5_ldap_util para crear el reino:

sudo kdb5_ldap_util-D cn = admin, dc = ejemplo, dc = com crear los subárboles \ dc = ejemplo, dc = com-r-s EXAMPLE.COM-H ldap :/ / ldap01.example.com

• Crear un alijo de la contraseña utilizada para enlazar con el servidor LDAP. Esta contraseña es utilizada por el

ldap_kdc_dn y ldap_kadmin_dn opciones en / Etc/krb5.conf:

sudo kdb5_ldap_util-D cn = admin, dc = ejemplo, dc = com stashsrvpw-f \ / Etc/krb5kdc/service.keyfile cn = admin, dc = ejemplo, dc = com

• Copia del certificado de la CA del servidor LDAP:

scp ldap01 :/ etc / ssl / certs / cacert.pem. sudo cacert.pem cp / etc / ssl / certs

Y de edición / Etc / ldap / ldap.conf para utilizar el

certificado:

TLS_CACERT / etc / ssl / certs / cacert.pem

El certificado también deberá ser copiados al KDC secundario, para permitir la conexión

a los servidores LDAP que utilizan LDAP.

135

Autenticación de red

Ahora puede agregar los principales de Kerberos a la base de datos LDAP, y se copiarán a cualquier otro Servidores LDAP configurado para la replicación. Para añadir un director con la utilidad kadmin.local escriba:

kadmin.local sudo Autenticación como usuario root director / admin @ EXAMPLE.COM con contraseña. kadmin.local: addprinc-x dn = "uid = Steve, ou = People, dc = ejemplo, dc = com" steve

ADVERTENCIA: no existe una política especifica para [email protected]; incumplimiento de

una política Introduzca la contraseña para el principal "[email protected]": Vuelva a introducir la contraseña para el principal

"[email protected]": Principal "[email protected]" creado.

Ahora debe haber krbPrincipalName, krbPrincipalKey, krbLastPwdChange y krbExtraData atributos añade al uid = steve, ou = gente, dc = ejemplo, dc = com objeto de usuario. Utilice el kinit y klist utilidades para probar que el usuario es, en efecto recibir una multa.

Si el objeto de usuario ya está creado el -X dn = "..." opción es necesaria para añadir el Kerberos los atributos. De lo contrario un nuevo principal objeto se creará en el ámbito sub-árbol.

4,3. Configuración del KDC secundario

Configuración de un KDC secundario usando el backend LDAP es similar a configurar una con el

normal de base de datos de Kerberos.

1. En primer lugar, instalar los paquetes necesarios. En una terminal

escriba:

sudo apt-get install krb5-kdc krb5-admin-server krb5-kdc-ldap

2. A continuación, modifique / Etc/krb5.conf usar el gestor de

LDAP:

[Libdefaults] default_realm = EXAMPLE.COM

...

[Reinos] EXAMPLE.COM = {

kdc = kdc01.example.com kdc = kdc02.example.com

admin_server = kdc01.example.com admin_server = kdc02.example.com

default_domain = example.com database_module = openldap_ldapconf

}

...

[Domain_realm] . Example.com = EXAMPLE.COM

136

Autenticación de red

...

[Dbdefaults] ldap_kerberos_container_dn = dc = ejemplo, dc = com

[Dbmodules]

openldap_ldapconf = { db_library = kldap ldap_kdc_dn = "cn = admin, dc = ejemplo, dc = com"

# Este objeto tiene que haber leído los derechos de # El ámbito contenedor, contenedor de dominio principal y sub-árboles ldap_kadmind_dn = "cn = admin, dc = ejemplo, dc = com"

# Este objeto necesita tener derechos de lectura y escritura en # El ámbito contenedor, contenedor de dominio principal y sub-árboles ldap_service_password_file = / etc/krb5kdc/service.keyfile ldap_servers = ldaps :/ / ldap01.example.com ldaps :/ / ldap02.example.com ldap_conns_per_server = 5

}

3. Crear el alijo de la contraseña de enlace LDAP:

sudo kdb5_ldap_util-D cn = admin, dc = ejemplo, dc = com stashsrvpw-f \ / Etc/krb5kdc/service.keyfile cn = admin, dc = ejemplo, dc = com

4. Ahora, en el Primaria KDC copiar el / Etc/krb5kdc/.k5.EXAMPLE.COM Llave maestra esconder a los

el KDC secundario. Asegúrese de copiar el archivo a través de una conexión cifrada como scp, o en medios físicos.

sudo scp / etc/krb5kdc/.k5.EXAMPLE.COM [email protected]: ~ sudo mv. k5.EXAMPLE.COM / etc/krb5kdc /

De nuevo, reemplazar EXAMPLE.COM con su ámbito real.

5. De vuelta a la Secundaria KDC, (Re) iniciar el servidor LDAP sólo,

sudo service slapd restart

6. Por último, iniciar el demonio krb5-kdc:

sudo / etc/init.d/krb5-kdc inicio

7. Verifique que los dos servidores LDAP y Kerberos (por extensión) están

sincronizados.

Ahora tiene KDC redundantes en la red, y con servidores LDAP redundantes que deberían ser

capaz de seguir autenticar a los usuarios si un servidor LDAP, un servidor de Kerberos, LDAP o una y otra Kerberos del servidor no esté disponible.

137

Autenticación de red

4,4. Recursos

• El Guía de administración de Kerberos57 tiene algunos detalles adicionales.

• Para más información sobre kdb5_ldap_util ver Sección 5.658 y el página del manual de kdb5_ldap_util59.

• Otra opción útil es la krb5.conf página de manual60.

• Asimismo, consulte la Kerberos y LDAP61 página wiki de Ubuntu.

57 58 59 http://manpages.ubuntu.com/manpages/precise/en/man8/kdb5_ldap_util.8.html 60 http://manpages.ubuntu.com/manpages/precise/en/man5/krb5.conf.5.html # 61 https://help.ubuntu.com/community/Kerberos kerberos ldap-

138

Capítulo 8. Domain Name Service (DNS)

Servicio de Nombres de Dominio (DNS) es un servicio de Internet que asigna direcciones IP y de dominio completo nombres (FQDN) entre sí. De esta forma, DNS evita la necesidad de recordar las direcciones IP. Los equipos que se llaman DNS plazo servidores de nombres. Ubuntu viene con BIND (Berkeley Internet Naming

Daemon), el programa más utilizado para el mantenimiento de un servidor de nombres en Linux.

139

Domain Name Service (DNS)

1. Instalación

En un terminal, introduzca el siguiente comando para instalar dns:

sudo apt-get install bind9

Un paquete muy útil para probar y solucionar problemas de DNS es el paquete de dnsutils. Muy a menudo estas herramientas se ha instalado todavía, pero para comprobar y / o instalar dnsutils escriba lo siguiente:

sudo apt-get install dnsutils

140

Domain Name Service (DNS)

2. Configuración

Hay muchas maneras de configurar BIND9. Algunas de las configuraciones más comunes son el almacenamiento en

caché servidor de nombres, maestro primario, y como un maestro de secundaria.

• Cuando se configura como un servidor de nombres BIND9 almacenamiento en caché se encuentra la respuesta

a consultas de nombres y recordar la respuesta cuando el dominio se volvió a preguntar.

• Como servidor primario BIND9 lee los datos de una zona de un archivo en su huésped y es

autoridad para esa zona.

• En una configuración de maestro secundario BIND9 obtiene los datos de la zona de otro servidor de

nombres autorizado para la zona.

2,1. Información

general

Los archivos de configuración de DNS se almacenan en la / Etc / bind directorio. El archivo de configuración

principal es / etc / bind / named.conf.

La incluir línea especifica el nombre del archivo que contiene las opciones de DNS. La directorio línea en la / etc / bind / named.conf.options archivo indica DNS donde buscar los archivos. Todos los usos enlazar los

archivos será relativos a este directorio.

El archivo con el nombre / Etc / bind / db.root describe la raíz nameservers en el mundo. El cambio de

servidores con el tiempo, de modo que el / Etc / bind / db.root archivo se debe mantener de vez en cuando. Esto se hace

generalmente como las actualizaciones del paquete bind9. La zona sección define un servidor maestro, y se almacenan en un

archivo mencionado en el expediente opción.

Es posible configurar el mismo servidor para ser un servidor de nombres caché, maestro de primaria y secundaria maestro. Un servidor puede ser el inicio de autoridad (SOA) para una zona, mientras que proporciona servicio

secundario por otra zona. Todo el tiempo la prestación de servicios de almacenamiento en caché para las máquinas de la LAN local.

2,2. Nombre del servidor de

almacenamiento en caché

La configuración por defecto está configurado para actuar como un servidor de almacenamiento en caché. Todo lo que

se requiere es simplemente añadir la Las direcciones IP de los servidores DNS de su ISP. Simplemente quite y editar el siguiente en / Etc / bind / named.conf.options:

forwarders {

1.2.3.4; 5.6.7.8;

};

Reemplazar 1.2.3.4 y 5.6.7.8 con las direcciones IP de servidores de nombres reales.

Ahora reinicie el servidor DNS, para habilitar la nueva configuración. Desde una terminal:

141

Domain Name Service (DNS)

sudo service bind9 reiniciar

Ver Sección 3.1.2, "cavar" [p. 147] para obtener información sobre las pruebas un

almacenamiento en caché del servidor DNS.

2,3. Maestro de Primaria

En esta sección BIND9 será configurado como el maestro primario para el dominio example.com. Simplemente reemplazar example.com con su nombre de dominio completo (Fully Qualified Domain Name).

2.3.1. Adelante Archivo de Zona

Para agregar una zona DNS BIND9, convirtiendo BIND9 en un servidor maestro primario, el primer paso es editar / etc / bind / named.conf.local:

zone "example.com" { type master; archivo "/ etc / bind / db.example.com";

};

Ahora usa un archivo de zona existente como una plantilla para crear la / Etc / bind / db.example.com

archivo:

sudo cp / etc / bind / db.local / etc / bind / db.example.com

Edite el nuevo archivo de zona / Etc / bind / db.example.com cambiar localhost. que el nombre

completo de su servidor, dejando el adicional "." al final. Cambiar 127.0.0.1 a la dirección IP del servidor de nombres y root.localhost a una dirección de correo electrónico válida, pero con un "." en lugar del habitual símbolo "@",

dejando de nuevo el "." al final. Cambiar el comentario para indicar el dominio que este archivo es para el.

Crear una Un registro para el dominio de base, example.com. También, crear una Un registro para

ns.example.com, el servidor de nombres en este ejemplo:

; ; BIND archivo de datos para example.com

; $ TTL

@ 604800 EN SOA example.com. root.example.com. (

2 604800

86400 2419200

604800) EN

;

@ @

@ ns

EN EN

EN EN

NS A

AAAA A

ns.example.com. 192.168.1.10

:: 1 192.168.1.10

A 192.168.1.10

; De serie ; Actualizar

; Reintentar ; De Vencimiento

; Negativa de caché TTL

142

Domain Name Service (DNS)

Se debe incrementar el Número de serie cada vez que realice cambios en el archivo de zona. Si usted hace varios cambios antes de reiniciar BIND9, simplemente aumenta la serie una vez.

Ahora, usted puede agregar registros DNS en el fondo del archivo de zona. Ver Sección 4.1, "Registro Común Tipos de "[p. 151] para más detalles.

Muchos administradores les gusta usar la última fecha editado como el de serie de una zona, tales como

2012010100 que es yyyymmddss (donde ss es el número de serie)

Una vez que haya realizado cambios en el archivo de zona BIND9 tiene que ser reiniciado para que los cambios

surtan efecto:

sudo service bind9 reiniciar

2.3.2. Invertir Archivo de Zona

Ahora que la zona es la configuración y la resolución de nombres a IP Direcciones uno Invierta la zona También

se requiere. A Zona inversa permite a los DNS para resolver una dirección a un

nombre.

Editar / etc / bind / named.conf.local y añadir lo siguiente:

zona "1.168.192.in-addr.arpa" { type master;

archivo "/ etc/bind/db.192"; };

Reemplazar 1.168.192 con los primeros tres octetos de cualquier red que esté utilizando. Además, el nombre del archivo de zona / Etc/bind/db.192 apropiadamente. Debe coincidir con el primer octeto de

su red.

Ahora crea el / Etc/bind/db.192 archivo:

sudo cp / etc/bind/db.127 / etc/bind/db.192

La próxima edición / Etc/bind/db.192 cambiando los básicamente las mismas opciones / Etc / bind /

db.example.com:

;

; Reverso los datos del archivo de BIND para la red local de

192.168.1.XXX ; $ TTL @

604800 EN SOA ns.example.com. root.example.com. (

2; serie

604800 86400

2419200 604800)

;

; Actualizar ; Reintentar ; De Vencimiento ; Negativa de caché TTL

143

Domain Name Service (DNS)

@ 10

EN EN

NS PTR

ns. ns.example.com.

La Número de serie en la zona inversa debe ser incrementado en cada cambio también. Para cada Un registro se configura en la / Etc / bind / db.example.com, Es decir, para una dirección diferente, es

necesario crear una Registro PTR en / Etc/bind/db.192.

Después de crear el archivo de zona inversa reiniciar BIND9:

sudo service bind9 reiniciar

2,4. Maestro de Secundaria

Una vez que un Maestro de Primaria se ha configurado un Maestro de Secundaria se necesita para mantener el disponibilidad del dominio que el principal no esté disponible.

En primer lugar, en el servidor maestro primario, la transferencia de zona que se debe permitir. Añadir el allow-

transfer opción para el ejemplo de avance y retroceso en la definición de zonas / Etc / bind / named.conf.local:

zone "example.com" {

type master; archivo "/ etc / bind / db.example.com";

allow-transfer {192.168.1.11;}; };

zona "1.168.192.in-addr.arpa" { type master;

archivo "/ etc/bind/db.192"; allow-transfer {192.168.1.11;};

};

Reemplazar 192.168.1.11 con la dirección IP de su servidor de nombres secundario.

Reinicie BIND9 en el maestro de primaria:

sudo service bind9 reiniciar

A continuación, en el maestro secundario, instale el paquete bind9 la misma manera que en la primaria. A

continuación, edite la / Etc / bind / named.conf.local y añadir las siguientes declaraciones para el Avance y retroceso zonas:

zone "example.com" { tipo de esclavo;

archivo "db.example.com"; maestros {192.168.1.10;};

};

144

Domain Name Service (DNS)

zona "1.168.192.in-addr.arpa" { tipo de esclavo;

archivo "db.192"; maestros {192.168.1.10;};

};

Reemplazar 192.168.1.10 con la dirección IP de su servidor de nombres primario.

Reinicie BIND9 en el maestro secundario:

sudo service bind9 reiniciar

En / Var / log / syslog usted debe ver algo similar a (algunas líneas se han dividido de acuerdo al formato de este documento):

cliente 192.168.1.10 # 39448: recibió notificación para la zona '1 .168.192 in-addr.arpa ". zona de 1.168.192.in-addr.arpa/IN: Transferencia de empezar.

transferencia de '100 .18.172.in-addr.arpa/IN desde 192.168.1.10 # 53:

conectado a través de 192.168.1.11 # 37531 zona de 1.168.192.in-addr.arpa/IN: serie transferido 5

transferencia de '100 .18.172.in-addr.arpa/IN desde 192.168.1.10 # 53: Traslado completado: 1 mensajes

6 registros, 212 bytes, 0.002 secs (106000 bytes por segundo) zona de 1.168.192.in-addr.arpa/IN: notifica el envío de serie (5)

cliente 192.168.1.10 # 20329: recibió notificación de 'example.com' zona de zona example.com / EN: Transferencia de empezar.

la transferencia de 'example.com / EN "de 192.168.1.10 # 53: conéctate con 192.168.1.11 # 38577

zona example.com / EN: serie transferido 5 la transferencia de 'example.com / EN "de 192.168.1.10 # 53: Transferencia de datos completa: 1

mensajes 8 registros, 225 bytes, 0.002 secs (112500 bytes por segundo)

Nota: Una zona sólo se transfiere si el Número de serie en el primario es mayor que el una en el secundario. Si usted quiere tener su DNS primario maestro notificar Secundaria Los servidores DNS de los cambios de zona, puede agregar También a notificar {direccionip;}; en que / Etc / bind / named.conf.local como se muestra en el ejemplo siguiente:

zone "example.com" {

type master; archivo "/ etc / bind / db.example.com";

allow-transfer {192.168.1.11;}; También a notificar {192.168.1.11;}; };

zona "1.168.192.in-addr.arpa" { type master; archivo "/ etc/bind/db.192";

145

Domain Name Service (DNS)

allow-transfer {192.168.1.11;};

También a notificar {192.168.1.11;}; };

El directorio por defecto para los archivos de zona no autorizada es / Var / cache / bind /. Este

directorio también se configura en AppArmor para permitir que el demonio named para escribir en él. Para obtener

más información sobre AppArmor vea Sección 4, "AppArmor" [p. 167].

146

Domain Name Service (DNS)

3. Solución de problemas

Esta sección cubre las maneras de ayudar a determinar la causa cuando surgen problemas con el DNS y BIND9.

3,1. Pruebas

3.1.1. resolv.conf

El primer paso en las pruebas de BIND9 es añadir la dirección IP del servidor de nombres para una resolución de los

ejércitos. La primaria servidor de nombres debe ser configurado, así como otra máquina para doblar las cosas de verificación. Basta con editar / Etc / resolv.conf y añadir lo siguiente:

nameserver 192.168.1.10 nameserver 192.168.1.11

También debe agregar la dirección IP del servidor de nombres secundario en el caso de la Primaria no está disponible.

3.1.2. cavar

Si ha instalado el paquete de dnsutils usted puede probar su configuración mediante la búsqueda de DNS

excavación de utilidad: • Después de instalar bind9 excavación uso en contra de la interfaz de bucle invertido para asegurarse de que está

escuchando en el puerto 53. Desde una terminal:

dig-x 127.0.0.1

Debería ver líneas similares al siguiente en la salida del comando:

;, El tiempo de consulta: 1 ms ;, Servidor: 192.168.1.10 # 53 (192.168.1.10)

• Si se ha configurado como un BIND9 Almacenamiento en caché servidor de nombres "dig" un dominio

externo para comprobar la tiempo de consulta:

dig ubuntu.com

Tenga en cuenta el tiempo de consulta hacia el final de la salida del

comando:

;, El tiempo de consulta: 49 ms

Después de una excavación segundo debe haber mejoras:

;, El tiempo de consulta: 1 ms

147

Domain Name Service (DNS)

3.1.3. hacer ping

Ahora bien, para demostrar cómo las aplicaciones que hacen uso de DNS para resolver un nombre de host utilizar la

utilidad ping enviar una solicitud de eco ICMP. Desde una terminal escriba:

mesa de ping example.com

Esta es la prueba si el servidor de nombres puede resolver el nombre de ns.example.com a una dirección IP. El

comando de salida debe ser similar a:

PING ns.example.com (192.168.1.10) 56 (84) bytes de datos.

64 bytes from 192.168.1.10: icmp_seq = 1 ttl = 64 tiempo = 0,800 ms 64 bytes from 192.168.1.10: icmp_seq = 2 ttl = 64 tiempo = 0,813 ms

3.1.4. named-checkzone

Una gran manera de poner a prueba tus archivos de zona es mediante la utilidad llamado checkzone-instalado con el

bind9 paquete. Esta herramienta le permite asegurarse de que la configuración es correcta antes de reiniciar BIND9 y hacer los cambios vivir.

• Para probar nuestro ejemplo Adelante archivo de zona introduzca lo siguiente en un símbolo del

sistema:

named-checkzone example.com / etc / bind / db.example.com

Si todo está configurado correctamente, debería ver una salida similar a:

zona example.com / IN: loaded serial 6 Aceptar

• De manera similar, para probar el archivo de zona inversa introduzca lo

siguiente:

named-checkzone 1.168.192.in-addr.arpa / etc/bind/db.192

La salida debería ser similar a:

zona de 1.168.192.in-addr.arpa/IN: serie 3 con carga Aceptar

La Número de serie de su archivo de zona será probablemente diferente.

3,2. Inicio de sesión

BIND9 tiene una amplia variedad de opciones de registro de configuración disponibles. Hay dos opciones principales. La canal opción se configura en los registros de ir, y el categoría opción determina qué información registrar.

148

Domain Name Service (DNS)

Si no hay ninguna opción de registro se ha configurado la opción por

defecto es:

registro { categoría por defecto {default_syslog; default_debug;}; categoría inigualable {null;};

};

Esta sección cubre la configuración de BIND9 para enviar depurar mensajes relacionados con las consultas DNS a

una por separado archivo. • En primer lugar, tenemos que configurar un canal para especificar qué archivo a enviar los mensajes. Editar / Etc / bind / named.conf.local y añadir lo siguiente:

registro {

canal de query.log { archivo "/ var / log / query.log"; severidad de depuración 3; };

};

• A continuación, configure una categoría para enviar todas las consultas DNS al

archivo de consulta:

registro { canal de query.log {

archivo "/ var / log / query.log"; severidad de depuración 3;

};

consultas categoría query.log {;} };

Nota: el depurar opción se puede ajustar de 1 a 3. Si un nivel que no se especifica el nivel 1 es el valor

predeterminado.

• Dado que el llamado demonio ejecuta como el se unen el usuario / Var / log / query.log archivo debe ser

creado y la propiedad cambió:

sudo touch / var / log / query.log chown bind sudo / var / log / query.log

• Antes de demonio named puede escribir en el nuevo archivo de registro del perfil de AppArmor se debe actualizar.

En primer lugar, editar / Etc / apparmor.d / usr.sbin.named y añade:

/ Var / log / query.log w,

A continuación, volver a cargar el

perfil de:

cat / etc / apparmor.d / usr.sbin.named | sudo apparmor_parser-r

Para más información sobre Novell AppArmor vea Sección 4, "AppArmor" [p. 167]

149

Domain Name Service (DNS)

• A continuación, reinicie BIND9 para que los cambios surtan

efecto:

sudo service bind9 reiniciar

Usted debe ver el archivo / Var / log / query.log llenar con la información de la consulta. Esta es una

sencilla ejemplo de las opciones de registro BIND9. Para la cobertura de opciones avanzadas, consultar Sección 4.2, "Más De la información "[p. 151].

150

Domain Name Service (DNS)

4. Referencias

4,1. Tipos comunes de registro

Esta sección cubre algunos de los tipos de registro DNS más comunes.

•ARegistro: Este registro asigna una dirección IP a un nombre de host.

www EN A 192.168.1.12

•CNAME Registro: Se utiliza para crear un alias a una ya existente un registro. No se puede crear un CNAME registro que apunta a otro registro CNAME.

web EN CNAME www

•MX Registro: Se utiliza para definir donde el correo electrónico deben enviarse a. Debe apuntar a un registro

A, no un CNAME.

EN correo EN

MX A

1 mail.example.com. 192.168.1.13

•NS Registro: Se utiliza para definir qué servidores sirven copias de una zona. Debe apuntar a un registro A, no un CNAME. Aquí es donde los servidores primario y secundario se definen.

EN EN

ns ns2

EN EN

NS NS

A A

ns.example.com. ns2.example.com.

192.168.1.10 192.168.1.11

4,2. Más información

• El DNS COMO1 explica las opciones más avanzadas para la configuración de BIND9.

• Para la cobertura de la profundidad de DNS y BIND9 ver Bind9.net2.

•DNS and BIND3 es un libro muy popular ahora en su quinta edición.

• Un gran lugar para pedir ayuda BIND9, y que se involucren con la comunidad de Ubuntu Server, se la # Ubuntu-server Canal de IRC en freenode4.

• Asimismo, consulte la BIND9 COMO Servidor5 en el Wiki de Ubuntu.

1 http://www.tldp.org/HOWTO/DNS-HOWTO.html 2 http://www.bind9.net/ 3 http://www.oreilly.com/catalog/dns5/index.html 4 http://freenode.net 5 https://help.ubuntu.com/community/BIND9ServerHowto

151

Capítulo 9. Seguridad

La seguridad siempre debe tenerse en cuenta al instalar, implementar y usar cualquier tipo de ordenador sistema. A pesar de una instalación nueva de Ubuntu es relativamente seguro para su uso inmediato en la Internet, Es importante tener una comprensión equilibrada de la situación de seguridad en sistemas basados en la forma en que se

se utiliza después del despliegue.

En este capítulo se ofrece una visión general de temas relacionados con la seguridad, ya que pertenecer a Ubuntu

12.04 LTS Server Edition, y se esbozan las medidas simples que usted puede utilizar para proteger el servidor y la red de cualquier número de posibles amenazas de seguridad.

152

Seguridad

1. Gestión de usuarios

La administración de usuarios es una parte fundamental de mantener un sistema seguro. Ineficaz de usuario y los

privilegios la gestión de muchos sistemas a menudo conducen a que se vea comprometida. Por lo tanto, es importante que entender cómo usted puede proteger su servidor a través de la gestión de la cuenta de usuario simple y eficaz técnicas.

1,1. ¿Dónde está la raíz?

Los desarrolladores de Ubuntu tomado una decisión concienzuda para deshabilitar la cuenta de root por defecto

administrativa en todas las instalaciones de Ubuntu. Esto no significa que la cuenta de raíz se ha eliminado o que puede no puede acceder. Simplemente se le ha dado una contraseña que coincide con ningún valor encriptado posible, por lo tanto no puede acceder directamente por sí mismo.

En cambio, los usuarios están invitados a hacer uso de una herramienta con el nombre de sudo para llevar a cabo el

sistema las tareas administrativas. Sudo permite a un usuario autorizado para elevar temporalmente sus privilegios usando su propia contraseña en lugar de tener que saber la contraseña perteneciente a la cuenta de root. Esta metodología sencilla y eficaz ofrece la rendición de cuentas para todas las acciones del usuario, y da la de control del administrador granular sobre qué acciones puede realizar un usuario con dichos privilegios.

• Si por alguna razón usted desea habilitar la cuenta de root, sólo tiene que dar una contraseña:

sudo passwd

Sudo le pedirá su contraseña, y luego le pedirá que proporcione una contraseña nueva para root, como

se muestra a

continuación:

Contraseña [sudo] el nombre de usuario: (Introducir su propia contraseña) Escriba la nueva contraseña de UNIX: (Introducir una nueva contraseña para

root) Vuelva a escribir la nueva contraseña de UNIX: (Repetir nueva contraseña

para root) passwd: password updated successfully

• Para desactivar la cuenta de root, utilice la sintaxis siguiente passwd:

sudo passwd-l root

• Usted debe leer más sobre Sudo por el control de su página de manual:

el hombre sudo

Por defecto, el usuario inicial creado por el instalador de Ubuntu es un miembro del grupo "admin", que es agrega al archivo / Etc / sudoers sudo como un usuario autorizado. Si desea dar a cualquier otra cuenta completa acceso de root a través de sudo, sólo tiene que añadir al grupo de administración.

153

Seguridad

1,2. Agregar y eliminar usuarios

El proceso para la gestión de usuarios y grupos locales es directa y se diferencia muy poco de la mayoría

otras distribuciones GNU / Linux los sistemas operativos. Ubuntu y otras distribuciones basadas en Debian, fomentar el

uso de la "adduser" paquete para la gestión de cuentas.

• Para agregar una cuenta de usuario, use la siguiente sintaxis, y siga las instrucciones para dar cuenta de un contraseña e identificable características tales como un nombre completo, número de teléfono, etc

nombre de usuario sudo adduser

• Para eliminar una cuenta de usuario y su grupo primario, use la siguiente sintaxis:

nombre de usuario deluser sudo

Eliminación de una cuenta no elimina su carpeta de inicio correspondiente. Es hasta usted si o no que desea borrar manualmente la carpeta o la mantenga de acuerdo a sus políticas de retención deseados.

Recuerde, cualquier usuario añadido más tarde con el mismo UID / GID como el anterior propietario tendrá ahora el acceso a esta carpeta si no ha tomado las precauciones necesarias.

Es posible que desee cambiar estos valores UID / GID a algo más apropiado, como la raíz teniendo en cuenta, y tal vez incluso la ubicación de la carpeta para evitar conflictos en el futuro:

sudo chown-R root: root / home / usuario / sudo mkdir / home / archived_users /

sudo mv / home / usuario / home / archived_users o

• Para bloquear o desbloquear temporalmente una cuenta de usuario, use la sintaxis siguiente,

respectivamente:

sudo passwd-l nombre de usuario sudo passwd-u nombre de usuario

• Para agregar o eliminar un grupo personalizado, utilice la sintaxis siguiente, respectivamente:

sudo addgroup nombre de grupo sudo delgroup groupname

• Para añadir un usuario a un grupo, utilice la siguiente sintaxis:

sudo adduser nombre de usuario nombre de grupo

1,3. Seguridad del usuario Perfil

Cuando un usuario se crea una nueva, la utilidad adduser crea un directorio de marca nuevo hogar llamado / Home / Nombre de usuario, Respectivamente. El perfil por defecto se basa en el contenido que se encuentra en el directorio

de / etc / skel, Que incluye todos los aspectos básicos del perfil.

154

Seguridad

Si su servidor será el hogar de varios usuarios, se debe prestar mucha atención a la home del usuario permisos de directorio para garantizar la confidencialidad. De forma predeterminada, los directorios personales de

los usuarios de Ubuntu son creada con el mundo de lectura / permisos de ejecución. Esto significa que todos los usuarios pueden buscar y

acceder a la contenido de otros directorios de los usuarios. Esto puede no ser adecuado para su entorno.

• Para verificar sus usuarios actuales permisos del directorio de origen, utilice la siguiente sintaxis:

ls-ld / home / usuario

La siguiente salida muestra que el directorio / Home / usuario tiene permisos de lectura del mundo:

drwxr-xr-x 2 Nombre de usuario Nombre

de usuario 4096 10/02/2007 20:03 nombre de usuario

• Puede eliminar los permisos de lectura del mundo que utilizan la siguiente sintaxis:

sudo chmod 0750 / home / usuario

Algunas personas tienden a utilizar la opción recursiva (-R) de manera indiscriminada, que modifica

todas las subcarpetas y archivos, pero esto no es necesario, y puede dar otros resultados no deseados. El directorio padre solo es suficiente para impedir el acceso no autorizado a cualquier cosa por debajo de la matriz.

Un enfoque mucho más eficiente que el asunto sería la de modificar el valor predeterminado global adduser permisos al crear carpetas personales de los usuarios. Basta con editar el archivo / Etc / adduser.conf y

modificar la DIR_MODE variable a algo más apropiado, de modo que todos los directorios de casas nuevas recibirá el

permisos adecuados.

DIR_MODE = 0750

• Después de corregir los permisos del directorio utilizando cualquiera de las técnicas mencionadas anteriormente,

verifique los resultados utilizando la siguiente sintaxis:

ls-ld / home / usuario

Los siguientes resultados muestran que los permisos de lectura del mundo se han eliminado:

drwxr-x --- 2 Nombre de usuario Nombre

de usuario 4096 10/02/2007 20:03 nombre de usuario

1,4. Directiva de contraseñas

Una directiva de contraseñas seguras es uno de los aspectos más importantes de su postura de seguridad.

Muchos infracciones de seguridad exitosas involucran la fuerza bruta y ataques de diccionario contra la debilidad contraseñas. Si tiene la intención de ofrecer ningún tipo de acceso remoto que involucre su contraseña del sistema local, asegurarse de que usted aborda adecuadamente los requisitos mínimos de complejidad de contraseña, contraseña de

máxima

vidas, y las auditorías frecuentes de sus sistemas de autenticación.

155

Seguridad

1.4.1. Longitud mínima de la contraseña

Por defecto, Ubuntu requiere una longitud mínima de la contraseña de 6 caracteres, así como de base alguna

controles entropía. Estos valores son controlados en el archivo / Etc / pam.d / common-password, Que es se describe a continuación.

contraseña [Éxito = 2 por defecto = ignore] pam_unix.so oscura sha512

Si desea ajustar la longitud mínima de 8 caracteres, cambie la variable adecuada para min = 8. La modificación se exponen a continuación.

contraseña [Éxito = 2 por defecto = ignore] pam_unix.so oscura sha512 min = 8

Controles básicos de la entropía de contraseñas y las normas mínimas de longitud no se aplican al

administrador utilizando los comandos sudo nivel para configurar un nuevo usuario.

1.4.2. Caducidad de la contraseña

Al crear cuentas de usuario, usted debe hacer una política de tener un mínimo y un máximo contraseña de la edad obliga a los usuarios cambiar sus contraseñas cuando caducan.

• Para ver fácilmente el estado actual de una cuenta de usuario, use la siguiente sintaxis:

sudo chage-l nombre de usuario

La salida de abajo muestra datos interesantes sobre la cuenta de usuario, es decir, que no hay políticas

aplica:

Último cambio de contraseña

Contraseña expira Contraseña inactiva

Cuenta caduca Número mínimo de días entre el cambio de contraseña

El número máximo de días entre el cambio de contraseña

Número de días de advertencia antes de que caduque la

contraseña

: 20 de enero 2008

: Nunca : Nunca

: Nunca : 0

: 99999 : 7

• Para cambiar cualquiera de estos valores, basta con utilizar la siguiente sintaxis, y siga los mensajes interactivos:

nombre de usuario sudo chage

El siguiente es un ejemplo de cómo puede cambiar manualmente la fecha de caducidad explícita (-

E) al 01/31/2008, la edad mínima de la contraseña (-m) de 5 días, la edad máxima de la contraseña (-M) de 90 días, período de inactividad (-I) de 5 días después de la expiración de la contraseña, y un período de tiempo de aviso (-W),

de 14 días antes de la caducidad de la contraseña.

chage-E sudo 01/31/2011-m 5-M 90-I-30 W 14 nombre de usuario

• Para comprobar los cambios, utilice la misma sintaxis que se ha mencionado

anteriormente:

156

Seguridad

sudo chage-l nombre de usuario

La salida de abajo muestra las nuevas políticas que se han establecido para la cuenta:

Último cambio de contraseña Contraseña expira Contraseña inactiva

Cuenta caduca

Número mínimo de días entre el cambio de contraseña El número máximo de días entre el cambio de contraseña Número de días de advertencia antes de que caduque la

contraseña

: 20 de enero 2008 : 19 de abril 2008 : 19 de mayo 2008

: 31 de enero 2008

: 5 : 90 : 14

1,5. Otras consideraciones de seguridad

Muchas aplicaciones utilizan mecanismos alternativos de autenticación que pueden ser fácilmente pasados por alto,

incluso por los administradores de sistemas con experiencia. Por lo tanto, es importante para comprender y controlar cómo los

usuarios autenticar y obtener acceso a los servicios y aplicaciones en el servidor. 1.5.1. SSH acceso de los usuarios de movilidad

reducida

Simplemente desactivar / bloqueo de una cuenta de usuario no impedirá que un usuario inicie sesión en el

servidor de forma remota si se ha configurado la autenticación RSA de clave pública. Todavía será capaz de ganar acceso a una consola para el servidor, sin necesidad de ninguna contraseña. Recuerde consultar a los

usuarios Inicio guía para los archivos que permitan este tipo de acceso SSH autenticado. por ejemplo / Home / nombre de usuario / .ssh /

authorized_keys.

Quitar o cambiar el nombre del directorio de . Ssh / en la carpeta principal del usuario para evitar la autentificación de

SSH más capacidades.

Asegúrese de comprobar que no existen conexiones SSH establecidas por el usuario con discapacidad, ya que es

posible que puedan tienen las conexiones existentes de entrada o de salida. Matar a cualquiera que se

encuentran.

Restringir el acceso SSH a cuentas de usuario único que debe tener. Por ejemplo, puede crear un grupo de llamado "sshlogin" y añadir el nombre del grupo como el valor asociado a la AllowGroups variable

encuentra en el archivo / Etc / ssh / sshd_config.

AllowGroups sshlogin

A continuación, agregue sus usuarios SSH permitidos al grupo "sshlogin", y reinicie el servicio SSH.

sudo adduser nombre de usuario sshlogin sudo service ssh restart

1.5.2. Base de datos de autenticación de usuarios externos

La mayoría de las redes empresariales requieren controles centralizados de autenticación y el acceso de todo el

sistema recursos. Si ha configurado el servidor para autenticar a los usuarios contra las bases de datos externas, ya sea

157

Seguridad

asegúrese de desactivar las cuentas de usuario, tanto externa como local, de esta manera se asegura de que reserva

local de la autenticación no es posible.

158

Seguridad

2. Seguridad de la consola Como con cualquier otra barrera de seguridad se pone en su lugar para proteger su servidor, es bastante difícil de

defender contra el daño incalculable causado por alguien con acceso físico a su entorno, por ejemplo,

robo de discos duros, de energía o la interrupción del servicio, y así sucesivamente. Por lo tanto, la consola de la

seguridad debe ser dirigida sólo como un componente de su estrategia global de la seguridad física. Un cerrado "pantalla puerta" puede disuadir a un delincuente ocasional, o al menos frenar un determinado uno, por lo que sigue siendo recomendable realizar las precauciones básicas en materia de seguridad de la consola.

Las instrucciones siguientes le ayudarán a defender a su servidor contra los problemas que de otro modo podrían

producir muy consecuencias graves.

2,1. Desactivar Ctrl + Alt + Supr

En primer lugar, cualquier persona que tenga acceso físico al teclado puede simplemente utilizar el Ctrl + Alt + Supr combinación de teclas para reiniciar el servidor sin tener que iniciar sesión. Claro, alguien podría simplemente desconecte la fuente de alimentación, pero debe evitar el uso de esta combinación de teclas en un servidor de producción. Esto obliga a un atacante tomar medidas más drásticas para reiniciar el servidor, y

evitar reinicios accidentales al mismo tiempo.

• Para desactivar la acción tomada por el reinicio presionando el Ctrl + Alt + Supr combinación de teclas, como

comentario la siguiente línea en el archivo / Etc / init / control-alt-delete.conf.

# Exec shutdown-r now "Control-Alt-Supr presionado"

159

Seguridad

3. Firewall

3,1. Introducción

El kernel Linux incluye el Netfilter subsistema, que se utiliza para manipular o decidir el destino del tráfico de red dirigido hacia oa través de su servidor. Todas las modernas soluciones de firewall de Linux utilizar

este sistema de filtrado de paquetes.

El núcleo del sistema de filtrado de paquetes sería de poca utilidad para los administradores, sin un espacio de usuario interfaz para su gestión. Este es el propósito de iptables. Cuando un paquete llega a su servidor, será entregan al subsistema Netfilter para la aceptación, la manipulación, o el rechazo basado en las reglas suministrado a la misma desde el espacio de usuario a través de iptables. Así, iptables es todo lo que necesita para

administrar su servidor de seguridad si usted está familiarizado con él, pero muchos están disponibles interfaces para simplificar la tarea.

3,2. UFW - Firewall sin complicaciones

El firewall por defecto la herramienta de configuración de Ubuntu es UFW. Desarrollado para facilitar el

firewall iptables configuración, UFW proporciona una manera fácil de usar para crear una dirección IPv4 o IPv6 firewall basado

en host. UFW por defecto está desactivada inicialmente. Desde la página del

manual de UFW:

"UFW no está diseñado para proporcionar la funcionalidad de servidor de seguridad completa a través de su interfaz de

comandos, pero en cambio ofrece una manera fácil de agregar o quitar reglas simples. En la actualidad se utiliza principalmente para la

basada en host cortafuegos. " Los siguientes son algunos ejemplos de cómo utilizar UFW:

• En primer lugar, UFW tiene que estar habilitado. Desde una terminal escriba:

sudo enable UFW

• Para abrir un puerto (ssh en este ejemplo):

UFW sudo permiten 22

• Las reglas también se pueden añadir mediante un numerado formato:

inserción UFW sudo permite un 80

• Del mismo modo, para cerrar un puerto abierto:

UFW sudo negar 22

• Para eliminar una regla, utilice delete seguido de la regla:

sudo borrar UFW niega 22

• También es posible permitir el acceso de los ordenadores o redes específicos para un puerto. El siguiente ejemplo permite el acceso ssh desde el host 192.168.0.2 a cualquier dirección IP en el host:

160

Seguridad

UFW sudo permiten proto tcp desde 192.168.0.2 a cualquier puerto 22

Reemplazar 192.168.0.2 con 192.168.0.0/24 para permitir el acceso ssh desde la subred completa.

• Adición de la - Dry-run opción de un UFW comando mostrará las reglas resultantes, pero no los aplica.

Por ejemplo, lo siguiente es lo que se aplicaría si la apertura del puerto HTTP:

UFW sudo - dry-run permite http

* Filtro de

: Ufw-user-input - [0:0] : Ufw-user-salida - [0:0] : Ufw-user-hacia adelante - [0:0] : Ufw-user-límite - [0:0] : Ufw-user-límite-aceptar - [0:0]

REGLAS # # # # # #

# # # # # # Tupla permiten TCP 80 0.0.0.0 / 0 cualquier

0.0.0.0 / 0 -A tcp UFW-user-input-p - dport 80-j ACCEPT

# # # END REGLAS # # #

-A VOLVER UFW-user-input-j -A VOLVER UFW-user-output-j

-A VOLVER UFW-user-hacia adelante-j

-Un límite de UFW-user-límite-m - límite 3/minute-j LOG - log-prefix "[LÍMITE UFW]:" -A UFW-user-limit-j REJECT

-A UFW-user-límite-accept-j ACCEPT COMMIT

Reglas de

actualización • UFW se puede desactivar por:

UFW sudo deshabilitar

• Para ver el estado del firewall, escriba:

estado de UFW sudo

• Y para obtener más información sobre el estado detallado

usar:

UFW sudo estado detallado

• Para ver el numerado formato:

estado de UFW sudo contados

Si el puerto que desea abrir o cerrar se define en / Etc / services, Puede utilizar el puerto nombre en lugar del número. En los ejemplos anteriores, reemplazar 22 con ssh.

161

Seguridad

Esta es una breve introducción al uso de UFW. Por favor refiérase a la página del UFW para más información.

3.2.1. UFW Integración de Aplicaciones

Las aplicaciones que los puertos abiertos pueden incluir un perfil de UFW, el cual detalla los puertos necesarios

para el aplicación para funcionar correctamente. Los perfiles se mantienen en / Etc / ufw / applications.d, Y puede

ser editar si los puertos por defecto han sido cambiadas.

• Para ver las aplicaciones que ha instalado un perfil, escriba lo siguiente en una terminal:

UFW sudo lista de aplicaciones

• Similar a la que permite el tráfico a un puerto, con un perfil de aplicación se lleva a cabo mediante la

introducción de:

UFW sudo permitir a Samba

• Una sintaxis extendida está disponible, así:

UFW desde 192.168.0.0/24 permite a cualquier aplicación de Samba

Reemplazar Samba y 192.168.0.0/24 con el perfil de aplicación que esté utilizando y el rango de direcciones IP

de su red.

No es necesario especificar el protocolo para la aplicación, debido a que la información es detalla en el perfil. Además, tenga en cuenta que el aplicación reemplaza el nombre de puerto número.

• Para ver detalles sobre los puertos, protocolos, etc, se define para una aplicación, entrar en:

UFW sudo aplicación info Samba

No todas las aplicaciones que requieren la apertura de un puerto de red vienen con perfiles de agua no

contabilizada, pero si usted tiene perfilado una aplicación y desea que el archivo se incluye en el paquete, por favor envía un error contra el paquete en Launchpad.

ubuntu-bug nameofpackage

3,3. Enmascaramiento IP

El propósito de enmascaramiento IP es permitir que las máquinas con direcciones IP privadas, no se pueden enrutar en

su la red para acceder a Internet a través de la máquina que realiza el enmascaramiento. El tráfico de la privada de la red destinado a Internet debe ser manipulado con las respuestas puedan encaminarse de nuevo a la máquina que realizó la solicitud. Para ello, el núcleo debe modificar el fuente Dirección IP de cada paquete de forma que respuestas serán enviados de nuevo a él, en lugar de a la dirección IP privada que hizo la solicitud, que

es imposible a través de Internet. Linux utiliza Conexión de seguimiento (Conntrack) para realizar un seguimiento de

los cuales conexiones pertenencen a qué máquinas y reencaminar adecuadamente cada paquete de retorno. El tráfico que sale la red privada es por lo que "disfrazó" como que se originó a partir de su puerta de enlace de Ubuntu. Este proceso se denomina en la documentación de Microsoft como Conexión compartida a Internet.

162

Seguridad

3.3.1. ufw Masquerading

Enmascaramiento de IP se puede lograr utilizando reglas personalizadas UFW. Esto es posible porque la corriente de

respaldo finales de UFW es iptables-restore con los archivos de reglas ubicados en / Etc / ufw / *. Normas. Estos archivos

son un buen lugar para añadir iptables antiguas reglas que se usan sin UFW, y las reglas que son más o gateway de la red

puente de relación.

Las normas se dividen en dos archivos diferentes, reglas que se deben ejecutar antes de la línea de comandos UFW normas y reglas que se ejecutan después de las reglas de línea de comandos UFW.

• En primer lugar, el reenvío de paquetes debe ser habilitada en UFW. Dos archivos de configuración tendrá que

ser ajustado, en / Etc / default / ufw cambiar el DEFAULT_FORWARD_POLICY a "aceptar":

= DEFAULT_FORWARD_POLICY "ACEPTAR"

A continuación, edite / Etc / UFW / sysctl.conf y elimine el

comentario:

net/ipv4/ip_forward = 1

Del mismo modo, para descomentar el reenvío IPv6:

net/ipv6/conf/default/forwarding = 1

• Ahora vamos a añadir reglas a la / Etc / ufw / before.rules archivo. Las reglas por defecto sólo se configura

el filtrar mesa, y habilitar el enmascarado de la nat mesa tendrá que ser configurado. Agregue el siguiente a la parte superior del archivo justo después de los comentarios de cabecera:

Número de nat reglas de

mesa * NAT : POSTROUTING ACCEPT [0:0]

# Reenviar el tráfico de eth1 a través de eth0. -A POSTROUTING-s 192.168.0.0/24-o eth0-j MASQUERADE

# No elimine el 'commit' de línea o estas reglas tabla NAT no será procesado COMMIT

Los comentarios no son estrictamente necesarias, pero se considera una buena práctica documentar su

configuración. Además, cuando la modificación de cualquiera de los normas los archivos en / Etc / ufw,

Asegúrese de que estas líneas son la última línea de cada tabla modificada:

# No elimine el 'commit' de línea o estas reglas no será procesado COMMIT

Para cada Mesa una correspondiente COMMIT declaración se requiere. En estos ejemplos sólo el nat y

filtrar las tablas se muestran, pero también se puede añadir reglas para la crudo y mangle tablas.

163

Seguridad

En el ejemplo anterior reemplazar eth0, eth1, y 192.168.0.0/24 con la apropiada las interfaces y el rango de IP para su red.

• Por último, desactivar y volver a habilitar la UFW para aplicar los

cambios:

UFW sudo && sudo desactivar enable UFW

Enmascaramiento de IP ahora debe estar habilitado. También puede agregar cualquier norma adicional hacia adelante

a la / Etc / ufw / before.rules. Se recomienda que estas reglas adicionales se añaden a la UFW-antes- adelante cadena.

3.3.2. iptables Masquerading

iptables también se puede utilizar para habilitar

enmascaramiento. • Similar a la UFW, el primer paso es permitir el reenvío de paquetes IPv4 mediante la edición de / Etc /

sysctl.conf y descomentar la siguiente línea

net.ipv4.ip_forward = 1

Si desea habilitar el reenvío IPv6 también se quite:

net.ipv6.conf.default.forwarding = 1

• A continuación, ejecute el comando sysctl para activar la nueva configuración en el fichero de

configuración:

sudo sysctl-p

• Enmascaramiento IP ahora se puede lograr con una sola regla de iptables, que pueden diferir ligeramente basado en la configuración de red:

sudo iptables-t nat-A POSTROUTING-s MASQUERADE 192.168.0.0/16-o ppp0-j

El comando anterior supone que el espacio de direcciones privadas es 192.168.0.0/16 y que su Dispositivos orientados a Internet es ppp0. La sintaxis se descompone de la siguiente manera:

•-t nat - la regla es entrar en la tabla nat

•-A POSTROUTING - la regla se van a añadir (-A) a la cadena POSTROUTING

•-s 192.168.0.0/16 - la regla se aplica al tráfico originado en el espacio de direcciones especificado

•-o ppp0 - la regla se aplica al tráfico programado para ser enviadas a través del dispositivo de red especificado

•-j MASQUERADE - el tráfico coincidiendo esta regla es la de "saltar" (-j) al destino MASQUERADE para ser manipulados como se ha descrito anteriormente

• Además, cada cadena en la tabla filter (la tabla por defecto, y donde la mayoría o la totalidad filtrado de paquetes se

produce) tiene un valor predeterminado política de ACCEPT, pero, si va a crear un servidor de seguridad, además de un

dispositivo de puerta de enlace puede haber establecido las políticas a DROP o REJECT, en cuyo caso el tráfico enmascarado necesita que se les permita a través de la cadena FORWARD de la regla anterior para trabajar:

164

Seguridad

iptables-A FORWARD ACCEPT sudo-s 192.168.0.0/16-o ppp0-j iptables-A FORWARD-d sudo 192.168.0.0/16-m state \

- State ESTABLISHED, RELATED-i ppp0-j ACCEPT

Los comandos anteriores se permiten todas las conexiones de su red local a Internet y todos los

tráfico relacionado con esas conexiones para volver a la máquina que los inició.

• Si desea disfrazado para estar habilitado en el reinicio, el cual es probable que sí, editar / Etc / rc.local y añadir los comandos utilizados por encima. Por ejemplo, agrega el primer comando sin filtro:

iptables-t nat-A POSTROUTING-s MASQUERADE 192.168.0.0/16-o ppp0-j

3,4. Registros

Los registros del firewall son esenciales para el reconocimiento de los ataques, solucionar los problemas de las reglas

del cortafuegos, y darse cuenta de una actividad inusual en la red. Usted debe incluir reglas de registro en el servidor de seguridad para que sean generado, sin embargo, las reglas y el registro debe venir antes de cualquier norma aplicable en la terminación (por

regla general con una objetivo que decide el destino del paquete, como ACCEPT, DROP, o REJECT).

Si está utilizando UFW, puede activar el registro, escriba lo siguiente en una terminal:

UFW sudo iniciar sesión

Para desactivar el registro en la UFW, basta con sustituir en con de En el comando anterior.

Si el uso de iptables en lugar de UFW, escriba:

iptables-A INPUT-sudo estatales m - state NEW-p tcp - dport 80 \ -J LOG - log-prefix "NEW_HTTP_CONN:"

Una petición en el puerto 80 desde la máquina local, entonces, generar un registro en dmesg que tiene este aspecto (Una sola línea se dividió en tres para adaptarse a este documento):

[4304885.870000] NEW_HTTP_CONN: IN = OUT = MAC he = 00:00:00:00:00:00:00:00:00:00:00:00:08:00

SRC = 127.0.0.1 DST = 127.0.0.1 LEN = 60 TOS = 0x00 PREC = 0x00 TTL = 64 ID = 58288 DF PROTO =

TCP SPT = 53981 DPT = 80 WINDOW = 32767 RES = 0x00 SYN URGP = 0

El registro anterior también aparecerá en / Var / log / messages,/ Var / log / syslog, Y / Var / log /

kern.log. Este comportamiento puede ser modificado mediante la edición / Etc / syslog.conf adecuada o por la instalación

y configurar ulogd y utilizando el objetivo ULOG en lugar de LOG. El demonio es un espacio de usuario ulogd servidor que escucha las instrucciones de registro del núcleo específicamente para firewalls, y puede registrar a cualquier archivo que desee, o incluso a una base de datos MySQL o PostgreSQL. Dar sentido a los registros del firewall puede ser simplificada mediante el uso de una herramienta de análisis de registro como logwatch, fwanalog, fwlogwatch o liras.

165

Seguridad

3,5. Otras herramientas

Hay muchas herramientas disponibles para ayudarle a construir un completo firewall sin el conocimiento íntimo de iptables. Para la interfaz gráfica de usuario inclinada:

•fwbuilder1 es muy poderoso y le resultará familiar a un administrador que ha utilizado un comercial utilidad como servidor de seguridad de Checkpoint Firewall-1.

Si usted prefiere una herramienta de línea de comandos con archivos de

configuración de texto sin formato: •Shorewall2 es una solución muy poderosa para ayudarle a configurar un firewall avanzado para cualquier red.

3,6. Referencias

• El Ubuntu Firewall3 página wiki contiene información sobre el desarrollo de la UFW.

• Además, la página de manual de UFW contiene información muy útil: el hombre UFW.

• Consulte el de filtrado de paquetes-HOWTO4 para obtener más información sobre el uso de iptables.

• El NAT-HOWTO5 contiene más detalles sobre enmascaramiento.

• El IPTables HowTo6 en el wiki de Ubuntu es un gran recurso.

1 http://www.fwbuilder.org/~~V 2 http://www.shorewall.net/ 3 https://wiki.ubuntu.com/UncomplicatedFirewall 4 http://www.netfilter.org/documentation/HOWTO/packet-filtering-HOWTO.html 5 http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO.html 6 https://help.ubuntu.com/community/IptablesHowTo

166

Seguridad

4. AppArmor

AppArmor es una implementación del módulo de seguridad de Linux sobre el nombre en los controles de acceso

obligatorios. AppArmor limita programas individuales a un conjunto de archivos de la lista y POSIX capacidades de los proyectos

de 1003.1e. AppArmor está instalado y cargado por defecto. Se utiliza perfiles de una aplicación para determinar qué archivos

y los permisos de la aplicación requiere. Algunos paquetes a instalar sus propios perfiles, y adicionales perfiles se pueden encontrar en el paquete apparmor los perfiles.

Para instalar el paquete apparmor los perfiles de una terminal:

sudo apt-get install apparmor los perfiles

Perfiles de AppArmor tienen dos modos de ejecución:

• Quejarse / aprendizaje: violaciónes perfil se permiten y se registran. Útil para pruebas y el desarrollo de nuevos perfiles.

• Aplicado / confinado: aplica las políticas de perfil, así como el registro de la violación.

4,1. Usando AppArmor

El paquete de AppArmor-utils contiene utilidades de línea de comandos que puede utilizar para cambiar el AppArmor el modo de ejecución, ver el estado de un perfil, crear nuevos perfiles, etc

• apparmor_status se utiliza para ver el estado actual de los perfiles de AppArmor.

sudo apparmor_status

• AA-se quejan de lugares en un perfil quejarse modo.

sudo aa-complain / ruta / a / bin

• aa-enforce coloca un perfil en hacer cumplir modo.

sudo aa-enforce / ruta / a / bin

• El / Etc / apparmor.d directorio es donde los perfiles de AppArmor se encuentran. Se puede utilizar para

manipular el modo de todos los perfiles.

Escriba el siguiente para colocar todos los perfiles en el modo de queja:

sudo aa-complain / etc / apparmor.d / *

Para colocar todos los perfiles en el modo de

aplicación:

sudo aa-enforce / etc / apparmor.d / *

167

Seguridad

Apparmor_parser • Se utiliza para cargar un perfil en el núcleo. También se puede utilizar para volver a cargar una

actualmente perfil de carga utilizando la -R opción. Para cargar un perfil:

cat / etc / apparmor.d / profile.name | apparmor_parser-a sudo

Para cargar un perfil:

cat / etc / apparmor.d / profile.name | sudo apparmor_parser-r

•/ Etc / init.d / AppArmor se puede utilizar para recargar todos los

perfiles:

sudo / etc / init.d / apparmor recarga

• El / Etc / apparmor.d / desactivar directorio se puede utilizar junto con la opción-R para apparmor_parser inhabilitar un perfil.

sudo ln-s / etc / apparmor.d / profile.name / etc / apparmor.d / desactivar / sudo apparmor_parser-R / etc / apparmor.d / profile.name

A volver a habilitar un perfil de personas con discapacidad eliminar el enlace simbólico con el perfil en / Etc / apparmor.d / desactivar /. A continuación, cargar el perfil de uso de la -Un opción.

sudo rm / etc / apparmor.d / desactivar / profile.name cat / etc / apparmor.d / profile.name | apparmor_parser-a sudo

• AppArmor puede ser deshabilitado, y el módulo del kernel descargado, escriba lo siguiente:

sudo / etc / init.d / apparmor parada sudo update-rc.d-f remove apparmor

• Para volver a habilitar AppArmor escriba:

sudo / etc / init.d / apparmor inicio sudo update-rc.d apparmor por defecto

Reemplazar profile.name con el nombre del perfil que desea manipular. Además, reemplace / ruta / a / bin / con la ruta del archivo ejecutable real. Por ejemplo, para el uso comando ping /

bin / ping

4,2. Perfiles

Perfiles de AppArmor son simples archivos de texto ubicados en / Etc / apparmor.d /. Los archivos se nombran

después del ruta completa al archivo ejecutable que el perfil de sustitución de la "/" con ".". Por ejemplo / Etc / apparmor.d / bin.ping es el perfil de AppArmor para el / Bin / ping comando.

Hay dos tipos principales de reglas utilizadas en los perfiles:

•Las entradas de Ruta: que detallan los archivos que una aplicación puede acceder en el sistema

de archivos.

168

Seguridad

•Capacidad de las entradas: determinar cuáles son los privilegios de un proceso confinado se le

permite utilizar.

A modo de ejemplo echar un vistazo a / Etc / apparmor.d /

bin.ping:

# Include <tunables/global> / Bin / ping flags = (complain) {

# Include <abstractions/base> # Include <abstractions/consoles> # Include <abstractions/nameservice>

capacidad de net_raw, capacidad de setuid, de red sin inet,

/ Bin / ping Mixr, / Etc / modules.conf r,

}

•# Include <tunables/global>: incluyen las declaraciones de otros archivos. Esto permite que las declaraciones

relativas a múltiples aplicaciones que se colocan en un archivo común.

•/ Bin / ping flags = (complain): ruta hacia el programa perfilado, también para establecer el modo se quejan.

•capacidad de net_raw,: permite que el acceso a las aplicaciones de la capacidad CAP_NET_RAW POSIX.1e.

•/ Bin / ping Mixr,: permite la aplicación leer y ejecutar el acceso al archivo.

Después de editar un archivo de perfil el perfil debe ser recargada. Ver Sección 4.1, "Uso de

AppArmor "[p. 167] para más detalles.

4.2.1. Creación de un perfil

•Diseñar un plan de pruebas: Trate de pensar en cómo la aplicación debe ser ejercida. El plan de pruebas debe se divide en los casos de prueba pequeñas. Cada caso de prueba debe tener una pequeña descripción y una lista de los

pasos para seguir.

Algunos casos de prueba estándar son:

• Puesta en marcha del programa.

• Detención del programa.

• Recarga del programa.

• Prueba de todos los comandos soportados por el guión de inicio.

•Generar el nuevo perfil: Utilice aa-genprof para generar un nuevo perfil. Desde un terminal:

sudo aa-genprof ejecutable

Por ejemplo:

sudo aa-genprof slapd

169

Seguridad

• Para obtener su nuevo perfil incluido en el paquete apparmor los perfiles, cursa un bug en el Launchpad contra la AppArmor7 paquete:

• Incluya a su plan de pruebas y casos de prueba.

• Conecte su nuevo perfil para el error.

4.2.2. Actualización de perfiles

Cuando el programa se está portando mal, los mensajes de auditoría son enviados a los archivos de registro. El

programa de AA-logprof puede ser utilizado para escanear los archivos de registro de mensajes de auditoría AppArmor, revisarlos y actualizar

los perfiles. Desde un terminal:

sudo aa-logprof

4,3. Referencias

• Consulte el Guía de administración de Novell AppArmor8 para las opciones de configuración avanzadas.

• Para más detalles con AppArmor con otras versiones de Ubuntu ver el AppArmor Wiki de la Comunidad9 página.

• El OpenSUSE AppArmorDe 10 páginas es otra introducción a AppArmor.

• Un gran lugar para pedir ayuda AppArmor, e involucrarse con el servidor de Ubuntu

comunidad, es el # Ubuntu-server Canal de IRC en freenode11.

7 https://bugs.launchpad.net/ubuntu/+source/apparmor/+filebug 8

apparmor201_sp10_admin/data/book_apparmor_admin.html 9 https://help.ubuntu.com/community/AppArmor 10 http://en.opensuse.org/SDB:AppArmor_geeks 11 http://freenode.net

170

Seguridad

5. Certificados

Una de las formas más comunes de criptografía hoy es de clave pública criptografía. De clave pública

criptografía utiliza un clave pública y un la clave privada. El sistema funciona encriptación información utilizando la clave pública. La información puede ser sólo descifrado utilizando la clave privada.

Un uso común de criptografía de clave pública es el cifrado del tráfico de aplicaciones utilizando una conexión segura Layer (SSL) o la capa de transporte de conexión Security (TLS). Por ejemplo, la configuración de Apache para proporcionar HTTPS, el protocolo HTTP sobre SSL. Esto permite que una manera de cifrar el tráfico mediante un

protocolo que no se proporciona cifrado.

ACertificado es un método utilizado para distribuir un clave pública y otra información sobre un servidor y la organización que es responsable de ello. Los certificados pueden ser firmados digitalmente por un Certificación Autoridad o CA. Una CA es un tercero de confianza que se ha confirmado que la información contenida en el certificado es exacta.

5,1. Tipos de certificados

Para configurar un servidor seguro utilizando criptografía de clave pública, en la mayoría de los casos, le enviaremos

su certificado petición (incluyendo su clave pública), una prueba de identidad de su empresa, y el pago a la CA. La CA verifica la solicitud de certificado y su identidad, y luego envía de vuelta un certificado para su seguridad

servidor. Alternativamente, usted puede crear su propio auto-firmado certificado.

Tenga en cuenta que los certificados con firma personal no debe ser utilizado en la mayoría de entornos

de producción.

Continuando con el ejemplo HTTPS, un certificado firmado por una CA proporciona dos importantes capacidades

que una certificado auto-firmado no lo hace:

• Los navegadores (normalmente) reconocen automáticamente el certificado y permiten una conexión segura para

ser sin preguntar al usuario.

• Cuando una CA emite un certificado firmado, está garantizando la identidad de la organización que es

proporcionando las páginas web al navegador.

La mayoría de los navegadores de Internet y computadoras, que soportan SSL tienen una lista de CAs cuyos

certificados aceptan automáticamente. Si el navegador encuentra un certificado autorizado por una CA que no está en la lista, la navegador pregunta al usuario si desea aceptar o rechazar la conexión. Además, otras aplicaciones pueden generar un mensaje de error cuando se utiliza un certificado auto-chamuscado.

El proceso de obtención de un certificado de una CA es bastante sencillo. Un vistazo rápido a lo siguiente:

1. Crear un par de cifrado de clave pública y privada.

2. Crear una solicitud de certificado sobre la base de la clave pública. La petición contiene información acerca de su servidor y la compañía que lo hospeda.

171

Seguridad

3. Enviar la solicitud de certificado, junto con documentos que prueben su identidad, a la CA. No podemos decir que el certificado que la autoridad de elegir. Su decisión puede estar basada en sus experiencias pasadas, o en las experiencias de sus amigos o colegas, o simplemente en factores monetarios.

Una vez que haya decidido por un CA, necesitará seguir las instrucciones que se le indiquen para

obtener un certificado de los mismos.

4. Cuando la CA esté satisfecha de que usted es quien dice ser, le envía una cámara digital certificado.

5. Instale este certificado en su servidor seguro, y configurar las aplicaciones necesarias para utilizar el certificado.

5,2. Generar una petición de firma de certificado (CSR)

Ya sea que usted está recibiendo un certificado de una CA o generando su propio certificado auto-firmado, el primer paso consiste en generar una clave.

Si el certificado se utilizará por los demonios de servicios, tales como Apache, Postfix, Dovecot, etc, una clave sin una palabra de paso es a menudo apropiado. No tener una frase de paso permite que los servicios se inicie sin intervención manual, por lo general la mejor manera de iniciar un demonio.

Esta sección cubre la generación de una clave con una contraseña, y otro sin él. La clave no passphrase a continuación, se utiliza para generar un certificado que se puede utilizar con diversos demonios de servicio.

El funcionamiento de su servicio de seguro sin una frase de paso es conveniente porque usted no tendrá que

para ingresar la contraseña cada vez que inicie el servicio de seguro. Sin embargo, es inseguro y un compromiso de la clave significa un compromiso del servidor.

Para generar el claves para la solicitud de firma de certificado (CSR), ejecute el comando siguiente desde un terminal:

openssl genrsa-des3-out server.key 2048

Generación de una clave privada RSA de 2048 bits módulo de

tiempo .......................... + + + + + + ....... + + + + + +

e es 65537 (0x10001) Escriba una frase de la server.key:

Ahora puede introducir su contraseña. Para mayor seguridad, que deberá contener al menos ocho caracteres. La longitud mínima al especificar-des3 es de cuatro caracteres. Se debe incluir números y / o puntuacion y no ser una palabra en un diccionario. También recuerde que su contraseña distingue entre mayúsculas y

minúsculas.

Vuelva a escribir la contraseña, para verificar. Una vez que haya que volver a escribir correctamente, la clave del

servidor se genera y se almacenada en el server.key archivo.

Ahora crear la clave de la inseguridad, el que no tiene una contraseña, y barajar los nombres de las

teclas:

172

Seguridad

openssl rsa-in-out server.key server.key.insecure mv server.key server.key.secure

mv server.key.insecure server.key

La clave de la inseguridad se llama ahora server.key, Y usted puede utilizar este archivo para generar la

responsabilidad social, sin frase de contraseña.

Para crear el CSR, ejecute el siguiente comando en una terminal:

openssl req-new-key server.key-out server.csr

Se le pedirá que introduzca la contraseña. Si introduce la contraseña correcta, se le pedirá que introduzca Nombre de la empresa, Nombre del sitio, Identificación del email, etc Una vez que entre todos estos detalles, la RSE se

creará y se almacena en el server.csr archivo.

Ahora puede enviar ese archivo CSR a una CA para su procesamiento. El CA se utiliza este archivo CSR y emitirá el certificado. Por otro lado, puede crear un certificado autofirmado utilizando este CSR.

5,3. Creación de un certificado autofirmado

Para crear un certificado auto-firmado, ejecute el siguiente comando en una terminal:

openssl x509-req-days 365-in-server.csr signkey server.key-out server.crt

El comando anterior le pedirá que introduzca la contraseña. Una vez que ingrese la contraseña correcta,

su certificado, se creará y se guardará en el server.crt archivo.

Si su servidor seguro se va a utilizar en un entorno de producción, es probable que tenga un CA- certificado firmado. No se recomienda el uso de un certificado autofirmado.

5,4. Instalación del certificado

Puede instalar el archivo de clave server.key y el archivo de certificado server.crt, O el archivo de certificado

expedido por su CA, mediante la ejecución de comandos siguientes en una terminal:

sudo server.crt cp / etc / ssl / certs sudo cp server.key / etc / ssl / private

Ahora sólo tiene que configurar todas las aplicaciones, con la posibilidad de utilizar criptografía de clave pública, para

utilizar el certificado y clave archivos. Por ejemplo, Apache puede proporcionar HTTPS, Dovecot puede proveer IMAPS y POP3S, etc

5,5. Autoridad de Certificación

Si los servicios de la red requiere más que unos pocos certificados con firma personal puede ser vale la pena el esfuerzo adicional para configurar su propia interna Autoridad de Certificación (CA). Uso de los certificados de

firma

173

Seguridad

por su propia CA, permite a los distintos servicios que utilizan los certificados a confiar fácilmente otros servicios que

utilizan certificados emitidos por la misma CA.

1. En primer lugar, crear los directorios para sostener el certificado de la CA y los

archivos relacionados:

sudo mkdir / etc / ssl / CA sudo mkdir / etc / ssl / newcerts

2. La CA tiene unos pocos archivos adicionales para funcionar, uno para realizar un seguimiento del último número

de serie utilizado por la CA, todos los certificados deberán tener un número de serie único, y otro archivo para registrar qué certificados han sido emitidos:

sudo sh-c "echo '01 '> / etc / ssl / CA / de serie" sudo touch / etc / ssl / CA / index.txt

3. El tercer archivo es un archivo de configuración de CA. Aunque no es estrictamente necesario, es muy

conveniente al emitir varios certificados. Editar / Etc / ssl / openssl.cnf, Y en el [CA_default] cambiar:

dir

base de datos certificado

de serie private_key

= / Etc / ssl / # Si todo se mantiene

= $ Dir / CA / index.txt índice de base de datos de

archivo #. = $ Dir / certs / cacert.pem # El certificado de CA = $ Dir / CA / serie # El número de serie actual = $ Dir / private / cakey.pem # La clave privada

4. A continuación, cree el certificado raíz auto-

chamuscado:

openssl req-new-x509-extensiones-v3_ca keyout cakey.pem Salida cacert.pem días de 3650

A continuación se le pedirá que introduzca los detalles sobre el certificado.

5. Ahora instalar el certificado raíz y la clave:

sudo mv cakey.pem / etc / ssl / private / sudo cacert.pem mv / etc / ssl / certs /

6. Ahora está listo para iniciar la firma de los certificados. El primer elemento necesario es una firma de

certificado Solicitud de la empresa (RSE), consulte Sección 5.2, "Generación de una solicitud de firma de certificado

(CSR)" [p. 172] para más detalles. Una vez que usted tiene una responsabilidad social, escriba lo siguiente para generar un

certificado firmado por la CA:

sudo openssl ca-in-server.csr de configuración / etc / ssl / openssl.cnf

Después de introducir la contraseña de la clave de la CA, se le pedirá que firme el certificado y, de nuevo para confirmar el nuevo certificado. A continuación, debería ver una cantidad algo grande de la

producción relacionados con la creación de certificados.

7. Ahora debe haber un nuevo archivo, / Etc/ssl/newcerts/01.pem, Que contiene la misma salida. Copiar y la pasta de inicio todo con la línea: ----- BEGIN CERTIFICATE ----- y continuando a través de la línea: ---- END CERTIFICATE ----- líneas a un archivo cuyo nombre el nombre de host del

174

Seguridad

servidor en el que el certificado se instalará. Por ejemplo mail.example.com.crt, Es un buen nombre descriptivo.

Certificados subsecuentes serán nombrados 02.pem,03.pem, Etc

Reemplazar mail.example.com.crt con su propio nombre descriptivo.

8. Por último, copie el nuevo certificado a la máquina que necesita, y configurar la adecuada

aplicaciones para usarlo. La ubicación predeterminada para instalar certificados es / Etc / ssl / certs. Esto

permite múltiples servicios a utilizar el mismo certificado, sin los permisos de archivos demasiado complicadas.

Para las aplicaciones que se pueden configurar para utilizar un certificado de la CA, también debe copiar el / Etc / ssl / certs / cacert.pem presentar a la / Etc / ssl / certs / directorio en cada servidor.

5,6. Referencias

• Para obtener instrucciones más detalladas sobre el uso de la criptografía de ver el Certificados SSL

HOWTO12 por tlpd.org • La Wikipedia HTTPS13 página tiene más información sobre HTTPS.

• Para más información sobre OpenSSL véase el OpenSSL Página de inicio14.

• Además, O'Reilly Red de Seguridad con OpenSSL15 es una buena referencia en profundidad.

12 http://tldp.org/HOWTO/SSL-Certificates-HOWTO/index.html 13 http://en.wikipedia.org/wiki/Https 14 http://www.openssl.org/~~V 15 http://oreilly.com/catalog/9780596002701/

175

Seguridad

6. eCryptfs

eCryptfs es un POSIX de clase empresarial sistema de archivos de cifrado apilado para Linux. Estratificación

en la parte superior de la capa de sistema de ficheros eCryptfs protege los archivos sin importar el sistema de

archivos subyacente, la partición tipo, etc

Durante la instalación hay una opción para encriptar el / Home partición. Esto configurará automáticamente

todo lo necesario para cifrar y montar la partición.

Como ejemplo, esta sección incluye la configuración de / Srv que se cifran utilizando eCryptfs.

6,1. Usando eCryptfs

En primer lugar, instalar los paquetes necesarios. Desde una terminal escriba:

sudo apt-get install ecryptfs-utils

Ahora montar la partición a cifrar:

sudo mount-t ecryptfs / srv / srv

A continuación se le pedirá algunos detalles sobre cómo ecryptfs debe cifrar los datos.

Para probar que los archivos colocados en / Srv de hecho son copia cifrada de la / Etc / default carpeta

para / Srv:

sudo cp-r / etc / default / srv

Ahora desmontar / Srv, Y tratar de ver un archivo:

sudo umount / srv cat / srv / default / cron

Remontar / Srv utilizando ecryptfs hará que los datos visibles de nuevo.

6,2. Montaje automático de particiones cifradas

Hay un par de maneras de montar automáticamente un sistema de ficheros cifrado ecryptfs en el arranque. Este ejemplo se utiliza un / Root / .ecryptfsrc archivo que contiene las opciones de montaje, junto con un archivo de

contraseña que reside en una llave USB.

En primer lugar, crear / Root / .ecryptfsrc que

contiene:

clave = contraseña: passphrase_passwd_file = / mnt / usb / passwd_file.txt ecryptfs_sig = 5826dd62cf81c615

ecryptfs_cipher = aes ecryptfs_key_bytes = 16

176

Seguridad

ecryptfs_passthrough = n ecryptfs_enable_filename_crypto = n

Ajuste el ecryptfs_sig a la firma en / Root / .ecryptfs / sig-cache.txt.

A continuación, crear el / Mnt / usb / passwd_file.txt frase de

contraseña del archivo:

passphrase_passwd = [secretos]

Ahora añada las líneas necesarias para / Etc / fstab:

/ Dev/sdb1/mnt/usbext3 / Srv / srv eCryptfs defaults 0 0

ro 0 0

Asegúrese de que la unidad USB se monta antes de la partición cifrada.

Por último, reiniciar el sistema y el / Srv debe montarse utilizando eCryptfs.

6,3. Otras Utilidades

El paquete ecryptfs-utils incluye varias utilidades útiles:

•ecryptfs-setup-private: crea una ~ / Privado directorio que contiene la información codificada. Esta utilidad

puede ser ejecutado por usuarios sin privilegios para mantener los datos privados de otros usuarios en

el sistema. •ecryptfs-mount-privada y ecryptfs-umount privado: se puede montar y desmontar, respectivamente, a los usuarios

una ~ / Privado directorio. •ecryptfs-añade-contraseña: añade una nueva frase de contraseña para el archivo de

claves del kernel. •ecryptfs-manager: administra los objetos tales como llaves eCryptfs.

•ecryptfs-stat: le permite ver la información de metadatos ecryptfs de un archivo.

6,4. Referencias

• Para más información sobre eCryptfs véase el Plataforma de lanzamiento del proyecto la página16. • Existe también una Linux Journal17 El artículo que cubre eCryptfs.

• Además, para más opciones eCryptfs ver el ecryptfs página de manual18.

• El eCryptfs Wiki de Ubuntu19 página también cuenta con más detalles.

16 https://launchpad.net/ecryptfs 17 http://www.linuxjournal.com/article/9400 18 http://manpages.ubuntu.com/manpages/precise/en/man7/ecryptfs.7.html 19 https://help.ubuntu.com/community/eCryptfs

177

Capítulo 10. Monitoreo

178

Monitoreo

1. Información general La supervisión de los servidores y servicios esenciales es una parte importante de la administración del sistema.

La mayoría de los servicios de red son monitoreados para el funcionamiento, disponibilidad, o ambas cosas. En esta

sección se cubrirá instalación y configuración de Nagios para supervisar la disponibilidad y Munin para el desempeño seguimiento.

Los ejemplos de esta sección se utilizan dos servidores con nombres de host servidor01 y Server02. Servidor01 se configurará con Nagios para supervisar los servicios en sí mismo y Server02. Servidor01 también ser configurado con el paquete munin para recabar información de la red. Usando el paquete munin-node, Server02 se puede configurar para enviar información a server01.

Espero que estos sencillos ejemplos le permitirá supervisar los servidores y servicios adicionales en su red.

179

Monitoreo

2. Nagios

2,1. Instalación

En primer lugar, sobre servidor01 instalar el paquete de nagios. En una

terminal escriba:

sudo apt-get install nagios-nagios3 nrpe-plug-in

Se le pedirá que introduzca una contraseña para la nagiosadmin usuario. Las credenciales del usuario se almacenan en / etc/nagios3/htpasswd.users. Para cambiar el nagiosadmin de su clave o agregar usuarios adicionales a la Nagios scripts CGI, utilice el htpasswd que forma parte del paquete apache2-utils.

Por ejemplo, para cambiar la contraseña de la nagiosadmin usuario introduzca:

sudo htpasswd / etc/nagios3/htpasswd.users nagiosadmin

Para añadir un usuario:

sudo htpasswd / etc/nagios3/htpasswd.users steve

A continuación, sobre Server02 instalar el paquete nagios-nrpe-servidor. Desde un terminal en Server02

escriba:

sudo apt-get install nagios-nrpe-servidor

NRPE le permite realizar controles locales en hosts remotos. Hay otras formas de lograr esto a través de plugins de Nagios otros, así como otros controles.

2,2. Introducción a la Configuración

Hay un par de directorios que contienen archivos de configuración de Nagios y de verificación.

•/ Etc/nagios3: Contiene los archivos de configuración para el funcionamiento del daemon de nagios, los archivos

CGI, hosts, etc

•/ Etc / nagios-plugins: Casas de archivos de configuración para las revisiones de

servicio. •/ Etc / nagios: En el host remoto contiene los archivos de configuración de nagios-nrpe-servidor.

•/ Usr / lib / nagios / plugins /: En los archivos binarios de verificación se almacenan. Para ver las opciones de

uso de verificación la -H opción.

Por ejemplo: / Usr / lib / nagios / plugins / h check_dhcp-

Hay una gran cantidad de cheques de Nagios puede ser configurado para ejecutar para cualquier huésped. Por esta Nagios ejemplo se configurará para comprobar el espacio en disco, el DNS, y un hostgroup MySQL. El DNS comprobar estará en Server02, y la hostgroup MySQL incluirá tanto servidor01 y Server02.

180

Monitoreo

Ver Sección 1, "HTTPD - Servidor web Apache 2" [p. 187] para más detalles sobre la configuración de

Apache, Capítulo 8, el Servicio de Nombres de Dominio (DNS) [p. 139] para el DNS, y Sección 1, "MySQL" [p. 206] para MySQL.

Además, hay algunos términos que, una vez explicado se espera que haga la comprensión de Nagios

configuración más fácil:

•Anfitrión: un servidor, estación de trabajo, dispositivo de red, etc que se está

supervisando. •Anfitrión del grupo: un grupo de hosts similares. Por ejemplo, puede agrupar todos los servidores web, servidor de

archivos, etc •Servicio: el servicio está monitoreando en el host. Tal como HTTP, DNS, NFS, etc

•Servicio de grupo: le permite agrupar varios servicios juntos. Esto es útil para agrupar múltiples HTTP, por ejemplo.

•Póngase en contacto con: persona que deba ser notificado cuando un evento se lleva a cabo. Nagios puede ser

configurado para enviar mensajes de correo electrónico, Mensajes SMS, etc

Por defecto está configurado Nagios para comprobar HTTP, espacio en disco, SSH, los usuarios actuales, los

procesos, y la carga en el localhost. Nagios también hacer ping a comprobar la puerta de enlace.

Nagios instalaciones grandes pueden ser muy difíciles de configurar. Generalmente es mejor empezar poco a poco,

uno o dos ejércitos, se configuran las cosas de la forma que desee a continuación, expanda.

2,3. Configuración

• 1. En primer lugar, crear un anfitrión archivo de configuración para el Server02. A menos que se especifique

lo contrario, ejecute todas estas comandos en server01. En una terminal escriba:

sudo cp / etc/nagios3/conf.d/localhost_nagios2.cfg \ / Etc/nagios3/conf.d/server02.cfg

En los ejemplos de comandos anteriores y el siguiente, reemplace "Server01", "Server02" 172.18.100.100, y 172.18.100.101 con los nombres de host y direcciones IP de su servidores.

2. A continuación, modifique /

Etc/nagios3/conf.d/server02.cfg:

define host { utilizar nombre_host alias dirección

}

# Verifica el servicio DNS. definir el servicio {

utilizar nombre_host

service_description

generic-service Server02

DNS

genérico de acogida Server02 Servidor 02 172.18.100.101

; Nombre de la plantilla de host para

utilizar

181

Monitoreo

check_command }

check_dns! 172.18.100.101

3. Reinicie el demonio de nagios para habilitar la nueva configuración:

sudo / etc/init.d/nagios3 reinicio

• 1. Ahora añade una definición de servicio para la verificación de MySQL añadiendo lo siguiente a la / Etc/nagios3 / conf.d/services_nagios2.cfg:

# Comprobar servidores MySQL. definir el servicio {

hostgroup_name service_description check_command utilizar notification_interval

}

mysql-servidores MySQL check_mysql_cmdlinecred! nagios! secretas $ HOSTADDRESS generic-service 0; configurar> 0 si desea que se le nueva notificación

2. Amysql-servidores hostgroup ahora debe ser definido. Editar / Etc/nagios3/conf.d / hostgroups_nagios2.cfg y agregó:

# MySQL hostgroup. definir hostgroup {

hostgroup_name

alias miembros

}

mysql-servidores

MySQL servidores localhost, Server02

3. La comprobación de Nagios necesita para autenticar a MySQL. Para agregar un nagios de usuario de

MySQL escriba:

mysql-u root-p-e "crear nagios usuario identificado por" secreto ";"

La nagios usuario tendrá que añadir todos los hosts en el mysql-servidores hostgroup.

4. Reiniciar Nagios para empezar a comprobar los servidores

MySQL.

sudo / etc/init.d/nagios3 reinicio

• 1. Por último configurar NRPE para comprobar el espacio en disco en

Server02.

En servidor01 agregar el servicio de comprobación de /

Etc/nagios3/conf.d/server02.cfg:

Disco # NRPE comprobar. definir el servicio {

utilizar nombre_host

service_description check_command

}

generic-service Server02

nrpe disco check_nrpe_1arg! check_all_disks! 172.18.100.101

182

Monitoreo

2. Ahora, en Server02 editar / Etc / nagios / nrpe.cfg cambiando:

allowed_hosts = 172.18.100.100

Y a continuación en el área de definición del comando

añadir:

comando [check_all_disks] = / usr / lib / nagios / plugins / check_disk w-20-c% al 10%-e

3. Por último, reinicie nagios-nrpe-servidor:

sudo / etc / init.d / nagios-nrpe-reiniciar el servidor

4. Asimismo, el servidor01 reiniciar nagios:

sudo / etc/init.d/nagios3 reinicio

Ahora debería ser capaz de ver la acogida y los cheques de servicios en los archivos de Nagios CGI. Para acceder a

ellos señalar con el navegador para http://server01/nagios3. A continuación se le pedirá la nagiosadmin Nombre de usuario y una contraseña.

2,4. Referencias

En esta sección se ha arañado la superficie de las características de Nagios. El nagios-plugins-extra y nagios- snmp-plugins contiene revisiones de servicio muchos más.

• Para obtener más información, consulte NagiosUn sitio web.

• En concreto, el Documentación en línea2 sitio.

• También existe una lista de librosRelacionado con Nagios y supervisión de la red 3:

• El Nagios Wiki de Ubuntu4 página también cuenta con más detalles.

1 http://www.nagios.org/~~V 2 http://nagios.sourceforge.net/docs/3_0/ 3 http://www.nagios.org/propaganda/books/ 4 https://help.ubuntu.com/community/Nagios

183

Monitoreo

3. Munin

3,1. Instalación

Antes de instalar Munin en servidor01 apache2 tendrá que ser instalado. La configuración por defecto está muy bien para ejecutar un servidor de Munin. Para obtener más información, consulte Sección 1, "HTTPD -

Web Apache2 Servidor "[p. 187].

En primer lugar, sobre servidor01 instalar Munin. En una

terminal escriba:

sudo apt-get install munin

Ahora, en Server02 instalar el paquete munin-nodo:

sudo apt-get install munin-node

3,2. Configuración

En servidor01 editar la / Etc / munin / munin.conf añadiendo la dirección IP de Server02:

# # En primer lugar nuestro "normal"

de acogida. [Server02]

la dirección 172.18.100.101

Reemplazar Server02 y 172.18.100.101 con la dirección real de host e IP para su servidor.

A continuación, configure munin-nodo en Server02. Editar / Etc / munin / munin-node.conf para permitir el

acceso por servidor01:

permiten ^ 172 \ .18 \ .100 \ .100

$

Reemplazar ^ 172 \ .18 \ .100 \ .100 $ con la dirección IP de su servidor de

Munin.

Ahora reinicia munin-nodo en Server02 para que los cambios surtan efecto:

sudo / etc / init.d / reinicio munin-nodo

Finalmente, en un navegador, vaya al http://server01/munin, y usted debería ver los enlaces a los gráficos que

muestran buenos información de la norma munin-plugins para el disco, la red, los procesos y del sistema.

Como se trata de una nueva instalación puede tardar algún tiempo para que los gráficos para mostrar algo

útil.

184

Monitoreo

3,3. Plugins adicionales

El paquete munin-plugins-extra contiene las pruebas de rendimiento de servicios adicionales tales como DNS, DHCP, Samba, etc Para instalar el paquete, desde un terminal escriba:

sudo apt-get install munin-plugins-extra

Asegúrese de instalar el paquete en el servidor y las máquinas de los nodos.

3,4. Referencias

• Consulte el Munin5 sitio web para más detalles.

• En concreto, el Munin Documentación6 página incluye información sobre los plugins adicionales, por escrito plugins, etc

• Además, hay un libro en alemán por la prensa de código abierto: Graphisches Munin Netzwerk-und sistema Monitoreo7.

• Otro recurso es la Munin Wiki de Ubuntu8 páginas.

5 http://munin.projects.linpro.no/ 6 http://munin.projects.linpro.no/wiki/Documentation 7 https://www.opensourcepress.de/index.php?26&backPID=178&tt_products=152 8 https://help.ubuntu.com/community/Munin

185

Capítulo 11. Servidores Web

Un servidor Web es un software responsable de aceptar las peticiones HTTP de los clientes, que se conocen como navegadores web, y que les presten las respuestas HTTP junto con el contenido de los datos opcionales, los cuales

por lo general son las páginas Web, tales como documentos HTML y objetos enlazados (imágenes, etc.)

186

Servidores Web

1. HTTPD - Servidor web Apache 2

Apache es el servidor web más utilizado en los sistemas Linux. Servidores Web se utilizan para servir

Las páginas Web solicitadas por los equipos cliente. Los clientes suelen solicitar y ver páginas Web con Web Las aplicaciones de navegador como Firefox, Opera, cromo, o Mozilla.

Los usuarios introducen un Localizador Uniforme de Recursos (URL) para que apunte a un servidor Web a través de su

completo De nombres de dominio (FQDN) y una ruta de acceso al recurso solicitado. Por ejemplo, para ver la casa página del Sitio web de Ubuntu1 un usuario introducir únicamente el FQDN:

www.ubuntu.com

Para ver el comunidadDos sub-página, el usuario introduzca el FQDN seguido de una ruta:

www.ubuntu.com / comunidad

El protocolo más común que se utiliza para transferir las páginas Web es el Hyper Text Transfer Protocol (HTTP). Protocolos como el Protocolo de transferencia de hipertexto sobre Secure Sockets Layer (HTTPS) y Archivo Transfer Protocol (FTP), un protocolo para la carga y descarga de archivos, también se apoyan.

Servidores web Apache se utilizan a menudo en combinación con el motor de base de datos MySQL, el hipertexto

Preprocessor (PHP) el lenguaje de scripting, y otros lenguajes de scripting populares como Python y Perl. Esta configuración se denomina LAMP (Linux, Apache, MySQL y Perl / Python / PHP) y forma un

plataforma potente y robusta para el desarrollo y despliegue de aplicaciones basadas en Web.

1,1. Instalación

El servidor web Apache 2 está disponible en Ubuntu Linux. Para instalar Apache 2:

• En un terminal escriba el siguiente comando:

sudo apt-get install apache2

1,2. Configuración

Apache2 se configura mediante la colocación directivas en los archivos de texto plano de configuración. Estos

directivas son división entre los siguientes archivos y directorios:

•apache2.conf: el principal archivo de configuración de Apache 2. Contiene la configuración que son global de

Apache2. •conf.d: contiene los archivos de configuración que se aplican a nivel mundial de Apache2. Otros paquetes que

utilizan Apache2 para servir el contenido puede agregar archivos o enlaces simbólicos, a este directorio. •envvars: presentar en Apache2 medio ambiente las variables están

ajustadas.

1 http://www.ubuntu.com 2 http://www.ubuntu.com/community

187

Servidores Web

•httpd.conf: Históricamente, el principal archivo de configuración de Apache 2, llamado así por el demonio httpd. Ahora el archivo está normalmente vacía, como la mayoría de las opciones de configuración se han trasladado a la

siguiente referencia a los directorios. El archivo puede ser utilizado para usuario específico opciones de configuración que

a nivel mundial efecto de Apache2.

•mods-available: este directorio contiene los archivos de configuración tanto para la carga módulos y configurar

ellos. No todos los módulos se tienen archivos de configuración específicos, sin

embargo. •mods-enabled: tiene enlaces simbólicos a los archivos en / Etc/apache2/mods-available. Cuando un

módulo archivo de configuración es un enlace simbólico que se habilitará el apache2 vez que se reinicia.

•ports.conf: casas de las directivas que determinan qué puertos TCP Apache 2 está escuchando.

•sites-available: este directorio tiene archivos de configuración de Apache 2 Máquinas virtuales. Máquinas

virtuales permiten Apache2 sea configurado para varios sitios que tienen configuraciones diferentes. •sites-enabled: como mods-enabled, sites-enabled contiene enlaces simbólicos a la / Etc/apache2/sites- disponible directorio. Del mismo modo, cuando un archivo de configuración en los sitios disponibles-es un enlace

simbólico, el sitio configura estará activo una vez que se reinicie Apache2.

Además, otros archivos de configuración se pueden añadir mediante el Incluir directiva, y los comodines pueden ser utiliza para incluir muchos archivos de configuración. Cualquier directiva puede colocarse en cualquiera de estos

configuración archivos. Los cambios en los archivos principales de configuración sólo son reconocidos por Apache2 cuando se inicia

o reinicia.

El servidor también lee un archivo que contiene los tipos mime de documentos, el nombre del archivo es fijado por el

TypesConfig Directiva, por lo general a través de / Etc/apache2/mods-available/mime.conf, Que también podría incluir adiciones y sustituciones, y es / Etc / mime.types por defecto.

1.2.1. Configuración básica

Esta sección explica los parámetros del servidor Apache2 esenciales de configuración. Consulte el Apache2 Documentación3 para más detalles.

• Los Apache2 trae una configuración por defecto virtual-host de usar. Es decir, se configura con una único servidor virtual predeterminado (usando el VirtualHost Directiva), que puede ser modificado o utilizado tal cual

si tiene una ubicación única, o se utiliza como una plantilla para servidores virtuales adicionales si usted tiene múltiples

sitios. Si se deja solo, el servidor virtual predeterminado funcionará como su sitio de forma predeterminada, o los usuarios del sitio

verán si la URL entran no coincide con el ServerName Directiva de cualquiera de sus sitios personalizados. Para modificar el host virtual por defecto, modifique el archivo / Etc/apache2/sites-available/default.

Las directivas establecidas para una máquina virtual sólo se aplican a esa máquina virtual. Si una directiva se establece a nivel de servidor y no se define dentro de la configuración de la máquina virtual, la

configuración predeterminada es utilizada. Por ejemplo, puede definir una dirección de correo electrónico webmaster y no definir

individuales direcciones de correo electrónico para cada host virtual.

Si desea configurar un nuevo huésped o sitio virtual, copiar ese archivo en el mismo directorio con un nombre que usted elija. Por ejemplo:

3 http://httpd.apache.org/docs/2.2/

188

Servidores Web

sudo cp / etc/apache2/sites-available/default / etc/apache2/sites-available/minuevositio

Edite el nuevo archivo para configurar el nuevo sitio usando algunas de las directivas que se describen a

continuación. • El ServerAdmin Directiva especifica la dirección de correo electrónico para ser objeto de publicidad

para el servidor de administrador. El valor por defecto es webmaster @ localhost. Esto debe cambiar a un correo electrónico dirección que se entrega a usted (si usted es el administrador del servidor). Si su sitio web tiene un problema, Apache2 mostrará un mensaje de error que contiene la siguiente dirección de correo electrónico para

informar del problema a. La directiva se encuentra en el archivo de configuración de su sitio en / etc/apache2/sites-available.

• El Escuchar Directiva especifica el puerto, y, opcionalmente, la dirección IP, Apache2 debe escuchar. Si la dirección IP no se especifica, Apache2 escuchará en todas las direcciones IP asignada a la máquina que se ejecuta. El valor predeterminado de la directiva Listen es 80. Cambiar a 127.0.0.1:80 provocar Apache2 sólo escuche por su dispositivo loopback de forma que no estará disponible a Internet, a (por ejemplo) 81 para cambiar el puerto que escucha en el, o dejarlo como está para el funcionamiento normal. Este directiva se puede encontrar y cambiar en su propio archivo, / Etc/apache2/ports.conf

• El ServerName Directiva es opcional y especifica lo que FQDN su sitio debe responder. La host virtual por defecto no tiene ninguna directiva ServerName especifica, por lo que responderá a todas las

solicitudes que no se corresponden con una directiva ServerName en otra máquina virtual. Si usted acaba de adquirir el dominio Nombre ubuntumola.com, y desea alojar en su servidor de Ubuntu, el valor de la ServerName

Directiva en su archivo de configuración del host virtual, debe ser ubunturocks.com. Añada esta directiva al el nuevo archivo de host virtual que ha creado anteriormente (/ Etc/apache2/sites-available/minuevositio).

Usted también puede querer que su sitio responda a www.ubunturocks.com, ya que muchos usuarios asumen que el prefijo www es apropiado. Utilice el ServerAlias Directiva para esto. También puede usar comodines

en la directiva ServerAlias.

Por ejemplo, la siguiente configuración hará que su sitio para responder a cualquier solicitud de dominio

terminando en . Ubunturocks.com.

ServerAlias *. Ubunturocks.com

• El DocumentRoot Directiva especifica dónde Apache2 debe buscar los archivos que componen el sitio. El valor predeterminado es / var / www, como se especifica en / Etc/apache2/sites-available/default. Si

lo desea, cambie este valor en el archivo de su sitio máquina virtual, y recuerde crear ese directorio si es necesario!

Habilitar el nuevo VirtualHost mediante la utilidad a2ensite y reiniciar Apache2:

sudo mynewsite a2ensite sudo service apache2 reiniciar

Asegúrese de reemplazar mynewsite con un nombre más descriptivo para el host virtual. Un método es el nombre del archivo después de la ServerName Directiva del VirtualHost.

189

Servidores Web

Del mismo modo, utilizar la utilidad a2dissite para desactivar los sitios. Esto es puede ser útil para solucionar

problemas problemas de configuración con múltiples servidores virtuales:

sudo mynewsite a2dissite sudo service apache2 reiniciar

1.2.2. Configuración por defecto

En esta sección se explica la configuración de las configuraciones predeterminadas del servidor Apache2. Por ejemplo,

si se agrega un máquina virtual, la configuración se configuran para la máquina virtual tienen prioridad para ese host virtual. Para una directiva no está definida dentro de la configuración del host virtual, el valor por defecto se utiliza.

• El DirectoryIndex es la página por defecto que entrega el servidor cuando un usuario solicita un índice de un directorio especificado con una barra diagonal (/) al final del nombre del directorio.

Por ejemplo, cuando un usuario solicita la página http://www.example.com/this_directory/, él o ella obtendrá la página DirectoryIndex si existe, una lista de directorios generado por el servidor si no lo hace y la opción de índices se especifica, o una página Permiso Denegado si no es verdad. El servidor intentará para encontrar uno de los archivos enumerados en la directiva DirectoryIndex y le entregará el primero que encuentre. Si no encuentra ninguno de estos archivos y si Opciones Indices está configurado para ese directorio, el servidor

generar y devolver una lista, en formato HTML, de los subdirectorios y los archivos en el directorio. La

valor por defecto, que se encuentra en el / Etc/apache2/mods-available/dir.conf es "index.html, index.pl index.php index.htm index.xhtml ". Por lo tanto, si Apache2 encuentra un archivo en un directorio solicitado que se

ajusta cualquiera de estos nombres, el primero se mostrará.

• El ErrorDocument directiva le permite especificar un archivo de Apache 2 que se utilizará para error específico eventos. Por ejemplo, si un usuario solicita un recurso que no existe, un error de 404 va a producir. Por por defecto, Apache2 sólo devolverá un código de retorno HTTP 404. Leer / Etc/apache2/conf.d /

localiza las páginas de error- para obtener instrucciones detalladas para el uso de ErrorDocument, incluyendo la

ubicación de archivos de ejemplo.

• De forma predeterminada, el servidor escribe el registro de la transferencia al archivo /

Var/log/apache2/access.log. Usted puede cambiar esto en función de cada sitio en los archivos de configuración de la máquina virtual con el CustomLog Directiva, o dejar de aceptar el valor predeterminado, especificado en el / Etc/apache2/conf.d/other-vhosts-access- log. También puede especificar el archivo en el que los errores se registran, a través de la ErrorLog Directiva, cuya por defecto es / Var/log/apache2/error.log. Estos se mantienen separados de los registros de transferencias

para ayudar a en la solución de problemas con el servidor Apache 2. También puede especificar el LogLevel (El valor por defecto es "advertir") y el LogFormat (Ver / Etc/apache2/apache2.conf para el valor

predeterminado valor).

• Algunas opciones se especifican en función de cada directorio en lugar de por servidor. Opciones es uno de estos directivas. Un parrafo Directory es encerrado en XML, como las etiquetas, así:

<Directory /var/www/mynewsite>

... </ Directory>

190

Servidores Web

La Opciones Directiva en un parrafo Directory acepta uno o más de los siguientes valores (Entre otros), separados por espacios:

•ExecCGI - Permite la ejecución de scripts CGI. Los scripts no se ejecutan si esta opción no está

elegido.

La mayoría de los archivos no deben ser ejecutados como scripts CGI. Esto sería muy peligroso. CGI

las secuencias de comandos debe mantenerse en un directorio aparte y fuera de su DocumentRoot, y Sólo de este directorio debe tener el conjunto de opciones ExecCGI. Este es el valor predeterminado,

y el ubicación por defecto para los scripts CGI es / Usr / lib / cgi-bin.

•Incluye - Permitir el lado del servidor incluye. Del lado del servidor incluye permitir que un archivo HTML para

incluir otro archivos. Ver Apache SSI documentación (la comunidad de Ubuntu)4 para más información. •IncludesNOEXEC - Permitir el lado del servidor incluye, pero anula los # Exec y # Include comandos en los scripts CGI.

•Índices - Muestra una lista formateada de los contenidos de un directorio, si no DirectoryIndex (Tales como index.html) existe en el directorio solicitado.

Por razones de seguridad, esto no debe fijarse por lo general, y ciertamente no se deben establecer en el directorio DocumentRoot. Activar esta opción con cuidado sobre una base por directorio sólo si está seguro de que desea que los usuarios ver el contenido completo del directorio.

•Multiview - Soporte de contenido negociados MultiViews, esta opción está desactivada de forma

predeterminada para razones de seguridad. Véase el Apache2 documentación sobre esta opción5.

•SymLinksIfOwnerMatch - Solo seguirá enlaces simbólicos si el fichero o directorio tiene la

mismo propietario que el enlace.

1.2.3. Configuración de httpd

Esta sección explica algunas opciones de configuración básicas httpd demonio.

LockFile - La directiva LockFile establece la ruta al fichero de bloqueo usado cuando el servidor está compilado con

USE_FCNTL_SERIALIZED_ACCEPT o USE_FLOCK_SERIALIZED_ACCEPT. Debe ser almacenada en el disco local. Se debe dejar el valor por defecto a menos que el directorio de registros se encuentra en un NFS acción. Si este es el caso, el valor por defecto debería ser cambiado a una posición en el disco local y al

un directorio que sólo es legible por el root.

PidFile - La directiva PidFile establece el fichero en el que el servidor graba su ID de proceso (PID). Este archivo sólo deben ser legibles por el root. En la mayoría de los casos, se debe dejar el valor por defecto.

Usuario - La directiva User establece el userid usado por el servidor para responder a las solicitudes. Este

ajuste determina el acceso del servidor. Todos los archivos inaccesibles para este usuario también se podrá acceder a su sitio web los visitantes. El valor predeterminado de usuario es "www-data".

4 https://help.ubuntu.com/community/ServerSideIncludes 5 Número de http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html MultiViews

191

Servidores Web

A menos que sepa exactamente lo que estás haciendo, no configure la directiva User al root. Uso root como el usuario puede crear grandes agujeros de seguridad de su servidor Web.

Grupo - La directiva es similar a la directiva de usuario. Group establece el grupo en las que el

servidor atenderá las peticiones. El grupo por defecto es "www-data".

1.2.4. Módulos de Apache2

Apache2 es un servidor modular. Esto implica que sólo la funcionalidad más básica está incluido en el Server Core. Las características extendidas están disponibles a través de módulos que se pueden cargar en Apache 2. Por por defecto, un conjunto base de módulos se incluye en el servidor en tiempo de compilación. Si el servidor está

compilado para usar

carga dinámica de módulos, a continuación, los módulos pueden ser compilados por separado, y añadió en cualquier

momento con la directiva LoadModule. De lo contrario, debe volver a compilar Apache 2 para agregar o quitar módulos.

Ubuntu compila Apache2 para permitir la carga dinámica de módulos. Las directivas de configuración pueden ser condicionalmente incluido en la presencia de un módulo en particular incluyendo entre ellas en un <IfModule> bloquear.

Puede instalar módulos adicionales de Apache2 y usarlos con su servidor Web. Por ejemplo, ejecute el siguiente comando en una terminal para instalar el MySQL autenticación módulo:

sudo apt-get install libapache2-mod-auth-mysql

Véase el / Etc/apache2/mods-available directorio, para los módulos adicionales.

Use la utilidad a2enmod para habilitar un módulo:

sudo a2enmod auth_mysql sudo service apache2 reiniciar

Del mismo modo, se a2dismod desactivar un módulo:

sudo auth_mysql a2dismod sudo service apache2 reiniciar

1,3. Configuración de HTTPS

El módulo mod_ssl añade una importante característica al servidor Apache2 - la habilidad de encriptar comunicaciones. Por lo tanto, cuando el navegador se comunica con SSL, el prefijo https:// al el comienzo de la Uniform Resource Locator (URL) en la barra de navegación del navegador.

El módulo mod_ssl está disponible en paquete apache2-common. Ejecute el siguiente comando de una terminal para activar el módulo mod_ssl:

sudo a2enmod ssl

192

Servidores Web

Hay un archivo de configuración por defecto de HTTPS en / Etc/apache2/sites-available/default-ssl. En Para que Apache 2 para proporcionar HTTPS, un certificado y clave archivo también son necesarios. El valor por

defecto HTTPS configuración utilizará un certificado y una clave generada por el paquete ssl-cert. Son buenos para

las pruebas, pero el certificado generado automáticamente y la clave debe ser sustituido por un certificado

específico para el sitio o servidor. Para obtener información sobre la generación de una clave y obtener un certificado de ver

Sección 5, "Certificados" [p. 171]

Para configurar Apache2 para HTTPS, escriba lo siguiente:

a2ensite sudo default-ssl

Los directorios / Etc / ssl / certs y / Etc / ssl / private son las ubicaciones predeterminadas.

Si instalar el certificado y la clave en otro directorio, asegúrese de cambiar SSLCertificateFile y SSLCertificateKeyFile apropiadamente.

Con Apache2 ahora configurado para HTTPS, reiniciar el servicio para activar la nueva configuración:

sudo service apache2 reiniciar

Dependiendo de cómo haya obtenido su certificado puede ser necesario introducir una contraseña cuando se Apache2 se inicia.

Puede acceder a las páginas del servidor seguro escribiendo en su https://your_hostname/url/ de direcciones del

navegador bar.

1,4. Compartir permiso de escritura

Por más de un usuario para poder escribir en el mismo directorio que será necesario otorgar escritura

permiso a un grupo que tienen en común. El siguiente ejemplo se concede el permiso de escritura compartida a / Var / www al grupo de "webmasters".

sudo chgrp-R webmasters / var / www sudo find / var / www-type d-exec chmod g = rwxs "{}" \;

sudo find / var / www tipo F-exec chmod g = RW "{}" \;

Si el acceso debe ser otorgado a más de un grupo por cada directorio, habilite Access Control Lists (ACL).

1,5. Referencias

•Apache2 Documentación6 contiene información en profundidad sobre Apache2 directivas de configuración. Además,

ver el paquete apache2-doc para la documentación oficial de Apache 2.

• Consulte el Mod SSL Documentación7 sitio para obtener información relacionada con más de SSL.

6 http://httpd.apache.org/docs/2.2/ 7 http://www.modssl.org/docs/

193

Servidores Web

• O'Reilly Apache Cookbook8 es un buen recurso para el cumplimiento de Apache2 específica configuraciones.

• En el caso de Ubuntu específicos Apache2 duda, consulte en la # Ubuntu-server Canal de IRC en freenode.net9.

• Por lo general, integrado con PHP y MySQL el Apache MySQL PHP Wiki de Ubuntu De 10 páginas es una buena recurso.

8 http://oreilly.com/catalog/9780596001919/ 9 http://freenode.net/ 10 https://help.ubuntu.com/community/ApacheMySQLPHP

194

Servidores Web

2. PHP5 - Lenguaje de scripting

PHP es un lenguaje de scripting de propósito general ideal para el desarrollo Web. El script PHP puede ser embebido en páginas HTML. En esta sección se explica cómo instalar y configurar PHP5 en un sistema Ubuntu con Apache2 y MySQL.

En esta sección se asume que usted ha instalado y configurado el servidor web Apache2 y la base de datos MySQL Server. Puede referirse a Apache2 sección y las secciones de MySQL en este documento para instalar y configurar Apache 2 y MySQL respectivamente.

2,1. Instalación

El PHP5 está disponible en Ubuntu Linux. A diferencia de Python y Perl, que se instalan en la base sistema, PHP debe ser añadido.

• Para instalar PHP5 puede introducir el siguiente comando en el terminal:

sudo apt-get install php5 libapache2-mod-php5

Se puede ejecutar scripts de PHP5 desde la línea de comandos. Para ejecutar scripts de PHP5 desde la línea de

comando que debe instalar el paquete php5-cli. Para instalar php5-cli puede introducir el siguiente comando en el terminal:

sudo apt-get install php5-cli

También se puede ejecutar scripts de PHP5 sin necesidad de instalar PHP5 módulo de Apache. Para lograr esto, debe instalar el paquete php5-cgi. Puede ejecutar el siguiente comando en una terminal de sistema para instalar el paquete php5-cgi:

sudo apt-get install php5-cgi

Para usar MySQL con PHP5 debe instalar el paquete php5-mysql. Para instalar php5-mysql que puede introducir el siguiente comando en el terminal:

sudo apt-get install php5-mysql

Del mismo modo, para usar PostgreSQL con PHP5 debe instalar el paquete php5-pgsql. Para instalar php5-

pgsql debe ingresar el siguiente comando en el terminal:

sudo apt-get install php5-pgsql

2,2. Configuración

Cuando haya instalado PHP5, podrá ejecutar scripts de PHP5 desde su navegador web. Si ha instalado php5- paquete de clima, puede ejecutar scripts de PHP5 desde el símbolo del sistema.

195

Servidores Web

Por defecto, el servidor web Apache 2 está configurado para ejecutar scripts de PHP5. En otras palabras, la PHP5 módulo está habilitado en el servidor web Apache 2 automáticamente al instalar el módulo. Por favor, verifique si los archivos / Etc/apache2/mods-enabled/php5.conf y / Etc/apache2/mods-enabled/php5.load

existir. Si no existe, se puede habilitar el módulo con a2enmod comando.

Una vez que instale paquetes relativos a PHP5 y permitió a PHP5 módulo Apache 2, deberá reiniciar

Apache2 servidor Web para ejecutar scripts de PHP5. Puede ejecutar el siguiente comando en el indicador de la

terminal para reiniciar el servidor web:

sudo service apache2 reiniciar

2,3. Pruebas

Para verificar la instalación, puede ejecutar el siguiente script de PHP5 phpinfo:

<? Php phpinfo ();

>

Puede guardar el contenido de un archivo phpinfo.php y colocarlo en DocumentRoot directorio de El servidor web Apache2. Al escribir en el navegador http://hostname/phpinfo.php, Sería mostrar

Los valores de los diversos parámetros de configuración de

PHP5.

2,4. Referencias

• Para información más detallada consulte php.net11 documentos.

• Hay una gran cantidad de libros sobre PHP. Dos buenos libros de O'Reilly son Aprender PHP 512 y

la PHP libro de cocina13.

• Asimismo, consulte la Apache MySQL PHP Wiki de UbuntuPágina 14 para más información.

11 http://www.php.net/docs.php 12 http://oreilly.com/catalog/9780596005603/ 13 http://oreilly.com/catalog/9781565926813/ 14 https://help.ubuntu.com/community/ApacheMySQLPHP

196

Servidores Web

3. Squid - Servidor Proxy

Squid es una completa herramienta web proxy caché de la aplicación de servidor que proporciona servicios de proxy y

caché para Hyper Text Transport Protocol (HTTP), File Transfer Protocol (FTP), y otra popular red protocolos. Squid puede servir de almacenamiento en caché y proxy de Secure Sockets Layer (SSL)

y almacenamiento en caché del servidor de nombres de dominio (DNS), y proporciona servicios de caché

transparente. Squid también soporta una amplia variedad de protocolos de almacenamiento en caché, como protocolo de caché de Internet (ICP)

de la tecnología Hyper Texto almacenamiento en caché de Protocolo (HTCP) el Cache Array Routing Protocol (CARP) y la caché de web Coordinación Protocolo. (WCCP)

El servidor proxy caché Squid es una solución excelente para una variedad de proxy y servidor de almacenamiento en

caché necesidades, y las escalas de la sucursal a las redes de nivel empresarial al tiempo que proporciona amplias, granulares mecanismos de control de acceso y el seguimiento de parámetros críticos a través de la red simple Management Protocol (SNMP). Cuando se selecciona un sistema informático para su uso como Squid dedicado proxy o servidor de caché, asegurarse de que su sistema está configurado con una gran cantidad de memoria física, puesto que Squid mantiene una caché en la memoria para aumentar el rendimiento.

3,1. Instalación

En un terminal, introduzca el siguiente comando para instalar el servidor Squid:

sudo apt-get install squid

3,2. Configuración

Squid se configura editando las directivas contenidas en el / Etc / squid / squid.conf archivo de configuración. Los siguientes ejemplos ilustran algunas de las directrices que pueden ser modificados para

afectar el comportamiento del servidor Squid. Para obtener más en profundidad la configuración de Squid, vea las

referencias sección.

Antes de editar el fichero de configuración, debe hacer una copia del archivo original y proteger contra escritura por lo que tendrá la configuración original como referencia, y volver a utilizar

como necesario.

Copie el / Etc / squid / squid.conf presentar y proteger contra escritura con los siguientes comandos introducidos en un terminal:

sudo cp / etc / squid / squid.conf / etc / squid / squid.conf.original sudo chmod a-w / etc / squid / squid.conf.original

• Para configurar el servidor Squid escuche en el puerto TCP 8888 en lugar del puerto TCP por defecto 3128, el

cambio la directiva http_port como sigue:

http_port 8888

197

Servidores Web

• Cambie la directiva visible_hostname con el fin de dar al servidor Squid tenga un nombre de host específico. Este nombre no tiene por qué ser el equipo es el nombre de host. En este ejemplo se ha establecido para weezie

weezie visible_hostname

• El uso del control de acceso de Squid, puede configurar el uso de los servicios de Internet delegados por Squid esté disponibles sólo los usuarios con Protocolo de Internet seguro (IP). Por ejemplo, vamos a ilustrar el acceso de los usuarios de la subred 192.168.42.0/24 únicamente:

Agregue lo siguiente a la fondo de la sección de ligamento cruzado anterior de su / Etc / squid /

squid.conf archivo:

acl src 192.168.42.0/24 fortytwo_network

A continuación, agregue lo siguiente a la superior de la sección http_access de su archivo / Etc / squid /

squid.conf archivo:

http_access allow fortytwo_network

• Uso de las funciones de control de acceso a excelentes Squid, puede configurar el uso de los servicios de Internet delegados por Squid esté disponible sólo durante las horas normales de oficina. Por ejemplo, vamos a ilustrar el acceso de los empleados de una empresa que opera entre las 9:00 am y 5:00 pm, de lunes a viernes, y que utiliza el 10.1.42.0/42 subred:

Agregue lo siguiente a la fondo de la sección de ligamento cruzado anterior de su / Etc / squid /

squid.conf archivo:

acl src biz_network 10.1.42.0/24 acl biz_hours momento M T W T F 09:00-17:00

A continuación, agregue lo siguiente a la superior de la sección http_access de su archivo / Etc / squid /

squid.conf archivo:

http_access allow biz_hours biz_network

Después de realizar cambios en el / Etc / squid / squid.conf archivo, guardar el archivo y reinicie el

calamar aplicación de servidor para efectuar los cambios con el siguiente comando en una terminal de entrada del sistema:

sudo / etc / init.d / squid restart

3,3. Referencias

Squid Web15

Wiki de Ubuntu Squid16 páginas.

15 http://www.squid-cache.org/~~V 16 https://help.ubuntu.com/community/Squid

198

Servidores Web

4. Ruby on Rails

Ruby on Rails es un framework web de código abierto para desarrollar aplicaciones de bases de datos respaldados por la

web. Lo está optimizado para la productividad sostenible de los programadores, ya que permite al programador escribir el código por convención, favoreciendo sobre la configuración.

4,1. Instalación

Antes de instalar los carriles debe instalar Apache y MySQL. Para instalar el paquete de Apache, por favor referirse a Sección 1, "HTTPD - Servidor web Apache 2" [p. 187]. Para obtener instrucciones sobre la instalación

de MySQL referirse a Sección 1, "MySQL" [p. 206].

Una vez que tenga los paquetes de Apache y MySQL instalado, está listo para instalar Ruby on Rails paquete.

Para instalar los paquetes básicos de Ruby y Ruby on Rails, puede introducir el siguiente comando en el

terminal:

sudo apt-get install rieles

4,2. Configuración

Modificar el / Etc/apache2/sites-available/default archivo de configuración para configurar sus dominios.

Lo primero que debe cambiar es la DocumentRoot Directiva:

DocumentRoot / ruta / al / rails / application / pública

A continuación, cambie la directiva "/path/to/rails/application/public"> <Directory:

<Directory "/path/to/rails/application/public"> Opciones Índices FollowSymLinks MultiViews ExecCGI

AllowOverride All Order allow, deny

Dejar de todas las AddHandler cgi-script. Cgi

</ Directory>

También debe activar el módulo mod_rewrite de Apache. Para habilitar el módulo mod_rewrite, por favor introducir el siguiente comando en una terminal:

a2enmod rewrite sudo

Por último, tendrá que cambiar la propiedad de la / Ruta / al / rails / application / pública y / ruta / al / rails / application / tmp directorios a los que el usuario utiliza para ejecutar el proceso de

Apache:

199

Servidores Web

sudo chown-R www-data: www-data / ruta rieles / Hasta / / aplicaciones / public sudo chown-R www-data: www-data / ruta rieles / Hasta / / aplicaciones / tmp

¡Eso es! Ahora que tenemos un servidor listo para sus aplicaciones de Ruby on Rails.

4,3. Referencias

• Consulte el Ruby on Rails17 sitio web para más información.

• También se Desarrollo ágil con Rails18 es un gran recurso.

• Otro lugar para obtener más información es el Ruby on Rails Wiki de Ubuntu19 páginas.

17 http://rubyonrails.org/~~V 18 http://pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition 19 https://help.ubuntu.com/community/RubyOnRails

200

Servidores Web

5. Apache Tomcat

Apache Tomcat es un contenedor web que le permite servir a Java Servlets y JSP (Java Server Pages) aplicaciones web.

Los paquetes de Tomcat 6.0 en Ubuntu admiten dos formas diferentes de ejecutar Tomcat. Puede instalar

como un clásico único en todo el sistema de instancia, que será ejecutado durante el arranque se ejecutará con la tomcat6 usuario sin privilegios. Pero también se puede implementar instancias privadas que se ejecutará con su

propia derechos de los usuarios, y que debe iniciar y detener por sí mismo. Esta segunda forma es particularmente útil en un contexto de desarrollo del servidor, donde varios usuarios necesitan para poner a prueba en sus propias instancias de

Tomcat privadas.

5,1. Todo el sistema de instalación

Para instalar el servidor Tomcat, puede introducir el siguiente comando en el terminal:

sudo apt-get install tomcat6

Esto instalará un servidor Tomcat con sólo una aplicación web por defecto ROOT que muestra un mínimo de

"Funciona" la página por defecto.

5,2. Configuración

Archivos de configuración de Tomcat se puede encontrar en / Etc/tomcat6. Sólo unos pocos ajustes de configuración

comunes se describe aquí, por favor consulte Documentación de Tomcat 6.020 para obtener más.

5.2.1. Cambio de puertos por defecto

Por defecto Tomcat 6.0 corre un conector HTTP en el puerto 8080 y un conector AJP en el puerto 8009. Usted que desee cambiar los puertos predeterminados para evitar conflictos con otro servidor en el sistema. Es

hace cambiando las siguientes líneas en / Etc/tomcat6/server.xml:

<Connector port = "8080" protocol = "HTTP/1.1" connectionTimeout = "20000"

redirectPort = "8443" />

... <Connector Port="8009" protocol="AJP/1.3" redirectPort="8443" />

5.2.2. Cambio de JVM utiliza

Por defecto Tomcat correrá preferentemente con OpenJDK-6, a continuación, intente JVM de Sun, a

continuación, intente alguna otra JVM. Si usted tiene varias máquinas virtuales de Java instalado, se puede establecer que debe ser utilizado

mediante el establecimiento de JAVA_HOME en / Etc/default/tomcat6:

JAVA_HOME = / usr/lib/jvm/java-6-sun

20 http://tomcat.apache.org/tomcat-6.0-doc/index.html

201

Servidores Web

5.2.3. Declarar los usuarios y roles

Nombres de usuario, contraseñas y roles (grupos) se puede definir centralmente en un contenedor de Servlets. En

Tomcat 6,0 esto se hace en el / Etc/tomcat6/tomcat-users.xml archivo:

<role rolename="admin"/> usuario> username="tomcat" password="s3cret" roles="admin"/>

5,3. Uso de aplicaciones web Tomcat estándar

Tomcat viene con aplicaciones web que se puede instalar la documentación, la administración o de demostración propósitos.

5.3.1. Tomcat documentación

El paquete tomcat6-docs contiene documentación de Tomcat 6.0, empaquetado como una aplicación web que puede acceder de forma predeterminada en http://yourserver:8080/docs. Puede instalarlo escribiendo lo siguiente comando en el terminal:

sudo apt-get install tomcat6-docs

5.3.2. Tomcat administración de aplicaciones web

El paquete tomcat6-admin contiene dos webapps de que se pueden utilizar para administrar el servidor Tomcat

utilizando una interfaz web. Se pueden instalar con el comando siguiente en el terminal del sistema:

sudo apt-get install tomcat6-admin

El primero es el gerente webapp, que se puede acceder de forma predeterminada en http://yourserver:8080/

jefe / html. Se utiliza sobre todo para obtener el estado del servidor y reiniciar aplicaciones

web.

El acceso al gerente aplicación está protegida por defecto: es necesario definir un usuario con el papel de "director", en / Etc/tomcat6/tomcat-users.xml antes de poder acceder a él.

El segundo es el de acogida-manager webapp, que se puede acceder de forma predeterminada en

http:// suservidor: 8080/host-manager/html. Se puede utilizar para crear máquinas virtuales dinámicamente.

El acceso al de acogida-manager la aplicación también está protegido por defecto: es necesario definir

un usuario con el rol "admin" en / Etc/tomcat6/tomcat-users.xml antes de poder acceder a él.

Por razones de seguridad, el usuario tomcat6 no se puede escribir a la / Etc/tomcat6 directorio por defecto. Algunos características de estas aplicaciones web (administrador de implementación de aplicaciones, la creación de máquinas

virtuales) necesita acceso de escritura a ese directorio. Si desea utilizar las funciones de ejecutar la siguiente, para dar a los usuarios en el tomcat6 agrupar los derechos necesarios:

202

Servidores Web

sudo chgrp-R tomcat6 / etc/tomcat6 sudo chmod-R g + w / etc/tomcat6

5.3.3. Ejemplos de aplicaciones web Tomcat

El paquete tomcat6-ejemplos contiene dos Webapps que pueden ser utilizados para probar o demostrar Servlets y JSP características, que se puede acceder a ellos de manera predeterminada en http://yourserver:8080/examples. Usted

puede instálelos con el comando siguiente en el terminal:

sudo apt-get install tomcat6-ejemplos

5,4. Uso de instancias privadas

Tomcat es muy usada en los escenarios de desarrollo y las pruebas donde el uso de una sola en todo el sistema instancia no cumple los requisitos de los usuarios múltiples en un solo sistema. Los paquetes de Tomcat 6.0 en Ubuntu vienen con herramientas para ayudar a implementar sus propias instancias orientadas al usuario, permitiendo

a cada usuario en un sistema para funcionar (sin derechos de root) separados instancias privadas sin dejar de utilizar el sistema instalado bibliotecas.

Es posible ejecutar el ejemplo de todo el sistema y los casos particulares en paralelo, siempre y cuando que no utilizan los mismos puertos TCP.

5.4.1. Instalación de apoyo de instancia privada

Se puede instalar todo lo necesario para ejecutar instancias privadas introduciendo el siguiente comando en de la terminal:

sudo apt-get install tomcat6 usuario

5.4.2. Creación de una instancia privada

Se puede crear un directorio de la instancia privada introduciendo el siguiente comando en la terminal del sistema:

tomcat6-ejemplo-crear mi instancia

Esto creará una nueva mi instancia directorio con todos los subdirectorios y los scripts necesarios. Usted Por ejemplo, puede instalar sus bibliotecas comunes en el lib / subdirectorio y desplegar sus aplicaciones web en el

la webapps / subdirectorio. No hay aplicaciones web se han desplegado por

defecto.

5.4.3. Configuración de la instancia privada

Va a encontrar los archivos de configuración de Tomcat clásicos de la instancia privada en el conf / subdirectorio. Usted debe, por ejemplo, sin duda modificar la conf / server.xml archivo para cambiar el valor por

defecto puertos utilizados por la instancia de Tomcat privada para evitar conflictos con otros casos que podrían ser ejecutando.

203

Servidores Web

5.4.4. Iniciar / detener la instancia privada

Usted puede comenzar su instancia privada introduciendo el siguiente comando en el símbolo de la terminal (Suponiendo que su ejemplo se encuentra en el mi instancia directorio):

my-instance/bin/startup.sh

Usted debe verificar la logs / subdirectorio de cualquier error. Si usted tiene un java.net.BindException: Dirección ya está en uso <null>: 8080 error, significa que el puerto usted está utilizando ya está tomada y que se debe cambiar.

Puede detener la instancia entrando el mandato siguiente en el símbolo de la terminal (en el supuesto su ejemplo se encuentra en el mi instancia directorio):

my-instance/bin/shutdown.sh

5,5. Referencias

• Consulte el Apache Tomcat21 sitio web para más información.

•Tomcat: The Definitive Guide22 es un buen recurso para la construcción de aplicaciones web con Tomcat.

• Para los libros adicionales, consulte la Tomcat Libros23 lista de la página.

• También, vea theUbuntu Wiki Apache Tomcat24 páginas.

21 http://tomcat.apache.org/~~V 22 http://oreilly.com/catalog/9780596003180/ 23 http://wiki.apache.org/tomcat/Tomcat/Books 24 https://help.ubuntu.com/community/ApacheTomcat5

204

Capítulo 12. Bases de datos Ubuntu dispone de dos servidores de bases de datos populares. Ellos

son: • MySQL ™

• PostgreSQL

Están disponibles en el repositorio principal. En esta sección se explica cómo instalar y configurar estos servidores de bases de datos.

205

Bases de datos

1. MySQL

MySQL es un rápido, multi-threaded, multi-usuario, y el servidor robusta base de datos SQL. Está destinado a de misión crítica, con alta carga de los sistemas de producción, así como para integrarse en desplegado software.

1,1. Instalación

Para instalar MySQL, ejecute el siguiente comando en una terminal:

sudo apt-get install mysql-server

A partir de Ubuntu 12.04, MySQL 5.5 se instala por defecto. Si bien esto es 100% compatible con MySQL 5.1 en caso de necesitar la instalación de 5,1 (por ejemplo, para ser un esclavo de otra MySQL 5.1 servidores) que puede instalar el paquete mysql-server-5.1 en su lugar.

Durante el proceso de instalación se le pedirá que introduzca una contraseña para el usuario root de MySQL.

Una vez completada la instalación, el servidor MySQL se iniciará automáticamente. Puede ejecutar el el siguiente comando en una terminal para comprobar si el servidor MySQL se está ejecutando:

sudo netstat-tap | grep mysql

Al ejecutar este comando, debe ver la siguiente línea o algo similar:

tcp 0 0 localhost: mysql *: * ESCUCHAR 2556/mysqld

Si el servidor no se está ejecutando correctamente, puede escribir el siguiente comando para iniciarlo:

sudo service mysql restart

1,2. Configuración

Puede editar el / Etc / mysql / my.cnf presentar para configurar las opciones básicas - archivo de registro, número

de puerto, etc Por ejemplo, para configurar MySQL para escuchar las conexiones de máquinas de la red, cambiar el bind- dirección Directiva a la dirección IP del servidor:

bind-address = 192.168.0.5

Reemplazar 192.168.0.5 con la dirección correspondiente.

Después de hacer un cambio en / Etc / mysql / my.cnf el demonio de MySQL es necesario reiniciar:

206

Bases de datos

sudo service mysql restart

Si desea cambiar el MySQL raíz contraseña, introducir en un terminal:

sudo dpkg-reconfigure mysql-server-5.5

El demonio de MySQL se detuvo, y se le pedirá que introduzca una nueva contraseña.

1,3. Los motores de bases de

datos

Si bien la configuración por defecto de MySQL proporcionado por los paquetes de Ubuntu es perfectamente funcional y funciona bien, hay cosas que usted puede desear para considerar antes de continuar.

MySQL está diseñado para permitir que los datos se almacenan en diferentes maneras. Estos métodos se conocen como ya sea de base de datos o almacenamiento de los motores. Hay dos motores principales que usted va a estar interesado

en: InnoDB y MyISAM. Motores de almacenamiento son transparentes para el usuario final. MySQL se encargará de las cosas de

manera diferente bajo la superficie, pero a pesar de que el motor de almacenamiento está en uso, que va a interactuar con la base de datos de la misma manera.

Cada motor tiene sus propias ventajas y desventajas.

Si bien es posible, y puede ser ventajoso para mezclar y combinar los motores de base de datos en un nivel de la

mesa, esto reduce la eficacia de la optimización del rendimiento que puede hacer lo que será la división de la recursos entre los dos motores en vez de dedicarlos a uno.

• MyISAM es el mayor de los dos. Puede ser más rápido que InnoDB en determinadas circunstancias y a favor de una carga de trabajo de sólo lectura. Algunas aplicaciones web se han ajustado en torno MyISAM

(aunque eso no quiere decir que se retrasará en InnoDB). MyISAM soporta el texto completo tipo de datos, que permite búsquedas muy rápidas de grandes cantidades de datos de texto. Sin embargo MyISAM es sólo es capaz de bloquear toda una tabla para escribir. Esto significa que sólo un proceso puede actualizar una tabla

a la vez. Como cualquier aplicación que utiliza las escalas de mesa que esto puede llegar a ser un obstáculo.

También carece de diario, lo que hace que sea más difícil para los datos que deben recuperarse después de un accidente. En

el siguiente enlace ofrece algunos puntos para su examen sobre el uso de MyISAM en una base de datos de producción1.

• InnoDB es un motor de base de datos más moderno, diseñado para ser ACID compatible2 que garantiza transacciones de base de datos se procesan de forma fiable. Escribir bloqueo puede ocurrir sobre una base a nivel de

fila en una mesa. Eso significa que puede ocurrir varias actualizaciones en una sola tabla de forma simultánea. El

almacenamiento en caché de datos es también se manejan en la memoria en el motor de base de datos, permitiendo el almacenamiento en caché a nivel de

fila más eficiente base en lugar de bloque de archivo. Para satisfacer el cumplimiento de todas las transacciones ACID se registran en el

diario independiente de las mesas principales. Esto permite la recuperación de datos mucho más fiables como la consistencia de datos

puede ser marcada.

A partir de MySQL 5.5 InnoDB es el motor por defecto, y es muy recomendable sobre MyISAM a menos tiene necesidad específica de características únicas para el motor.

1 http://www.mysqlperformanceblog.com/2006/06/17/using-myisam-in-production/ 2 http://en.wikipedia.org/wiki/ACID

207

Bases de datos

1,4. Configuración avanzada

1.4.1. Creación de un archivo my.cnf

sintonizado

Hay un número de parámetros que se puede ajustar dentro de archivo de configuración de MySQL que

le permitirá mejorar el rendimiento del servidor con el tiempo. Para la configuración inicial se puede encontrar Herramienta de generación de Percona de my.cnf3 útil. Esta herramienta ayudará a generar un fichero my.cnf que será mucho más optimizado para sus funciones de servidor específicas y sus requisitos.

No reemplazar el archivo my.cnf existente con un Percona, si ya ha cargado los datos en el

base de datos. Algunos de los cambios que estarán en el archivo no será compatible si alteran la cantidad de datos es almacenados en el disco duro y usted no podrá iniciar MySQL. Si usted desea utilizarlo y tener que los datos existentes, será necesario llevar a cabo un mysqldump y vuelva a cargar:

mysqldump - all-databases - todas las rutinas de-u root-p> del ~ o fulldump.sql

Este le pedirá la contraseña de root antes de crear una copia de los datos. Es aconsejable asegurarse de que no hay otros usuarios o procesos que utilizan la base de datos, mientras esto ocurre. Dependiendo la cantidad de datos que tienes en tu base de datos, esto puede tardar un tiempo. No se ve nada en la pantalla durante este proceso.

Una vez que el vertedero se ha completado, apague MySQL:

sudo service mysql stop

Ahora copia de seguridad del fichero my.cnf y sustituirlo por uno nuevo:

sudo cp / etc / my.cnf / etc / my.cnf.backup sudo cp / ruta / al / nuevo / my.cnf / etc / my.cnf

A continuación, elimine y vuelva a inicializar el espacio de base de datos y que la propiedad sea la correcta antes de

reiniciar MySQL:

sudo rm-rf / var / lib / mysql / * mysql_install_db sudo sudo chown-R mysql: / var / lib / mysql sudo service mysql start

Finalmente lo único que queda es volver a importar los datos. Para darnos una idea de hasta qué punto el proceso de

importación tiene usted puede encontrar la utilidad 'Visor de Pipe', pv, útil. A continuación se muestra cómo instalar y utilizar PV este caso, pero si prefieres no usarlo basta con sustituir pv con el gato en el siguiente comando. Ignore cualquier Los tiempos de ETA producidos por pv, que están basadas en el tiempo medio de tramitación de cada fila del archivo,

pero

la velocidad de la inserción puede variar enormemente de una fila a otra, con

mysqldumps:

3 http://tools.percona.com/members/wizard

208

Bases de datos

sudo apt-get install pv pv del ~ o fulldump.sql | mysql

Una vez que se complete todo es bueno para ir!

Esto no es necesario que todos los cambios my.cnf. La mayoría de las variables que puede que desee

cambiar para mejorar el rendimiento son ajustables, incluso mientras el servidor está en ejecución. Como con

cualquier cosa, asegúrese de tener una buena copia de seguridad de archivos de configuración y los datos antes de realizar

cambios. 1.4.2. MySQL Tuner

Sintonizador de MySQL es una herramienta útil que se conectará a un funcionamiento de las sugerencias de instancias

de MySQL y la oferta de cómo puede ser mejor configurado para su carga de trabajo. Cuanto más tiempo que el servidor ha estado

funcionando durante, al mejor el mysqltuner consejos puede ofrecer. En un entorno de producción, considere esperar por lo menos 24 horas antes de ejecutar la herramienta. Usted puede conseguir instalar mysqltuner de los repositorios de Ubuntu:

sudo apt-get install mysqltuner

Entonces una vez que la haya instalado, se

ejecuta:

mysqltuner

y esperar a que su informe final. La sección superior se ofrece información general sobre el servidor de base de datos,

y la parte inferior proporciona sugerencias para el ajuste de alterar en su my.cnf. La mayoría de estos puede ser

alterado en vivo en el servidor sin necesidad de reiniciar, busca a través de la documentación oficial de MySQL

(enlace en la sección de Recursos) para las variables relevantes para el cambio en la producción. La siguiente es parte de un informe ejemplo de una base de datos de producción que muestra que puede haber algún beneficio de aumentar la cantidad de caché de consultas:

-------- Recomendaciones ----------------------------------------- ------------

Recomendaciones generales: Ejecutar OPTIMIZE TABLE para desfragmentar tablas para un mejor rendimiento

Aumentar table_cache gradualmente para evitar los límites de descriptores

de fichero Las variables a ajustar: key_buffer_size (> 1,4 g) query_cache_size (> 32M)

table_cache (> 64) innodb_buffer_pool_size (> = 22G)

Un comentario final sobre las bases de datos de ajuste: Mientras que en términos generales se puede decir que ciertos

ajustes son los mejores, el rendimiento puede variar de una aplicación a otra. Por ejemplo, lo que funciona mejor para Wordpress podría no ser lo mejor para Drupal, Joomla o aplicaciones propietarias. Su rendimiento depende del los tipos de consultas, el uso de índices, el grado de eficiencia en el diseño de base de datos es y así sucesivamente.

Usted puede encontrar que es útil para pasar un tiempo en busca de consejos de ajuste de bases de datos basado en las aplicaciones que

están usar para. Una vez que llegue allá de cierto punto los ajustes que realice sólo se traducirá en menores mejoras, y usted va a estar mejor ya sea la mejora de la aplicación, o mirando a la ampliación de su medio ambiente a través de bases de datos o bien utilizando un hardware más potente o mediante la adición de los

servidores esclavos.

209

Bases de datos

1,5. Recursos

• Consulte el MySQL Home Page4 para más información.

• La documentación completa está disponible en los formatos online y offline de la Desarrolladores de MySQL

portal5

• Para ver información general de SQL Uso de SQL Edition Especial6 por Rafe Colburn.

• El Apache MySQL PHP Wiki de Ubuntu7 página también tiene información útil.

4 http://www.mysql.com/ 5 http://dev.mysql.com/doc/ 6 http://www.informit.com/store/product.aspx?isbn=0768664128 7 https://help.ubuntu.com/community/ApacheMySQLPHP

210

Bases de datos

2. PostgreSQL

PostgreSQL es un sistema de base de datos objeto-relacional que tiene las características de las entidades

comerciales tradicionales los sistemas de bases de datos con las mejoras que se encuentran en la próxima generación de sistemas DBMS.

2,1. Instalación

Para instalar PostgreSQL, ejecute el comando siguiente en el símbolo del sistema:

sudo apt-get install postgresql

Una vez completada la instalación, debe configurar el servidor PostgreSQL en base a sus necesidades, aunque la configuración por defecto es viable.

2,2. Configuración

De forma predeterminada, la conexión a través de TCP / IP está deshabilitado. PostgreSQL soporta la autenticación

de clientes múltiples métodos. Método de autenticación IDENT se utiliza para los usuarios de postgres y locales, a menos que configurado. Por favor, consulte el Administrador de PostgreSQL si desea configurar alternativas como Kerberos8.

La discusión siguiente se supone que se desea habilitar las conexiones TCP / IP y utilizar el MD5

método de autenticación del cliente. Archivos de configuración de PostgreSQL se almacenan en la / Etc / postgresql / <versión> / main directorio. Por ejemplo, si instala PostgreSQL 8.4, los archivos de configuración son almacenada en el / Etc/postgresql/8.4/main directorio.

Para configurar ident autenticación, añadir entradas a la / Etc/postgresql/8.4/main / pg_ident.conf archivo. Hay observaciones detalladas en el archivo que te guíe.

Para habilitar las conexiones TCP / IP, edite el archivo / Etc/postgresql/8.4/main/postgresql.conf

Busque la línea # Listen_addresses = 'localhost' y cambiará a:

listen_addresses 'localhost' =

Para permitir que otros equipos para conectarse a su servidor PostgreSQL sustituir 'localhost' con la Dirección IP de su servidor, o, alternativamente, '0 .0.0.0 'para obligar a todas las interfaces.

También puede editar todos los demás parámetros, si sabes lo que estás haciendo! Para obtener más información,

consulte la archivo de configuración o de la documentación de PostgreSQL.

Ahora que podemos conectar a nuestro servidor PostgreSQL, el siguiente paso es establecer una contraseña para el

postgres usuario. Ejecute el siguiente comando en una terminal para conectarse a la plantilla predeterminada de PostgreSQL base de datos:

8 http://www.postgresql.org/docs/8.4/static/admin.html

211

Bases de datos

sudo-u postgres psql template1

El comando de arriba se conecta a la base de datos PostgreSQL template1 como usuario postgres. Una vez que se

conecte con el servidor PostgreSQL, que será en el intérprete de SQL. Puede ejecutar el comando SQL siguiente en el indicador de psql para establecer la contraseña para el usuario postgres.

ALTER USER postgres con contraseña cifrada "su_contraseña ';

Después de configurar la contraseña, edite el archivo / Etc/postgresql/8.4/main/pg_hba.conf para utilizar MD5 la autenticación con el postgres usuario:

local todo postgres md5

Por último, debe reiniciar el servicio de PostgreSQL para inicializar la nueva configuración. Desde un terminal ingrese el siguiente para reiniciar PostgreSQL:

sudo / etc/init.d/postgresql-8.4 reinicio

La configuración anterior no está completa, por cualquier medio. Por favor, consulte PostgreSQL Guía del administrador9 para configurar más parámetros.

2,3. Recursos

• Como se mencionó anteriormente la Guía del administrador10 es un excelente recurso. La guía también está

disponible en el paquete postgresql-doc-8.4. Ejecute lo siguiente en una terminal para instalar el paquete:

sudo apt-get install postgresql-doc-8.4

Para ver la guía de entrar en file :/ / / usr/share/doc/postgresql-doc-8.4/html/index.html en la dirección

barra de su navegador.

• Para ver información general de SQL Uso de SQL Edition Especial11 por Rafe Colburn.

• Asimismo, consulte la PostgreSQL Wiki de UbuntuPágina 12 para más información.

9 http://www.postgresql.org/docs/8.4/static/admin.html 10 http://www.postgresql.org/docs/8.4/static/admin.html 11 http://www.informit.com/store/product.aspx?isbn=0768664128 12 https://help.ubuntu.com/community/PostgreSQL

212

Capítulo 13. Aplicaciones LAMP

213

Aplicaciones LAMP

1. Información general Instalaciones de LAMP (Linux + Apache + MySQL + PHP / Perl / Python) son un montaje muy popular para Ubuntu

servidores. Hay un gran número de aplicaciones de código abierto escrito usando la pila de aplicaciones LAMP.

Algunas aplicaciones LAMP populares son Wiki, Sistemas de Gestión de Contenidos y Gestión Software como phpMyAdmin.

Una de las ventajas de la lámpara es la flexibilidad sustancial para la base de datos, servidor web, y las secuencias de

comandos idiomas. Sustitutos populares para MySQL incluye PostgreSQL y SQLite. Python, Perl y Ruby También se utiliza con frecuencia en lugar de PHP. Mientras que Nginx, Cherokee y Lighttpd puede sustituir a Apache.

La forma más rápida para empezar es instalar LAMP utilizando tasksel. Tasksel es una herramienta de Debian /

Ubuntu que instala varios paquetes relacionados como una coordinada "tarea" en su sistema. Para instalar una lámpara servidor:

• En un terminal escriba el siguiente comando:

sudo tasksel install lamp-servidor

Después de instalarlo usted será capaz de instalar a la mayor parte LÁMPARA aplicaciones de

esta manera: • Descargar un archivo que contiene los archivos de origen de la aplicación.

• Descomprima el archivo, por lo general en un directorio accesible a un servidor web.

• Dependiendo de donde se extrajo la fuente, configurar un servidor web para servir a los archivos.

• Configurar la aplicación para conectarse a la base de datos.

• Ejecutar un script, o navegar a una página de la aplicación, para instalar la base de datos que necesita el aplicación.

• Una vez que los pasos anteriores, o medidas similares, se han completado ya está listo para comenzar a utilizar la

aplicación.

Una desventaja del uso de este enfoque es que los archivos de la aplicación no se colocan en el sistema de archivos en

una forma estándar, lo cual puede causar confusión en cuanto a donde se instala la aplicación. Otro más grande desventaja es la actualización de la aplicación. Cuando una nueva versión es liberada, el mismo proceso utilizado

para instalar la aplicación que se necesita para aplicar las actualizaciones.

Afortunadamente, un número de LÁMPARA aplicaciones ya están empacados para Ubuntu, y están disponibles para instalación de la misma manera como aplicaciones LAMP no. Dependiendo de la aplicación adicional alguna los pasos de configuración y puesta en marcha puede ser necesaria, sin embargo.

En esta sección se explica cómo instalar algún LÁMPARA aplicaciones.

214

Aplicaciones LAMP

2. Moin Moin

MoinMoin es un motor Wiki implementado en Python, basado en el motor PikiPiki Wiki, y con licencia bajo la GNU GPL.

2,1. Instalación

Para instalar MoinMoin, ejecute el comando siguiente en el símbolo del sistema:

sudo apt-get install python-moinmoin

También debe instalar el servidor web Apache2. Para instalar apache2 servidor web, por favor vaya a Sección 1.1, "Instalación" [p. 187] sub-sección en Sección 1, "HTTPD - Servidor web Apache 2" [p. 187] sección.

2,2. Configuración

Para configurar la aplicación Wiki en primer lugar, por favor, ejecute el siguiente conjunto de comandos. Supongamos que va a crear un Wiki llamado MyWiki:

cd / usr / share / moin sudo mkdir MyWiki sudo cp-R de datos MyWiki sudo cp-R subyacente MyWiki

sudo cp / servidor moin.cgi MyWiki sudo chown-R www-data-data.www MyWiki

sudo chmod-R ug + rwX MyWiki sudo chmod-R o-rwx MyWiki

Ahora debe configurar MoinMoin para encontrar su nuevo Wiki MyWiki. Para configurar MoinMoin, abra / etc / moin / mywiki.py presentar y cambiar la siguiente línea:

data_dir = '/ org / MyWiki / datos'

a

data_dir = '/ usr / share / moin / MyWiki / datos'

Además, debajo del data_dir opción de añadir el data_underlay_dir:

data_underlay_dir = '/ usr / share / moin / MyWiki / subyacente

"

Si el / Etc / moin / mywiki.py archivo no existe, debe copiar / Usr / share / moin /

config / wikifarm / mywiki.py presentar a la / Etc / moin / mywiki.py presentar y hacer lo antes

mencionado cambiar.

Si usted ha nombrado a su Wiki como my_wiki_name debe insertar una línea "(" my_wiki_name ", r ". *") "en / Etc / moin / farmconfig.py presentar después de la línea "(" MyWiki ", r". * ")".

215

Aplicaciones LAMP

Una vez que haya configurado MoinMoin para encontrar su aplicación Wiki primero MyWiki, debe configurar apache2 y que quede listo para su aplicación Wiki.

Usted debe agregar las siguientes líneas en / Etc/apache2/sites-available/default archivo dentro de la

"*> <VirtualHost" Tag:

# # # Moin ScriptAlias / MyWiki "/ usr / share / moin / MyWiki / moin.cgi" alias o moin_static193 "/ usr / share / moin / htdocs" <Directory /usr/share/moin/htdocs>

Order allow, deny Dejar de todas las </ Directory> # # # End moin

Una vez que configure el servidor web apache2 y que quede listo para su aplicación Wiki, usted debe reiniciarlo. Puede ejecutar el siguiente comando para reiniciar el servidor web apache2:

sudo service apache2 reiniciar

2,3. Verificación

Usted puede verificar la aplicación Wiki y ver si funciona apuntando desde su navegador web a la siguiente

URL:

http://localhost/mywiki

Para más detalles, consulte el MoinMoinUn sitio web.

2,4. Referencias

• Para obtener más información, consulte la MoinMoin Wiki2.

• Asimismo, consulte la Ubuntu Wiki MoinMoin3 página.

1 http://moinmo.in/ 2 http://moinmo.in/ 3 https://help.ubuntu.com/community/MoinMoin

216

Aplicaciones LAMP

3. MediaWiki

MediaWiki es un software basado en Web Wiki escrito en el lenguaje PHP. Se puede utilizar tanto MySQL o Base de datos PostgreSQL Sistema de Gestión.

3,1. Instalación

Antes de instalar MediaWiki también debe instalar Apache 2, el lenguaje de secuencias de comandos y PHP5 Base de datos de un Sistema de Gestión. MySQL o PostgreSQL son los más comunes, elija una dependiendo de su necesidad. Por favor refiérase a las secciones de este manual de instrucciones de instalación.

Para instalar MediaWiki, ejecute el comando siguiente en el símbolo del sistema:

sudo apt-get install php5-gd mediawiki

Para funcionalidad adicional MediaWiki ver el paquete mediawiki-extensiones.

3,2. Configuración

El archivo de configuración de Apache mediawiki.conf para MediaWiki está instalado en / Etc/apache2/conf.d / directorio. Usted debe descomentar la siguiente línea en este archivo para acceder a la aplicación de MediaWiki.

# Alias / mediawiki / var / lib / mediawiki

Después de que el comentario de la línea anterior, reiniciar el servidor Apache y MediaWiki acceso mediante el siguiente url:

http://localhost/mediawiki/config/index.php

Por favor, lea el "entorno de Comprobación ..." en este página. Debería ser capaz de fijar muchos temas de leer detenidamente esta sección.

Una vez completada la configuración, debe copiar el LocalSettings.php presentar a la / Etc / mediawiki directorio:

sudo mv / var / lib / mediawiki / config / LocalSettings.php / etc / mediawiki /

También es posible que desee editar / Etc / mediawiki / LocalSettings.php con el fin de establecer el límite

de la memoria (Desactivado por defecto):

ini_set ('memory_limit', '64M ');

3,3. Extensiones

Las extensiones de añadir nuevas características y mejoras para la aplicación de MediaWiki. Las extensiones proporcionar a los administradores del wiki y los usuarios finales la posibilidad de personalizar MediaWiki a sus

necesidades.

217

Aplicaciones LAMP

Puede descargar las extensiones de MediaWiki como un archivo o la salida de la subversión repositorio. Usted debe copiar / Var / lib / mediawiki / extensions directorio. También debe agregar la siguiente línea al final del archivo: / Etc / mediawiki / LocalSettings.php.

require_once "$ IP / extensions / ExtentionName / ExtentionName.php";

3,4. Referencias

• Para más detalles, consulte el MediaWiki4 sitio web.

• El Guía MediaWiki administradores 'Tutorial5 contiene una gran cantidad de información para los nuevos MediaWiki administradores.

• Además, el Ubuntu MediaWiki6 página es un buen recurso.

4 http://www.mediawiki.org 5 http://www.packtpub.com/Mediawiki/book 6 https://help.ubuntu.com/community/MediaWiki

218

Aplicaciones LAMP

4. phpMyAdmin

phpMyAdmin es una aplicación LÁMPARA escrito específicamente para la administración de servidores MySQL.

Escrito en PHP, y se accede a través de un navegador web, phpMyAdmin proporciona una interfaz gráfica para las tareas de base de datos de administración.

4,1. Instalación

Antes de instalar phpMyAdmin tendrá acceso a una base de datos MySQL, ya sea en la misma máquina que phpMyAdmin que está instalado en, o en un host accesible a través de la red. Para obtener más información, consulte Sección 1, "MySQL" [p. 206]. Desde una terminal escriba:

sudo apt-get install phpmyadmin

En el sistema elige qué servidor web para ser configurado para phpMyAdmin. El resto de esta sección usará Apache2 para el servidor web.

En un navegador, vaya al http://servername/phpmyadmin, sustitución de serveranme con real del servidor nombre de host. En el inicio de sesión, página, escriba raíz para el nombre de usuario, u otro usuario de MySQL si

ningún tipo de configuración, e introduzca la contraseña del usuario de MySQL.

Una vez conectado se puede restablecer el raíz contraseña si es necesario, crear usuarios, crear / destruir bases de

datos y tablas, etc

4,2. Configuración

Los archivos de configuración para phpMyAdmin se encuentran en / Etc / phpmyadmin. La configuración principal archivo / Etc / phpmyadmin / config.inc.php. Este archivo contiene las opciones de configuración que se aplican a

nivel mundial a phpMyAdmin.

Para utilizar phpMyAdmin para administrar una base de datos MySQL alojada en otro servidor, ajuste los siguientes en / Etc / phpmyadmin / config.inc.php:

$ Cfg ['Servers'] [$ i] ['host'] = 'db_server';

Reemplazar db_server con el nombre real del servidor remoto de base de datos o dirección IP. Además,

asegúrese de que el anfitrión phpMyAdmin tiene permisos para acceder a la base de datos remota.

Una vez configurado, la sesión de phpMyAdmin y de nuevo, y usted debe tener acceso al nuevo servidor.

La config.header.inc.php y config.footer.inc.php archivos se utilizan para agregar un encabezado HTML y pie de página a phpMyAdmin.

Otro archivo de configuración importante es / Etc / phpmyadmin / apache.conf, Este archivo es un enlace simbólico

a / etc/apache2/conf.d/phpmyadmin.conf, Y se utiliza para configurar Apache2 para servir a la phpMyAdmin

219

Aplicaciones LAMP

sitio. El archivo contiene las directivas para la carga de PHP, los permisos de directorio, etc Para más información sobre la configuración de Apache2 ver Sección 1, "HTTPD - Servidor web Apache 2" [p. 187].

4,3. Referencias

• La documentación de phpMyAdmin viene instalado con el paquete y se puede acceder desde el phpMyAdmin Documentación enlace (un signo de interrogación con una caja alrededor de él) en el marco del

phpMyAdmin logotipo. La documentación oficial también puede ser el acceso a la

phpMyAdmin7 sitio. • Por otra parte, Dominar phpMyAdmin8 es un gran recurso.

• Un tercer recurso es el phpMyAdmin Wiki de Ubuntu9 página.

7 http://www.phpmyadmin.net/home_page/docs.php 8 http://www.packtpub.com/phpmyadmin-3rd-edition/book 9 https://help.ubuntu.com/community/phpMyAdmin

220

Capítulo 14. Servidores de archivos Si usted tiene más de un ordenador en una sola red. En algún momento usted probablemente tendrá que compartir archivos entre ellos. En esta sección se describe la instalación y configuración de FTP, NFS y CUPS.

221

Servidores de

archivos

1. Servidor FTP

File Transfer Protocol (FTP) es un protocolo TCP para la descarga de archivos entre ordenadores. En el pasado, se ha utilizado también para la carga, pero, como ese método no utiliza cifrado, credenciales del usuario

así como los datos transferidos en la clara y son interceptados fácilmente. Así que si estás aquí en busca de una forma de cargar y descargar archivos de forma segura, consulte la sección sobre OpenSSH en El capítulo 6, a distancia Administración [p. 79] en su lugar.

FTP trabaja en un modelo cliente / servidor. El componente de servidor que se llama un FTP daemon. De manera

continua escucha las peticiones FTP de clientes remotos. Cuando se recibe una petición, gestiona el inicio de sesión y establece la conexión. Durante la duración de la sesión ejecuta las órdenes enviadas por el cliente FTP.

El acceso a un servidor FTP se pueden gestionar de dos formas:

• Anónimo

• Autenticado

En el modo Anónimo, los clientes remotos pueden acceder al servidor FTP usando la cuenta de usuario por defecto llamada "anónima" o "ftp" y enviando una dirección de correo electrónico como contraseña. En el modo autenticado el usuario debe tener una cuenta y una contraseña. Esta última opción es muy insegura y no debería ser

utilizada, salvo en circunstancias especiales. Si usted está buscando para transferir archivos de forma segura SFTP ver

en el sección sobre openssh-server. El acceso del usuario a los directorios del servidor FTP y archivos depende de la permisos definidos para la cuenta utilizada al iniciar la sesión. Como regla general, el demonio FTP oculta el

el directorio raíz del servidor FTP y cambiar al directorio de inicio del FTP. Esto oculta el resto del del sistema de archivos de las sesiones remotas.

1,1. vsftpd - Instalación de Servidor FTP

vsftpd es un demonio FTP disponible en Ubuntu. Es fácil de instalar, configurar y mantener. Para instalar vsftpd puede ejecutar el siguiente comando:

sudo apt-get install vsftpd

1,2. Configuración FTP Anónimo

Por defecto, vsftpd es no configurado para permitir la descarga anónima. Si desea habilitar el anonimato

descarga edición / Etc / vsftpd.conf mediante el

cambio:

anonymous_enable = Sí

Durante la instalación de una ftp usuario se crea con un directorio de inicio de la / Srv / ftp. Este es el FTP por

defecto directorio.

Si desea cambiar esta ubicación, para / Srv / files / ftp por ejemplo, basta con crear un directorio en el

otro lugar y cambiar el ftp usuario directorio home:

222

Servidores de

archivos

sudo mkdir / srv / files / ftp sudo usermod-d / srv / files / ftp ftp

Después de hacer el cambio de reiniciar vsftpd:

vsftpd restart sudo

Finalmente, copie todos los archivos y directorios que le gustaría poner a disposición a través de FTP anónimo para / srv / files / ftp, O / Srv / ftp si desea utilizar la opción predeterminada.

1,3. Usuario autenticado Configuración FTP

Por defecto, vsftpd está configurado para autenticar a los usuarios del sistema y permitir que se descarguen archivos. Si desea que los usuarios podrán subir archivos, editar / Etc / vsftpd.conf:

write_enable = SI

Ahora reiniciar vsftpd:

vsftpd restart sudo

Ahora, cuando los usuarios del sistema acceder a FTP que se iniciará en su casa directorios donde pueden

descargar, cargar, crear directorios, etc

Del mismo modo, por defecto, los usuarios anónimos no pueden subir archivos al servidor FTP. Para cambiar esta

configuración, debe descomentar la siguiente línea y reiniciar vsftpd:

anon_upload_enable = SI

Habilitación de carga FTP anónimo puede ser un riesgo para la seguridad extrema. Lo mejor es no

permitir que Anónimo carga en los servidores de acceso directamente desde Internet.

El archivo de configuración se compone de muchos parámetros de configuración. La información acerca de cada parámetro está disponible en el fichero de configuración. Alternativamente, puede consultar la página del manual,

man 5 vsftpd.conf para los detalles de cada parámetro.

1,4. Protección de FTP

Hay opciones en / Etc / vsftpd.conf para ayudar a que vsftpd sea más seguro. Por ejemplo los usuarios pueden

ser se limitan a sus directorios de inicio, quitando los comentarios:

chroot_local_user = SI

También puede limitar una lista específica de los usuarios a sus directorios de inicio

sólo:

223

Servidores de

archivos

chroot_list_enable = SI chroot_list_file = / etc / vsftpd.chroot_list

Tras descomentar las opciones anteriores, crear un / Etc / vsftpd.chroot_list que contiene una lista de usuarios

uno por línea. A continuación, reinicie

vsftpd:

vsftpd restart sudo

Además, el / Etc / ftpusers archivo es una lista de usuarios que son rechazado Acceso a FTP. La lista

predeterminada incluye root, daemon, nadie, etc Para deshabilitar el acceso FTP a los usuarios adicionales, simplemente añadirlos a la lista.

FTP también pueden ser encriptados usando FTPS. A diferencia de SFTP, FTPS es FTP a través de Secure Socket

Layer (SSL). SFTP es un cliente de FTP como a través de una sesión de cifrado SSH conexión. Una diferencia importante es

que Los usuarios de SFTP necesita tener una concha cuenta en el sistema, en lugar de una nologin concha. Proporcionar

toda la los usuarios con un depósito no puede ser ideal para algunos entornos, como por ejemplo un proveedor de alojamiento

web compartido. Sin embargo, se Es posible restringir dichas cuentas a SFTP solamente y deshabilitar la interacción de comandos. Vea la sección de Openssh-server para más. Para configurar FTPS, editar / Etc / vsftpd.conf y en la parte inferior

agregar:

ssl_enable = Sí

También, observe el certificado y la clave de opciones

relacionadas con:

rsa_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem rsa_private_key_file = / etc / ssl / private / ssl-cert-snakeoil.key

Por defecto estas opciones se establecen en el certificado y la clave proporcionada por el paquete ssl-cert. En una entorno de producción estos deben ser reemplazados con un certificado y la clave generada por el específico de acogida. Para más información sobre certificados, consulte Sección 5, "certificados" [p. 171].

Ahora reiniciar vsftpd, y no a los usuarios anónimos se ven obligados a utilizar FTPS:

vsftpd restart sudo

Para permitir a los usuarios con una cáscara de / Usr / sbin / nologin el acceso a FTP, pero no tienen acceso a una

consola, edición / Etc / conchas añadiendo el nologin shell:

# / Etc / shells: cáscaras de inicio de

sesión válidos / Bin / csh / Bin / sh / Usr / bin / es / Usr / bin / ksh

/ Bin / ksh / Usr / bin / rc

224

Servidores de

archivos

/ Usr / bin / tcsh

/ Bin / tcsh / Usr / bin / esh

/ Bin / dash / Bin / bash

/ Bin / rbash / Usr / bin / pantalla

/ Usr / sbin / nologin

Esto es necesario porque, por defecto, vsftpd utiliza PAM para la autenticación, y la / Etc / pam.d / vsftpd archivo de configuración contiene:

auth necesario pam_shells.so

La conchas Módulo PAM restringe el acceso a los depósitos que figuran en el / Etc /

shells archivo.

Los clientes FTP más populares se puede configurar para conectarse a través de FTPS. El lftp línea de comandos

FTP cliente tiene la capacidad de utilizar FTPS también.

1,5. Referencias

• Consulte el sitio web de vsftpd1 para más información.

• Para información detallada / Etc / vsftpd.conf las opciones de ver el página del manual de vsftpd.conf2.

1 http://vsftpd.beasts.org/vsftpd_conf.html 2 http://manpages.ubuntu.com/manpages/precise/en/man5/vsftpd.conf.5.html

225

Servidores de

archivos

2. Network File System (NFS)

NFS permite a un sistema para compartir directorios y archivos con otros en una red. Mediante el uso de NFS, los

usuarios y los programas pueden acceder a archivos en sistemas remotos casi como si fueran archivos locales.

Algunos de los beneficios más notables que el NFS suministra son los

siguientes: • Las estaciones de trabajo locales utilizan menos espacio en el disco porque los datos de uso común se pueden

almacenar en un único máquina y permanecerán accesibles a otros a través de la red. • No es necesario que los usuarios tengan directorios de inicio separados en cada máquina de la red. Casa directorios se podría establecer en el servidor NFS y estar disponibles en toda la red.

• Los dispositivos de almacenamiento como disquetes, CDROM y dispositivos USB pueden ser utilizados por otros máquinas de la red. Esto puede reducir el número de unidades de medios extraíbles en todo el red.

2,1. Instalación

En un terminal escriba el siguiente comando para instalar el servidor NFS:

sudo apt-get install nfs-kernel-server

2,2. Configuración

Puede configurar los directorios sean exportados mediante la adición de ellos a la / Etc / exports archivo.

Para ejemplo:

/ Ubuntu / Home

* (Ro, sync, no_root_squash) * (Rw, sync, no_root_squash)

Puede reemplazar * con uno de los formatos de nombre de host. Hacer la declaración de nombre de host lo más

específico posibles sistemas de manera no deseados no puede acceder al montaje NFS.

Para iniciar el servidor NFS, puede ejecutar el siguiente comando en una terminal:

sudo / etc / init.d / nfs-kernel-server inicio

2,3. Configuración de clientes NFS

Utilice el comando mount para montar directorio de NFS compartido desde otra máquina, escribiendo un

comando similar al siguiente en una terminal de línea:

sudo mount example.hostname.com :/ ubuntu / local / ubuntu

El directorio de punto de montaje / Local / ubuntu debe existir. No deben existir archivos o subdirectorios en el / Local / ubuntu directorio.

226

Servidores de

archivos

Un método alternativo para montar datos compartidos mediante NFS es añadir una línea a la / Etc / fstab archivo. La línea debe incluir el nombre del servidor NFS, el directorio en el servidor que se exportan, y el directorio en la máquina local, donde el recurso NFS para ser montados.

La sintaxis general para la línea en / Etc / fstab archivo es como sigue:

example.hostname.com :/ ubuntu / local / ubuntu nfs rsize = 8192, wsize = 8192, timeo = 14, intr

Si tiene problemas para montar un recurso compartido NFS, asegúrese de que el paquete nfs-common esté instalado en

su cliente. Para instalar nfs-common introducir el siguiente comando en el terminal:

sudo apt-get install nfs-common

2,4. Referencias

Linux NFS preguntas frecuentes3

Wiki de Ubuntu NFS Howto4

3 http://nfs.sourceforge.net/ 4 https://help.ubuntu.com/community/NFSv4Howto

227

Servidores de

archivos

3. Iniciador iSCSI

iSCSI (Internet Small Computer System Interface) es un protocolo que permite a los comandos SCSI para ser transmitida a través de una red. Normalmente iSCSI se implementa en una red SAN (Storage Area Network)

para permitir que los servidores para acceder a un gran almacén de espacio en disco duro. El protocolo iSCSI se

refiere a los clientes como iniciadores iSCSI y servidores como objetivos.

Ubuntu Server puede ser configurado como un iniator iSCSI y un destino. Esta guía proporciona comandos y opciones de configuración para configurar un iniciador iSCSI. Se supone que usted ya tiene un iSCSI orientar en la red local y tienen los derechos adecuados para conectarse a ella. Las instrucciones para el establecimiento de un objetivo varían considerablemente entre los proveedores de hardware, así que consulte la

documentación del proveedor de configurar el específico destino iSCSI.

3,1. Iniciador iSCSI de instalación

Para configurar el servidor de Ubuntu como un iniciador iSCSI instalar el paquete open-iscsi. En una terminal

escriba:

sudo apt-get install open-iscsi

3,2. Iniciador iSCSI de configuración

Una vez que el paquete open-iscsi se ha instalado, editar / Etc / iscsi / iscsid.conf cambiando el siguiente:

node.startup = automático

Puede comprobar qué objetivos se encuentran disponibles mediante la utilidad iscsiadm. Escriba lo siguiente en

una terminal:

sudo iscsiadm m descubrimiento ST-T p 192.168.0.10

•-M: determina el modo que iscsiadm ejecuta pulg

•-T: especifica el tipo de descubrimiento.

•-T: opción indica la dirección IP de destino.

Ejemplo, el cambio 192.168.0.10 a la dirección IP de destino en la red.

Si el destino está disponible debería ver una salida similar a lo siguiente:

192.168.0.10:3260,1 iqn.1992-05.com.emc: sl7b92030000520000-2

La iqn dirección, número de IP y por encima de variar dependiendo de su hardware.

228

Servidores de

archivos

Ahora debería ser capaz de conectar con el destino de iSCSI, y dependiendo de la configuración de su destino que

podrá tiene que introducir las credenciales del usuario. Inicie sesión en el nodo iSCSI:

sudo iscsiadm-nodo m - de inicio de sesión

Asegúrese de que el nuevo disco se ha detectado con dmesg:

dmesg | grep sd

[

[ [ [ [ [

[ [ [

[ [

4.322384] sd 2:0:0:0: Attached SCSI de tipo genérico sg1 0

4.322797] 4.322843] 4.322846] 4.322896] 4.322899]

sd sd sd sd sd

2:0:0:0: 2:0:0:0: 2:0:0:0: 2:0:0:0: 2:0:0:0:

[Sda] [Sda] [Sda] [Sda] [Sda]

41943040 bloques de 512 bytes lógicos: (21,4 GB/20.0 GiB) De protección contra escritura está desactivada Mode Sense: 03 00 00 00 Datos de la caché no disponibles Suponiendo caché de la unidad: escribir a través de

4.323230] sd 2:0:0:0: [sda] datos de la caché no está disponible 4.323233] sd 2:0:0:0: [sda] caché suponiendo que la unidad: escribir a

través de 4.325312] sda: sda1 sda2 <sda5> 4.325729] sd 2:0:0:0: [sda] datos de la caché no está disponible 4.325732] sd 2:0:0:0: [sda] caché suponiendo que la unidad: escribir a

través de [4.325735] sd 2:0:0:0: [sda] Attached SCSI de disco [2486.941805] sd 4:0:0:3: Attached SCSI de tipo genérico sg3 0

[2486.952093] sd 4:0:0:3: [sdb] 1126400000 bloques de 512 bytes lógicos: (576 GB/537 GB)

[2486.954195] sd 4:0:0:3: [sdb] Write Protect está desactivado [2486.954200] sd 4:0:0:3: [sdb] Mode Sense: 8f 00 00 08

[2486.954692] sd 4:0:0:3: [sdb] caché de escritura: discapacitados, caché de lectura: activado, no apoyo DPO o FUA

[2486.960577] sdb: sdb1 [2486.964862] sd 4:0:0:3: [sdb] Attached SCSI de disco

En la salida anterior sdb es el nuevo disco iSCSI. Recuerde que este es sólo un ejemplo, la salida se ve en la pantalla pueden variar.

A continuación, cree una partición, formatear el sistema de archivos, y montar el nuevo disco iSCSI. En una

terminal escriba:

sudo fdisk / dev / sdb n

p entrar w

Los siguientes comandos son del interior de la utilidad fdisk, consulte el hombre fdisk para más detalle instrucciones. Además, la utilidad cfdisk a veces es más fácil de usar.

Ahora formatear el sistema de archivos y montar a / Srv como ejemplo:

sudo mkfs.ext4 / dev/sdb1 sudo mount / dev/sdb1 / srv

229

Servidores de

archivos

Por último, añadir una entrada a / Etc / fstab para montar la unidad iSCSI durante el

arranque:

/ Dev/sdb1 / Srv ext4 por defecto, los automóviles,

_netdev 0 0

Es una buena idea para asegurarse de que todo está funcionando como se esperaba al reiniciar el servidor.

3,3. Referencias

Open-iSCSI de Sitio Web5

Debian Open-iSCSI de la página6

5 http://www.open-iscsi.org/~~V 6 http://wiki.debian.org/SAN/iSCSI/open-iscsi

230

Servidores de

archivos

4. - Servidor de impresión CUPS

El principal mecanismo para la impresión de Ubuntu y servicios de impresión es el Impresión Común de UNIX

Sistema (CUPS). Este sistema de impresión es una libremente disponible, capa de impresión portátil que se ha

convertido el nuevo estándar para la impresión en la mayoría de las distribuciones

de Linux.

CUPS gestiona los trabajos y las colas, y proporciona impresión de red utilizando el estándar de Internet Printing Protocol (IPP), que dispone de soporte para una gama muy amplia de impresoras, desde matriciales

al láser y muchos en el medio. CUPS también soporta PostScript Printer Description (PPD) y auto- detección de impresoras de red, y cuenta con una sencilla configuración basada en web y una herramienta de

administración.

4,1. Instalación

Para instalar CUPS en su equipo Ubuntu, simplemente use sudo con el comando apt-get y dar la los paquetes a instalar como primer parámetro. Una instalación completa de CUPS tiene muchas dependencias de

paquetes, pero todos ellos pueden ser especificados en la misma línea de comandos. Escriba lo siguiente en una terminal para

instalar CUPS:

sudo apt-get install tazas

Tras autenticarse con su contraseña de usuario, los paquetes deben ser descargados e instalados sin error. Al concluir la instalación, el servidor CUPS se iniciará automáticamente.

Para solucionar problemas, puede acceder a los errores del servidor CUPS a través del archivo de registro de errores

en: / Var / log / cups / error_log. Si el registro de errores no muestra suficiente información para resolver cualquier problema se encuentra, el nivel de detalle del registro de CUPS puede incrementarse cambiando el LogLevel directiva

en el archivo de configuración (véase más adelante) a "depurar" o incluso "debug2", que registra todo, desde el valor predeterminado de "info". Si usted hace este cambio, recuerde volver a cambiarlo una vez que haya solucionado

su problema, para evitar que el archivo de registro crezca demasiado grande.

4,2. Configuración

El comportamiento del servidor de Impresión Común de Unix System se configura a través de las directrices contenidas en el archivo / Etc / cups / cupsd.conf. El archivo de configuración de CUPS tiene la misma sintaxis que la

archivo principal de configuración del servidor HTTP Apache, por lo que los usuarios familiarizados con la edición

de Apache archivo de configuración debe sentirse a gusto cuando se edita el fichero de configuración de CUPS. Algunos

ejemplos de ajustes que usted puede desear cambiar inicialmente se presenta aquí.

Antes de editar el fichero de configuración, debe hacer una copia del archivo original y protegerlo de la escritura, por lo que tendrá la configuración original como referencia, y reutilizar como necesario.

Copie el / Etc / cups / cupsd.conf presentar y proteger contra escritura con los siguientes comandos, emitidos en un terminal:

231

Servidores de

archivos

sudo cp / etc / cups / cupsd.conf / etc / cups / cupsd.conf.original sudo chmod a-w / etc / cups / cupsd.conf.original

•ServerAdmin: Para configurar la dirección de correo electrónico del administrador designado por el servidor CUPS,

Simplemente edita el / Etc / cups / cupsd.conf archivo de configuración con su editor de texto preferido,

y agregar o modificar la ServerAdmin alinearse en consecuencia. Por ejemplo, si usted es el administrador de el servidor CUPS, y su dirección de correo electrónico es '[email protected]', entonces podría modificar el ServerAdmin la línea para que aparezca como tal:

ServerAdmin [email protected]

•Escuche: Por defecto en Ubuntu, la instalación del servidor CUPS escucha sólo por la interfaz loopback en la dirección IP 127.0.0.1. Con el fin de que el servidor CUPS escuche en un adaptador de red real de Dirección IP, debe especificar un nombre de host, la dirección IP, u opcionalmente, una dirección IP / puerto de emparejamiento a través de la adición de una directiva Listen. Por ejemplo, si su servidor CUPS reside en un local red en la dirección IP 192.168.10.250 y que le gustaría para que sea accesible a los otros sistemas en esta subred, puede editar el / Etc / cups / cupsd.conf y añadir una directiva Listen, como por ejemplo:

Listen 127.0.0.1:631 # Existentes loopback Listen

Escuchar / var / run / cups o cups.sock toma existente # Escuchar Escuche 192.168.10.250:631 # escuchar en la interfaz LAN, el puerto 631 (IPP)

En el ejemplo anterior, usted puede comentar o eliminar la referencia a la dirección de bucle invertido (127.0.0.1) si no desea que cupsd escuche por esa interfaz, sino que más bien tendrían que sólo escuchan

en las interfaces Ethernet de la red de área local (LAN). Para activar la escucha por toda la red interfaces a las que un nombre de host está obligado, incluyendo el loopback, se podría crear una Listen entrada para el nombre de host Sócrates como tales:

Listen · socrates: 631 # Escuchar en todas las interfaces para la máquina · 'socrates'

o por la omisión de la directiva Listen y usando Puerto En su lugar, como en:

El puerto 631 # Escuchando en el puerto 631 en todas las

interfaces

Para más ejemplos de directivas de configuración en el fichero de configuración del servidor CUPS, ver el página de manual asociada introduciendo el siguiente comando en una terminal:

el hombre cupsd.conf

Siempre que haga cambios en el / Etc / cups / cupsd.conf archivo de configuración, tendrá que para reiniciar el servidor CUPS tecleando el siguiente comando en una terminal:

sudo / etc / init.d / cups restart

232

Servidores de

archivos

4,3. Interfaz Web

CUPS se puede configurar y monitorizar utilizando una interfaz web, que por defecto está disponible en http://localhost:631/admin. La interfaz web se puede utilizar para llevar a cabo todas las impresoras

las tareas de gestión.

Con el fin de realizar tareas administrativas a través de la interfaz web, usted debe tener la cuenta de root habilitado en su servidor, o autenticar un usuario en el lpadmin grupo. Por razones de seguridad, CUPS no autenticar a un usuario que no tiene una contraseña.

Para añadir un usuario a la lpadmin grupo, ejecute en el terminal:

sudo usermod-aG lpadmin nombre de usuario

Documentación adicional está disponible en el Documentación / Ayuda pestaña de la interfaz web.

4,4. Referencias

Sitio web de CUPS7

Debian Open-iSCSI de la página8

7 http://www.cups.org/~~V 8 http://wiki.debian.org/SAN/iSCSI/open-iscsi

233

Capítulo 15. Servicios de correo electrónico El proceso de obtención de un correo electrónico de una persona a otra a través de una red o de Internet implica muchos sistemas trabajando juntos. Cada uno de estos sistemas deben estar configurados correctamente para que el

proceso trabajar. El emisor utiliza un El correo del Agente del usuario (MUA) o cliente de correo electrónico, para enviar el

mensaje a través de uno o más Agentes de transferencia de correo (MTA), el último de los cuales va a entregar a un Agente de entrega de correo (MDA) para su entrega al buzón del destinatario, de la cual se recuperará por el cliente de correo electrónico del destinatario, por lo general a través de un servidor POP3 o IMAP.

234

Servicios de correo

electrónico

1. Sufijo

Postfix es el agente de transferencia de correo por defecto (MTA) en Ubuntu. Se trata de ser rápido y fácil administrar y asegurar. Es compatible con el MTA sendmail. En esta sección se explica cómo instalar

y configurar postfix. También se explica cómo configurarlo como un servidor SMTP utilizando una conexión segura (Para el envío de mensajes de correo electrónico de forma segura).

Esta guía no cubre la creación de Postfix Dominios virtuales, para obtener información sobre Virtual Dominios y otras configuraciones avanzadas, consultar Sección 1.7.3, "Referencias" [p. 240].

1,1. Instalación

Para instalar postfix ejecute el siguiente comando:

sudo apt-get install postfix

Sólo tiene que pulsar retorno cuando el proceso de instalación hace preguntas, la configuración se hará en mayor detalle en la siguiente etapa.

1,2. Configuración básica

Para configurar postfix, ejecute el comando siguiente:

sudo dpkg-reconfigure postfix

La interfaz de usuario se mostrará. En cada pantalla, seleccione los siguientes valores:

• Sitio de Internet

• mail.example.com

• Steve

• mail.example.com, localhost.localdomain, localhost

• No se

• 127.0.0.0 / 8 [:: ffff: 127.0.0.0] / 104 [:: 1] / 128 192.168.0.0/24

• 0

• +

• todas las

Reemplace mail.example.com con el dominio para el que usted acepta el correo electrónico, 192.168.0.0/24

con la red actual y el rango de clase de su servidor de correo, y Steve con la adecuada nombre de usuario.

Ahora es un buen momento para decidir qué formato de buzón que desea utilizar. Por defecto Postfix utilizará mbox para el formato de buzón. En lugar de editar el archivo de configuración, puede utilizar el postconf comando para configurar todos los parámetros de postfix. Los parámetros de configuración se almacena en

235

Servicios de correo

electrónico

archivo. Posteriormente, si desea volver a configurar un parámetro en particular, puede hacer lo ejecutar el comando o cambiar de forma manual en el archivo. / Etc / postfix / main.cf

Para configurar el formato de buzón de Maildir:

postconf-e sudo 'home_mailbox = Maildir /'

Esto hará que el correo nuevo en / home / usuario / Maildir por lo que tendrá que configurar su Agente de entrega de correo (MDA) para utilizar el mismo camino.

1,3. Autenticación SMTP

SMTP-AUTH permite a un cliente para identificarse a través de un mecanismo de autentificación (SASL). Transport Layer Security (TLS) debe ser utilizado para cifrar el proceso de autenticación. Una vez autenticado el servidor SMTP permitirá al cliente para retransmitir el correo.

1. Configurar Postfix para SMTP-AUTH usando SASL (Dovecot SASL):

postconf-e sudo 'smtpd_sasl_type = dovecot' postconf-e sudo '= smtpd_sasl_path privada / auth-client'

postconf-e sudo 'smtpd_sasl_local_domain =' postconf-e sudo 'smtpd_sasl_security_options = noanonymous'

postconf-e sudo 'broken_sasl_auth_clients = yes'

postconf-e sudo 'smtpd_sasl_auth_enable = yes' postconf-e sudo 'smtpd_recipient_restrictions = \

permit_mynetworks permit_sasl_authenticated, reject_unauth_destination '

La smtpd_sasl_path configuración es una ruta relativa al directorio de la cola de Postfix.

2. A continuación, generar u obtener un certificado digital para TLS. Ver Sección 5, "certificados" [p. 171] para detalles. Este ejemplo también se utiliza una entidad emisora de certificados (CA). Para obtener información sobre

la generación de una CA certificado de ver Sección 5.5, "Autoridad de Certificación" [p. 173].

MUA para conectarse a su servidor de correo mediante TLS tendrá que reconocer el certificado de utiliza para TLS. Esto puede llevarse a cabo mediante un certificado de una CA comercial o con un certificado autofirmado que los usuarios instalar manualmente / aceptar. Para MTA a MTA Certficates TLS no se validan, sin acuerdo previo del afectado

organizaciones. Para MTA a MTA TLS, a menos que la política local lo requiere, no hay razón para no utilizar un certificado autofirmado. Referirse a Sección 5.3, "Creación de una firma automática Certificado de "[p. 173] para más detalles.

3. Una vez que tenga un certificado, configurar Postfix para proporcionar el cifrado TLS para el entrante y correo saliente:

postconf-e sudo 'smtp_tls_security_level = mayo' postconf-e sudo 'smtpd_tls_security_level = mayo'

236

Servicios de correo

electrónico

postconf-e sudo 'smtp_tls_note_starttls_offer = yes'

postconf-e sudo 'smtpd_tls_key_file = / etc / ssl / private / server.key " postconf-e sudo 'smtpd_tls_cert_file = / etc / ssl / certs / server.crt'

postconf-e sudo 'smtpd_tls_loglevel = 1' sudo postconf-e 'smtpd_tls_received_header = yes' sudo postconf-e 'myhostname = mail.example.com "

4. Si usted está utilizando su propia Autoridad de Certificación para firmar el certificado de

entrar en:

postconf-e sudo 'smtpd_tls_CAfile = / etc / ssl / certs / cacert.pem'

Una vez más, para más detalles sobre certificados, consulte Sección 5, "certificados" [p. 171].

Después de ejecutar todos los comandos, Postfix está configurado para SMTP-AUTH y una firma de auto- certificado ha sido creado para el cifrado TLS.

Ahora, el archivo / Etc / postfix / main.cf debe ser similar este1.

La configuración inicial de postfix se ha completado. Ejecute el comando siguiente para reiniciar el postfix demonio:

sudo / etc / init.d / postfix restart

Postfix admite los protocolos SMTP-AUTH como se define en RFC25542. Se basa en SASL3. Sin embargo, es todavía necesaria para configurar la autenticación SASL para poder utilizar SMTP-AUTH.

1,4. Configuración de SASL

Postfix soporta dos implementaciones SASL SASL de Cyrus SASL y el palomar. Para habilitar Dovecot SASL el paquete dovecot-común tendrá que ser instalado. Desde una terminal entrar en el

siguientes:

sudo apt-get install dovecot-common

A continuación, tendrá que editar / Etc / dovecot / dovecot.conf. En el autenticación por defecto descomentar

la sección de socket de escucha opción y cambiar lo siguiente:

socket de escucha { # Principal {

# Maestro toma proporciona el acceso a la información userdb. Es por lo general # Usado para dar acceso a locales de Dovecot agente de entrega de userdb por lo que

# Puede encontrar la ubicación de los

buzones. # Path = / var / run / dovecot / auth-master # Mode = 0600 # Por defecto el usuario / grupo es el que comenzó dovecot-auth (raíz)

1 .. / sample / postfix_configuration 2 http://www.ietf.org/rfc/rfc2554.txt 3 http://www.ietf.org/rfc/rfc2222.txt

237

Servicios de correo

electrónico

# User =

# = Grupo #}

{cliente

# El socket de cliente es generalmente seguro para exportar a todo el mundo. El uso

típico # Es para exportar a su servidor SMTP por lo que puede hacer búsquedas de SMTP

AUTH # Utilizando. path = / var / spool / postfix / private / auth-client mode = 0660 user = postfix

= grupo postfix }

}

Con el fin de permitir que los clientes de Outlook utilizar SMTP-AUTH, en el autenticación por defecto sección de / etc / dovecot / dovecot.conf complemento "Login":

mecanismos de acceso = normal

Una vez que haya configurado Dovecot reinícielo con:

sudo / etc / init.d / dovecot restart

1,5. Correo-Pila de Suministro

Otra opción para configurar Postfix para SMTP-AUTH está utilizando el paquete mail-pila a la entrega (Previamente empaquetado como dovecot-postfix). Este paquete instalará Dovecot y configurar Postfix para usarlo tanto para la autenticación SASL y como Agente de entrega de correo (MDA). El paquete también configura Dovecot para IMAP, IMAPS, POP3 y POP3S.

Usted puede o no desea ejecutar IMAP, IMAPS, POP3 o POP3S en su servidor de correo. Para

ejemplo, si va a configurar el servidor para ser un gateway de correo, el spam / virus de filtro, etc Si este es el caso, puede ser más fácil de usar los comandos anteriores para configurar Postfix para SMTP AUTH.

Para instalar el paquete, de una terminal escriba:

sudo apt-get install-mail pila de entrega

Ahora debe tener un servidor de correo de trabajo, pero hay algunas opciones que usted puede desear ampliar personalizar. Por ejemplo, el paquete utiliza el certificado y la clave del paquete ssl-cert, y en un

entorno de producción se debe utilizar un certificado y una clave generada por el anfitrión. Ver Sección 5, "Certificados" [p. 171] para más detalles.

Una vez que tenga un certificado personalizado y la clave para el host, cambie las siguientes opciones en / Etc / postfix / main.cf:

238

Servicios de correo

electrónico

smtpd_tls_cert_file = / etc / ssl / certs / ssl-mail.pem smtpd_tls_key_file = / etc / ssl / private / ssl-mail.key

A continuación, reinicie

Postfix:

sudo / etc / init.d / postfix restart

1,6. Pruebas

SMTP-AUTH de configuración se ha completado. Ahora es el momento de probar la

configuración.

Para ver si SMTP-AUTH y TLS funcione correctamente, ejecute el comando siguiente:

telnet mail.example.com 25

Después de haber establecido la conexión con el servidor de correo Postfix, escriba:

ehlo mail.example.com

Si usted ve las siguientes líneas, entre otros, entonces todo está funcionando perfectamente. Tipo dejar de para salir.

250-STARTTLS 250-AUTH LOGIN PLAIN

250-AUTH = LOGIN PLAIN 250 8BITMIME

1,7. Solución de problemas

Esta sección presenta algunos aspectos comunes para determinar la causa si surgen problemas.

1.7.1. Escapar chroot

El paquete postfix Ubuntu de forma predeterminada en una instalación chroot entorno por razones de seguridad. Esto puede añadir una mayor complejidad para solucionar problemas.

Para desactivar la operación de chroot localizar la siguiente línea en el / Etc / postfix / master.cf archivo de configuración:

smtp inet n - - - - smtpd

y modificar como sigue:

smtp inet n - n - - smtpd

A continuación, tendrá que reiniciar Postfix para que utilice la nueva configuración. Desde una terminal escriba:

sudo / etc / init.d / postfix restart

239

Servicios de correo

electrónico

1.7.2. Archivos de

registro

Postfix envía todos los mensajes de registro / Var / log / mail.log. Sin embargo los mensajes de error y aviso

puede a veces se pierden en la salida del registro normal, de modo que también se registran en / Var / log / mail.err y / Var / log / mail.warn respectivamente.

Para ver los mensajes ingresados en los registros en tiempo real se puede utilizar el comando tail-f:

tail-f / var / log / mail.err

La cantidad de detalles que se registran en los registros puede ser aumentada. A continuación se presentan algunos

configuración opciones para aumentar el nivel de registro para algunas de las áreas cubiertas por

encima. • Para aumentar TLS el registro de la actividad de establecer el smtpd_tls_loglevel opción para un valor de

1 a 4.

postconf-e sudo 'smtpd_tls_loglevel = 4'

• Si usted está teniendo problemas para enviar o recibir correo de un dominio específico puede agregar el dominio al debug_peer_list parámetro.

postconf-e sudo 'debug_peer_list = problem.domain'

• Puede aumentar el nivel de detalle de cualquier proceso de demonio de Postfix mediante la edición del / Etc / postfix / master.cf y la adición de un -V después de la entrada. Por ejemplo, editar la smtp entrada:

smtp unix - - - - - smtp-V

Es importante notar que después de hacer uno de los cambios en el registro por encima de la Postfix proceso tendrá que ser recargada con el fin de reconocer la nueva configuración: sudo / etc /

init.d / postfix reload

• Para aumentar la cantidad de información registrada para solucionar problemas SASL cuestiones que se pueden

establecer la siguientes opciones en / Etc / dovecot / dovecot.conf

auth_debug = yes auth_debug_passwords = yes

Al igual que Postfix si se cambia una configuración de Dovecot el proceso tendrá que volver a cargar:

sudo / etc / init.d / dovecot recarga.

Algunas de las opciones anteriores puede aumentar drásticamente la cantidad de información enviada en el

registro archivos. Recuerde devolver el nivel de registro a la normalidad después de haber corregido el problema. A continuación, volver a cargar el diablillo apropiado para la nueva configuración surta

efecto.

1.7.3. Referencias

La administración de un servidor Postfix puede ser una tarea muy complicada. En algún momento puede que tenga que

recurrir a la comunidad de Ubuntu en busca de ayuda con más experiencia.

240

Servicios de correo

electrónico

Un gran lugar para pedir ayuda Postfix, y que se involucren con la comunidad de Ubuntu Server, es el # Ubuntu-server Canal de IRC en freenode4. También puede enviar un mensaje a uno de los Web Foros5.

Para información en profundidad Postfix los desarrolladores de Ubuntu recomendamos: El libro de Postfix6.

Por último, el Sufijo7 sitio web también tiene excelente documentación sobre todas las diferentes opciones de configuración disponible.

Además, el Wiki de Ubuntu Postfix8 página tiene más información.

4 http://freenode.net 5 http://www.ubuntu.com/support/community/webforums 6 http://www.postfix-book.com/ 7 http://www.postfix.org/documentation.html 8 https://help.ubuntu.com/community/Postfix

241

Servicios de correo

electrónico

2. Exim4

Exim4 es otro agente de transferencia de mensajes (MTA) desarrollado en la Universidad de Cambridge para su uso

en sistemas Unix conectados a Internet. Exim puede ser instalado en lugar de sendmail, aunque el

configuración de exim es bastante diferente a la de sendmail.

2,1. Instalación

Para instalar exim4, ejecute el comando siguiente:

sudo apt-get install exim4

2,2. Configuración

Para configurar exim4, ejecute el comando siguiente:

sudo dpkg-reconfigure exim4-config

La interfaz de usuario se mostrará. La interfaz de usuario le permite configurar muchos parámetros. Para

ejemplo, en Exim4 los archivos de configuración se dividen entre varios archivos. Si desea tenerlos en un archivo que se puede configurar de acuerdo en esta interfaz de usuario.

Todos los parámetros se configuran en la interfaz de usuario se almacenan en / Etc/exim4/update-exim4.conf archivo. Si desea volver a configurar, ya sea que usted vuelva a ejecutar el asistente de configuración o editar

manualmente este archivo usando su editor favorito. Una vez configurada, puede ejecutar el comando siguiente para generar el principal fichero de configuración:

sudo update-exim4.conf

El archivo de configuración maestro, se genera y se almacena en / Var/lib/exim4 / config.autogenerated.

En cualquier momento, no se debe editar el archivo de configuración principal, / Var/lib/exim4 / config.autogenerated manualmente. Se actualiza automáticamente cada vez que se ejecuta Actualiza-

exim4.conf

Puede ejecutar el siguiente comando para iniciar el demonio Exim4.

sudo / etc/init.d/exim4 inicio

2,3. Autenticación SMTP

Esta sección cubre la configuración de Exim4 para utilizar SMTP-AUTH con TLS y SASL.

242

Servicios de correo

electrónico

El primer paso es crear un certificado para el uso con TLS. Escriba lo siguiente en una terminal:

sudo / usr/share/doc/exim4-base/examples/exim-gencert

Ahora Exim4 necesita ser configurado para TLS mediante la edición de / Etc/exim4/conf.d/main/03_exim4- config_tlsoptions agregar lo siguiente:

MAIN_TLS_ENABLE = yes

A continuación, debe configurar Exim4 para utilizar el saslauthd para la autenticación. Editar / Etc/exim4 / conf.d/auth/30_exim4-config_examples y el comentario de la plain_saslauthd_server y login_saslauthd_server secciones:

plain_saslauthd_server: Driver = texto

public_name = PLAIN server_condition = $ {if saslauthd {{$} {$ auth2 auth3}} {1} {0}}

server_set_id = $ auth2

server_prompts =: . Ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS

server_advertise_condition = $ {if eq {$ tls_cipher} {} {} {*}} . Endif

# login_saslauthd_server: Driver = texto

public_name = LOGIN server_prompts = "Nombre de usuario Contraseña :::

::" # No envía las contraseñas del sistema a través de conexiones cifradas

server_condition = $ {if saslauthd {{$} {$ auth1 auth2}} {1} {0}} server_set_id = $ auth1

. Ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS server_advertise_condition = $ {if eq {$ tls_cipher} {} {} {*}}

. Endif

Además, a fin de que fuera cliente de correo para poder conectarse al nuevo servidor exim, nuevo usuario necesita

que se añaden a exim con los siguientes comandos.

sudo / usr/share/doc/exim4/examples/exim-adduser

Los usuarios deben proteger los archivos exim nueva contraseña con los siguientes comandos.

sudo chown root: Debian-exim / etc/exim4/passwd sudo chmod 640 / etc/exim4/passwd

Por último, actualizar la configuración de exim4 y reiniciar el servicio:

sudo update-exim4.conf

243

Servicios de correo

electrónico

sudo / etc/init.d/exim4 reinicio

2,4. Configuración de SASL

Esta sección proporciona detalles sobre la configuración del saslauthd para proporcionar autenticación de

Exim4.

El primer paso es instalar el paquete sasl2 papelera. Desde una terminal escriba lo siguiente:

sudo apt-get install sasl2-bin

Para configurar saslauthd editar el fichero de configuración / etc / default / saslauthd y establecer START = no

a:

START = yes

A continuación, el Debian-exim usuario necesita ser parte del sasl grupo a fin de que Exim4 para utilizar el saslauthd servicio:

sudo adduser de Debian-exim sasl

Ahora iniciar el servicio saslauthd:

sudo / etc / init.d / saslauthd inicio

Exim4 está ahora configurada con SMTP-AUTH con TLS y SASL.

2,5. Referencias

• Ver exim.org9 para más información.

• Existe también una Exim4 LibroDispone de 10.

• Otro recurso es la Exim4 Wiki de Ubuntu 11 páginas.

9 http://www.exim.org/~~V 10 http://www.uit.co.uk/content/exim-smtp-mail-server 11 https://help.ubuntu.com/community/Exim4

244

Servicios de correo

electrónico

3. Servidor Dovecot

Dovecot es un Agente de entrega de correo, escrito con la seguridad sobre todo en la mente. Es compatible con los

principales formatos de buzones: mbox o Maildir. En esta sección se explica cómo configurarlo como un servidor IMAP o

POP3. 3,1. Instalación

Para instalar dovecot, ejecute el comando siguiente en el símbolo del sistema:

sudo apt-get install dovecot-imapd dovecot-pop3d

3,2. Configuración

Para configurar dovecot, puede editar el archivo / Etc / dovecot / dovecot.conf. Usted puede elegir el protocolo que use. Podría ser POP3, POP3S (pop3 seguro), IMAP y imaps (imap seguro). Una descripción de estos protocolos está fuera del alcance de esta guía. Para más información, consulte la Wikipedia artículos sobre POP312 y IMAP13.

IMAPS y POP3S son más seguras que la simple IMAP y POP3, ya que utilizan SSL

cifrado de la conexión. Una vez que haya elegido el protocolo, modificar la siguiente línea en el archivo / Etc / dovecot / dovecot.conf:

protocolos POP3 pop3s = imap imaps

A continuación, seleccione el buzón que desea utilizar. Dovecot apoya maildir y mbox formatos. Estos son los formatos de buzón más comúnmente utilizados. Ambos tienen sus propios beneficios y se discuten en el sitio web de Dovecot14.

Una vez que haya elegido el tipo de buzón, edite el archivo / Etc / dovecot / dovecot.conf y cambiar el

siguiendo la línea:

mail_location = maildir: ~ / Maildir # (para maildir)

o mail_location = mbox: ~ / mail: INBOX = / var / spool / mail /% u # (para

mbox)

Usted debe configurar el Agente de Transporte de Correo (MTA) para transferir el correo entrante

este tipo de buzón de correo si es diferente a la que ha configurado.

Una vez que haya configurado dovecot, reiniciar el demonio de dovecot con el fin de probar la instalación:

sudo / etc / init.d / dovecot restart

12 http://en.wikipedia.org/wiki/POP3 13 http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol 14 http://wiki.dovecot.org/MailboxFormat

245

Servicios de correo

electrónico

Si ha habilitado IMAP o POP3, también puede tratar de conectarse con los comandos telnet localhost pop3 o telnet localhost imap2. Si usted ve algo como lo siguiente, la instalación ha sido éxito:

bhuvan @ arco iris: ~ $ telnet localhost pop3 Trying 127.0.0.1 ...

Conectado a localhost. Carácter de escape es '^]'.

+ OK Dovecot listo.

3,3. Configuración de Dovecot SSL

Para configurar dovecot para que utilice SSL, usted puede editar el archivo / Etc / dovecot / dovecot.conf y

enmendar las líneas siguientes:

ssl_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem ssl_key_file = / etc / ssl / private / ssl-cert-snakeoil.key

ssl_disable = no disable_plaintext_auth = no

Usted puede obtener el certificado SSL de una Autoridad emisora de certificados o usted puede crear su propia firma

SSL certificado. Esta última es una buena opción para correo electrónico, ya que los clientes SMTP rara vez se quejan de

"auto- certificados firmados ". Por favor consulte Sección 5, "certificados" [p. 171] para obtener más información acerca de

cómo crear certificado SSL autofirmado. Una vez creado el certificado, tendrá un archivo de clave y un certificado archivo. Por favor, copiar a la ubicación indicada en el / Etc / dovecot / dovecot.conf archivo de configuración.

3,4. Configuración del firewall para un servidor de correo

electrónico

Para acceder a su servidor de correo desde otro equipo, debe configurar su firewall para permitir conexiones con el servidor en los puertos necesarios.

• IMAP - 143

• Los IMAPS - 993

• POP3 - 110

• Los POP3S - 995

3,5. Referencias

• Consulte el Sitio web de Dovecot15 para más información.

• Además, el Dovecot Wiki de Ubuntu16 páginas tiene más detalles.

15 http://www.dovecot.org/~~V Https://help.ubuntu.com/community/Dovecot 16

246

Servicios de correo

electrónico

4. Cartero

Mailman es un programa open source para la gestión de las discusiones de correo electrónico y listas de e-newsletter. Muchas listas abiertas de correo de origen (incluyendo todos los Listas de correo de Ubuntu17) usar Mailman como su correo lista de software. Es potente y fácil de instalar y mantener.

4,1. Instalación

Mailman proporciona una interfaz web para los administradores y usuarios, utilizando un servidor de correo externo enviar y recibir mensajes de correo electrónico. Funciona perfectamente con los servidores de correo siguientes:

• Postfix

• Exim

• Sendmail

• Qmail

Vamos a ver cómo instalar y configurar Mailman con, el servidor web Apache, Postfix y, o bien la o el servidor de correo Exim. Si desea instalar Mailman con otro servidor de correo, por favor refiérase a la sección de referencias.

Usted sólo tiene que instalar un servidor de correo Postfix, y es el de transferencia de correo

predeterminado en Ubuntu Agente.

4.1.1. Apache2

Para instalar apache2 que se refieren a Sección 1.1, "Instalación" [p. 187] para más detalles.

4.1.2. Sufijo

Para obtener instrucciones sobre cómo instalar y configurar Postfix se refieren a Sección 1, "Postfix" [p.

235]

4.1.3. Exim4

Para instalar Exim4 se refieren a Sección 2, "Exim4" [p. 242].

Una vez que se ha instalado exim4, los archivos de configuración se guardan en la / Etc/exim4 directorio. En Ubuntu,

por predeterminada, los archivos de configuración de exim4 se dividen en diferentes archivos. Puede cambiar este

comportamiento cambiando la siguiente variable en el / Etc/exim4/update-exim4.conf archivo:

dc_use_split_config = 'true'

4.1.4. Cartero

Para instalar Mailman, ejecute el comando siguiente en una terminal:

17 http://lists.ubuntu.com

247

Servicios de correo

electrónico

sudo apt-get install mailman

Se copia a los archivos de instalación en / var / lib / mailman. Se instala los scripts CGI en / usr/lib/cgi-

bin / mailman. Se crea lista usuario de linux. Se crea el lista linux grupo. El proceso de cartero serán propiedad de este usuario.

4,2. Configuración

En esta sección se asume que usted ha instalado con éxito mailman, apache2 y postfix o exim4. Ahora sólo tienes que configurarlos.

4.2.1. Apache2

Un ejemplo de archivo de configuración de Apache viene con Mailman y se coloca en / Etc / mailman / apache.conf. Con el fin de Apache para que utilice el archivo de configuración que necesita para ser copiado a / Etc/apache2 / sites-available:

sudo cp / etc / mailman / apache.conf / etc/apache2/sites-available/mailman.conf

Esto configurará un nuevo Apache VirtualHost para el sitio de administración de Mailman. Ahora permitir que el

nuevo la configuración y reiniciar Apache:

mailman.conf a2ensite sudo sudo service apache2 reiniciar

Mailman usa apache2 para hacer sus scripts CGI. Los scripts cgi de mailman se instalan en el directorio / usr / lib / cgi-bin/mailman directorio. Por lo tanto, la url será http://hostname/cgi-bin/mailman/ cartero. Usted puede realizar cambios en el / Etc/apache2/sites-available/mailman.conf presentar si desea cambiar esta

comportamiento.

4.2.2. Sufijo

Para la integración de Postfix, vamos a asociar el lists.example.com de dominio con las listas de correo. Por favor,

reemplazar lists.example.com con el dominio de su elección.

Puede utilizar el comando postconf para añadir la configuración necesaria para / Etc / postfix / main.cf:

sudo postconf-e '= relay_domains lists.example.com' postconf-e sudo 'transport_maps = hash :/ etc / postfix / transport' postconf-e sudo 'mailman_destination_recipient_limit = 1'

En / Etc / postfix / master.cf vuelva a comprobar que tiene el transporte siguiente:

cartero unix - n n - - tubo

flags = FR user = lista argv = / usr / lib / mailman / bin / postfix-to-

mailman.py

248

Servicios de correo

electrónico

$ {} $ {NextHop usuario}

Se llama a la postfix a mailman.py secuencia de comandos cuando uno se entrega el

correo a una lista.

Asociar el lists.example.com de dominio para el transporte Mailman con el mapa de transporte. Editar el archivo / Etc / postfix / transport:

lists.example.com Mailman:

Ahora tiene Postfix construir el mapa de transporte, escriba lo siguiente en una terminal:

sudo postmap-v / etc / postfix / transport

A continuación, reinicie Postfix para que las nuevas

configuraciones:

sudo / etc / init.d / postfix restart

4.2.3. Exim4

Una vez que Exim4 está instalado, usted puede iniciar el servidor Exim usando el siguiente comando en una terminal

del sistema:

sudo / etc/init.d/exim4 inicio

Con el fin de hacer que el trabajo cartero con Exim4, necesita configurar Exim4. Como se mencionó anteriormente,

Por defecto, exim4 usa varios archivos de configuración de distintos tipos. Para obtener más información,

consulte la Exim18 sitios web. Para ejecutar mailman, hay que añadir un nuevo archivo de configuración para los siguientes tipos de configuración:

• Principal

• Transporte

• Router

Exim crea un archivo de configuración principal, clasificando todos los archivos de configuración de mini. Así, el

orden de estos archivos de configuración es muy importante.

4.2.4. Principal

Todos los archivos de configuración que pertenecen al tipo principal se almacenan en el / Etc/exim4/conf.d/main / directorio. Puede añadir el siguiente contenido en un archivo nuevo, llamado 04_exim4-config_mailman:

# Inicia el

# Inicio directorio para la instalación de Mailman - prefix Mailman también

conocido como el # Directorio. # En Ubuntu esto debería ser "/ var / lib / mailman"

18 http://www.exim.org

249

Servicios de correo

electrónico

# Este es normalmente el mismo que ~ cartero

MM_HOME = / var / lib / mailman #

# El usuario y el grupo de Mailman, debe coincidir con la opción - with-

mail-gid # Del script de configuración de Mailman.

MM_UID = lista MM_GID = lista

# # Los dominios que se encuentran en las listas - la lista separada

por dos puntos # Es posible que desee agregar en local_domains así mm_domains DomainList = hostname.com # # - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

= - = - = - = - = - = - = - = - = - = - = - = #

# Estos valores se derivan de los de arriba y no es necesario # Cambiarse a menos que haya manipulado su instalación de mailman # # La ruta del script Mailman envoltorio electrónico MM_WRAP = MM_HOME / mail / mailman #

# La ruta del archivo de configuración de la lista (se utiliza como un

archivo requerido cuando # Verificación de direcciones de la lista) MM_LISTCHK = MM_HOME / lists / $ {lc :: $ local_part} / config.pck

# End

El valor es normalmente "cartero"

4.2.5. Transporte

Todos los archivos de configuración pertenecientes al tipo de transporte se almacenan en el / Etc/exim4/conf.d / de transporte / directorio. Puede añadir el siguiente contenido en un nuevo archivo llamado 40_exim4- config_mailman:

mailman_transport:

Driver = tubería command = MM_WRAP \

'$ {If def: local_part_suffix \ {$ {Sg {$ local_part_suffix} {- (\ \ w +) (. \ \ + *)} {\ $ 1}}}

\ {Mensaje}} '\ $ Local_part

current_directory = MM_HOME home_directory = MM_HOME

user = MM_UID = grupo MM_GID

4.2.6. Router

Todos los archivos de configuración correspondientes a un tipo de encaminamiento se almacenan en la / Etc/exim4/conf.d/router / directorio. Puede añadir el siguiente contenido en un nuevo archivo llamado 101_exim4-config_mailman:

mailman_router: controlador = aceptar

250

Servicios de correo

electrónico

require_files = MM_HOME / lists / $ local_part / config.pck

local_part_suffix_optional local_part_suffix =-Rebotes:-bounces + *: \

A confirmar + *:-join:-licencia: \ -Propietario:-petición:-admin

transport = mailman_transport

El orden de los archivos principales de configuración y el transporte puede ser en cualquier orden.

Pero, el orden de los archivos de configuración del router debe ser el mismo. Este archivo en particular debe aparecer

antes de el archivo 200_exim4-config_primary. Estos dos archivos de configuración contienen el mismo tipo de información. El primer archivo tiene prioridad. Para más detalles, consulte el sección de referencias.

4.2.7. Cartero

Una vez que mailman está instalado, se puede ejecutar con el siguiente comando:

sudo / etc / init.d / mailman inicio

Una vez que mailman está instalado, usted debe crear la lista de correo por defecto. Ejecute el siguiente comando para crear la lista de correo:

sudo / usr / bin / mailman newlist

Introduzca la dirección de correo electrónico de la persona que ejecuta la lista: bhuvan en

ubuntu.com Contraseña cartero inicial:

Para terminar de crear su lista de correo, debe editar el archivo / etc / aliases (o equivalente), añadiendo las siguientes líneas, y, posiblemente, ejecutar el

`Newaliases 'del programa:

# # Cartero lista de correo

Mailman: mailman-admin:

mailman-bounces: mailman-confirm:

mailman-join: cartero de baja por:

mailman-propietario: mailman-request:

mailman-subscribe: mailman-unsubscribe:

"| / Var / lib / mailman / mail / mailman cartero mensaje" "| / Var / lib / mailman / mail / mailman cartero de

administración" "| / Var / lib / mailman / mail / mailman cartero rebota" "| / Var / lib / mailman / mail / mailman confirm mailman"

"| / Var / lib / mailman / mail / mailman unirse a

cartero" "| / Var / lib / mailman / mail / mailman cartero

licencia" "| / Var / lib / mailman / mail / mailman cartero titular" "| / Var / lib / mailman / mail / mailman cartero petición"

"| / Var / lib / mailman / mail / mailman subscribe mailman" "| / Var / lib / mailman / mail / mailman mailman unsubscribe"

Pulsa Intro para notificar a dueño de cartero

...

#

Hemos configurado ya sea Postfix o exim4 para reconocer a todos los correos electrónicos de cartero. Así, es no es obligatorio realizar las nuevas inscripciones en el / Etc / aliases. Si ha realizado algún cambio en la archivos de configuración, por favor asegúrese de reiniciar esos servicios antes de continuar a la siguiente sección.

251

Servicios de correo

electrónico

El Exim4 no utiliza los alias de arriba para reenviar correos a Mailman, ya que utiliza una descubrir enfoque. Para suprimir los alias al crear la lista, puede agregar MTA = Ninguno línea en Mailman archivo de configuración, / Etc / mailman / mm_cfg.py.

4,3. Administración

Suponemos que usted tiene una instalación por defecto. Los scripts cgi de mailman todavía están en el directorio / usr /

lib / cgi-bin / mailman /. Mailman proporciona una facilidad de administración web. Para acceder a esta página, punto su navegador a la siguiente dirección:

http://hostname/cgi-bin/mailman/admin

La lista de correo por defecto, cartero, aparecerá en la pantalla. Si hace clic en el nombre de la lista de correo, lo hará pedirá su contraseña de autenticación. Si introduce la contraseña correcta, usted será capaz de cambiar la configuración administrativa de esta lista de correo. Puede crear una nueva lista de correo utilizando la línea de

comandos utilidad (/ usr / bin / newlist). Como alternativa, puede crear una nueva lista de correo usando el interfaz web.

4,4. Usuarios

Mailman proporciona una interfaz basada en web para los usuarios. Para acceder a esta página, dirija su navegador

a la siguiente url:

http://hostname/cgi-bin/mailman/listinfo

La lista de correo por defecto, cartero, aparecerá en la pantalla. Si hace clic en el nombre de la lista de correo, lo hará

mostrar el formulario de suscripción. Puedes ingresar tu dirección de correo electrónico, nombre (opcional), y una

contraseña para suscribirse. Una invitación por correo electrónico será enviado a usted. Puede seguir las instrucciones del correo

electrónico a suscribirse.

4,5. Referencias

GNU Mailman - Manual de Instalación19

HOWTO - Uso de Exim 4 y Mailman 2.1, junto20

Además, vea la Mailman Wiki de Ubuntu21 páginas.

19 http://www.list.org/mailman-install/index.html 20 http://www.exim.org/howto/mailman21.html 21 https://help.ubuntu.com/community/Mailman

252

Servicios de correo

electrónico

5. Filtrado de Correo

Uno de los mayores problemas con el correo electrónico hoy en día es el problema del correo electrónico masivo no

solicitado (UBE). También conocido como spam, ese tipo de mensajes también pueden contener virus y otras formas de malware. De acuerdo

con algunos informes estos mensajes constituyen la mayor parte de todo el tráfico de correo

electrónico en Internet.

Esta sección cubre la integración de Amavisd-new, Spamassassin y ClamAV con el correo Postfix Agente de Transporte (MTA). Postfix también puede comprobar la validez de correo electrónico pasándolo a través de

contenido externo filtros. Estos filtros pueden a veces determinar si un mensaje es spam sin necesidad de procesar con

más intensivo de recursos de aplicaciones. Dos filtros comunes son opendkim y python-spf-Policyd.

• Amavisd-new es un programa contenedor que se puede llamar a cualquier número de programas de filtrado de

contenidos para el spam detección, antivirus, etc • Spamassassin usa una variedad de mecanismos para filtrar el correo electrónico basado en el contenido del

mensaje. • ClamAV es una aplicación de código abierto antivirus.

• opendkim implementa un filtro de correo Sendmail (milter) para los DomainKeys Identified Mail (DKIM) estándar.

• python-Policyd-SPF permite a Sender Policy Framework (SPF) de cheques con Postfix.

Así es como encajan las piezas:

• Un mensaje de correo electrónico es aceptado por

Postfix. • El mensaje se transmite a través de los filtros externos opendkim y python-Policyd spf-en este caso.

• Amavisd-new procesa el mensaje.

• ClamAV se utiliza para explorar el mensaje. Si el mensaje contiene un virus Postfix rechace el mensaje.

• Limpie los mensajes serán analizados por SpamAssassin para saber si el mensaje es spam. Spamassassin luego añade una cabecera X-líneas permitiendo Amavisd-new para manipular aún más la

mensaje.

Por ejemplo, si un mensaje tiene una puntuación de spam de más de cincuenta años que el mensaje podría ser eliminada

automáticamente de la cola sin que el destinatario tener que ser molestado. Otra forma, para manejar marcado mensajes es para entregar al Agente de Usuario de Correo (MUA) que permite al usuario hacer frente con el mensaje

como mejor les parezca.

5,1. Instalación

Ver Sección 1, "Postfix" [p. 235] para obtener instrucciones sobre cómo instalar y configurar Postfix.

Para instalar el resto de las aplicaciones introduzca lo siguiente en una terminal:

sudo apt-get install amavisd-new spamassassin clamav-daemon sudo apt-get install postfix-opendkim Policyd-spf-python

Hay algunos paquetes opcionales que se integran con Spamassassin para la detección de spam mejor:

253

Servicios de correo

electrónico

sudo apt-get install pyzor de afeitar

Junto con las principales aplicaciones de filtrado de utilidades de compresión son necesarios para procesar el correo

electronico archivos adjuntos:

sudo apt-get install cabextract arj lha cpio nomarca personas rar unrar zip unzip

Si algunos paquetes no se encontró, compruebe que el multiverso repositorio está habilitado en / Etc / apt / sources.list

Si realiza cambios en el archivo, asegúrese de ejecutar sudo apt-get update antes de instalarlo nuevo.

5,2. Configuración

Ahora configure todo para trabajar en conjunto y filtrar el correo

electrónico.

5.2.1. ClamAV

El comportamiento predeterminado de ClamAV se ajuste a nuestras necesidades. Para obtener más opciones de

configuración de ClamAV, compruebe los archivos de configuración en / Etc / clamav.

Añadir el clamav usuario al amavis grupo con el fin de Amavisd-new tener el acceso adecuado a los

analizar los

archivos:

sudo adduser clamav amavis sudo adduser clamav amavis

5.2.2. Spamassassin

Spamassassin detecta automáticamente los componentes opcionales y las usarán si están presentes. Este significa que no hay necesidad de configurar pyzor y maquinilla de afeitar.

Editar / Etc / default / spamassassin para activar el demonio SpamAssassin. Cambiar ENABLED = 0 a:

ENABLED = 1

Ahora inicie el demonio:

sudo / etc / init.d / spamassassin inicio

5.2.3. Amavisd-new

En primer lugar activar la detección de spam y antivirus en Amavisd-new editando / Etc/amavis/conf.d/15- content_filter_mode:

254

Servicios de correo

electrónico

use strict;

# Se puede modificar este archivo para la comprobación de SPAM volver a habilitar a

través de spamassassin # Y volver a habilitar la comprobación de

antivirus.

# # Por defecto el modo de control de

antivirus # Elimine las dos líneas de abajo para permitir que #

@ Bypass_virus_checks_maps = ( \ Bypass_virus_checks%, \ @ bypass_virus_checks_acl, \ $ bypass_virus_checks_re);

# # SPAM por defecto el modo de control de # Elimine las dos líneas de abajo para permitir que #

@ Bypass_spam_checks_maps = ( \ Bypass_spam_checks%, \ @ bypass_spam_checks_acl, \ $ bypass_spam_checks_re);

1; # Asegurar un retorno definido

Bouncing spam puede ser una mala idea ya la dirección de retorno es a menudo falso. Considere la posibilidad de editar / Etc / amavis / conf.d/20-debian_defaults para establecer $ Final_spam_destiny a D_DISCARD en lugar de D_BOUNCE, como sigue:

$ Final_spam_destiny = D_DISCARD;

Además, es posible que desee ajustar las siguientes opciones para marcar más mensajes como spam:

$ Sa_tag_level_deflt = -999; # agregar encabezados de spam información si es, o por encima de

ese nivel $ Sa_tag2_level_deflt = 6,0; # añade 'spam detectado "encabezados en ese nivel $ Sa_kill_level_deflt = 21,0; # desencadenantes de spam acciones evasivas

$ Sa_dsn_cutoff_level = 4; # nivel de spam a partir del cual un DSN no se envía

Si el servidor nombre de host es diferente del registro MX del dominio puede que tenga que configurar

manualmente la $ Myhostname opción. Además, si el servidor recibe correo para varios dominios de la @ Local_domains_acl opción tendrá que ser personalizado. Edite el / Etc/amavis/conf.d/50-user archivo:

$ Myhostname = 'mail.example.com "; @ Local_domains_acl = ("example.com", "example.org");

Si usted desea cubrir varios dominios puede utilizar el siguiente en el/ Etc/amavis/conf.d/50-user

@ Local_domains_acl = qw (.);

Después de la configuración Amavisd-new necesita ser reiniciado:

255

Servicios de correo

electrónico

sudo / etc / init.d / amavis restart

5.2.3.1. DKIM lista blanca

Amavisd-nuevo puede ser configurado para automáticamente Lista blanca Las direcciones de los

dominios con las claves válidas de dominio. Hay algunos dominios pre-configurados en el / Etc/amavis/conf.d/40- policy_banks.

Hay varias formas de configurar la lista blanca de un dominio:

•'Example.com' => 'lista blanca',: se lista blanca cualquier dirección desde el dominio "example.com".

•'. Example.com' => 'lista blanca',: se lista blanca cualquier dirección de cualquier subdominios de "Example.com", que tiene una firma válida.

•'Example.com / @ example.com.' => 'Lista blanca',: se subdominios lista blanca de "example.com", que utilizar la firma de example.com el dominio principal.

•. / @ Example.com '=>' lista blanca ',: agrega direcciones que tienen una firma válida desde

"Example.com". Esto se utiliza generalmente para grupos de discusión que firman sus mensajes.

Un dominio también puede tener varias configuraciones de lista blanca. Después de editar el archivo, reinicie amavisd-

new:

sudo / etc / init.d / amavis restart

En este contexto, una vez que un dominio ha sido añadido a la lista blanca el mensaje no recibirá ningún tipo de filtro anti-virus o spam. Esto puede o no puede ser el comportamiento previsto desea para

un dominio.

5.2.4. Sufijo

Para la integración de Postfix, introduzca lo siguiente en una terminal:

sudo postconf-e 'content_filter = smtp-amavis: [127.0.0.1]: 10024'

La próxima edición / Etc / postfix / master.cf y añadir lo siguiente al final del archivo:

smtp-amavis unix - - - - 2 smtp -O smtp_data_done_timeout = 1200

-O smtp_send_xforward_command = yes -O disable_dns_lookups = yes

-O = 20 max_use

127.0.0.1:10025 inet n - - - - smtpd

-O content_filter = -O local_recipient_maps =

-O relay_recipient_maps = -O smtpd_restriction_classes = -O smtpd_delay_reject = no -O smtpd_client_restrictions = permit_mynetworks, rechazar

256

Servicios de correo

electrónico

-O smtpd_helo_restrictions =

-O smtpd_sender_restrictions = -O smtpd_recipient_restrictions = permit_mynetworks, rechazar

-O smtpd_data_restrictions = reject_unauth_pipelining -O smtpd_end_of_data_restrictions =

-O mynetworks = 127.0.0.0 / 8 -O smtpd_error_sleep_time = 0

-O smtpd_soft_error_limit = 1001 -O smtpd_hard_error_limit = 1000 -O smtpd_client_connection_count_limit = 0

-O smtpd_client_connection_rate_limit = 0 -O receive_override_options = no_header_body_checks y no_unknown_recipient_checks

También añada las dos líneas siguientes inmediatamente debajo de la "Pickup" Servicio de

transporte:

-O content_filter = -O receive_override_options = no_header_body_checks

Esto evitará que los mensajes que se generan para informar sobre el spam de ser clasificado como spam.

Ahora reiniciar Postfix:

sudo / etc / init.d / postfix restart

Filtrado de contenidos con el spam y la detección de virus está ahora

habilitado.

5.2.5. Amavisd-new y spamassassin

Al integrar Amavisd-new con Spamassassin, si decide desactivar el filtrado de Bayes por

edición / Etc / spamassassin / local.cf y usar cron para actualizar las reglas de todas las noches, el resultado

puede causar una situación en la que se envían una gran cantidad de mensajes de error al amavis usuario a través del cron amavisd-new trabajo.

Hay varias formas de manejar esta situación:

• Configurar el MDA para filtrar los mensajes que no desea ver.

• Cambio / Usr / sbin / amavisd-new-cronjob para comprobar use_bayes 0. Por ejemplo, editar / Usr / bin / amavisd-new-cronjob y añadir lo siguiente a la cima antes de que el prueba declaraciones:

egrep-q "^ [\ t] * use_bayes [\ t] * 0" / etc / spamassassin / local.cf && exit 0

5,3. Pruebas

En primer lugar, prueba de que el SMTP Amavisd-new está

escuchando:

telnet localhost 10024 Trying 127.0.0.1 ...

Connected to localhost. Carácter de escape es '^]'.

257

Servicios de correo

electrónico

220 [127.0.0.1] ESMTP amavisd-new servicio listo ^]

En el encabezado de los mensajes que pasan por el filtro de contenido que usted debe ver:

X-Spam-Level:

X-Virus-escaneada: Debian amavisd-new at example.com X-Spam-Status: No, hits = -2.3 tagged_above = -1000,0 requerida = 5.0 tests = AWL, BAYES_00

X-Spam-Level:

Su salida puede variar, pero lo importante es que hay X-Virus-Scanned y X- Spam-Status entradas.

5,4. Solución de problemas

La mejor manera de averiguar por qué algo va mal es comprobar los archivos de registro.

• Para obtener instrucciones sobre el registro de Postfix ver el Sección 1.7, "Resolución de problemas" [p. 239] sección. • Amavisd-new utiliza syslog para enviar mensajes a / Var / log / mail.log. La cantidad de detalles puede ser aumentarse añadiendo el $ Log_level opción para / Etc/amavis/conf.d/50-user, Y establecer el valor 1 a 5.

$ Log_level = 2;

Cuando el Amavisd-new salida del registro se aumentó la producción de Spamassassin registro también se

incrementa.

• El nivel de registro de ClamAV se puede aumentar mediante la edición de / Etc / clamav / clamd.conf y

estableciendo el siguiente opción:

LogVerbose verdad

De forma predeterminada ClamAV enviará mensajes de registro para / Var / log / clamav

/ clamav.log.

Después de cambiar una configuración de las aplicaciones de registro de acuerdo para reiniciar el

servicio para el nuevo la configuración surta efecto. Además, una vez el problema que está solucionando problemas se resuelve

que es una buena idea de cambiar la configuración del registro a la normalidad.

5,5. Referencias

Para más información sobre el filtrado de correo ver los siguientes enlaces:

•Amavisd-new Documentación22

•ClamAV Documentación23 y ClamAV Wiki24

22 http://www.ijs.si/software/amavisd/amavisd-new-docs.html 23 http://www.clamav.net/doc/latest/html/ 24 http://wiki.clamav.net/Main/WebHome

258

Servicios de correo

electrónico

•Spamassassin Wiki25

•Pyzor Página de inicio26

•Razor Página de inicio27

•DKIM.org28

•Postfix Amavis Nueva29

Además, no dude en hacer preguntas en el # Ubuntu-server Canal de IRC en freenode30.

25 http://wiki.apache.org/spamassassin/ 26 http://sourceforge.net/apps/trac/pyzor/ 27 http://razor.sourceforge.net/ 28 http://dkim.org/~~V 29 https://help.ubuntu.com/community/PostfixAmavisNew 30 http://freenode.net

259

Capítulo 16. Aplicaciones de chat

260

Aplicaciones de chat

1. Información general En esta sección, vamos a discutir cómo instalar y configurar un servidor de IRC, ircd-IRc2. También se

discutir la forma de instalar y configurar Jabber, un servidor de mensajería ejemplo.

261

Aplicaciones de chat

2. IRC Server

El repositorio de Ubuntu tiene muchos servidores de Internet Relay Chat. En esta sección se explica cómo instalar y

configurar el servidor original de IRC-ircd IRc2.

2,1. Instalación

Para instalar ircd-IRc2, ejecute el comando siguiente en el símbolo del sistema:

sudo apt-get install-ircd IRc2

Los archivos de configuración se guardan en / Etc / ircd directorio. Los documentos están disponibles en / Usr / share/doc/ircd-irc2 directorio.

2,2. Configuración

Los ajustes de IRC se puede hacer en el archivo de configuración / Etc / ircd / ircd.conf. Puede configurar el

IRC nombre de host en el archivo mediante la edición de la siguiente línea:

M: irc.localhost :: Debian ircd configuración por defecto :: 000A

Por favor, asegúrese de añadir alias de DNS para el nombre de host del IRC. Por ejemplo, si se

establece irc.livecipher.com como nombre de host del IRC, por favor haga irc.livecipher.com que se puede resolver en su Servidor de Nombres de Dominio. El nombre de host del IRC no debe ser el mismo que el nombre de host.

Los detalles de administrador de IRC se puede configurar mediante la edición de la

siguiente línea:

A: Organización, IRC departamento:. <[email protected]> Demonio: Client Server :: IRCnet:

Se deben agregar las líneas específicas para configurar la lista de puertos de IRC para escuchar, para configurar

operador credenciales, para configurar la autenticación de cliente, etc Para más información, consulte el ejemplo archivo de configuración / Usr/share/doc/ircd-irc2/ircd.conf.example.gz.

La bandera de IRC que se mostrará en el cliente de IRC, cuando el usuario se conecta al servidor se puede establecer en / etc / ircd / ircd.motd archivo.

Después de hacer los cambios necesarios en el fichero de configuración, puede reiniciar el servidor de IRC con el siguiente comando:

sudo / etc/init.d/ircd-irc2 reinicio

2,3. Referencias

Usted también podría estar interesado en echar un vistazo a otros servidores IRC disponibles en el repositorio de

Ubuntu. Lo incluye, ircd ircd-UCRI y la híbrida.

262

Aplicaciones de chat

• Consulte IRCD Preguntas frecuentes1 para más detalles sobre el servidor IRC.

1 http://www.irc.org/tech_docs/ircnet/faq.html

263

Aplicaciones de chat

3. Servidor de mensajería instantánea Jabber

Farfullar un protocolo de mensajería instantánea populares se basa en XMPP, un estándar abierto para mensajería

instantánea, y utilizado por muchas aplicaciones populares. Esta sección abarca la creación de un Jabberd 2 servidor en un local LAN. Esta configuración también se puede adaptar para proporcionar servicios de mensajería a los usuarios sobre el

Internet.

3,1. Instalación

Para instalar jabberd2, en una terminal escriba:

sudo apt-get install jabberd2

3,2. Configuración

Hace un par de archivos de configuración XML se utiliza para configurar jabberd2 de Berkeley DB usuario autenticación. Esta es una forma muy simple de autenticación. Sin embargo, jabberd2 puede ser configurado para usar LDAP, MySQL, PostgreSQL, etc para la autenticación del usuario.

En primer lugar, editar / Etc/jabberd2/sm.xml

cambiando:

<id> jabber.example.com </ id>

Reemplazar jabber.example.com con el ID de nombre de host, o de otra índole, de su

servidor.

Ahora bien, en la sección <Almacenamiento> cambiar el

<controlador> a:

<controlador> db </

controlador>

A continuación, modifique / Etc/jabberd2/c2s.xml en el <local> sección de

cambio:

<id> jabber.example.com </ id>

Y en la sección <authreg> ajustar la sección <module> a:

<module> db </ modulo>

Por último, reinicie jabberd2 para permitir que la nueva

configuración:

sudo / etc/init.d/jabberd2 reinicio

Ahora debería ser capaz de conectarse al servidor usando un cliente Jabber como Pidgin por ejemplo.

264

Aplicaciones de chat

La ventaja de utilizar Berkeley DB para los datos de usuario es que después de ser configurado sin de mantenimiento adicional. Si necesita más control sobre las cuentas de usuario y las credenciales de otro método de autenticación que se recomienda.

3,3. Referencias

• El Jabberd2 Sitio Web2 contiene más detalles sobre la configuración de jabberd2.

• Para las opciones de autenticación más ver el Jabberd2 Guía de instalación3.

• Además, el Configuración de Jabber Wiki de Ubuntu Server4 página tiene más información.

2 http://codex.xiaoka.com/wiki/jabberd2:start 3 http://www.jabberdoc.org/~~V 4 https://help.ubuntu.com/community/SettingUpJabberServer

265

Capítulo 17. Versión del sistema de control

El control de versiones es el arte de manejar cambios en la información. Ha sido durante mucho tiempo una

herramienta crítica para programadores, quienes típicamente emplean su tiempo haciendo pequeños cambios al software y luego

deshaciendo esos cambios al día siguiente. Pero la utilidad del software de control de versiones se extiende mucho más allá de la límites del mundo de desarrollo de software. En cualquier lugar se pueden encontrar las personas que utilizan las

computadoras para manejar información que cambia a menudo, hay espacio para el control de versiones.

266

Versión del sistema de control

1. Bazar

Bazaar es un sistema de control de versiones patrocinado por Canonical, la empresa comercial que hay detrás

Ubuntu. A diferencia de CVS, Subversion y que sólo admiten un modelo de repositorio central, el bazar también

apoya la versión de control distribuido, dando a la gente la capacidad de colaborar de manera más eficiente. En Bazar en particular, está diseñada para maximizar el nivel de participación de la comunidad en el código abierto

proyectos.

1,1. Instalación

En un terminal, introduzca el siguiente comando para instalar bzr:

sudo apt-get install bzr

1,2. Configuración

Para presentarse a bzr, utilice el whoami comando como este:

$ Bzr whoami 'Joe Doe <[email protected]>'

1,3. Aprendiendo Bazaar

Bazar viene con la documentación paquete instala en / usr / share / doc / bzr / html por defecto. La

tutorial es un buen lugar para empezar. El comando bzr también viene con una función de

ayuda:

$ Bzr ayuda

Para obtener más información acerca de la foo comando:

$ Bzr ayuda foo

1,4. Launchpad Integración

Aunque es muy útil como un sistema autónomo, el bazar tiene una buena integración, opcional con Launchpad1,

el sistema de desarrollo de colaboración utilizada por Canonical y la comunidad del código abierto para gestionar y ampliar Ubuntu en sí. Para información sobre cómo Bazaar se puede utilizar con Launchpad colaborar en proyectos de código abierto, consulte http://bazaar-vcs.org/LaunchpadIntegration2.

1 https://launchpad.net/ 2 http://bazaar-vcs.org/LaunchpadIntegration/

267

Versión del sistema de control

2. Subversión

Subversion es una versión de código abierto sistema de control. Uso de Subversion, puede registrar la historia de

archivos de código fuente y documentos. Gestiona archivos y directorios a través del tiempo. Un árbol de ficheros se

coloca en un repositorio central. El repositorio es como un servidor de archivos ordinario, salvo que recuerda todos los los cambios hechos a los archivos y directorios.

2,1. Instalación

Para acceder a un repositorio de Subversion mediante el protocolo HTTP, debe instalar y configurar una red servidor. Apache2 ha demostrado funcionar bien con Subversion. Por favor, consulte la subsección HTTP en el Apache2 sección para instalar y configurar Apache 2. Para acceder al repositorio de Subversion mediante el El protocolo HTTPS, debe instalar y configurar un certificado digital en su servidor web Apache 2. Por favor, consulte la subsección HTTPS en la sección de Apache2 para instalar y configurar la era digital certificado.

Para instalar Subversion, ejecute el siguiente comando en una terminal:

sudo apt-get install subversion libapache2-svn

2,2. Configuración del servidor

Este paso asume que usted ha instalado por encima de los paquetes mencionados en su sistema. En esta sección se explica cómo crear un repositorio de Subversion y acceder al proyecto.

2.2.1. Crear un repositorio Subversion

El repositorio Subversion puede ser creado con el siguiente comando en una terminal:

svnadmin create / path / al / repositorio / proyecto

2.2.2. Importación de archivos

Una vez creado el repositorio, puede importar archivos en el repositorio. Para importar un directorio, introduzca lo siguiente en una terminal:

svn import / ruta / a / importación / directorio file :/ / / ruta / al / repositorio / proyecto

2,3. Métodos de acceso

Los repositorios de Subversion se puede acceder (check out) a través de muchos métodos diversos - en locales disco, oa través de varios protocolos de red. Ubicación de un repositorio, sin embargo, es siempre una dirección

URL. La tabla se describe cómo diferentes esquemas de URL se asignan a los métodos de acceso disponibles.

268

Versión del sistema de control

Tabla 17.1. Métodos de acceso

Esquema

file :/ /

http://

https://

svn :/ /

svn + ssh :/ /

Método de acceso

acceso directo al repositorio (en el disco local)

Acceso mediante el protocolo WebDAV para Subversion consciente de servidor web

Apache 2 Lo mismo que http://, pero con encriptación SSL

El acceso a través de un protocolo personalizado a un servidor

svnserve Igual que svn :/ /, sino a través de un túnel SSH

En esta sección veremos cómo configurar Subversion para todos estos métodos de acceso. Aquí, cubrimos los conceptos básicos. Para obtener más información de uso más avanzadas, se refieren a la svn libro3.

2.3.1. Acceso directo al repositorio (file :/ /)

Este es el más simple de todos los métodos de acceso. No se requiere ningún proceso de servidor de Subversion para

ser ejecutando. Este método de acceso se utiliza para acceder a Subversion desde la misma máquina. La sintaxis de la comando, introducido en un sistema de terminal, es la siguiente:

svn co file :/ / / ruta / al / repositorio / proyecto

o

svn co file :/ / localhost / ruta / al / repositorio / proyecto

Si no se especifica el nombre del host, hay tres barras diagonales (/ / /) - dos para el protocolo (archivo, en este caso), además de la barra que lleva en el camino. Si se especifica el nombre de

host, debe utilizar dos barras inclinadas (/ /).

Los permisos del repositorio dependen de los permisos del sistema de archivos. Si el usuario ha leído / permiso de

escritura, se puede desde la que obtener y comprometerse con el repositorio.

2.3.2. Acceso mediante el protocolo WebDAV (http://)

Para acceder al repositorio de Subversion mediante el protocolo WebDAV, debe configurar el Apache 2 Web servidor. Añadir el siguiente código entre el <VirtualHost> y </ VirtualHost> elementos en / Etc /

apache2/sites-available/default, u otro archivo de host virtual:

<Location /svn> DAV svn

SVNPath / home / svn AuthType Basic AuthName "El nombre del repositorio"

3 http://svnbook.red-bean.com/

269

Versión del sistema de control

AuthUserFile / etc / subversion / passwd

Require valid-user </ Location>

El fragmento de la configuración anterior supone que los repositorios de Subversion se crean en / Home / svn / directorio utilizando svnadmin comando. Ellos pueden ser accesibles mediante http://

nombre de host / svn / repos_name url.

Para importar o cometer archivos a su repositorio de Subversion a través de HTTP, el depósito debe ser

propiedad del usuario HTTP. En los sistemas de Ubuntu, por lo general el usuario HTTP es www-data. Para cambiar

el la propiedad de los archivos del repositorio introducir el siguiente comando de terminal:

sudo chown-R www-data: www-data / ruta / al / repositorio

Al cambiar la propiedad de repositorio www-data usted no será capaz de importar o comprometerse en el repositorio de archivos mediante la ejecución de svn import file :/ / / comando como

a cualquier otro usuario de www-data.

A continuación, debe crear la / Etc / subversion / passwd archivo que contendrá los detalles de autenticación de

usuario. Para crear un problema de archivo de el siguiente comando en un símbolo del sistema (que va a crear el archivo y

agregue el primer usuario):

sudo htpasswd-c / etc / subversion / passwd nombre_usuario

Para añadir usuarios adicionales omitir el "-C" opción ya que esta opción reemplaza el archivo antiguo. En lugar de

utilizar el siguiente formulario:

sudo htpasswd / etc / subversion / passwd nombre_usuario

Este comando le pedirá que introduzca la contraseña. Una vez que introduzca la contraseña, el usuario se agrega. Ahora, para acceder al repositorio puede ejecutar el siguiente comando:

svn co http://servername/svn

La contraseña se transmite como texto sin formato. Si usted está preocupado por la adivinación de

contraseñas, que Se recomienda usar el cifrado SSL. Para obtener más información, consulte la siguiente sección.

2.3.3. Acceso mediante el protocolo WebDAV con cifrado SSL (https://)

Acceso a un repositorio de Subversion mediante el protocolo WebDAV con cifrado SSL (https://) es similar al http:// excepto en que debe instalar y configurar el certificado digital en su web Apache2

servidor. Para usar SSL con Subversion añade lo anterior Apache2 configuración / Etc/apache2/sites- disponible / default-ssl. Para obtener más información sobre la configuración de Apache 2 con SSL ve Sección

1.3, "Configuración de HTTPS" [p. 192].

Puede instalar un certificado digital emitido por una autoridad de certificación. Alternativamente, usted puede instalar

su propio certificado autofirmado.

270

Versión del sistema de control

Este paso asume que usted ha instalado y configurado un certificado digital en su servidor web Apache 2. Ahora, para acceder al repositorio de Subversion, por favor refiérase a la sección de arriba! Los métodos de acceso son exactamente el mismo, excepto el protocolo. Usted debe usar https:// para acceder al repositorio de Subversion.

2.3.4. Acceso a través de un protocolo personalizado

(svn :/ /)

Una vez que el repositorio Subversion es creado, usted puede configurar el control de acceso. Puede editar el / ruta / al / repositorio / proyecto / conf / svnserve.conf archivo para configurar el control de acceso. Por

ejemplo, para configurar la autenticación, puede descomentar las siguientes líneas en el fichero de configuración:

# [General] # Password-db = passwd

Después de descomentar las líneas anteriores, se puede mantener la lista de usuarios en el archivo passwd. Por lo tanto,

modificar el archivo passwd en el mismo directorio y añadir el nuevo usuario. La sintaxis es como sigue:

nombre de usuario =

contraseña

Para más detalles, consulte el archivo.

Ahora, para acceder a Subversion a través del svn :/ / protocolo personalizado, ya sea desde la misma máquina o

diferentes uno máquina, puede ejecutar svnserver usando la orden svnserve. La sintaxis es como sigue:

$ Svnserve-d - foreground-r / ruta / al / repositorio

#-D - modo demonio # - Foreground - ejecutar en primer plano (útil para depurar)

#-R - raíz del directorio del que servir

Para más detalles de uso, por favor referirse a: $ Svnserve - help

Una vez que se ejecuta este comando, Subversion empieza a escuchar en el puerto por defecto (3690). Para acceder al

proyecto repositorio, debe ejecutar el siguiente comando en una terminal:

svn co svn :/ / hostname / proyecto del proyecto - nombre de usuario Nombre de usuario

Sobre la base de la configuración del servidor, se le pedirá la contraseña. Una vez autenticado, se desprotege el código desde el repositorio Subversion. Para sincronizar el repositorio del proyecto con la copia local, puede ejecutar el actualizar sub-comandos. La sintaxis del comando, entró en el indicador de la terminal, es tan

sigue:

cd project_dir; svn update

Para más detalles sobre el uso de cada sub-orden de Subversion, puede consultar el manual. Para ejemplo, para aprender más acerca de la co (checkout) de comandos, por favor, ejecute el comando siguiente desde un terminal:

svn co ayuda

271

Versión del sistema de control

2.3.5. El acceso a través de un protocolo personalizado con cifrado SSL (svn + ssh

:/ /)

El proceso de configuración y el servidor es el mismo que en el método svn :/ /. Para obtener más información, consulte

la la sección anterior. Este paso asume que usted ha seguido los pasos anteriores y se inició el servidor de Subversion usando la orden svnserve.

También se asume que el servidor ssh se está ejecutando en esa máquina, y que está permitiendo que de entrada conexiones. Para confirmar, por favor, intenta iniciar sesión en esa máquina usando ssh. Si usted puede entrar, todo está perfecto. Si no puede ingresar, por favor dirigirse antes de seguir adelante.

El svn + ssh :/ / protocolo se utiliza para acceder al repositorio de Subversion usando el cifrado SSL. La la transferencia de datos se cifran mediante este método. Para acceder al repositorio del proyecto (por ejemplo con

un compra), deberá utilizar la siguiente sintaxis:

svn co svn + ssh :/ / hostname / var / svn / repos / proyecto

Usted debe usar la ruta completa (/ ruta / al / repositorio / proyecto) para acceder al repositorio de Subversion

utilizando este método de acceso.

Sobre la base de la configuración del servidor, se le pedirá la contraseña. Debe introducir la contraseña que utiliza para

iniciar sesión a través de ssh. Cuando se haya autenticado, se comprueba el código desde el repositorio Subversion.

272

Versión del sistema de control

3. Servidor CVS

CVS es un sistema de control de versiones. Puede usarlo para grabar la historia de los archivos de

origen.

3,1. Instalación

Para instalar CVS, ejecute el siguiente comando en una terminal:

sudo apt-get install cvs

Después de instalar cvs, debe instalar xinetd para iniciar / parar el servidor CVS. Cuando se le indique, introduzca el el siguiente comando para instalar xinetd:

sudo apt-get install xinetd

3,2. Configuración

Una vez instalado cvs, el repositorio se inicializará automáticamente. De forma predeterminada, el repositorio residirá en el directorio / srv / cvs. Puede cambiar esta ruta ejecutando el siguiente comando:

cvs-d / su / nuevo / cvs / repo init

Una vez que el depósito inicial se establece, usted puede configurar xinetd para iniciar el servidor CVS. Usted puede

copiar las siguientes líneas a la / Etc / xinetd.d / cvspserver archivo.

servicio de cvspserver {

port = 2401 socket_type = corriente

protocol = tcp user = root

= sin esperar type = No Cotizadas

servidor = / usr / bin / cvs server_args =-f - allow-root / srv / cvs pserver disable = no

}

Asegúrese de editar el repositorio si ha cambiado el repositorio por defecto (/ srv / cvs).

Una vez que haya configurado el xinetd podrá iniciar el servidor cvs ejecutando el siguiente comando:

sudo / etc / init.d / xinetd restart

Usted puede confirmar que el servidor CVS se está ejecutando el comando siguiente:

273

Versión del sistema de control

sudo netstat-tap | grep cvs

Al ejecutar este comando, debe ver la siguiente línea o algo similar:

tcp 0 0 *: cvspserver *: * LISTEN

Desde aquí se puede continuar añadiendo usuarios, nuevos proyectos, y gestionar el servidor CVS.

CVS permite al usuario añadir usuarios independientemente del sistema operativo subyacente.

Probablemente la forma más sencilla es utilizar los usuarios de Linux para el CVS, aunque tiene problemas de seguridad

potenciales. Por favor, consulte el manual de CVS para más detalles.

3,3. Añadir Proyectos

En esta sección se explica cómo añadir un nuevo proyecto al repositorio CVS. Cree el directorio y añadir documento necesario y archivos de código fuente en el directorio. Ahora, ejecute el comando siguiente para agregar

este proyecto al repositorio CVS:

cd su / proyecto cvs-d: pserver: [email protected] :/ srv / cvs import-m \ "Importación de mi proyecto al repositorio CVS". nuevo_proyecto inicio

Puede utilizar la variable de entorno CVSROOT para guardar el directorio raíz CVS. Una vez que

exportar la variable de entorno CVSROOT, podrá evitar el uso de la opción-d en los cvs de arriba comando.

La cadena nuevo_proyecto es una etiqueta de vendedor, y comenzar es una etiqueta de versión. Ellos no

sirven a ningún propósito en este contexto, pero como CVS los requiere, deben estar presentes.

Cuando se agrega un nuevo proyecto, el usuario CVS que utilice deberá tener acceso de escritura al CVS repositorio (/ srv / cvs). De forma predeterminada, el grupo src tiene acceso de escritura al repositorio CVS.

Así, puede agregar el usuario a este grupo, y así él podrá añadir y gestionar proyectos en el CVS repositorio.

274

Versión del sistema de control

4. Referencias

Bazaar Página de inicio4

Launchpad5

Subversion Página de inicio6

Libro de Subversion7

Manual de CVS8

Fácil Bazar página Wiki de Ubuntu9

Wiki de Ubuntu la página de Subversion10

4 http://bazaar.canonical.com/en/ 5 https://launchpad.net/ 6 http://subversion.tigris.org/~~V 7 http://svnbook.red-bean.com/ 8 http://ximbiot.com/cvs/manual/cvs-1.11.21/cvs_toc.html 9 https://help.ubuntu.com/community/EasyBazaar 10 https://help.ubuntu.com/community/Subversion

275

Capítulo 18. De red de Windows

Las redes de ordenadores a menudo se compone de diversos sistemas, y mientras opera una red formada por totalmente de escritorio Ubuntu y servidores sin duda sería divertido, algunos entornos de red debe consistir en Ubuntu y los sistemas de Microsoft ® Windows ® trabajando juntos en armonía. Este

sección de la Guía de Ubuntu Server introduce los principios y las herramientas utilizadas en la configuración de tu

Ubuntu Servidor para compartir recursos de red con ordenadores Windows.

276

De red de Windows

1. Introducción

La creación de redes con éxito su sistema Ubuntu con clientes Windows implica la provisión y

la integración con los servicios comunes a los entornos de Windows. Estos servicios asistir a la puesta en común de

datos y la información sobre los equipos y usuarios implicados en la red, y pueden clasificarse en tres grandes categorías de funcionalidad:

•Servicios de archivos e impresoras de uso compartido. Utilizando el Server Message Block (SMB) para facilitar

la el intercambio de archivos, carpetas, volúmenes, y la distribución de impresoras en la red.

•Servicios de directorio. El intercambio de información vital acerca de los equipos y usuarios de la red con tecnologías tales como el Lightweight Directory Access Protocol (LDAP) y Microsoft Active Directory ®.

•De autenticación y acceso. El establecimiento de la identidad de un equipo o usuario de la red y determinar la información que el equipo o el usuario está autorizado a acceder usando estos principios y tecnologías como los permisos de archivos, las políticas de grupo, y el servicio de autenticación Kerberos.

Afortunadamente, su sistema Ubuntu puede proporcionar todas las facilidades a los clientes de Windows y compartir recursos de la red entre ellos. Una de las principales piezas de su software de sistema de Ubuntu incluye de red de Windows es la suite de aplicaciones de servidor Samba SMB y herramientas.

Esta sección de la Guía de Ubuntu Server va a introducir algunos de los casos de uso comunes de Samba, y cómo instalar y configurar los paquetes necesarios. Documentación adicional detallada y

información sobre Samba se puede encontrar en el Samba página web1.

1 http://www.samba.org

277

De red de Windows

2. Servidor de Archivos Samba

Una de las maneras más comunes de la red de Ubuntu y Windows es configurar Samba como un servidor de archivos. Esta sección abarca la creación de un servidor Samba para compartir archivos con clientes

Windows.

El servidor se configura para compartir archivos con cualquier cliente de la red sin pedir un

contraseña. Si su entorno requiere estrictos controles de acceso a ver Sección 4, "Asegurar un servidor Samba Servidor de archivos e impresión "[p. 283]

2,1. Instalación

El primer paso es instalar el paquete samba. Desde una terminal escriba:

sudo apt-get install samba

Eso es todo lo que hay que hacer, que ahora está listo para configurar Samba para compartir

archivos.

2,2. Configuración

El principal archivo de configuración de Samba se encuentra en / Etc / samba / smb.conf. El archivo de

configuración por defecto tiene una gran cantidad de comentarios con el fin de documentar las diversas directivas de configuración.

No todas las opciones disponibles se incluyen en el fichero de configuración por defecto. Véase el smb.conf el hombre o la página de Samba HOWTO Collection2 para más detalles.

1. En primer lugar, edite los siguientes pares clave / valor en el [Global] sección de / Etc / samba /

smb.conf:

Ejemplo de grupo de trabajo

= ... security = user

La seguridad parámetro es más abajo en la sección [global], y se comenta de forma predeterminada.

Además, el cambio Ejemplo para adaptarse mejor a su entorno.

2. Crear una nueva sección en la parte inferior del archivo, o quite uno de los ejemplos, para el directorio compartido:

[Compartir]

comment = Compartir Ubuntu servidor de

archivos path = / srv / samba / share navegable = yes

guest ok = yes read only = no create mask = 0755

2 http://samba.org/samba/docs/man/Samba-HOWTO-Collection/

278

De red de Windows

•comentarios: una breve descripción de la acción. Ajuste de acuerdo a sus

necesidades. •ruta: la ruta de acceso al directorio a compartir.

Este ejemplo se utiliza / Srv / samba / sharename porque, de acuerdo con el Jerarquía del sistema de archivos Standard (FHS), / srv3 es donde datos específicos del sitio deben ser servidos. Técnicamente Samba acciones se puede colocar en cualquier parte del sistema de archivos siempre y cuando los permisos son correctos, pero

la adhesión a las normas se recomienda.

•navegable: permite a los clientes de Windows para navegar por el directorio compartido mediante el Explorador

de Windows. •guest ok: permite a los clientes conectarse al recurso compartido sin proporcionar una

contraseña. •de sólo lectura: determina si el porcentaje es de sólo lectura o si los privilegios de escritura se les concede.

Escribir privilegios se les permite sólo cuando el valor es No, como se ve en este ejemplo. Si el valor es sí, entonces el acceso a la participación es de sólo lectura.

•crear la máscara: determina los archivos nuevos permisos tendrán cuando se creó.

3. Ahora que Samba está configurado, el directorio debe ser creado y cambiado los permisos. Desde un terminal escriba:

sudo mkdir-p / srv / samba / share sudo chown nobody.nogroup / srv / samba / share /

La -P le dice a mkdir para crear el árbol de directorios completo si no existe.

4. Por último, reinicie los servicios samba para habilitar la nueva configuración:

reinicio sudo smbd reinicio sudo nmbd

Una vez más, la configuración anterior muestra todo el acceso a cualquier cliente en la red local. Para una configuración más segura ver Sección 4, "Asegurar un archivo de Samba y servidor de impresión" [p. 283].

Desde un cliente de Windows ahora debería ser capaz de navegar por el servidor de archivos de Ubuntu y ver la

compartida directorio. Si el cliente no se presenta de forma automática su parte, intentará acceder a su servidor por su IP dirección, por ejemplo, \ \ 192.168.1.1, en una ventana del Explorador de Windows. Para comprobar que todo está

funcionando tratar la creación de un directorio de Windows.

Para crear acciones adicionales, simplemente crear nuevos [Dir] secciones en / Etc / samba / smb.confY reinicie Samba. Sólo asegúrese de que el directorio que desea compartir existe realmente y son los permisos corregir.

La cuota de archivo con el nombre "[Share]" y la ruta / Srv / samba / share son sólo algunos

ejemplos. Ajustar la proporción y la ruta de los nombres que se adaptan a su entorno. Es una buena idea nombrar a una parte

después de un

3 http://www.pathname.com/fhs/pub/fhs-2.3.html # SRVDATAFORSERVICESPROVIDEDBYSYSTEM

279

De red de Windows

directorio en el sistema de archivos. Otro ejemplo podría ser un nombre de parte de los [Q] con una

trayectoria de / Srv / samba / qa.

2,3. Recursos

• Para una configuración más detallada Samba, consulte la Samba HOWTO Collection4

• La guía también está disponible en formato impreso5.

• O'Reilly Usar el sistema Samba6 es otra buena referencia.

• El Wiki de Ubuntu Samba 7 página.

4 http://samba.org/samba/docs/man/Samba-HOWTO-Collection/ 5 http://www.amazon.com/exec/obidos/tg/detail/-/0131882228 6 http://www.oreilly.com/catalog/9780596007690/ 7 https://help.ubuntu.com/community/Samba

280

De red de Windows

3. Samba Servidor de impresión

Otro uso común de Samba es configurarlo para compartir impresoras instaladas, ya sea localmente oa través de

la red, en un servidor de Ubuntu. Similar a Sección 2, "Servidor de archivos Samba" [p. 278] esta sección configurará Samba para permitir que cualquier cliente de la red local para usar las impresoras instaladas sin

solicita un nombre de usuario y contraseña.

Para una configuración más segura ver Sección 4, "Asegurar un archivo de Samba y servidor de impresión" [p.

283].

3,1. Instalación

Antes de la instalación y configuración de Samba es mejor tener ya una instalación de trabajo de CUPS. Ver Sección 4, "CUPS - Servidor de impresión" [p. 231] para más detalles.

Para instalar el paquete samba, desde una terminal escriba:

sudo apt-get install samba

3,2. Configuración

Después de instalar samba edición / Etc / samba / smb.conf. Cambie el grupo de trabajo atribuir a lo que

es adecuada para su red, y el cambio seguridad a usuario:

Ejemplo de grupo de trabajo

= ... security = user

En el [Impresoras] sección de cambiar el guest ok opción para sí:

navegable = yes guest ok = yes

Después de editar smb.conf reiniciar Samba:

reinicio sudo smbd reinicio sudo nmbd

La configuración por defecto de Samba automáticamente compartir las impresoras instaladas. Simplemente instale

el la impresora de forma local en los clientes de Windows.

3,3. Recursos

• Para una configuración más detallada Samba, consulte la Samba HOWTO Collection8

8 http://samba.org/samba/docs/man/Samba-HOWTO-Collection/

281

De red de Windows

• La guía también está disponible en formato impreso9.

• O'Reilly Usar el sistema Samba10 es otra buena referencia.

• Asimismo, consulte la Sitio web de CUPS11 para obtener más información sobre la configuración de CUPS.

• El Wiki de Ubuntu Samba 12 páginas.

9 http://www.amazon.com/exec/obidos/tg/detail/-/0131882228 10 http://www.oreilly.com/catalog/9780596007690/ 11 http://www.cups.org/~~V 12 https://help.ubuntu.com/community/Samba

282

De red de Windows

4. Asegurar un archivo de Samba y servidor de impresión

4,1. Samba de seguridad Modos

Hay dos niveles de seguridad disponibles en el sistema de archivos de Internet común (CIFS) de protocolo de red de nivel de usuario y a nivel de recurso. Samba modo de seguridad la aplicación permite una mayor flexibilidad,

proporcionando cuatro formas de aplicar a nivel de usuario la seguridad y una forma de implementar a nivel de recurso:

•security = user: exige a los clientes para suministrar un nombre de usuario y contraseña para conectarse a los recursos

compartidos. Samba las cuentas de usuario son independientes de las cuentas del sistema, pero el paquete libpam-smbpass se sincroniza el

sistema usuarios y contraseñas con la base de datos de usuarios de Samba. •seguridad = dominio: este modo permite que el servidor Samba parece que los clientes de Windows como una

primaria Controlador de dominio (PDC), controlador de dominio de reserva (BDC), o un servidor miembro de dominio (DMS). Ver Sección 5, "Samba como un controlador de dominio" [p. 288] para más información.

•security = ADS: permite que el servidor Samba para unirse a un dominio de Active Directory, como miembro de

origen. Ver Sección 6, "Samba Integración con Active Directory" [p. 292] para más detalles. •security = server: este modo se deja encima de antes de Samba podría convertirse en un servidor miembro, y debido a algunos problemas de seguridad no se debe utilizar. Véase el Servidor de seguridad13, Sección de la Samba

guía para más detalles.

•security = share: permite a los clientes conectarse a las acciones sin necesidad de suministrar un nombre de usuario

y una contraseña.

El modo de seguridad que usted elija dependerá de su entorno y lo que necesita el servidor de Samba llevar a cabo.

4,2. Seguridad = Usuario

En esta sección se volverá a configurar el archivo de Samba y servidor de impresión, de Sección 2, "Servidor de archivos Samba" [p. 278] y Sección 3, "Samba Server de impresión" [p. 281], para requerir autenticación.

En primer lugar, instalar el paquete libpam-smbpass que sincronizar los usuarios del sistema para el usuario de

Samba base de datos:

sudo apt-get install libpam-smbpass

Si elige la Samba Server trabajo durante la instalación libpam-smbpass ya está instalado.

Editar / Etc / samba / smb.conf, Y en el [Compartir] sección de cambio:

guest ok = no

Por último, reinicie Samba para la nueva configuración surta efecto:

# 13 http://samba.org/samba/docs/man/Samba-HOWTO-Collection/ServerType.html id349531

283

De red de Windows

reinicio sudo smbd reinicio sudo nmbd

Ahora cuando se conecta a los directorios compartidos o impresoras se le solicitará un nombre de usuario

y una contraseña.

Si decide asignar una unidad de red al recurso compartido se puede comprobar la "Conectar de nuevo al

inicio de sesión" casilla de verificación, lo que requerirá que introduzca sólo el nombre de usuario y contraseña una vez, por

lo menos hasta que los cambios de contraseña.

4,3. Compartir la Seguridad

Hay varias opciones disponibles para aumentar la seguridad para cada directorio individual compartido. Uso la [Compartir] ejemplo, esta sección incluye algunas opciones comunes.

4.3.1. Grupos

Los grupos definen una colección de equipos o usuarios que tienen un nivel común de acceso a particular, recursos de la red y ofrecen un nivel de granularidad para controlar el acceso a tales recursos. Para ejemplo, si un grupo qa se define y contiene los usuarios freda, Danika, y robar y un segundo grupo apoyar se define y se compone de los usuarios Danika, Jeremy, y vincent a continuación algunos recursos de la red configurado para permitir el acceso por el qa Grupo que más tarde va a permitir el acceso a los usuarios freda, Danika,

y robar,

pero no Jeremy o Vincent. Dado que el usuario Danika pertenece tanto a la qa y apoyar grupos, que lo hará ser capaz de acceder a recursos configurados para el acceso por ambos grupos, mientras que los demás usuarios

tendrán sólo el acceso a los recursos que permitan de forma explícita el grupo al que pertenecen.

Por defecto Samba busca los grupos de sistemas locales definidas en el / Etc / group para determinar qué

los usuarios pertenecen a qué grupos. Para obtener más información sobre cómo agregar y quitar usuarios de grupos

ven Sección 1.2, "Agregar y eliminar usuarios" [p. 154].

Al definir los grupos en el archivo de configuración de Samba, / Etc / samba / smb.conf, La sintaxis reconocida

es anteponer el nombre del grupo con un símbolo "@". Por ejemplo, si desea definir un grupo nombre administrador de sistemas en un sector determinado de la / Etc / samba / smb.conf, Que lo haría por

entrar en el nombre del grupo como @ Sysadmin.

4.3.2. Permisos de archivos

Permisos de Archivo definen los derechos explícitos que un equipo o usuario tiene a un directorio determinado

archivo, o un conjunto de archivos. Tales permisos puede definirse mediante la edición del / Etc / samba / smb.conf y la especificación

de archivo los permisos explícitos de un recurso compartido de archivos definidos.

Por ejemplo, si se ha definido un recurso compartido de Samba llamada parte y el deseo de dar sólo lectura permisos al grupo de usuarios conocido como control de calidad, pero quiere permitir la escritura en el recurso compartido por

el grupo llamado administrador de sistemas y el usuario llamado Vicente, entonces usted puede editar el / Etc / samba / smb.conf

presentar, y añadir el siguientes entradas en el marco del [Compartir] entrada:

284

De red de Windows

leer la lista de @ = qa write list = @ sysadmin, Vicente

Otro posible permiso de Samba es declarar administrativo permisos a un particular, compartida

recurso. Los usuarios que tienen permisos administrativos podrán leer, escribir o modificar cualquier

información contenida en el recurso que el usuario haya sido concedidos los permisos administrativos a.

Por ejemplo, si desea dar al usuario toronjil permisos administrativos en el parte ejemplo, puede editar el / Etc / samba / smb.conf archivo, y añadir la siguiente línea en el marco del [Compartir] entrada:

usuarios administradores =

melissa

Después de editar / Etc / samba / smb.conf, Reiniciar Samba para que los cambios surtan

efecto:

reinicio sudo smbd reinicio sudo nmbd

Para el leer la lista y escribir la lista para trabajar en el modo de seguridad de Samba debe no se establecerá

en seguridad = parte

Ahora que Samba ha sido configurado para limitar los grupos que tienen acceso al directorio compartido, el los permisos de sistema de ficheros necesitan ser actualizados.

Tradicionales de los permisos de archivos de Linux no se asignan también a Windows NT listas de control de acceso

(ACL). Afortunadamente POSIX ACL están disponibles en los servidores de Ubuntu que proporcionan un control de grano

más fino. Para ejemplo, para habilitar ACLs en / Srv un sistema de archivos ext3, edita / Etc / fstab añadiendo el acl opción:

UUID = 66bcdd2e-8861-4fb0-b7e4-e61c569fe17d / srv ext3 noatime, relatime, acl 0 1

A continuación, volver a montar la

partición:

sudo mount-v-o remount / srv

En el ejemplo anterior se supone / Srv en una partición separada. Si / Srv, O dondequiera que usted

tiene configurado la ruta del recurso compartido, es parte de la /partición de un reinicio puede ser

requerida.

Para que coincida con la configuración de Samba por encima de la administrador de sistemas grupo se le dará

lectura, escritura y ejecución permisos a / Srv / samba / share, El qa grupo se le dará lectura y ejecución, y la archivos serán propiedad del usuario melissa. Escriba lo siguiente en una terminal:

sudo chown-R melisa / srv / samba / share / sudo chgrp-R sysadmin / srv / samba / share / sudo setfacl-R-m g: qa: rx / srv / samba / share /

El comando setfacl anterior muestra ejecutar permisos a todos los archivos de la / Srv / samba / share directorio, que puede o no quiere.

285

De red de Windows

Ahora desde un cliente Windows usted debe notar los nuevos permisos del archivo se implementan. Ver la ACL y las páginas setfacl man para obtener más información sobre ACL de POSIX.

4,4. Samba perfiles de Novell AppArmor

Ubuntu viene con el módulo de seguridad AppArmor, que proporciona controles de acceso obligatorios. La AppArmor perfil predeterminado para Samba tendrá que ser adaptado a la configuración. Para obtener más detalles sobre el uso de AppArmor vea Sección 4, "AppArmor" [p. 167].

Hay perfiles predeterminados para AppArmor / Usr / sbin / smbd y / Usr / sbin / nmbd, El demonio Samba binarios, como parte de los paquetes apparmor los perfiles. Para instalar el paquete, desde un indicador de la terminal escriba:

sudo apt-get install apparmor los perfiles de AppArmor-utils

Este paquete contiene los perfiles de varios otros binarios.

Por defecto, los perfiles de smbd y nmbd están en quejarse modo de permitir que Samba para trabajar sin

modificar el perfil, y sólo el registro de errores. Para colocar el perfil en smbd hacer cumplir modo, y tienen Samba trabajo como se esperaba, el perfil tendrá que ser modificado para reflejar los directorios que se comparten.

Editar / Etc / apparmor.d / usr.sbin.smbd la adición de información para [Compartir] en el ejemplo del servidor

de archivos:

/ Srv / samba / share / r, / Srv / samba / share / rwkix **,

Ahora coloque el perfil en hacer cumplir y vuelva a cargar:

sudo aa-enforce / usr / sbin / smbd cat / etc / apparmor.d / usr.sbin.smbd | sudo apparmor_parser-r

Ahora debería ser capaz de leer, escribir y ejecutar archivos en el directorio compartido de forma normal, y el

binaria smbd tendrá acceso sólo a los archivos y directorios configurados. Asegúrese de añadir las entradas de

cada directorio que configurar Samba para compartir. Además, los errores se registran en / Var / log / syslog.

4,5. Recursos

• Para una configuración más detallada Samba, consulte la Samba HOWTO Collection14

• La guía también está disponible en formato impreso15.

• O'Reilly Usar el sistema Samba16 es también una buena referencia.

•Capítulo 1817 de la colección de HOWTOs de Samba está dedicado a la seguridad.

14 http://samba.org/samba/docs/man/Samba-HOWTO-Collection/ 15 http://www.amazon.com/exec/obidos/tg/detail/-/0131882228 16 http://www.oreilly.com/catalog/9780596007690/ 17 http://samba.org/samba/docs/man/Samba-HOWTO-Collection/securing-samba.html

286

De red de Windows

• Para más información sobre Samba y ver la ACL Samba ACL página 18.

• El Wiki de Ubuntu Samba 19 páginas.

# 18 http://samba.org/samba/docs/man/Samba-HOWTO-Collection/AccessControls.html id397568 19 https://help.ubuntu.com/community/Samba

287

De red de Windows

5. Samba como un controlador de dominio

A pesar de que no puede actuar como un dominio de Active Directory controlador principal (PDC), un servidor

Samba se puede configurar para que aparezca como un controlador de dominio Windows NT4 estilo. Una ventaja

importante de este configuración es la capacidad para centralizar las credenciales del usuario y la máquina. Samba también puede

utilizar múltiples backends para almacenar la información del usuario.

5,1. Primary Domain Controller

Esta sección cubre la configuración de Samba como controlador de dominio primario (PDC), utilizando el valor

por defecto motor smbpasswd.

1. En primer lugar, instale Samba y libpam-smbpass para sincronizar las cuentas de usuario, escribiendo lo siguiente

en el una terminal:

sudo apt-get install samba libpam-smbpass

2. A continuación, configure Samba editando / Etc / samba / smb.conf. La seguridad modo se debe

establecer en usuario, y el grupo de trabajo deben estar relacionados con su organización:

Ejemplo de grupo de trabajo

= ... security = user

3. En el comentó: "Dominios" sección de agregar o descomentar la siguiente (la última línea ha sido

divididos de acuerdo al formato de este documento):

los inicios de sesión de

dominio = sí de inicio de sesión path = \ \% N \% U

\ perfil inicio de sesión de disco = H: logon home = \ \% N \% U

secuencia de comandos de inicio de sesión = logon.cmd agregar secuencias de comandos de la máquina = sudo / usr / sbin / useradd-g N-

máquinas-c Machine-d / Var / lib / samba-s / bin / false% u

Si usted no desea usar Perfiles móviles dejar el de inicio de sesión en casa y inicio de sesión de ruta opciones comentó.

•los inicios de sesión de dominio: ofrece el servicio netlogon causando a Samba actuar como un controlador

de dominio. •inicio de sesión de ruta: coloca el perfil del usuario de Windows en su directorio personal. También es

posible configurar un [Perfiles] compartir la colocación de todos los perfiles en un solo directorio.

•inicio de sesión de la unidad: especifica la ruta de directorio

local. •de inicio de sesión de inicio: especifica la ubicación del

directorio principal. •inicio de sesión de secuencia de comandos: determina la secuencia de comandos que se ejecutan de forma

local, una vez que un usuario ha iniciado sesión pulg El script necesita para ser colocado en el [Netlogon] acción.

288

De red de Windows

•agregar secuencias de comandos de la máquina: un script que creará automáticamente la Máquina cuenta fiduciaria necesario para una estación de trabajo para unirse al dominio.

En este ejemplo el máquinas el grupo tendrá que ser creado utilizando la herramienta addgroup ver Sección 1.2, "Agregar y eliminar usuarios" [p. 154] para más detalles.

4. Elimine el comentario de [Homes] compartir para permitir que el de inicio de sesión en casa que se asigna:

[Homes]

un comentario = Home Directories browseable = no read only = no create mask = 0700

directory mask = 0700 válida usuarios% = S

5. Cuando se configura como un controlador de dominio una [Netlogon] participación tiene que ser configurado. Para

permitir que el acción, quite los comentarios:

[Netlogon]

un comentario de la red = servicio de

inicio de sesión path = / srv / samba / netlogon guest ok = yes

read only = yes share modes = no

El original netlogon ruta del recurso compartido es / Home / samba / netlogon, Pero de acuerdo con

el Filesystem Hierarchy Standard (FHS), / Srv20 es la ubicación correcta de datos específicos del sitio proporcionada por el sistema.

6. Ahora crea el netlogon directorio, y vaciar una (por ahora) logon.cmd archivo de script:

sudo mkdir-p / srv / samba / netlogon sudo touch / srv / samba / netlogon / logon.cmd

Puede acceder a todos los comandos de script de Windows normales de inicio de sesión en el logon.cmd

para personalizar el entorno de cliente.

7. Reiniciar Samba para que el nuevo controlador de dominio:

reinicio sudo smbd reinicio sudo nmbd

8. Por último, hay algunos comandos adicionales necesarios para configurar los derechos

correspondientes.

Con raíz está desactivada por defecto, con el fin de unirse a una estación de trabajo al dominio, un grupo de

sistemas se debe asignar a la carpeta Windows Administradores de dominio grupo. Uso de la utilidad neta, desde un

terminal escriba:

# 20 http://www.pathname.com/fhs/pub/fhs-2.3.html SRVDATAFORSERVICESPROVIDEDBYSYSTEM

289

De red de Windows

sudo add neta groupMap ntgroup = "Administradores de dominio" unixgroup = sysadmin rid = 512 type = d

Cambiar administrador de sistemas a cualquier grupo que prefiera. Además, el usuario utiliza para

unir el dominio necesidades a ser un miembro de la administrador de sistemas grupo, así como un miembro del

sistema administración grupo. La administración grupo permite el uso de

sudo.

Si el usuario no tiene credenciales de Samba, sin embargo, usted puede agregar a la smbpasswd utilidad, cambiar el administrador de sistemas nombre de usuario de forma adecuada:

sudo smbpasswd-un administrador de sistemas

Además, los derechos deben ser explícitamente a la Administradores de dominio grupo para permitir que el

agregar la máquina guión (Y otras funciones de administración) para trabajar. Esto se logra mediante la ejecución de:

net rpc los derechos de subvención-U administrador de sistemas "EJEMPLO \ Administradores de dominio" SeMachineAccountPrivilege \ SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege \ SeRemoteShutdownPrivilege

9. Ahora debería ser capaz de unirse a los clientes de Windows con el dominio de la misma manera como unirse a un dominio NT4 que se ejecuta en un servidor Windows.

5,2. Controlador de dominio de copia de

seguridad

Con un controlador de dominio primario (PDC) en la red, lo mejor es tener un dominio de reserva Controller (BDC), así. Esto permitirá a los clientes para autenticar en el caso de que el PDC se convierte en

no está disponible.

En la configuración de Samba como BDC se necesita una manera de sincronizar la información de cuenta con el PDC.

Hay son maneras de realizar esta scp, rsync, o mediante el uso de LDAP como el passdb backend.

Uso de LDAP es la forma más robusta para sincronizar información de la cuenta, ya que tanto los controladores de

dominio puede utilizar la misma información en tiempo real. Sin embargo, la creación de un servidor LDAP puede ser

demasiado complicado para un pequeño número de usuario y de equipo. Ver Sección 2, "Samba y LDAP "[p. 117] para más detalles.

1. En primer lugar, instale samba y libpam smbpass. Desde un terminal escriba:

sudo apt-get install samba libpam-smbpass

2. Ahora, edita / Etc / samba / smb.conf y descomentamos la siguiente en el [Global]:

Ejemplo de grupo de trabajo

= ... security = user

3. En el comentario Dominios comentario, o agregar:

290

De red de Windows

los inicios de sesión de

dominio = sí dominio principal = no

4. Asegúrese de que el usuario tiene derechos para leer los archivos en / Var / lib / samba. Por ejemplo, para

permitir a los usuarios en la administración grupo scp los archivos, escriba:

sudo chgrp-R admin / var / lib / samba

5. A continuación, sincronizar las cuentas de usuario, usando scp para copiar el / Var / lib / samba directorio

del PDC:

sudo scp-r usuario @ pdc :/ var / lib / samba / var / lib

Reemplazar Nombre de usuario con un nombre de usuario y PDC con la Dirección de host o

dirección IP del el PDC real.

6. Por último, reiniciar samba:

reinicio sudo smbd reinicio sudo nmbd

Usted puede probar que el controlador de dominio de copia de seguridad está trabajando por detener el demonio de

Samba en el PDC, luego tratar de acceder a un cliente de Windows unido al dominio.

Otra cosa a tener en cuenta es si se ha configurado el de inicio de sesión en casa opción como un directorio en el

PDC y el PDC no está disponible, el acceso al usuario de Casa unidad también estará disponible. Para esta razón lo mejor es configurar el de inicio de sesión en casa a residir en un servidor de archivos independiente de

la PDC y BDC.

5,3. Recursos

• Para una configuración más detallada Samba, consulte la Samba HOWTO Collection21

• La guía también está disponible en formato impreso22.

• O'Reilly Usar el sistema Samba23 es también una buena referencia.

•Capítulo 424 de la colección de HOWTOs de Samba explica la creación de un controlador de dominio principal.

•Capítulo 525 de la colección de HOWTOs de Samba explica la creación de un controlador de dominio de copia de seguridad.

• El Wiki de Ubuntu Samba 26 páginas.

21 http://samba.org/samba/docs/man/Samba-HOWTO-Collection/ 22 http://www.amazon.com/exec/obidos/tg/detail/-/0131882228 23 http://www.oreilly.com/catalog/9780596007690/ 24 http://samba.org/samba/docs/man/Samba-HOWTO-Collection/samba-pdc.html 25 http://us3.samba.org/samba/docs/man/Samba-HOWTO-Collection/samba-bdc.html 26 https://help.ubuntu.com/community/Samba

291

De red de Windows

6. Samba Integración con Active Directory

6,1. Acceso a una compartición Samba

Otro, el uso de Samba es integrar en una red existente de Windows. Una vez que parte de un activo

Dominio de Active Directory, Samba puede proporcionar servicios de archivos e

impresión para los usuarios de AD.

La forma más sencilla de unirse a un dominio de AD es el uso de la misma manera abierta. Para obtener

instrucciones detalladas, véase el Del mismo modo la instalación abierta y Guía de administración27.

Una vez que parte del dominio de Active Directory, escriba el siguiente comando en el terminal:

sudo apt-get install samba smbfs smbclient

A continuación, modifique / Etc / samba / smb.conf

cambiando:

Ejemplo de grupo de trabajo

= ... security = ads

realm = EXAMPLE.COM

... idmap backend = lwopen

idmap uid = 50-9999999999 idmap gid = 50-9999999999

Reinicie samba para la nueva configuración surta efecto:

reinicio sudo smbd reinicio sudo nmbd

Ahora debería ser capaz de acceder a los recursos compartidos de Samba desde un cliente Windows. Sin embargo,

asegúrese de dar los usuarios de AD o de acceso adecuados a los grupos el directorio compartido. Ver Sección 4, "Asegurar un servidor Samba Servidor de archivos e impresión "[p. 283] para más detalles.

6,2. El acceso a un recurso compartido de

Windows

Ahora que el servidor Samba es parte del dominio de Active Directory, puede acceder a cualquier servidor de Windows acciones:

• Para montar un recurso compartido de archivos de Windows escriba lo siguiente en una

terminal:

mount.cifs / / fs01.example.com/share punto_montaje

También es posible acceder a recursos compartidos en los equipos que no forman parte de un dominio de AD,

pero un nombre de usuario y contraseña tendrá que ser proporcionado.

27 http://www.likewise.com/resources/documentation_library/manuals/open/likewise-open-guide.html

292

De red de Windows

• Para montar el recurso compartido en el lugar de arranque de una entrada en / Etc / fstab,

Por ejemplo:

/ / 192.168.0.5/share / mnt / windows cifs auto, username = Steve, password = secreto, rw 0 0

• Otra forma de copiar archivos desde un servidor Windows es utilizar la herramienta smbclient. Para listar los archivos

en un recurso compartido de

Windows:

smbclient / / fs01.example.com/share-k-c "ls"

• Para copiar un archivo desde el recurso

compartido, escriba:

smbclient / / fs01.example.com/share-k-c "get archivo.txt"

Esto copiará la archivo.txt en el directorio actual.

• Y para copiar un archivo a la participación:

smbclient / / fs01.example.com/share-k-c "poner / etc / hosts los ejércitos"

Esto copiará la / Etc / hosts a / / Fs01.example.com/share/hosts.

• El -C opción utilizada anteriormente le permite ejecutar el comando smbclient todos a la vez. Esto es útil para la escritura y las operaciones de menores de archivos. Para entrar en el smb: \> del sistema, un cliente de FTP

como sistema en el que puede ejecutar el archivo normal y comandos de directorio, ejecute simplemente:

smbclient / / fs01.example.com/share-k

Vuelva a colocar todas las instancias de fs01.example.com/share, / / 192.168.0.5/share, username = Steve, contraseña secreta =, y archivo.txt con su servidor de IP, nombre de host,

compartir, nombre de archivo y real de un nombre de usuario y una contraseña con derechos a la participación.

6,3. Recursos

Para obtener más opciones smbclient consulte la página: el hombre smbclient, también disponible en línea28.

Los mount.cifs La página man29 es también útil para obtener información más detallada.

La Wiki de Ubuntu Samba 30 páginas.

28 http://manpages.ubuntu.com/manpages/precise/en/man1/smbclient.1.html 29 http://manpages.ubuntu.com/manpages/precise/en/man8/mount.cifs.8.html 30 https://help.ubuntu.com/community/Samba

293

Capítulo 19. Copias de seguridad Hay muchas maneras de hacer copias de seguridad de una instalación de Ubuntu. Lo más importante acerca de las

copias de seguridad es desarrollar un un plan de respaldo que consiste en lo que a la reserva, donde para realizar copias de seguridad, y

cómo restaurarla. En las secciones siguientes se describen diversas formas de realizar estas tareas.

294

Copias de

seguridad

1. Shell Scripts

Una de las maneras más sencillas de copia de seguridad de un sistema que se utiliza un script de shell. Por ejemplo,

una secuencia de comandos se puede utilizar para configurar los directorios de copia de seguridad, y pasar esos directorios como argumentos de la utilidad tar, que crea un archivo. El archivo histórico se puede mover o copiar a otra ubicación. La archivo también se puede crear en un sistema de archivos remoto, como un NFS montar.

La utilidad tar crea un archivo de almacenamiento de archivos o directorios. tar también puede filtrar los archivos a través de herramientas de compresión, lo que reduce el tamaño del archivo de almacenamiento.

1,1. Simple script de shell

El siguiente script de shell usa tar para crear un archivo en un sistema de archivos NFS montado de forma remota. El nombre del archivo se determina utilizando los servicios adicionales de línea de comandos.

#! / Bin / sh # # # # # # # # # # # # # # # # # # # # # # # #

# # # # # # # # # # # # # # Copia de seguridad en NFS guión de

montaje. #

# # # # # # # # # # # # # # # # # # # # # # # #

# # # # # # # # # # # #

# ¿Qué hacer copias de seguridad. backup_files = "/ home / var / spool / mail / etc / root / boot / opt"

# ¿Dónde copia de seguridad. dest = "/ mnt / backup"

# Creación de nombre de archivo. día = $ (date +% A)

hostname = $ (hostname-s) archive_file = "$ $ hostname-day.tgz"

# Imprime el mensaje de estado de

inicio. echo "Copia de seguridad de $ backup_files a $ dest / $

archive_file" fecha eco

# Copia de seguridad de los archivos

utilizando tar. tar CZF $ dest / $ $ archive_file backup_files

# Imprime el mensaje de estado final. eco

echo "Copia de seguridad

terminada" fecha

# Lista larga de archivos en $ dest para comprobar los tamaños de

archivo. ls-lh $ dest

295

Copias de

seguridad

•$ Backup_files: una lista variable de los directorios que desea respaldar. La lista debe ser personalizado para adaptarse a sus necesidades.

•$ Día: una variable que contiene el día de la semana (lunes, martes, miércoles, etc.) Esto se utiliza para crear un archivo por cada día de la semana, dando un historial de copia de seguridad de siete días. Hay

otras formas de lograr esto incluyendo el uso de la utilidad de la fecha.

•$ Nombre de host: variable que contiene el corto nombre de host del sistema. Usando el nombre de host en el archivo de nombre de archivo que da la opción de colocar archivos diarios de múltiples sistemas en el mismo directorio.

•$ Archive_file: el nombre del archivo completo.

•$ Dest: destino del archivo de almacenamiento. El directorio debe ser creado y en este caso montado antes de ejecutar el script. Ver Sección 2, "Network File System (NFS)" [p. 226] para detalles de la utilización NFS.

•mensajes de estado: Mensajes opcional en la consola con la utilidad del eco.

•tar CZF $ dest / $ $ archive_file backup_files: el comando tar para crear el archivo histórico.

•c: crea un archivo.

•z: filtrar el archivo a través de la utilidad gzip comprimir el archivo.

•f: de salida en un archivo histórico. Contrario, la salida de alquitrán se enviará a STDOUT.

•ls-lh $ dest: sentencia opcional que imprime una -L larga lista de -H formato legible por humanos del destino

directorio. Esto es útil para un chequeo rápido de tamaño de archivo del archivo de almacenamiento. Esta

comprobación no debe sustituir a probar el archivo de

almacenamiento.

Este es un ejemplo sencillo de un script de shell de copia de seguridad, sin embargo hay muchas opciones que

pueden ser incluido en una secuencia de comandos. Ver Sección 1.4, "Referencias" [p. 298] de enlaces a recursos que

proporcionan más a fondo la información de secuencias de comandos de shell.

1,2. Ejecución de la secuencia de

comandos

1.2.1. Ejecutar desde una Terminal

La forma más sencilla de ejecutar el script de arriba es para copiar y pegar el contenido en un archivo. backup.sh por ejemplo. Entonces, desde una terminal:

sudo backup.sh fiesta

Esta es una gran manera de probar el script para asegurarse de que todo funciona como se

esperaba.

1.2.2. Ejecutando con cron

La utilidad cron se pueden utilizar para automatizar la ejecución del script. El demonio cron permite la ejecución de scripts o comandos, en una hora y fecha.

cron se configura a través de las entradas de una crontab archivo. crontab ficheros se dividen en campos:

296

Copias de

seguridad

# M h dom lun Dow comando

•m: minutos el comando se ejecuta en, entre 0 y 59.

•h: horas el comando se ejecuta en, entre 0 y 23.

•dom: día del mes el comando se ejecuta en.

•mon: del mes se ejecuta el comando de entre 1 y 12.

•Dow: El día de la semana se ejecuta el comando en, entre 0 y 7. Domingo puede ser especificado por

utilizando el 0 y 7, ambos valores son válidos.

•comando: el comando a ejecutar.

Para agregar o cambiar las entradas en una crontab presentar el comando crontab-e debe ser utilizado. Asimismo, los

contenidos de un crontab archivo se puede ver utilizando el comando crontab-l.

Para ejecutar el script backup.sh menciona arriba, usando cron. Escriba lo siguiente en una terminal:

sudo crontab-e

Utilizar sudo con el comando crontab-e edita la raíz crontab del usuario. Esto es necesario si va a realizar copias de seguridad de directorios sólo el usuario root tiene acceso.

Agregue la siguiente entrada a la crontab archivo:

# M h dom lun Dow comando 0 0 *** bash / usr / local / bin / backup.sh

El guión backup.sh ahora se ejecutará todos los días a las 12:00 am.

El guión backup.sh tendrá que ser copiado en el / Usr / local / bin / directorio para que esta entrada se ejecute correctamente. El script puede residir en cualquier parte del sistema de archivos,

simplemente cambiar la ruta del script adecuadamente.

Para obtener más en profundidad las opciones de crontab vea Sección 1.4, "Referencias" [p. 298].

1,3. Restauración del Archivo

Una vez que un archivo ha sido creado, es importante probar el archivo. El archivo puede ser probada por

lista de los archivos que contiene, sino la mejor prueba es que restaurar un archivo desde el

archivo. • Para ver un listado de los contenidos del archivo. Desde un terminal de sistema,

escriba:

tar-tzvf / mnt / backup / host Monday.tgz

• Para restaurar un archivo desde el archivo en un directorio diferente escriba:

tar-xzvf / mnt / backup / host Monday.tgz-C / tmp etc / hosts

297

Copias de

seguridad

La -C opción de tar redirige los archivos extraídos en el directorio especificado. El resultado del ejemplo extraer el / Etc / hosts presentar a la / Tmp / etc / hosts. tar recrea la estructura de directorios que contiene.

También, observe el líder "/" se deja fuera de la ruta del archivo a restaurar.

• Para restaurar todos los archivos en el archivo escriba lo siguiente:

cd / sudo tar-xzvf / mnt / backup / host Monday.tgz

Esto sobrescribirá los archivos actualmente en el sistema de archivos.

1,4. Referencias

• Para más información sobre secuencias de comandos shell ver el Advanced Bash-Scripting Guide1 • El libro Aprendiendo Programación Shell en 24 horas2 está disponible en línea y un gran recurso de secuencias de comandos shell.

• El CronHowto página wiki3 contiene información sobre las opciones avanzadas de cron.

• Consulte el GNU tar Manual4 para más opciones de alquitrán.

• La Wikipedia Esquema de rotación de copia de seguridad5 El artículo contiene información sobre la rotación de copia de seguridad de

otros esquemas.

• La secuencia de comandos de shell usa tar para crear el archivo, pero hay muchas otras utilidades de línea de

comandos que puede ser utilizado. Por ejemplo:

•cpio6: se utiliza para copiar archivos desde y hacia archivos.

•dd7: parte del paquete coreutils. Una utilidad de bajo nivel que puede copiar datos de un formato a otro.

•rsnapshot8: un sistema de archivo de la utilidad instantánea que permite crear copias de un sistema de archivos.

•rsync9: una herramienta flexible que permite crear copias incrementales de archivos.

1 http://tldp.org/LDP/abs/html/ 2 http://safari.samspublishing.com/0672323583 3 https://help.ubuntu.com/community/CronHowto 4 http://www.gnu.org/software/tar/manual/index.html 5 http://en.wikipedia.org/wiki/Backup_rotation_scheme 6 http://www.gnu.org/software/cpio/ 7 http://www.gnu.org/software/coreutils/ 8 http://www.rsnapshot.org/~~V 9 http://www.samba.org/ftp/rsync/rsync.html

298

Copias de

seguridad

2. Archivo de rotación

El script de shell en el Sección 1, "Secuencias de comandos de Shell" [p. 295] sólo permite siete archivos

diferentes. Para una servidor cuyos datos no cambian a menudo, esto puede ser suficiente. Si el servidor tiene una gran cantidad de datos, un esquema de rotación más compleja se debe utilizar.

2,1. Rotación de Archivos NFS

En esta sección, el script de shell se ha modificado ligeramente para implantar una rotación de su abuelo-padre-hijo plan (mensual, semanal, diaria):

• La rotación va a hacer un diario copia de seguridad de domingo a viernes.

• El sábado, un semanal se hace copia de seguridad que le da cuatro copias de seguridad

semanales al mes. • El mensual copia de seguridad se realiza en el primer día del mes girar dos copias de seguridad mensuales sobre la

base de si la meses es par o impar.

Aquí está el nuevo guión:

#! / Bin / bash

# # # # # # # # # # # # # # # # # # # # # # # #

# # # # # # # # # # # # # # Copia de seguridad en NFS guión de montaje

con # Abuelo-padre-hijo de la rotación. #

# # # # # # # # # # # # # # # # # # # # # # # #

# # # # # # # # # # # #

# ¿Qué hacer copias de seguridad. backup_files = "/ home / var / spool / mail / etc / root / boot / opt"

# ¿Dónde copia de seguridad. dest = "/ mnt / backup"

# Define variables para el nombre del archivo. día = $ (date +% A) hostname = $ (hostname-s)

# Buscar que la semana del mes es 4.1. day_num = $ (date +% d) if (($ day_num <= 7)), a continuación,

week_file = "$ host-week1.tgz"

elif (($ day_num> 7 && $ day_num <= 14)), a continuación, week_file = "$ host-week2.tgz"

elif (($ day_num> 14 && $ day_num <= 21)), a continuación, week_file = "$ host-week3.tgz"

elif (($ day_num> 21 && $ day_num <32)), a continuación, week_file = "$ host-week4.tgz"

fi

299

Copias de

seguridad

# Encuentra si el mes es par o impar.

month_num = $ (date +% m) mes = $ (expr $ month_num% 2)

if [$ mes-eq 0], y luego month_file = "$ host-month2.tgz"

más month_file = "$ host-month1.tgz"

fi

# Creación de nombre de archivo.

if [$ day_num == 1], y luego archive_file = $ month_file elif [$ day = "Sábado"!], y luego archive_file = "$ $ hostname-day.tgz"

más archive_file = $ week_file fi

# Imprime el mensaje de estado de inicio. echo "Copia de seguridad de $ backup_files a $ dest / $

archive_file" fecha eco

# Copia de seguridad de los archivos utilizando tar. tar CZF $ dest / $ $ archive_file backup_files

# Imprime el mensaje de estado final. eco

echo "Copia de seguridad

terminada" fecha

# Lista larga de archivos en $ dest para comprobar los tamaños de

archivo. ls-lh $ dest /

La secuencia de comandos se pueden ejecutar con los mismos métodos que en el Sección 1.2, "Ejecución de la secuencia de comandos" [p. 296].

Es una buena práctica para tomar los medios de copia de seguridad fuera de sitio en caso de un desastre. En el

ejemplo del script de shell copia de seguridad de los medios de comunicación es otro servidor que proporciona una compartición NFS. Con

toda probabilidad, teniendo que el servidor NFS otro lugar no sería práctico. Dependiendo de la velocidad de conexión puede ser una opción para copie el archivo en un enlace WAN a un servidor en otro lugar.

Otra opción es copiar el archivo en un disco duro externo que puede ser tomado fuera de sitio. Dado que el precio de los discos duros externos continúan disminuyendo, puede ser rentable el uso de dos unidades

para cada nivel de archivo. Esto le permite tener un disco duro externo conectado al servidor de copia de seguridad y una en otra ubicación.

2,2. Unidades de cinta

Una unidad de cinta conectada al servidor se puede utilizar en lugar de un recurso compartido NFS. Usando una unidad

de cinta simplifica rotación de archivos, y hace que la toma de los medios fuera del sitio más fácil así.

300

Copias de

seguridad

Cuando se utiliza una unidad de cinta, las porciones de nombre de archivo de la secuencia de comandos no son

necesarios porque los datos se envían directamente al dispositivo de cinta. Algunos comandos para manipular la cinta se necesitan. Esto se logra utilizando toneladas, un control de cinta magnética parte de la utilidad del paquete cpio.

Aquí está el script de shell modificado para utilizar una unidad

de cinta:

#! / Bin / bash # # # # # # # # # # # # # # # # # # # # # # # #

# # # # # # # # # # # # # # Copia de seguridad de secuencia de comandos

de la unidad de cinta. # # # # # # # # # # # # # # # # # # # # # # # # #

# # # # # # # # # # # #

# ¿Qué hacer copias de seguridad. backup_files = "/ home / var / spool / mail / etc / root / boot / opt"

# ¿Dónde copia de seguridad. dest = "/ dev/st0"

# Imprime el mensaje de estado de inicio. echo "Copia de seguridad de $ backup_files a $

dest" fecha eco

# Asegúrese de que la cinta se rebobina. mt-f $ dest rebobinado

# Copia de seguridad de los archivos

utilizando tar. tar CZF $ dest $ backup_files

# Rebobinar y expulsar la cinta. mt-f $ dest rewoffl

# Imprime el mensaje de estado final.

eco echo "Copia de seguridad

terminada" fecha

El nombre del dispositivo por defecto para una unidad de cinta SCSI es / Dev/st0. Utilice la ruta de

dispositivo adecuado para su sistema.

Restauración a partir de una unidad de cinta es básicamente la misma que la restauración de un archivo. Basta con

rebobinar la cinta y utilizar la ruta de dispositivo en lugar de una ruta de archivo. Por ejemplo, para restaurar el / Etc / hosts presentar a

la / Tmp / etc / los ejércitos:

mt-f / rebobinado dev/st0 tar-xzf / dev/st0-C / tmp etc / hosts

301

Copias de

seguridad

3. Bacula

Bacula es un programa de copia de seguridad que le permite realizar copias de seguridad, restaurar y verificar los

datos en la red. Hay clientes de Bacula para Linux, Windows y Mac OS X - por lo que es una red multi-plataforma

solución de ancho.

3,1. Información

general

Bacula se compone de varios componentes y servicios utilizados para administrar los archivos de copia de

seguridad y ubicaciones de copia de seguridad:

• Bacula Director: un servicio que controla todas las copias de seguridad, restaurar, verificar, y las

operaciones de archivo. • Consola de Bacula: una aplicación que permite la comunicación con el Director. Hay tres versiones de la consola:

• Texto de comandos basado en la versión de

línea. • Gnome basada en GTK + Interfaz gráfica de usuario (GUI) de la interfaz.

• wxWidgets interfaz gráfica de usuario.

• Bacula File: también conocido como el programa cliente de Bacula. Esta aplicación se instala en las máquinas para una copia de seguridad, y es responsable de los datos solicitados por el Director.

• Bacula Storage: los programas que llevan a cabo el almacenamiento y recuperación de datos a los medios físicos.

• Catálogo de Bacula: es responsable de mantener los índices de archivos y bases de datos de volumen para todos los

archivos una copia de seguridad, lo que permite una rápida localización y restauración de archivos comprimidos. El

Catálogo soporta tres diferentes bases de datos MySQL, PostgreSQL y SQLite.

• Bacula Monitor: permite la supervisión del Director, los demonios de archivos, y los demonios de

almacenamiento. Actualmente, el monitor sólo está disponible como una aplicación GTK + GUI.

Estos servicios y aplicaciones pueden ejecutarse en múltiples servidores y clientes, o se puede instalar en una máquina, si la copia de seguridad de un solo disco o volumen.

3,2. Instalación

Si se utiliza MySQL o PostgreSQL como base de datos, usted ya debe contar con los servicios

disponible. Bacula no los instala por ti.

Hay varios paquetes que contienen los diferentes componentes de Bacula. Para instalar Bacula, desde un terminal introduzca:

sudo apt-get install bacula

Por defecto la instalación del paquete bacula utilizará una base de datos MySQL para el Catálogo. Si desea usar SQLite o PostgreSQL, para el Catálogo, instale bacula-director-sqlite3 o bacula-director-pgsql respectivamente.

302

Copias de

seguridad

Durante el proceso de instalación se le pedirá que proporcione las credenciales de la base de datos administrador y la bacula base de datos propietario. El administrador de base de datos tendrá que tener los derechos adecuados para crear una base de datos, consulte Sección 1, "MySQL" [p. 206] para más información.

3,3. Configuración

Bacula archivos de configuración se basa en el formato recursos que comprende de directivas rodeado por "{}" Llaves. Cada componente de Bacula tiene un archivo individual en el / Etc / bacula directorio.

Los diversos componentes de Bacula deben autorizar el uno al otro. Esto se logra utilizando la contraseña Directiva. Por ejemplo, el Almacenamiento recurso clave en la / Etc/bacula/bacula- dir.conf archivo debe coincidir con el Director de los recursos clave en / Etc / bacula / bacula-sd.conf.

Por defecto, el trabajo de copia de seguridad denominado Cliente1 está configurado para archivar el catálogo de

Bacula. Si usted planea en utilizando el servidor de copia de seguridad de más de un cliente debe cambiar el nombre de este trabajo a algo más descriptivo. Para cambiar los nombres de edición / Etc / bacula / bacula-dir.conf:

#

# Definir la principal tarea de copia de seguridad nocturna

de ahorro # Por defecto, este trabajo será una copia de seguridad en

el disco en Job { Name = "BackupServer"

JobDefs = "DefaultJob" Escribir Bootstrap = "/ var/lib/bacula/Client1.bsr"

}

El ejemplo anterior cambia el nombre de trabajo que BackupServer juego de acogida de la máquina

nombre. Vuelva a colocar "BackupServer" con su nombre descriptivo apropiado nombre de host, o de otro

tipo.

La Consola se puede utilizar para consultar el Director acerca de los trabajos, pero para utilizar la consola con un no root usuario, el usuario tiene que estar en el bacula grupo. Para añadir un usuario al grupo bacula introduzca lo siguiente desde un terminal:

$ sudo adduser nombre de usuario bacula

Reemplazar $ Nombre de usuario con el nombre de usuario real. Además, si va a agregar el usuario actual

a la grupo que debe salir y volver en el de los nuevos permisos para tener efecto.

3,4. Localhost de copia de

seguridad

En esta sección se describe cómo hacer copia de seguridad de los directorios especificados en un solo host a una

unidad de cinta local. • En primer lugar, el Almacenamiento dispositivo debe estar configurado. Editar / Etc / bacula /

bacula-sd.conf añadir:

Dispositivo { Name = "la unidad de cinta"

Tipo de dispositivo de

cinta =

303

Copias de

seguridad

Tipo de papel = DDS-4

Archivo Device = / dev/st0 Finales del hardware de medio = no;

AutomaticMount = yes; AlwaysOpen = Sí;

RemovableMedia = yes; RandomAccess = no;

Alerta Comando = "sh-c 'tapeinfo-f% c | grep TapeAlert'" }

# Cuando el dispositivo se abrió, lo

leyó

El ejemplo es para un DDS-4 la unidad de cinta. Ajuste el "Tipo de papel" y "Dispositivo de Archivo" para que

coincida con su hardware.

También puede descomentar uno de los otros ejemplos en el archivo.

• Después de la edición / Etc / bacula / bacula-sd.conf el demonio de almacenamiento tendrá que ser

reiniciado:

sudo / etc / init.d / bacula-sd reiniciar

• A continuación, añadir un Almacenamiento recursos en / Etc / bacula / bacula-dir.conf para

usar el nuevo dispositivo:

# Definición de dispositivo de "unidad de cinta" de

almacenamiento Almacenamiento { Nombre = tapedrive

# No utilizar "localhost" aquí Dirección = backupserver

SDPort = 9103

Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyjc" Device = "cinta"

Tipo de soporte de cinta = }

# N.B. Use un nombre completo aquí

La Dirección Directiva debe ser el nombre de dominio completo (FQDN) del servidor. Cambiar backupserver al nombre de host real.

Además, asegúrese de que el Contraseña Directiva coincide con la cadena de contraseña en el / Etc/bacula/bacula- sd.conf.

• Crear un nuevo Conjunto de archivos, que va a determinar qué directorios de copia de seguridad,

añadiendo:

# LocalhostBacup conjunto de

archivos. Conjunto de

archivos { Name = "LocalhostFiles" Incluya {

Opciones { signature = MD5 la compresión GZIP =

} = El archivo / etc

File = / home }

304

Copias de

seguridad

}

Este Conjunto de archivos se copia de seguridad del / Etc y / Home directorios. La Opciones directivas de

recursos configurar el conjunto de archivos para crear una firma MD5 para cada archivo de copia de seguridad, y para comprimir

los archivos a través de GZIP.

• A continuación, cree un nuevo Programar para el trabajo de

copia de seguridad:

# LocalhostBackup Calendario - diario.

Horario { Name = "LocalhostDaily" Ejecutar todos los días = completo

a las 00:01 }

La tarea se ejecutará todos los días a las 00:01 oa las 12:01 am. Hay muchas otras opciones de

programación disponible.

• Por último crear la Trabajo:

# Copia de seguridad de host

local. Job {

Name = "LocalhostBackup"

JobDefs = "DefaultJob" Activado = sí

= Nivel completo Conjunto de archivos =

"LocalhostFiles" Horario = "LocalhostDaily"

Almacenamiento = tapedrive Escribir Bootstrap = "/ var / lib / bacula / LocalhostBackup.bsr"

}

El trabajo llevará a cabo un Completo copia de seguridad de todos los

días a la unidad de cinta. • Cada cinta utilizada deberá tener un Etiqueta. Si la cinta actual no tiene una etiqueta Bacula enviará un correo electrónico que le permite saber. Para etiquetar una cinta con la Consola de entrar en la siguiente en un

terminal:

bconsole

• En el indicador de Bacula consola escriba:

etiqueta

• A continuación se le pedirá la Almacenamiento de los recursos:

Catálogo selecciona automáticamente: MyCatalog Utilizando el catálogo "MyCatalog"

Los recursos de almacenamiento definidos

son: 1: Archivo

2: tapedrive

Seleccione los recursos de almacenamiento

(1-2): 2

305

Copias de

seguridad

• Introduzca el nuevo Volumen Nombre:

Escriba el nombre nuevo volumen:

Domingo Piscinas definidos: 1: Por defecto 2: Scratch

Reemplazar Domingo con la etiqueta deseada.

• A continuación, seleccione el

Piscina:

Seleccione el grupo (1-2): 1 Conexión con el demonio de almacenamiento tapedrive en backupserver: 9103

... El envío de comandos etiqueta de volumen "Domingo" ranura 0 ...

Felicidades, usted ha configurado ahora Bacula una copia de seguridad de la máquina local a una unidad de cinta

adhesiva.

3,5. Recursos

• Para obtener más Bacula opciones de configuración se refieren a la Manual del usuario de Bacula10 • El Bacula Página de inicio11 contiene las últimas noticias y desarrollos de Bacula.

• Asimismo, consulte la Bacula Wiki de Ubuntu12 páginas.

10 http://www.bacula.org/en/rel-manual/index.html 11 http://www.bacula.org/~~V 12 https://help.ubuntu.com/community/Bacula

306

Capítulo 20. Virtualización

La virtualización está siendo adoptada en muchos entornos y situaciones diferentes. Si usted es un desarrollador, virtualización le puede proporcionar un ambiente contenido en el que con seguridad se puede hacer casi cualquier tipo de desarrollo seguro de ensuciar el entorno de trabajo principal. Si usted es un sistemas de

administrador, puede utilizar la virtualización para separar más fácilmente sus servicios y moverlos basado en la demanda.

La tecnología de virtualización apoyado por defecto en Ubuntu es KVM, una tecnología que aprovecha de las extensiones de virtualización incorporadas en el hardware de Intel y AMD. Para el hardware sin virtualización extensiones de Xen y Qemu son soluciones populares.

307

Virtualización

1. libvirt

La biblioteca libvirt se utiliza para interactuar con diferentes tecnologías de virtualización. Antes de empezar con libvirt lo mejor es asegurarse de que su hardware es compatible con las extensiones de virtualización necesarios para

KVM. Escriba lo siguiente en una terminal:

kvm-ok

Un mensaje será impreso que le informa si su CPU hace o no soporte de hardware

virtualización.

En la mayoría de ordenador cuyo procesador es compatible con la virtualización, es necesario activar un opción en la BIOS para activarla.

1,1. Redes virtuales

Hay algunas maneras diferentes para permitir un acceso a la máquina virtual a la red externa. El valor por defecto configuración de la red virtual es usermode la creación de redes, que utiliza el protocolo SLIRP y el tráfico es NATeado a través de la interfaz de host a la red exterior.

Para habilitar los servidores externos para acceder directamente a los servicios en las máquinas virtuales de un puente necesidades para ser configurado. Esto permite que las interfaces virtuales para conectarse a la red exterior a través de la física interfaz, haciendo que aparezcan como anfitriones normales al resto de la red. Para obtener información sobre

un puente de ver Sección 1.4, "Puente" [p. 39].

1,2. Instalación

Para instalar los paquetes necesarios, de una terminal escriba:

sudo apt-get install kvm libvirt-bin

Después de instalar libvirt-bin, el usuario utiliza para administrar máquinas virtuales tendrá que ser añadido a la

libvirtd grupo. Si lo hace, concede al usuario el acceso a las opciones avanzadas de red.

En una terminal escriba:

sudo adduser $ USER libvirtd

Si el usuario elige es el usuario actual, tendrá que salir y volver a entrar para el nuevo grupo pertenencia a surtir efecto.

Ahora está listo para instalar un Invitado el sistema operativo. Instalación de una máquina virtual sigue el mismo procesar como instalar el sistema operativo directamente en el hardware. Usted necesita una manera de automatizar la instalación, o un teclado y el monitor tendrá que ser conectado a la máquina física.

308

Virtualización

En el caso de las máquinas virtuales de una interfaz gráfica de usuario (GUI) es análogo al uso de una física teclado y el ratón. En lugar de instalar una interfaz gráfica de usuario de la aplicación virt-viewer se puede utilizar

para conectar a la consola de una máquina virtual usando VNC. Ver Sección 1.6, "Visor Virtual Machine" [p. 311] para

más información.

Hay varias maneras de automatizar el proceso de instalación de Ubuntu, por ejemplo usando preseeds, kickstart, etc, consultar el Guía de instalación de Ubuntu1 para más detalles.

Sin embargo, otra forma de instalar una máquina virtual de Ubuntu es el uso de ubuntu-vm-builder. ubuntu-vm-builder le permite configurar particiones avanzadas, ejecutar instalación personalizada post-scripts, etc Para más detalles ver Sección 2, "JeOS y vmbuilder" [p. 313]

1,3. virt-install

virt-install es parte del paquete de virtinst. Para instalarlo, en una terminal escriba:

sudo apt-get install virtinst

Hay varias opciones disponibles cuando se utiliza virt-install. Por ejemplo:

sudo virt-install-n-r web_devel 256 \ - Ruta de disco = / var / lib / libvirt images / web_devel.img, autobús = virtio, size = 4-c \ jeos.iso - acelerar - la red de la red = por defecto, el modelo de virtio = \

- Connect = qemu :/ / / system - vnc - noautoconsole-v

•-N web_devel: el nombre de la nueva máquina virtual será web_devel en este ejemplo.

•-R 256: especifica la cantidad de memoria de la máquina virtual utilizará en megabytes.

•- El disco path = / var / lib / libvirt images / web_devel.img, size = 4: indica la ruta de acceso al disco virtual

que puede ser un archivo, partición o volumen lógico. En este ejemplo un archivo denominado web_devel.img en el directorio / var / lib / libvirt / images /, con un tamaño de 4 GB, y el uso de virtio para el bus de disco.

•-C jeos.iso: presentar para ser utilizado como un virtual CD-ROM. El archivo puede ser un archivo ISO o la ruta de

acceso a la dispositivo de CD-ROM de acogida.

•- Acelerar: permite a las tecnologías del núcleo de aceleración.

•- La red proporciona los detalles relacionados con la interfaz de red de la VM. Aquí el defecto red se utiliza, y el modelo de interfaz está configurada para virtio.

•- VNC: exporta la consola virtual del invitado mediante VNC.

•- Noautoconsole: No se conectará automáticamente a la consola de la máquina virtual.

•-V: crea un huésped totalmente virtualizado.

Después de lanzar virt-install se puede conectar a la consola de la máquina virtual de forma local mediante una interfaz

gráfica de usuario o con la utilidad virt-viewer.

Https://help.ubuntu.com/12.04/installation-guide/ 1

309

Virtualización

1,4. virt-clone

La aplicación virt-clone se puede usar para copiar una máquina virtual a otro. Por ejemplo:

sudo virt-clone-o-n web_devel database_devel-f / ruta / a / database_devel.img \ - Connect = qemu :/ / / sistema de

•-O: máquina virtual original.

•-N: nombre de la nueva máquina virtual.

•-F: ruta de acceso al archivo, volumen lógico o partición para ser utilizado por la nueva máquina virtual.

•- Conectar: especifica el hipervisor para conectarse a.

Asimismo, el uso -D o - Debug opción para ayudar a solucionar problemas con virt-clone.

Reemplazar web_devel y database_devel con las correspondientes nombres de las máquinas

virtuales.

1,5. Virtual Machine Management

1.5.1. virsh

Hay varias utilidades disponibles para gestionar máquinas virtuales y libvirt. La utilidad virsh puede ser

utilizar desde la línea de comandos. Algunos ejemplos:

• Para una lista de máquinas virtuales en

ejecución:

virsh-c qemu :/ / / sistema de listas

• Para iniciar una máquina virtual:

virsh-c qemu :/ / / sistema de arranque web_devel

• Del mismo modo, al iniciar una máquina virtual en el

arranque:

virsh-c qemu :/ / / sistema de arranque automático web_devel

• Vuelva a arrancar una máquina virtual con:

virsh-c qemu :/ / / reiniciar el sistema web_devel

• El estado máquinas virtuales de se pueden guardar en un archivo con el fin de ser restaurado más tarde. El siguiente guardar el estado de la máquina virtual en un archivo con el nombre de acuerdo a la fecha:

virsh-c qemu :/ / / sistema de ahorro de web_devel web_devel-022708.state

Una vez guardada la máquina virtual ya no se esté ejecutando.

• Una máquina virtual guardado puede ser restaurada

utilizando:

310

Virtualización

virsh-c qemu :/ / / restauración del sistema web_devel-022708.state

• Para apagar una máquina virtual haga:

virsh-c qemu :/ / / apagado del sistema web_devel

• Un dispositivo de CD-ROM se puede montar en una máquina virtual mediante la

introducción de:

virsh-c qemu :/ / / sistema de conectar el disco web_devel / dev / cdrom / media / cdrom

En los ejemplos anteriores reemplazar web_devel con el nombre de la máquina virtual correspondiente, y web_devel-022708.state con un nombre de archivo descriptivo.

1.5.2. Virtual Machine Manager

El paquete virt-manager contiene una utilidad gráfica para administrar máquinas virtuales locales y remotos. Para instalar virt-manager escriba:

sudo apt-get install virt-manager

Desde virt-manager requiere una interfaz de usuario gráfica (GUI) el medio ambiente, se recomienda ser instalado en una estación de trabajo o una máquina de ensayo en lugar de un servidor de producción. Para

conectarse a la configuración servicio de libvirt escriba:

virt-manager-c qemu :/ / / sistema de

Puede conectarse al servicio de libvirt que se ejecuta en otro host, escriba lo siguiente en una terminal

del sistema:

virt-manager-c qemu + ssh :/ / virtnode1.mydomain.com/system

En el ejemplo anterior se supone que la conectividad SSH entre el sistema de gestión

virtnode1.mydomain.com y ya se ha configurado, y utiliza claves SSH para autenticación. SSH claves son necesarias porque libvirt envía la solicitud de contraseña a otra

proceso. Para obtener más información sobre la configuración de SSH ver Sección 1: "OpenSSH Server" [p. 80]

1,6. Visor Virtual Machine

La aplicación virt-viewer le permite conectarse a la consola de la máquina virtual. virt-viewer hace

requieren una interfaz de usuario gráfica (GUI) para interactuar con la máquina virtual.

Para instalar virt-viewer desde una terminal escriba:

sudo apt-get install virt-viewer

311

Virtualización

Una vez que una máquina virtual está instalado y funcionando se puede conectar a la consola de la máquina virtual de mediante:

virt-viewer-c qemu :/ / / sistema de web_devel

Al igual que en virt-manager, virt-viewer puede conectarse a un host remoto a través de SSH con autenticación de

clave, así:

virt-viewer-c qemu + ssh :/ / web_devel virtnode1.mydomain.com/system

Asegúrese de reemplazar web_devel con el nombre de la máquina virtual

correspondiente.

Si está configurado para utilizar un puente interfaz de red también se puede configurar el acceso SSH a la máquina

virtual. Ver Sección 1: "OpenSSH Server" [p. 80] y Sección 1.4, "Puente" [p. 39] para más detalles.

1,7. Recursos

• Consulte el KVM2 tu página de inicio para más detalles.

• Para más información sobre libvirt ver el página de inicio libvirt3

• El Virtual Machine Manager4 sitio tiene más información sobre el desarrollo de virt-manager.

• Además, pasar por la # Ubuntu-virt Canal de IRC en freenode5 para discutir la tecnología de virtualización en el

Ubuntu.

• Otro buen recurso es la Wiki de Ubuntu KVM6 página.

2 http://kvm.qumranet.com/kvmwiki 3 http://libvirt.org/~~V 4 http://virt-manager.et.redhat.com/ 5 http://freenode.net/ 6 https://help.ubuntu.com/community/KVM

312

Virtualización

2. JeOS y vmbuilder

2,1. Introducción

2.1.1. ¿Qué es JeOS

Ubuntu JeOS (Pronunciado "Juice") es una variante eficaz del sistema operativo Ubuntu Server, configurado específicamente para dispositivos virtuales. Ya no está disponible como un CD-ROM ISO para su

descarga, pero sólo como una opción ya sea:

• Durante la instalación de la ISO Server Edition (presionando F4 en la primera pantalla le permitirá elegir "Instalación mínima", que es la selección de paquetes equivalentes a JeOS).

• O que se construirán con vmbuilder de Ubuntu, que se describe aquí.

JeOS es una instalación especializada de Ubuntu Server Edition con un núcleo ajustado que sólo contiene el elementos básicos necesarios para ejecutar en un entorno virtualizado.

Ubuntu JeOS ha sido adaptado para aprovechar las tecnologías clave de rendimiento en la última productos de virtualización de VMware. Esta combinación de tamaño reducido y un rendimiento optimizado asegura que Ubuntu JeOS Edition proporciona un uso altamente eficiente de los recursos del servidor en el virtual

grande despliegues.

Sin controladores innecesarios, y sólo los paquetes requeridos mínimos, los ISVs pueden configurar su

apoyo operativo tal y como requieren. Ellos tienen la tranquilidad de saber que las actualizaciones, ya sea para la

seguridad o por razones de mejora, se limitará a la cantidad mínima de lo que se requiere en su específica medio ambiente. A su vez, los usuarios que utilicen los equipos virtuales creados por encima de JeOS tendrá que pasar

por un menor número de actualizaciones y mantenimiento por lo tanto, menos de lo que han tenido que con un

completo estándar la instalación de un servidor.

2.1.2. ¿Qué es vmbuilder

Con vmbuilder, no hay necesidad de descargar una ISO de JeOS más. vmbuilder obtendrá los diversos

empaquetar y construir una máquina virtual adaptada a sus necesidades en un minuto. vmbuilder es una secuencia de

comandos que automatiza el proceso de crear una máquina virtual lista para su uso basado en Linux. El apoyo en la actualidad hipervisores son KVM y Xen.

Puede pasar las opciones de línea de comandos para agregar paquetes adicionales, eliminar paquetes, seleccione la

versión de Ubuntu, que reflejan etc En reciente de hardware con un montón de memoria RAM, en tmpdir / Dev / shm o

utilizando un tmpfs, y un espejo local, puede arrancar una máquina virtual en menos de un minuto.

Presentado por primera vez como un script de shell en Ubuntu 8.04 LTS, Ubuntu-vm-builder comenzó con poco

énfasis como un truco para ayudar a los desarrolladores probar su nuevo código en una máquina virtual sin tener que reiniciar

desde cero cada vez. Como algunos administradores de Ubuntu comenzó a notar esta secuencia de comandos, algunos de

ellos fueron en la mejora y adaptándolo para el caso de uso tantos que Soren Hansen (el autor del guión y Especialista en virtualización de Ubuntu, no el jugador de golf) decidió volver a escribir desde cero para Intrepid como un script en Python con un nuevo diseño de los objetivos últimos:

313

Virtualización

• Desarrollar de modo que puede ser reutilizado por otras distribuciones.

• Utilice un mecanismo de plugin para todas las interacciones de virtualización para que los demás pueden añadir

fácilmente la lógica de otros entornos de virtualización. • Proporcionar una interfaz de fácil de mantener Internet como una opción para la interfaz de línea de

comandos.

Sin embargo, los principios generales y los comandos siguen siendo los

mismos.

2,2. Configuración Inicial

Se supone que usted ha instalado y configurado libvirt y KVM localmente en la máquina que son utilizando. Para obtener más información sobre cómo realizar esto, por favor referirse a:

•Sección 1, "libvirt" [p. 308]

• El KVM7 de páginas wiki.

También se asume que usted sabe cómo usar un editor de texto basado en texto como nano o vi. Si usted no tiene utilizar alguno de ellos antes, usted puede obtener una visión general de los editores de texto disponibles diversas

mediante la lectura del PowerUsersTextEditors8 páginas. Este tutorial se ha hecho en KVM, pero si el principio general permanecer en otras tecnologías de virtualización.

2.2.1. Instale vmbuilder

El nombre del paquete que necesitamos instalar es python-vm-builder. En una terminal escriba:

sudo apt-get install python-vm-builder

Si está ejecutando Hardy, todavía se puede realizar la mayor parte de esta utilizando la versión anterior de

la paquete llamado ubuntu-vm-builder, hay sólo unos pocos cambios en la sintaxis de la herramienta.

2,3. Definición de su máquina virtual

Definición de una máquina virtual con Ubuntu vmbuilder es muy simple, pero aquí hay una cosa que unos pocos tener en cuenta:

• Si usted planea en el envío de un dispositivo virtual, no suponga que el usuario final va a saber cómo

ampliar el tamaño del disco para adaptarse a sus necesidades, por lo que cualquier plan para un disco virtual de gran

tamaño para permitir a su aparato de crecer, o explicar bastante bien en la documentación de la forma de asignar más espacio. En realidad podría ser una buena idea para almacenar datos en un almacenamiento externo independiente.

• Dado que la memoria RAM es mucho más fácil de asignar en una máquina virtual, tamaño de la RAM se debe

establecer en lo que usted piensa es un mínimo de seguridad para su aparato.

El comando vmbuilder tiene 2 parámetros principales: la tecnología de virtualización (hipervisor) y el blanco distribución. Los parámetros opcionales son muy numerosas y se pueden encontrar con el siguiente

comando:

7 https://help.ubuntu.com/community/KVM 8 https://help.ubuntu.com/community/PowerUsersTextEditors

314

Virtualización

vmbuilder kvm ubuntu - ayuda

2.3.1. Parámetros básicos

Como este ejemplo está basado en KVM y Ubuntu 12.04 LTS (preciso Pangolin), y es probable para reconstruir el mismo tiempo de varias máquinas virtuales, vamos a invocar vmbuilder con la siguiente,

primero se parámetros:

sudo vmbuilder kvm ubuntu - suite precisa - el sabor virtual - i386 arco -O - libvirt qemu :/ / / sistema de

\

La - Suite define la versión de Ubuntu, la - Sabor especifica que queremos utilizar el núcleo virtual de (Que es el que se utiliza para construir una imagen JeOS), la - Arco de dice que desea utilizar una máquina de 32 bits, el

- odice vmbuilder para sobrescribir la versión anterior de la máquina virtual y la - Libvirt dice que informar a la local, entorno de virtualización para agregar la máquina virtual resultante a la lista de máquinas disponibles.

Notas:

• Debido a la naturaleza de las operaciones realizadas por vmbuilder, es necesario tener privilegios de root, por lo tanto, el uso de sudo.

• Si la máquina virtual necesita usar más de 3 GB de RAM, se debe construir una máquina de 64 bits (-

arco de amd64).

• Hasta que Ubuntu 8.10, el kernel virtual fue construido sólo para la arquitectura de 32 bits, así que si quieres definir una máquina amd64 en Hardy, usted debe utilizar - Sabor servidor en lugar.

2.3.2. JeOS los parámetros de instalación

2.3.2.1. JeOS Red

2.3.2.1.1. Asignación de una dirección IP fija

Como un dispositivo virtual que puede ser implementado en varias redes muy diferentes, es muy difícil saber cuál es el real de la red se verá así. Con el fin de simplificar la configuración, es una buena idea adoptar un enfoque similar a lo que los vendedores de hardware de red suelen hacer, es decir, la asignación de un la dirección inicial de IP fija para el aparato en una red de clase privada que se le dio en su documentación. Una dirección en el rango de 192.168.0.0/255 suele ser una buena opción.

Para ello vamos a utilizar los siguientes parámetros:

•- Dirección IP: Dirección IP en forma de puntos (por defecto el DHCP si no se especifica)

•- Nombre de host: Establecer NOMBRE como el nombre de host del

cliente. •- Máscara de VALOR: Máscara de IP en forma de puntos (por defecto:

255.255.255.0) •- Valor neto: Dirección de red IP (por defecto: X.X.X.0)

•- BCAST VALOR: IP de difusión (por defecto: X.X.X.255)

315

Virtualización

•- Gw DIRECCIÓN: Puerta de enlace de la dirección (por defecto:

X.X.X.1) •- Dirección DNS: Nombre de la dirección del servidor (por defecto:

X.X.X.1)

Suponemos que por el momento que los valores por defecto son bastante buenos, por lo que la invocación

resultante se convierte en:

sudo vmbuilder kvm ubuntu - suite precisa - el sabor virtual - i386 arco de \ -O - libvirt qemu :/ / system / - IP 192.168.0.100 - myvm nombre de host

2.3.2.1.2. Bridging

Debido a que nuestro aparato es probable que haya necesidad de acceder a máquinas remotas, es necesario

configurar libvirt, para que el aparato utiliza las redes puente. Para ello, agregue el - Puente opción para el comando:

sudo vmbuilder kvm ubuntu - suite precisa - el sabor virtual - i386 arco de \ -O - libvirt qemu :/ / system / - IP 192.168.0.100 - myvm nombre de host - puente br0

Usted tendrá que configurar previamente una interfaz de puente, consulte Sección 1.4, "Puente" [p. 39] para más información. Además, si el nombre de la interfaz es diferente cambio br0 a la real puente de la interfaz.

2.3.2.2. Particiones

Partición de la aplicación virtual tendrá que tener en cuenta lo que usted está planeando hacer con lo es. Debido a que la mayoría de los aparatos quieren tener un dispositivo de almacenamiento independiente para

los datos, con una separada / Var tendría sentido.

Con el fin de hacer esto vmbuilder nos proporciona - Parte:

- Parte de la ruta Le permite especificar una tabla de particiones en un archivo de la partición, ubicado en el

path. Cada línea del archivo de la partición debería especificar (root):

punto de montaje de tamaño donde el tamaño es en megabytes. Puede tener hasta 4 discos virtuales, un nuevo disco se inicia en una línea con '---'. es decir:

raíz de 1000 / Opt 1000 intercambian 256

--- / Var 2000

/ Log 1500

En nuestro caso vamos a definir un nombre de archivo de texto vmbuilder.partition que contendrá lo siguiente:

raíz de 8000 intercambiar 4000 ---

316

Virtualización

/ Var 20000

Tenga en cuenta que como estamos usando imágenes de disco virtuales, los tamaños reales que ponemos aquí

es máxima dimensiones para estos volúmenes.

Nuestra línea de comandos ahora se ve así:

sudo vmbuilder kvm ubuntu - suite precisa - el sabor virtual - i386 arco de \ -O - libvirt qemu :/ / system / - IP 192.168.0.100 - myvm nombre de host - vmbuilder.partition parte

El uso de un "\" en un comando permitirá largas cadenas de mando pase a la siguiente línea.

2.3.2.3. De usuario y contraseña

Una vez más la creación de un dispositivo virtual, usted tendrá que proporcionar a un usuario y contraseña por defecto

que es genérica para que pueda incluirlo en su documentación. Veremos más adelante en este tutorial de cómo proporcionará algo de seguridad mediante la definición de un script que se ejecutará la primera vez que un usuario inicia

una sesión en la realidad aparato, que, entre otras cosas, le pido que cambie su contraseña. En este ejemplo voy a utilizar 'Usuario' como mi nombre de usuario y 'Default' como la contraseña.

Para ello se utilizan los siguientes parámetros opcionales:

•- Nombre de usuario: Establece el nombre del usuario que se agregará. Por defecto:

Ubuntu. •- Nombre FULLNAME: Establece el nombre completo del usuario que desea agregar. Por defecto:

Ubuntu. •- Pass CONTRASEÑA: Establece la contraseña para el usuario. Por defecto:

Ubuntu.

Nuestra línea de comandos resultante se convierte

en:

sudo vmbuilder kvm ubuntu - suite precisa - el sabor virtual - i386 arco de \ -O - libvirt qemu :/ / system / - IP 192.168.0.100 - myvm nombre de host - parte \ vmbuilder.partition - Usuario - Nombre de usuario - contraseña predeterminada

2.3.3. Instalación de paquetes necesarios

En este ejemplo vamos a instalar un paquete (Limesurvey) que accede a una base de datos MySQL y tiene una interfaz web. Por lo tanto, se requieren de nuestra sistema operativo que nos proporcione:

• Apache

• PHP

• MySQL

• Servidor OpenSSH

• Limesurvey (como una aplicación de ejemplo que hemos empaquetado)

Esto se hace usando vmbuilder especificando la opción - addpkg varias veces:

317

Virtualización

- Addpkg PKG Instalar PKG en el huésped (se puede cia especificados varias veces)

Sin embargo, debido a la forma vmbuilder opera, paquetes que tienen que hacer preguntas al usuario durante la fase posterior a la instalación no son compatibles y en su lugar se debe instalar, mientras que la interactividad puede

ocurrir. Este es el caso de LimeSurvey, que vamos a tener que instalar más tarde, una vez que el usuario inicia

sesión

Otros paquetes que se haga la pregunta debconf sencilla, como mysql-server pidiendo para establecer una contraseña, la paquete se puede instalar de inmediato, pero vamos a tener que volver a configurar la primera vez que el usuario inicia

sesión

Si algunos paquetes que tenemos que instalar no se encuentran en principal, tenemos que activar los repositorios

adicionales con - comp y - ppa:

- Los componentes COMP1, COMP2, ..., COMPN Una lista separada por comas de los componentes de tu distribución para incluir (por ejemplo

principal, el universo). El valor predeterminado es "principal" - Ppa = PPA Añadir ppa que pertenece a la APP en la sources.list de la máquina virtual.

Limesurvey no ser parte del archivo en el momento, vamos a especificar que es PPA (Personal Package archivo) dirección de modo que se añade a la VM / Etc / apt / source.list, Por lo que se añade el siguiente opciones a la línea de comandos:

- Addpkg apache2 - addpkg apache2-mpm-prefork - addpkg apache2-utils \ - Addpkg apache2.2-common - addpkg dbconfig-common - addpkg libapache2-mod-php5 \

- Addpkg mysql-client - addpkg php5-cli - addpkg php5-gd - addpkg php5-ldap \ - Addpkg php5-mysql - addpkg wwwconfig-común - addpkg mysql-server - ppa nijaba

2.3.4. Consideraciones de velocidad

2.3.4.1. Paquete de almacenamiento en caché

Cuando se crea vmbuilder construye su sistema, tiene que ir a buscar a cada uno de los paquetes que componen

sobre la red a uno de los repositorios oficiales, que, dependiendo de su conexión a Internet la velocidad y la carga del espejo, puede tener un gran impacto en el actual momento de la construcción. Con el fin de

reducir esto, se recomienda tener ya sea un repositorio local (que pueden ser creados usando apt-mirror) o usando un proxy caché como apt-proxy. Esta última opción es mucho más sencillo de implementar y requiere menos espacio en disco, es el que tomará en este tutorial. Para instalarlo, simplemente escriba:

sudo apt-get install apt-proxy

Una vez completado esto, su (vacía) de proxy está listo para su uso en http://mirroraddress:9999 y encontrarán Ubuntu repositorio bajo / ubuntu. Para vmbuilder usarlo, vamos a tener que utilizar el - Espejo opción:

- Mirror = URL El uso del espejo de Ubuntu en el URL en lugar del predeterminado, que es http://archive.ubuntu.com/ubuntu oficial para el

318

Virtualización

arcos y http://ports.ubuntu.com/ubuntu-ports de otra manera

Por lo tanto, añadir a la línea de comandos:

- Espejo de http://mirroraddress:9999/ubuntu

La dirección de espejo especificado aquí también se utilizará en el / Etc / apt / sources.list de los recién creado huésped, lo que es útil para especificar aquí una dirección que puede ser resuelto por el invitado o para planificar el reseteo esta dirección más adelante.

2.3.4.2. Instalar una réplica local

Si estamos en un entorno más amplio, puede tener sentido para configurar una réplica local del Ubuntu repositorios. El paquete apt-mirror le proporciona una secuencia de comandos que se encargará de la creación de reflejo

para usted. Usted debe planear en tener unos 20 gigabytes de espacio libre por la liberación el apoyo y la arquitectura.

Por omisión, apt-mirror utiliza el archivo de configuración en / Etc / apt / mirror.list. Como está establecido, lo

hará reproducir sólo la arquitectura de la máquina local. Si usted desea apoyar a otras arquitecturas de su espejo, simplemente duplicar las líneas que comienzan con "deb", en sustitución de la palabra clave deb / deb-{arch} donde arch puede ser i386, amd64, etc .. Por ejemplo, en una máquina amd64, para tener los archivos i386

así, usted tendrá que (algunas líneas se han dividido de acuerdo al formato de este documento):

deb http://archive.ubuntu.com/ubuntu precisa multiverso principales universo restringido http://archive.ubuntu.com/ubuntu precisa multiverso principales universo restringido / Deb-i386

deb http://archive.ubuntu.com/ubuntu precisos-updates multiverse principales universo restringido / Deb-i386 http://archive.ubuntu.com/ubuntu~~HEAD=NNS precisa de actualizaciones principal

restringido universe multiverse

deb http://archive.ubuntu.com/ubuntu/ precisa-backports multiverso principales universo restringido

/ Deb-i386 http://archive.ubuntu.com/ubuntu precisa-backports principal restringido universe multiverse

deb http://security.ubuntu.com/ubuntu precisa de seguridad multiverso principales universo restringido / Deb-i386 http://security.ubuntu.com/ubuntu precisa-principal de seguridad

restringido universe multiverse

deb http://archive.ubuntu.com/ubuntu precisa principal / debian-installer restringido / debian-installer universo / multiverso debian-installer / debian-installer

/ Deb-i386 http://archive.ubuntu.com/ubuntu precisa principal / debian-installer restringido / debian-installer universo / multiverso debian-installer / debian-installer

Tenga en cuenta que los paquetes de código fuente no se reflejan, ya que rara vez se utilizan en comparación con los

binarios y que toman un espacio mucho más, pero que pueden ser fácilmente añadidos a la lista.

Una vez que el espejo ha terminado de replicar (y esto puede ser muy largo), es necesario configurar Apache de modo que sus archivos de espejo (en / Var / spool / apt-mirror si no cambia el valor predeterminado), se

publican

319

Virtualización

por el servidor Apache. Para obtener más información sobre Apache vea Sección 1, "HTTPD - Web Apache2 Servidor "[p. 187].

2,4. Empaquetar la aplicación

Dos opciones están disponibles para

nosotros: • El método recomendado para hacerlo es hacer una Debian paquete. Dado que este se encuentra fuera del alcance de este tutorial, no vamos a realizar esto aquí e invitar al lector a leer la documentación sobre cómo hacer esto en el Ubuntu Guía Embalaje9. En este caso también es una buena idea configurar un depósito de su paquete para que las actualizaciones pueden ser convenientemente retirado de la misma. Véase el

Debian Administración10 artículo para un tutorial sobre este.

• Instalación manual de la aplicación bajo / Opt como se recomienda por el FHS directrices11.

En nuestro caso vamos a utilizar Limesurvey como ejemplo de aplicación web para el que queremos dar un virtual aparato. Como se ha señalado antes, hemos hecho una versión del paquete disponible en un PPA (Personal Archivo del paquete).

2,5. Las adiciones útiles

2.5.1. Configuración de Actualizaciones

automáticas

Para que su sistema puede configurar para que se actualice de forma periódica, sólo se instalará desatendida

actualizaciones, por lo que añadir la siguiente opción para nuestra línea de

comandos:

- Addpkg desatendida de actualizaciones

Como hemos puesto nuestro paquete de aplicación en un PPA, el proceso se actualizará no sólo el sistema, pero también la aplicación cada vez que actualicemos la versión de la PPA.

2.5.2. ACPI Manejo de Eventos

Para que su máquina virtual para ser capaz de manejar el reinicio y eventos de cierre que se está enviando, es una buena

idea de instalar el paquete acpid también. Para ello sólo tiene que añadir la siguiente opción:

- Addpkg acpid

2,6. Mando final

Este es el comando con todas las opciones que se discutieron

anteriormente:

sudo vmbuilder kvm ubuntu - suite precisa - el sabor virtual - arch i386-o \

9 https://wiki.ubuntu.com/PackagingGuide 10 http://www.debian-administration.org/articles/286 11 http://www.pathname.com/fhs/

320

Virtualización

- Libvirt qemu :/ / system / - IP 192.168.0.100 - myvm nombre de host \ - Parte vmbuilder.partition - Usuario - Nombre de usuario - por defecto de paso \ - Addpkg apache2 - addpkg apache2-mpm-prefork - addpkg apache2-utils \

- Addpkg apache2.2-common - addpkg dbconfig-common \ - Addpkg libapache2-mod-php5 - addpkg mysql-client - addpkg php5-cli \ - Addpkg php5-gd - addpkg php5-ldap - addpkg php5-mysql \ - Addpkg wwwconfig-común - addpkg mysql-server \

- Addpkg desatendida de actualizaciones - addpkg acpid - ppa nijaba \ - Espejo de http://mirroraddress:9999/ubuntu

2,7. Recursos

Si usted está interesado en aprender más, tiene preguntas o sugerencias, por favor póngase en contacto con el servidor de

Ubuntu Equipo en: • IRC: # ubuntu-server en freenode

• Lista de correo: ubuntu-server en lists.ubuntu.com12

• Asimismo, consulte la JeOSVMBuilder Wiki de Ubuntu13 páginas.

12 https://lists.ubuntu.com/mailman/listinfo/ubuntu-server 13 https://help.ubuntu.com/community/JeOSVMBuilder

321

Virtualización

3. UEC

3,1. Información

general

UEC (Ubuntu Enterprise Cloud) está depracated a favor de la UC (Ubuntu Cloud). La primero se basa en eucalipto y el segundo se basa en Openstack. Esta sección de la guía se eliminará en versiones futuras.

Este tutorial cubre la instalación de la UEC de Ubuntu 12.04 LTS Server Edition CD, y asume una topología de la red básica, con un único sistema que actúa como "Todo-en-un controlador", y una o más los nodos conectados.

A partir de este tutorial, aprenderá a instalar, configurar, registrar y realizar varias operaciones en una configuración básica UEC que se traduce en una nube con un controlador de un "Front-end" y una o varias nodo (s) para el funcionamiento de la máquina virtual (VM) de los casos. También se utilizan ejemplos para ayudar a empezar a

utilizar su propia nube privada de cálculo.

3,2. Requisitos previos

Para implementar una infraestructura de nube mínimo, usted necesitará por lo menos dos sistemas

dedicados: • Una interfaz.

• Uno o más nodos (s).

Las siguientes son recomendaciones, en lugar de requisitos fijos. Sin embargo, nuestra experiencia en

el desarrollo de esta documentación que se indica las siguientes sugerencias.

3.2.1. Requisitos Front End

Utilice la siguiente tabla para un sistema que se ejecutará una o más de:

• Controlador de nubes (CLC)

• Cluster Controller (CC)

• Morsa (el servicio de almacenamiento S3-like)

• Controlador de almacenamiento

(SC)

322

Virtualización

Tabla 20.1. UEC Requisitos Front End

Hardware

CPU

Mínimo

De 1 GHz

Sugerido

2 x 2 GHz

Notas

Para una todo-en-uno extremo frontal, que ayuda a tener al menos un

doble núcleo del procesador.

Memoria 2 GB 4 GB Los beneficios de Java Web front-end de un montón de espacio

disponible memoria.

Más lenta de los discos va a funcionar, pero rendirá ejemplo, mucho más

tiempo los tiempos de arranque.

40 GB es espacio suficiente para una sola imagen de caché, etc, el eucalipto no le gusta que se quede sin espacio en disco.

Disco 5400 RPM IDE

7200 RPM SATA

200 GB Espacio en disco de 40 GB

Red de 100 Mbps 1000 imágenes de la máquina Mbps son cientos de MB, y la necesidad de ser copiado través de la red a los nodos.

3.2.2. Requisitos de nodo

El otro sistema (s) son nodos, que se desarrollará:

• El Controlador de Nodos (NC)

Tabla 20.2. UEC nodo requisitos

Hardware mínimo sugerido

CPU VTVT, de 64-bit, Extensiones de Multicore

Notas

De 64 bits puede funcionar tanto en i386, amd64 y las instancias, por por defecto, el eucalipto sólo se ejecutará una VM por núcleo de la

CPU en un nodo.

La memoria adicional significa que los huéspedes más y más

grande. Memoria

Disco

1 GB 4 GB

5400 RPM 7200 nodos son RPMEucalyptus uso intensivo del disco, E / S de espera probable que se IDESATA o SCSI ser el cuello de botella de rendimiento.

100 GB Las imágenes se almacenan en caché a nivel local, el eucalipto no le

gusta se queda sin espacio en disco.

Imágenes de la máquina son cientos de MB, y tienen que ser copiado través de la red a los nodos.

Espacio en disco de 40 GB

Red de 100 Mbps 1000 Mbps

3,3. Instalación del servidor de aplicaciones para la nube / cluster /

Almacenamiento / morsa Fin

1.

2.

Descargar Ubuntu 12.04 LTS servidor de archivos ISO y grabarla en un CD.

Al iniciar, seleccione "Instalar Ubuntu Enterprise Cloud". El programa de instalación detectará si cualquier

otro Componentes de eucalipto están presentes.

323

Virtualización

3.

4.

5.

A continuación, puede elegir los componentes a instalar, en base a sus elegidos topología14.

Cuando se le preguntó si desea un "Cluster" o un "Nodo" instalar, seleccione "Cluster".

Se le pedirá a otros dos en la nube preguntas específicas durante el curso de la instalación:

• Nombre del clúster.

• por ejemplo, cluster1.

• Un rango de direcciones IP públicas de la LAN que la nube puede asignar a los casos.

• por ejemplo, 192.168.1.200-192.168.1.249.

3,4. Instalación del Controlador de Nodos (s)

La instalación de controlador de nodo es aún más simple. Sólo asegúrese de que está conectado a la red en que el controlador de la nube / cluster ya se está ejecutando.

1.

2.

3.

4.

5.

6.

Arrancar desde el ISO mismos en el nodo (s).

Al iniciar, seleccione "Instalar Ubuntu Enterprise Cloud".

Seleccionar "Instalar Ubuntu Enterprise Cloud".

Se debe detectar el Cluster y preselección "Nodo" instalará por usted.

Confirmar el esquema de partición.

El resto de la instalación debe proceder sin interrupción, completa la instalación y reinicie el

nodo.

3,5. Registrar el nodo (s)

1. Los nodos son los sistemas físicos dentro de la UEC que realmente explotan las instancias de máquinas virtuales

de la nube.

Todo registro de componentes debe ser automática, en el supuesto:

una. Públicos claves SSH se han intercambiado adecuadamente.

b. Los servicios están configurados correctamente.

c. El caso UEC-componente de escucha se está ejecutando.

d. Comprobar el registro.

Pasos de un correo que sólo debe ser necesario si usted está utilizando el UEC / PackageInstall15 método. De lo contrario, si usted está siguiendo esta guía, estas medidas ya se completa de forma automática para usted, y por lo tanto, puede omitir "Uno" a "E".

2. Cambio de claves públicas

14 https://help.ubuntu.com/community/UEC/Topologies~~V 15 https://help.ubuntu.com/community/UEC/PackageInstall

324

Virtualización

El controlador de la nube de eucalipto usuario necesita tener acceso SSH a la morsa del controlador, Controlador del clúster, y el Controlador de almacenamiento como el usuario de eucalipto.

Instalar el controlador de la nube eucalipto clave pública del usuario SSH por:

• En el controlador de destino, de forma temporal establecer una contraseña para el usuario de

eucalipto:

eucaliptos sudo passwd

• A continuación, en el controlador de la

nube:

sudo-u eucaliptos ssh-copy-id-i ~ eucalipto / .ssh / id_rsa.pub \ eucaliptos @ <IP_OF_NODE>

• Ahora se puede eliminar la contraseña de la cuenta de eucalipto en el controlador de destino, si desea:

sudo passwd-d eucaliptos

3. Configuración de los servicios

En el Nube de control:

• Para el El regulador de grupo Registro:

• Definir la variable de shell en el CC_NAME / Etc / eucalipto / eucalipto cc.conf

• Definir la variable de shell en el CC_IP_ADDR / Etc / eucalipto / eucalipto ipaddr.conf, Como una lista separada por espacios de una o más direcciones IP.

• Para el Morsa controlador Registro:

• Definir la variable de shell en el WALRUS_IP_ADDR / Etc/eucalyptus/eucalyptus- ipaddr.conf, Como una única dirección IP.

En el El regulador de grupo:

• En el caso Controlador de almacenamiento Registro:

• Definir la variable de shell en el CC_NAME / Etc / eucalipto / eucalipto cc.conf

• Definir la variable de shell en el SC_IP_ADDR / Etc / eucalipto / eucalipto ipaddr.conf, Como una lista separada por espacios de una o más direcciones IP.

4. Publicar

Ahora empieza a los servicios de publicación.

•Morsa de control:

inicio sudo eucalipto morsa publicación

•El regulador de grupo:

325

Virtualización

inicio sudo eucaliptos-cc-la publicación

•Controlador de almacenamiento:

inicio sudo eucaliptos-sc-publicación

•Controlador de Nodos:

inicio sudo eucalyptus-nc-publicación

5. Inicio del proceso de

escucha

En el Nube de controlador y el El regulador de grupo (s), ejecute:

inicio sudo UEC-componente de escucha

6. Comprobar el registro

cat / var / log / eucalipto / registration.log 04/08/2010 15:46:36-05:00 | 24243 -> Llamadas nodo cluster1 nodo 10.1.1.75 04/08/2010 15:46:36-05:00 | 24243 -> euca_conf - registro de los nodos devuelto 0

04/08/2010 15:48:47-05:00 | 25858 -> 10.1.1.71 llamadas morsa morsa 04/08/2010 15:48:51-05:00 | 25858 -> euca_conf - registro de morsa devuelto 0

04/08/2010 15:49:04-05:00 | 26237 -> Llamadas grupo cluster1 10.1.1.71

04/08/2010 15:49:08-05:00 | 26237 -> euca_conf - registro del clúster ha devuelto 0 04/08/2010 15:49:17-05:00 | 26644 -> Llamadas de almacenamiento de almacenamiento cluster1

10.1.1.71 04/08/2010 15:49:18-05:00 | 26644 -> euca_conf - registro-sc ha devuelto 0

La salida en el equipo pueden variar en el ejemplo anterior.

3,6. Obtener Credenciales

Después de instalar y arrancar el Nube de Contralor, los usuarios de la nube se necesita para recuperar su credenciales. Esto se puede hacer a través de un navegador web, o en la línea de comandos.

3.6.1. Desde un navegador Web

1. Desde su navegador de Internet (ya sea de forma remota o en el servidor de Ubuntu) acceder a la siguiente

dirección URL:

https:// <cloud-controller-ip-address>: 8443 /

Debe utilizar una conexión segura, así que asegúrate de utilizar "https" y no "http" en su URL. Usted recibirá una advertencia de certificado de seguridad. Usted tendrá que añadir una

excepción para ver la página. Si no lo aceptan que no será capaz de ver el eucalipto

configuración de la página.

2.

3.

Utilizar nombre de usuario 'Admin' y la contraseña 'Admin' para el primer inicio de sesión (se le pedirá que cambiar la contraseña).

A continuación, siga las instrucciones en pantalla para actualizar la contraseña de administrador y la

dirección de correo electrónico.

326

Virtualización

4.

5.

6.

7.

Una vez que el proceso de configuración en tiempo primero se haya completado, haga clic en el Las credenciales de los pestaña situada en el porción superior izquierda de la pantalla. Haga clic en el "Descarga de Verificación de Poderes" botón para obtener

sus certificados. Guardar a ~ /. EUCA.

Descomprimir el archivo zip en un lugar seguro (~ /. EUCA).

unzip-d ~ /. EUCA mycreds.zip

3.6.2. Desde una línea de comandos

• Por otra parte, si usted está en la línea de comandos de la Nube de Contralor, puede ejecutar:

mkdir-p ~ /. EUCA chmod 700 ~ /. EUCA cd ~ /. EUCA euca_conf sudo - get-credenciales mycreds.zip

descomprimir mycreds.zip ln-s ~ / .euca / eucarc ~ /. eucarc cd -

3.6.3. Extracción y Uso de credenciales

Ahora usted tendrá que configurar EC2 API y herramientas de IAM en el servidor con los certificados X.509.

1. Instalar las herramientas de la nube de usuario

requeridos:

sudo apt-get install euca2ools

2. Para validar que todo funciona correctamente, tener detalles sobre la disponibilidad del clúster local:

. ~ / .euca / Eucarc EUCA-describe-la disponibilidad de zonas de detallado AVAILABILITYZONEmyowncloud

AVAILABILITYZONE

AVAILABILITYZONE AVAILABILITYZONE

AVAILABILITYZONE AVAILABILITYZONE AVAILABILITYZONE

| - Tipos vm

| - M1.small | - C1.medium

| - M1.large | - M1.xlarge | - C1.xlarge

192.168.1.1 gratis / max

0004/0004 0004/0004

0002/0002 0002/0002 0001/0001

cpu

1 1

2 2 4

carnero

128 256

512 1024 2048

disco

2 5

10 20 20

Su salida del comando anterior puede variar.

3,7. Instalar una imagen de la tienda

La siguiente es, con mucho, la forma más sencilla de instalar una imagen. Sin embargo, los usuarios avanzados

pueden ser interesado en aprender a Paquete de su propia imagen16.

16 https://help.ubuntu.com/community/UEC/BundlingImages

327

Virtualización

La forma más sencilla de agregar una imagen a la UEC es que lo instale desde el almacén de imágenes en la web

UEC interfaz.

1. El acceso a la interfaz web en la siguiente URL (Asegúrese de especificar https):

https:// <cloud-controller-ip-address>: 8443 /

2.

3.

4.

5.

Ingrese su usuario y contraseña (si se solicita, ya que todavía se pueden registrar desde antes).

Haga clic en el Almacenar ficha. Examinar imágenes disponibles.

Hacer clic en instalar de la imagen que desea.

Una vez que la imagen ha sido descargado e instalado, puede hacer clic en "¿Cómo funciona?" que será aparece debajo del botón de la imagen para ver el comando a ejecutar para crear una instancia (inicio) esta imagen. La imagen también aparecerá en la lista que figura en el Imagen ficha.

3,8. Ejecutar una imagen

Hay varias formas de ejecutar una imagen en la UEC:

• Utilizar la línea de comandos.

• Utilice una de las herramientas de gestión de la UEC compatibles, tales como Paisaje.

• Utilice el ElasticFox17 extensión para Firefox.

Aquí vamos a describir el proceso desde la línea de comandos:

1. Antes de ejecutar una instancia de su imagen, primero debe crear una par de claves (Ssh key) que puede utilizar para iniciar sesión en la instancia como root, una vez que se inicie. La clave se almacena, por lo que

sólo tendrá que hacer esto una vez.

Ejecute el siguiente comando:

if [! -E ~ / .euca / mykey.priv], y luego

mkdir-p-m 700 ~ /. EUCA touch ~ / .euca / mykey.priv

chmod 0600 ~ / .euca / mykey.priv EUCA-add-par de llaves MyKey> ~ / .euca / mykey.priv

fi

Usted puede llamar a la clave de lo que quieras (en este ejemplo, la clave se llama "MyKey"), pero

recordar lo que se llama. Si se olvida, siempre se puede correr EUCA-describe-pares de claves para obtener una lista de claves creadas almacenados en el sistema.

2. También debe permitir el acceso al puerto 22 en los casos:

17 https://help.ubuntu.com/community/UEC/ElasticFox

328

Virtualización

EUCA autorizar por defecto-P tcp-p 22-s 0.0.0.0 / 0

3. A continuación, puede crear instancias de su imagen social:

EUCA plazo de instancias $ EMI-k-t MyKey m1.small

Si recibe un error con respecto a image_id, usted puede encontrar viendo la página de imágenes o clic "Cómo ejecutar" en el Almacenar la página para ver el comando de la muestra.

4. La primera vez que ejecute una instancia, el sistema será la creación de cachés para la imagen de la que se creará. A menudo, esto puede tomar algún tiempo la primera vez que se ejecuta una instancia teniendo en cuenta

que VM las imágenes son generalmente bastante grande.

Para supervisar el estado de la instancia, ejecute:

reloj-N5 EUCA-describe-instances

En la salida, usted debe ver la información acerca de la instancia, incluyendo su estado. Mientras que por primera

vez el almacenamiento en caché se está realizando, el estado del ejemplar será

"Pendiente". 5. Cuando la instancia esté completamente encendido, el estado anterior se convertirá en 'Corriendo'. Mira la

dirección IP asignado a la instancia en la salida, a continuación, conecte a la misma:

IPADDR = $ (EUCA-describe-instances | grep $ EMI | grep corriendo | \ la cola-n1 | awk '{print $ 4}') ssh-i ~ / .euca / mykey.priv ubuntu @ $ IPADDR

6. Y cuando haya terminado con este caso, salir de su conexión SSH, y luego terminar su ejemplo:

Instancia = $ (EUCA-describe-instances | grep $ EMI | grep corriendo | \ la cola-n1 | awk '{print $ 2}') EUCA-Terminate-instancias $ INSTANCEID

3.8.1. First Boot

El paquete de inicio en la nube ofrece "el primer arranque" la funcionalidad de las imágenes de Ubuntu UEC. Es el

encargado de tomar la imagen de sistema de archivos genérica que se está iniciando y la personalización de este caso en

particular. Esto incluye cosas como: • Configuración del nombre de

host. • Colocación de las previstas en las claves públicas de ssh ~ Ubuntu / .ssh /

authorized_keys. • Ejecución de una secuencia de comandos de usuario proporcionada, o de lo

contrario modificar la imagen.

Ajuste de nombre de host y la configuración de un sistema para que la persona que lo lanzó en realidad puede acceder

a él se no muy interesante. Las cosas interesantes que se pueden hacer con la nube-init son posibles gracias a los datos proporcionados en el momento de lanzamiento llamada de datos de usuario18.

18 http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1085

329

Virtualización

En primer lugar, instalar el paquete en la nube

de inicio:

sudo apt-get install-init nubes

Si el usuario de datos se inicia con '#!', a continuación, se almacena y se ejecuta como root al final del proceso de

arranque de El primer arranque de la instancia (similar a una tradicional 'rc.local' script). La salida de la secuencia de comandos se

dirige a la consola.

Por ejemplo, cree un archivo llamado ud.txt que contiene:

#! / Bin / sh eco ========== Hola a todos: $ (date) ==========

echo "He estado por $ (cut-d \ F-1 </ proc / uptime) s "

Ahora empieza una instancia con el - El usuario del archivo de datos opción:

EUCA plazo de instancias $ EMI-k-t MyKey m1.small - El usuario del archivo de datos = ud.txt

Espera ahora por el sistema para llegar a la consola y que esté disponible. Para ver el resultado del archivo de datos comandos escriba:

EUCA-get-consola de salida de $ EMI | grep - after-context = 1 Hola ========== Hola a todos: Lun Mar 29 18:05:05 UTC 2010 ========== He estado funcionando durante 28,26 segundos

Su salida puede variar.

El enfoque simple muestra anterior muestra una gran cantidad de energía. El usuario de datos puede contener una

secuencia de comandos en cualquiera de las lenguas en que un intérprete ya existe en la imagen (#! / bin / sh, #! / usr / bin / python, #! / usr / bin / perl #! / usr / bin / awk ... ).

Para muchos casos, el usuario puede no estar interesado en escribir un programa. Para este caso, la nube de inicio

proporciona "Nube-config", un enfoque hacia la configuración basada en la personalización. Para utilizar la nube-config la sintaxis, el suministro de datos de usuario debe comenzar con una '# Cloud-config'.

Por ejemplo, crear un archivo de texto llamado nube config.txt que contiene:

# Cloud-config apt_upgrade: true

apt_sources: - Fuente: "ppa: ubuntu-server-edgers/server-edgers-apache"

paquetes: - Build-essential - Pastebinit

330

Virtualización

runcmd:

- ======= Echo Hola Mundo ===== - Echo "He estado por $ (cut-d \

F-1 </ proc / uptime) s "

Crear una nueva instancia:

EUCA plazo de instancias $ EMI-k-t MyKey m1.small - el usuario del archivo de datos = nube config.txt

Ahora, cuando el sistema anterior se ha arrancado, se tiene:

• Se ha añadido el Apache Bordeadoras PPA.

• Ejecutar una actualización para obtener todas las

actualizaciones disponibles • Se instala el "build-essential 'y los paquetes de los pastebinit

• Impreso un mensaje similar a la secuencia de comandos

La Apache Bordeadoras PPA, en el ejemplo anterior, contiene la última versión de Apache desde el repositorios del proveedor de origen. Versiones de los paquetes en el PPA no son compatibles, y en función

de su situación, esto puede o puede no ser deseable. Véase el Ubuntu Server Bordeadoras19 Web la página para más detalles.

La 'Runcmd' comandos se ejecutan en el mismo punto de arranque en el que la '#!' secuencia de comandos que se

ejecutan en el anterior ejemplo. Está presente para que pueda obtener toda la potencia de un lenguaje de script, si lo necesita, sin el abandono la nube de configuración.

Para más información sobre qué tipo de cosas se puede hacer con la nube de configuración, consulte doc / examples20 en la fuente.

3,9. Más información

Como utilizar el Controlador de almacenamiento21

El control de los servicios de eucalipto:

• Servicio de sudo de eucalipto [start | stop | restart] (en el Convenio de Responsabilidad Civil /

CC / SC / lateral morsa) • sudo servicio de eucalyptus-nc [start | stop | restart] (en el lado del nodo)

La ubicación de algunos archivos importantes:

•Archivos de registro:

• / var / log / eucaliptos

•Los archivos de configuración:

• / etc / eucaliptos

•Base de datos:

19 https://launchpad.net/~~HEAD=NNS del ~ ubuntu-server-

canteadoras 20 http://bazaar.launchpad.net/ ~ cloud-init-dev/cloud-init/trunk/files/head :/ doc / examples / 21 https://help.ubuntu.com/community/UEC/StorageController

331

Virtualización

• / var / lib / eucalipto / db

•Llaves:

• / var / lib / eucaliptos

• / var / lib / eucalipto / .ssh

No se olvide de su fuente ~ / .euca / Eucarc antes de ejecutar las herramientas de

cliente.

3,10. Referencias

• Para obtener información sobre los casos de carga de ver el Eucalyptus Wiki22 páginas.

•Sitio del Proyecto Eucalipto (foros, documentación, descargas)23.

•El eucalipto en Launchpad (bugs, código)24.

•Solución de problemas de eucalipto (1,5)25.

•Registre su nube con RightScale26.

• También puede encontrar ayuda en el # Ubuntu-virt, # eucalipto, y # Ubuntu-server Canales de IRC en Freenode27.

22 https://help.ubuntu.com/community/Eucalyptus 23 http://open.eucalyptus.com/ 24 https://launchpad.net/eucalyptus/ 25 http://open.eucalyptus.com/wiki/EucalyptusTroubleshooting_v1.5 26 27 http://freenode.net

332

Virtualización

4. Nube de Ubuntu

Cloud computing es un modelo de computación que permite vastas reservas de recursos que deben asignarse a la carta. Estos recursos, como el almacenamiento, potencia de cálculo, software de red y se abstraen y se entregan

como un servicio a través de Internet en cualquier lugar ya cualquier hora. Estos servicios se facturan por tiempo

consumido similares a los utilizados por los servicios públicos tales como electricidad, agua y telefonía. Nube de Ubuntu Infraestructura utiliza el software de código abierto OpenStack para ayudar a construir altamente escalable, el cloud

computing tanto para nubes públicas y privadas.

4,1. Información

general

Este tutorial cubre la instalación de la OpenStack Ubuntu 12.04 LTS Server Edition CD, y asume una topología de la red básica, con un único sistema que sirve como el "todo-en-una nube infraestructura ". Debido a la simplicidad del tutorial, las instrucciones tal cual no se contempla la creación de servidores de producción a pesar de que le permite tener un POC (prueba de concepto) de la nube de Ubuntu con OpenStack.

4,2. Requisitos previos

Para desplegar una mínima infraestructura de Ubuntu Cloud, usted necesitará por lo

menos: • Un sistema dedicado.

• Dos rangos de direcciones de red (red privada y red pública).

• Asegúrese de que el host en cuestión soporta VT (Virtualization Technology), ya que vamos a utilizar KVM como la tecnología de virtualización. Hipervisores Otros también están soportados como QEMU, UML, VMware ESX / ESXi y Xen. LXC (Linux Containers) también se apoya a través de libvirt.

Comprueba si tu sistema es compatible con KVM emisión sudo kvm-ok en una terminal de

linux.

La "Topología mínima" recomienda el uso de la producción es el uso de tres nodos - Un maestro servidor que ejecuta los servicios de Nova (con excepción de cómputo) y dos servidores que ejecutan nova de cálculo.

Esta configuración es no es redundante y el servidor maestro es un punto de fallo (Single Point of Failure).

4,3. Preconfiguración de la red

Antes de iniciar la instalación de OpenStack tenemos que asegurarnos de que se han instalado puentes de apoyo,

un Base de datos MySQL y un servidor de hora del centro (NTP). Esto asegurará que hemos instanciado máquinas y los anfitriones en sincronía.

En este ejemplo, la "red privada" estará en el rango 10.0.0.0/24 en eth1. Todo el interior la comunicación entre las instancias va a suceder allí, mientras que la "red pública" estará en el Rango 10.153.107.0/29 en eth0.

4.3.1. Instalación de puente de apoyo

333

Virtualización

sudo apt-get install bridge-utils

4.3.2. Instalación y configuración de NTP

sudo apt-get install ntp

Añadir estas dos líneas al final de la / Etc / ntp.conf archivo.

servidor 127.127.1.0 fudge 127.127.1.0 estrato 10

Reinicie el servicio NTP

sudo servicio de ntp restart

4.3.3. Instalación y configuración de MySQL

sudo apt-get install mysql-server

Crear una base de datos mysql y el usuario de OpenStack

sudo mysql-uroot-ppassword-e "CREATE DATABASE nova"; sudo mysql-uroot-ppassword-e "GRANT ALL ON nova. * A novauser @ localhost \

IDENTIFICADO POR 'novapassword' ";

El carácter de continuación de línea "\" implica que se debe incluir la línea siguiente como parte de la comando actual.

4,4. Instalar OpenStack Compute (Nova)

OpenStack Compute (Nova) es un tejido de controlador de la computación en nube (la parte principal de un

IaaS sistema). Está escrito en Python, utilizando el Eventlet y los marcos trenzados, y se basa en el estándar AMQP protocolo de mensajería, y SQLAlchemy para acceder al almacén de datos.

Instale los componentes de Nova OpenStack

sudo apt-get install nova nova-api-red-nova nova volumen de ObjectStore-nova-Scheduler \ nova-computación euca2ools unzip

Reinicie libvirt-bin sólo para hacer libvirtd que es consciente de ebtables.

sudo servicio libvirt-bin reinicio

Instale RabbitMQ - Advanced Message Queue Server (protocolo AMQP)

334

Virtualización

sudo apt-get install RabbitMQ-servidor

Editar / Etc / nova / nova.conf y añadir lo siguiente:

# Nova de configuración FlatDHCPManager - Sql_connection = mysql :/ / novauser: novapassword @ localhost / nova

- Flat_injected = true - Network_manager = nova.network.manager.FlatDHCPManager - Fixed_range = 10.0.0.0/24 - Floating_range = 10.153.107.72/29

- Flat_network_dhcp_start = 10.0.0.2 - Flat_network_bridge = BR100 - Flat_interface = eth1 - Public_interface = eth0

Reinicie los servicios de OpenStack

for i in nova nova-api-red-nova nova ObjectStore-programador-nova nova volumen de cómputo; \ no sudo dejar de $ i; sueño 2; hacer

for i in nova nova-api-red-nova nova ObjectStore-programador-nova nova volumen de cómputo; \ no sudo empezar a $ i; sueño 2; hacer

Migrar base de datos de Nova sqlite db a MySQL db. Se puede tomar un tiempo.

sudo nova-Manage db sincronización

Definir una red privada específica en todas las instancias se ejecutará. Esto será utilizado en la red de Ips fijos establecidos en el interior nova.conf .

sudo-nova gestión de la red crear - fixed_range_v4 10.0.0.0/24 - etiqueta privada \ - Bridge_interface BR100

Definir una red pública específica y la asignación de 6 (utilizable) Flotando Las direcciones IP públicas para su uso con

la casos a partir de 10.153.107.72.

sudo nova gestionar flotante crear - ip_range = 10.153.107.72/29

Crear un usuario (usuario1), un proyecto (proyecto 1), credenciales de descarga y la fuente de su archivo de

configuración.

cd; mkdir nova, nova cd sudo nova gestionar usuario admin usuario1 sudo-nova, la gestión del proyecto crear proyecto1 usuario1 sudo-nova, la gestión del proyecto zip proyecto1 usuario1 descomprimir nova.zip

fuente de novarc

Verifique la instalación OpenStack Compute escribiendo:

335

Virtualización

sudo-nova gestionar el servicio de lista de sudo nova-Manage versión de lista

Si los servicios de Nova no se muestran correctamente reiniciar los servicios OpenStack como se describió

anteriormente. Para obtener más información por favor consulte la sección de solución de problemas en esta guía.

4,5. Instalar Imaging Service (Vistazo)

Nova utiliza el servicio vistazo para administrar las imágenes del sistema operativo que necesita para la crianza de los

casos. Vistazo puede utilizar varios tipos de backends de almacenamiento, como almacén de archivos, etc s3 Vistazo tiene dos

componentes -vistazo de la API y la mirada del registro. Éstos se pueden controlar con los trabajos de advenedizos en cuestión de

servicios. Para este caso específico vamos a utilizar MySQL como backend de almacenamiento. Instale Vistazo

sudo apt-get install vista

Crear una base de datos y el usuario para la vista

sudo mysql-uroot-ppassword-e "CREAR BASE DE DATOS vista"; sudo mysql-uroot-ppassword-e "GRANT ALL ON vistazo. * A glanceuser @ localhost \ IDENTIFICADO POR 'glancepassword' ";

Editar el archivo / etc / vista / vista-registry.conf y editar la línea que contiene la opción "Sql_connection =" a esto:

sql_connection = mysql :/ / glanceuser: glancepassword @ localhost / vista

Retire la base de datos SQLite

rm-rf / var / lib / vista / glance.sqlite

Reinicie mirada-registro después de realizar cambios a / etc / Visión / vista-registry.conf. El MySQL base de datos se rellenan automáticamente.

reinicio sudo registro vistazo

Si usted encuentra problemas de echar un vistazo a el archivo de registro en / var / log / vista / api.log y / var / log /

vista / registry.log.

4,6. Ejecución de instancias

Antes de que usted puede crear instancias de las imágenes, primero tiene que configurar las credenciales del

usuario. Una vez que este primer paso es logrado también es necesario para cargar las imágenes que desea ejecutar en la nube. Una vez que tenga estos Las imágenes subidas a la nube en que será capaz de correr y conectarse a ellos. Estos son los pasos que debe seguir para obtener OpenStack Nova instancias en ejecución:

336

Virtualización

Descargar, registrar y publicar una imagen de la nube de Ubuntu

distro = lúcida http://cloud-images.ubuntu.com/ wget $ distro / current / $ distro-server-cloudimg-amd64.tar.gz

la nube de publicación-tar "$ distro"-server-cloudimg-amd64.tar.gz "$ distro" _amd64

Crear un par de claves e iniciar una instancia

cd ~ / nova fuente de novarc EUCA-add-par de claves usuario1> user1.priv chmod 0600 user1.priv

Permitir ICMP (ping) y el acceso ssh a las instancias

EUCA autorizar por defecto-P tcp-p 22-s 0.0.0.0 / 0 EUCA autorizar-p icmp-t -1: -1 por defecto

Ejecutar una instancia

ami = `EUCA-describe-las imágenes | awk {'print $ 2'} | grep-m1 ami ` EUCA plazo de instancias $ ami-k usuario1-t m1.tiny EUCA-describe-instances

Asignación de la dirección pública a la instancia.

EUCA-asignar dirección EUCA-socio-dirección-i instance_id public_ip_address EUCA-describe-instances

Debe ingresar por encima de la instance_id (IAM) y public_ip_address se ha mostrado anteriormente-describe-

EUCA casos y los comandos de eucaliptos a asignar electrónico.

Ahora usted debería ser capaz de SSH a la instancia

ssh-i user1.priv ubuntu @ direccionip

Para finalizar las instancias

EUCA-Terminate-casos instance_id

4,7. Instalación de la Infraestructura de almacenamiento

(Swift)

Swift es una de alta disponibilidad, distribuida, eventualmente consistentes objeto / burbuja tienda. Es utilizado por el OpenStack infraestructura para proporcionar servicios de almacenamiento S3, como las nubes. También es compatible

con API S3 amazon.

337

Virtualización

Las organizaciones utilizan Swift para almacenar gran cantidad de datos de manera eficiente, segura y barata que las

aplicaciones utilizan una API especial para la interfaz entre las aplicaciones y los objetos almacenados en Swift.

Aunque puede instalar Swift en un único servidor, la instalación de varios servidores es necesaria para entornos de producción. Si desea instalar Almacenamiento OpenStack Object (Swift) en un único nodo de con fines de desarrollo o de prueba, utilice el All In One Swift instrucciones sobre Ubuntu.

Para obtener más información, consulte: http://swift.openstack.org/development_saio.html 28.

4,8. Soporte y solución de problemas

Apoyo a la Comunidad

•OpenStack lista de correo29

•La búsqueda Wiki OpenStack30

•Launchpad errores área de31

• Participe en el canal de IRC # openstack en freenode.

4,9. Recursos

•Cloud Computing - Servicio de modelos32

•OpenStack Compute33

•OpenStack Image Service34

•OpenStack Object Storage Guía de administración de

•Instalación de almacenamiento de objetos OpenStack en Ubuntu35 •http://cloudglossary.com/

4.10. Glosario

La documentación de la nube Ubuntu utiliza una terminología que puede ser familiar para algunos lectores. Este la página tiene como objetivo proporcionar un glosario de términos y acrónimos.

•Nube - Un conjunto federado de máquinas físicas que ofrecen los recursos informáticos a través de Virtual máquinas, aprovisionarse y recogido de forma dinámica.

•IaaS - Infraestructura como Servicio - servicios en la nube de infraestructura, mediante el cual un

virtualizado el medio ambiente se entrega como un servicio a través de Internet por el proveedor. La infraestructura puede son los servidores, equipos de red y software.

28 http://swift.openstack.org/development_saio.html 29 https://launchpad.net/ ~ openstack 30 http://wiki.openstack.org 31 https://bugs.launchpad.net/nova 32 Número de http://en.wikipedia.org/wiki/Cloud_computing Service_Models 33 docs.openstack.org / trunk / openstack a calcular / 34 http://docs.openstack.org/diablo/openstack-compute/starter/content/GlanceMS-d2s21.html 35

338

Virtualización

•EBS - Almacenamiento bloque elástico.

•EC2 - Elastic Compute Cloud. Pago por horas-de Amazon, pagar-por-el-gigabyte nube pública de computación que ofrece.

•Nodo - Un nodo es un equipo físico que es capaz de ejecutar máquinas virtuales, ejecutar un nodo de controlador. Dentro de Ubuntu, esto generalmente significa que la CPU tiene extensiones VT, y puede ejecutar la

Hipervisor KVM.

•S3 - Simple Storage Service. Pago-por-el-gigabyte de Amazon solución de almacenamiento persistente para EC2.

•Nube de Ubuntu - Ubuntu Cloud. Ubuntu solución de cloud computing, sobre la base de OpenStack.

•VM - Virtual Machine.

•VT - La tecnología de virtualización. Una característica opcional de algunas CPU moderna, permitiendo acelerados de alojamiento de máquinas virtuales.

339

Virtualización

5. LXC

Los contenedores son una tecnología de virtualización de peso ligero. Ellos se parecen más a una jaula mayor que el a la virtualización completa como Qemu o VMware, tanto porque no emular el hardware y porque

contenedores de compartir el mismo sistema operativo que el host. Por lo tanto los contenedores están mejor en

comparación con Zonas de Solaris o BSD cárceles. Linux-vserver y OpenVZ son dos pre-existente, desarrollada de forma independiente implementaciones de contenedores-al igual que la funcionalidad de Linux. De hecho, los contenedores se produjo como resultado de los trabajos que aguas arriba del vserver y la funcionalidad de OpenVZ. Algunos vserver y OpenVZ funcionalidad que aún falta en los contenedores, sin embargo, los recipientes se pueden arrancar muchas distribuciones

de Linux y tienen la ventaja de que pueden ser utilizados con un núcleo aguas arriba sin modificar.

Hay dos implementaciones en espacio de usuario de los contenedores, cada uno aprovechando las características del

kernel mismo. Libvirt permite el uso de los contenedores a través del controlador LXC mediante la conexión a ':/ LXC / /'. Esto puede

ser muy conveniente, ya que soporta el mismo uso que los otros conductores. La aplicación otro, llamado simplemente "LXC ', no es compatible con libvirt, pero es más flexible, con herramientas de usuario más. Es posible cambiar entre los dos, aunque existen algunas peculiaridades que pueden causar confusión.

En este documento se describirá principalmente el paquete LXC. Hacia el final, vamos a describir cómo utilizar el controlador de LXC libvirt.

En este documento, un nombre de contenedor se muestra como CN, C1, o C2.

5,1. Instalación

El paquete LXC puede ser instalado utilizando

sudo apt-get install LXC

Esto hará que en las dependencias necesarias y recomendadas, incluyendo cgroup-lite, lvm2, y

debootstrap. Para utilizar libvirt-LXC, instalar libvirt-bin. LXC y libvirt LXC-puede ser instalado y utilizado en la mismo tiempo.

5,2. Configuración de

Host 5.2.1. Disposición básica de los archivos

LXC

Lo que sigue es una descripción de los archivos y directorios que están instalados y utilizados por LXC.

• Hay dos puestos de trabajo

advenedizos: •/ Etc / init / LXC-net.conf: es un trabajo opcional que sólo se ejecuta si / Etc / default / LXC

especifica USE_LXC_BRIDGE (true por defecto). Establece un puente de NAT para los contenedores para su uso. •/ Etc / init / lxc.conf: se ejecuta si LXC_AUTO (true por defecto) se establece en true en el / Etc /

default / LXC. Busca entradas en / Etc / LXC / auto / que son enlaces simbólicos a los archivos de configuración para el

contenedores que se debe iniciar en el arranque.

340

Virtualización

•/ Etc / LXC / lxc.conf: No es un contenedor por defecto la creación de archivos de configuración, / Etc / LXC / lxc.conf, Que dirige los recipientes a utilizar el puente LXC creado por el trabajo advenedizo LXC-net. Si no hay archivo de configuración se especifica cuando se crea un contenedor, entonces éste será utilizado.

• Ejemplos de otros archivos de configuración de creación de contenedores se encuentran en / Usr / share / doc / LXC / ejemplos. Estos muestran cómo crear contenedores sin una red privada, o el uso de macvlan, VLAN, o de otros esquemas de la red.

• Las diversas herramientas de administración de contenedores se encuentran en / Usr

/ bin. •/ Usr / lib / LXC / init-LXC es un binario init muy mínima y ligera que es utilizada por LXC- ejecutar. En lugar de `arrancar 'un contenedor lleno, de forma manual se monta un sistema de ficheros, siendo los / proc, Y ejecuta sus argumentos. No es probable que tenga que consultar manualmente este archivo.

•/ Usr / lib / LXC / templates / contiene las plantillas `'que pueden ser utilizados para crear nuevos envases de varias distribuciones y sabores. No todas las plantillas están disponibles actualmente.

•/ Etc / apparmor.d / LXC / LXC-default contiene el valor por defecto Apparmor política MAC que trabaja para proteger al huésped de contenedores. Por favor vea el Sección 5.2.6, "AppArmor" [p. 342] para más información.

•/ Etc / apparmor.d / usr.bin.lxc de inicio contiene un perfil para proteger al huésped de LXC-inicio mientras

que es la creación del contenedor.

•/ Etc / apparmor.d / LXC-contenedores hace que todos los perfiles definidos en / Etc / apparmor.d / LXC a ser cargados en el arranque.

• Hay varias páginas man para las herramientas de administración de LXC, así como la lxc.conf contenedor archivo de configuración.

•/ Var / lib / LXC Es aquí donde los contenedores y su información de configuración se guardan.

•/ Var / cache / LXC es donde los caches de datos de distribución se almacenan para acelerar el envase

múltiple creaciones.

5.2.2. lxcbr0

Cuando USE_LXC_BRIDGE se establece en true en / etc / default / LXC (como está por defecto), un puente llamado

lxcbr0 se crea en el inicio. Este puente se da la dirección privada 10.0.3.1, y los contenedores con este puente tendrá una dirección 10.0.3.0/24. Una instancia de dnsmasq se ejecuta escuchando en ese puente, por lo que si otra

dnsmasq se ha unido a todas las interfaces antes de que el trabajo de advenedizo LXC-net se ejecuta, LXC-net no

se podrá iniciar y lxcbr0 no existe.

Si usted tiene otro puente - por defecto libvirt de virbr0, o un puente br0 de su tarjeta de red por defecto - se puede

utilizar ese puente en lugar de lxcbr0 de sus contenedores.

5.2.3. El uso de un sistema de ficheros separado para el almacén de

contenedores

LXC contenedor almacena la información y (con el depósito de seguridad por defecto) sistema de archivos raíz en / Var / lib / LXC. Plantillas de creación de contenedores también tienden a almacenar en caché la información de distribución

en / Var / cache / LXC.

341

Virtualización

Si desea utilizar otro sistema de archivos de / Var, Se puede montar un sistema de archivos que tiene más espacio en esos lugares. Si usted tiene un disco dedicado para esto, sólo tiene que montar en / Var / lib / LXC. Si desea utilizar otra ubicación, como / Srv, Se puede enlazar montar o usar un enlace simbólico. Para

ejemplo, si / Srv es un sistema de archivos de gran monta, crear y enlace a dos directorios:

sudo mkdir / srv / lxclib / srv / lxccache sudo rm-rf / var / lib / LXC / var / cache / LXC sudo ln-s / srv / lxclib / var / lib / LXC

sudo ln-s / srv / lxccache / var / cache / LXC

o, el uso de bases de vinculación:

sudo mkdir / srv / lxclib / srv / lxccache sudo sed-i '$ a \ / Srv / lxclib / var / lib / por defecto, se unen lxcnone 0 0 \

/ Srv / lxccache / var / cache / defaults LXC ninguno, se unen 0 0 '/ etc / fstab sudo mount-a

5.2.4. Contenedores respaldados por lvm

Es posible utilizar particiones LVM como los almacenes de respaldo para los contenedores. Las ventajas de este

incluyen flexibilidad en la gestión del almacenamiento y la clonación de contenedores rápido. Las herramientas por defecto a la

utilización de un VG (volumen grupo) llamado LXC, pero otra VG se puede utilizar a través de opciones de línea de comandos. Cuando un LV se

utiliza como un almacén de respaldo contenedor, el contenedor de archivos de configuración sigue siendo / Var / lib / LXC /

CN / config, Pero el entrada raíz fs en ese archivo (lxc.rootfs) apuntará al nombre del dispositivo IV bloque, es decir, / Dev / LXC / NC.

Los contenedores de árbol de directorios y las tiendas de LVM de respaldo pueden

coexistir.

5.2.5. Btrfs

Si el anfitrión tiene un btrfs / Var, Las herramientas de administración LXC lo detectará y automáticamente lo explotan

por contenedores de clonación usando instantáneas

Btrfs.

5.2.6. AppArmor

Barcos LXC con un perfil de AppArmor la intención de proteger al huésped de mal uso accidental de privilegio dentro del recipiente. Por ejemplo, el contenedor no será capaz de escribir a / Proc / sysrq de gatillo fácil o para más / Sys archivos.

La usr.bin.lxc de inicio perfil se introduce mediante la ejecución LXC de inicio. Este perfil principalmente

impide LXC- comenzar de montaje de nuevos sistemas de ficheros fuera del sistema de archivos raíz del contenedor. Antes de

ejecutar el contenedor init, LXC peticiones de un interruptor para el perfil del contenedor. Por defecto, este perfil es el LXC- contenedores por defecto política que se define en / Etc / apparmor.d / LXC / LXC-default. Este perfil evita que el contenedor de acceso a muchos caminos peligrosos, y de montaje en la mayoría de los sistemas de

archivos.

342

Virtualización

Si usted encuentra que LXC-inicio está fallando debido a un acceso legítimo que se le niega por su Apparmor la política, usted puede desactivar el perfil LXC-Comience por hacer:

sudo apparmor_parser-R / etc / apparmor.d / usr.bin.lxc de inicio

sudo ln-s / etc / apparmor.d / usr.bin.lxc de inicio / etc / apparmor.d /

desactivado /

Esto hará que LXC-inicio corren no confinados, sino que siguen para confinar el propio envase. Si usted también desea para inhabilitar el confinamiento del contenedor, a continuación, además de la desactivación usr.bin.lxc de inicio

perfil, debe agregar:

lxc.aa_profile = confinados

al archivo de configuración del contenedor. Si desea ejecutar un contenedor en un perfil personalizado, puede crear un nuevo perfil bajo / Etc / apparmor.d / LXC /. Su nombre debe empezar con LXC- a fin de que LXC-inicio para

ser permite la transición a dicho perfil. Después de crear la política, hay que cargarlo con:

sudo apparmor_parser-r / etc / apparmor.d / LXC-contenedores

El perfil se cargará automáticamente después de un reinicio, ya que tiene su origen en el archivo / Etc /

apparmor.d / LXC-contenedores. Finalmente, para hacer contenedor NC utilizar esta nueva LXC-NC-el perfil, Agrega el siguiendo la línea a su fichero de configuración:

lxc.aa_profile = LXC-NC-el perfil

LXC a ejecutar no entrar en un perfil de AppArmor, pero el envase que se genera se limita.

5.2.7. Grupos de Control

Los grupos de control (cgroups) son una característica del núcleo facilitar la concentración de tareas jerárquico y por

cgroup- contabilidad de recursos y los límites. Se utilizan en contenedores para limitar el acceso al dispositivo de bloque y

carácter y congelar (suspender) los contenedores. Pueden usarse además para limitar el uso de la memoria y el bloque i / o, garantizar el mínimo de acciones de la CPU, y para fijar los contenedores para las CPUs específicas. De forma

predeterminada, LXC depende de el paquete cgroup-lite para ser instalado, que proporciona la inicialización cgroup adecuada en el arranque. La cgroup-lite paquete se monta cada subsistema por separado en cgroup / Sys / fs / cgroup / SS, Donde SS es el nombre del subsistema. Por ejemplo, el subsistema congelador está montado bajo / Sys / fs / cgroup /

LXC cgroup se mantienen bajo / Sys / fs / cgroup / SS / init / LXC, Donde INIT es la tarea de inicio

de cgroup. Es /por defecto, así que al final de la cgroup congelador durante NC contenedores sería / Sys / fs / cgroup / congelador / LXC / NC.

5.2.8. Privilegio

Las herramientas de administración de contenedores debe ejecutarse con privilegios de usuario root. Una utilidad

llamada LXC-setup fue escrito con la intención de proporcionar las herramientas con las capacidades de los archivos necesarios para permitir

que no sea root los usuarios para ejecutar las herramientas con privilegios suficientes. Sin embargo, como usuario root en un

contenedor que aún no puede ser fiable

343

congelador.

Virtualización

contenida, esto no vale la pena. Por tanto, se recomienda no utilizar LXC-setup, Y para proporcionar los administradores LXC el sudo es necesario privilegio.

El espacio de nombres de usuario, que se espera que esté disponible en el siguiente apoyo a largo plazo (LTS) de

liberación, permitirá contención del usuario root contenedor, así como reducir la cantidad de privilegio requerido para crear y administrar contenedores.

5.2.9. Trabajos LXC Upstart

Como se mencionó anteriormente, el paquete incluye dos puestos de trabajo LXC advenedizos. La primera, LXC-net,

Siempre se inicia cuando el otro, LXC, Está a punto de comenzar, y se detiene cuando se detiene. Si la variable se establece en

USE_LXC_BRIDGE falsa en / Etc / defaults / LXC, Entonces inmediatamente se cerrará. Si bien es cierto, y se produce un error traer hasta el puente LXC, entonces el LXC trabajo no se iniciará. LXC-net hará bajar el puente cuando LXC detenido, a menos que un recipiente que se está ejecutando se utiliza ese puente.

La LXC trabajo se inicia en el nivel de ejecución 2.5. Si la variable LXC_AUTO se establece en true, entonces se verá

en / Etc / LXC los contenedores que se debe iniciar automáticamente. Cuando el LXC trabajo se detiene, ya sea manualmente o mediante la introducción de niveles 0, 1 ó 6, se detendrá dichos contenedores.

Para inscribirse en un contenedor que se inicie automáticamente, crear un enlace simbólico / Etc / default / LXC / name.conf apuntando a un archivo de configuración del contenedor. Por ejemplo, el archivo de configuración para un contenedor

NC es / Var / lib / LXC / CN / config. Para hacer que el contenedor se inicia automáticamente, utilice el comando:

sudo ln-s / var / lib / LXC / CN / configuración / etc / LXC / auto / CN.conf

5,3. Contenedor de Administración

5.3.1. Creación de Contenedores

La forma más sencilla de crear contenedores está utilizando LXC a crear. Esta secuencia de comandos utiliza

la distribución específica de plantillas bajo / Usr / lib / LXC / templates / la creación de contenedores de fácil chroot en / Var / lib / LXC / CN / rootfs, E inicializar la configuración en / Var / lib / LXC / CN / fstab y / Var / lib / LXC / CN / config, Donde NC es el nombre del contenedor

El comando más simple contenedor de la creación se vería así:

sudo LXC-create-t ubuntu-n NC

Esto le dice a LXC a crear para usar la plantilla de Ubuntu (Ubuntu-t) y para llamar el contenedor CN (CN-n). Desde ningún archivo de configuración se ha especificado (lo que se han hecho con '-f archivo'), se utilizará el valor por defecto archivo de configuración en / Etc / LXC / lxc.conf. Esto le da al envase una única interfaz de red veth unida al puente lxcbr0.

344

Virtualización

Las plantillas de creación de contenedores también puede aceptar los argumentos. Estos pueden aparecer luego de -.

Por ejemplo

sudo LXC-create-t ubuntu-n oneiric1 --- r onírico

pasa los argumentos a '-r oneiric1 "la plantilla de Ubuntu.

5.3.1.1. Ayuda

Ayuda en el símbolo del LXC a crear puede ser visto mediante el uso de LXC-create-h. Sin embargo, las plantillas

también tienen sus propias opciones. Si lo hace

sudo LXC-create-t ubuntu-h

a continuación, el general LXC a crear ayuda será seguido por la salida de ayuda específica a la plantilla de ubuntu. Si

no hay plantilla se especifica, entonces sólo ayuda a los LXC a crear misma se muestran.

5.3.1.2. Ubuntu plantilla

La plantilla ubuntu se puede utilizar para crear contenedores Ubuntu del sistema con cualquier liberación al menos tan

nuevo en 10.04. Se utiliza debootstrap para crear un sistema de archivos de contenedores en caché que se copia en su lugar cada vez que un contenedor se crea. La imagen se guardará en caché y sólo volver a generar, al crear un

recipiente utilizando el -F (Ras) opción de la plantilla, es decir:

sudo LXC-create-t ubuntu-n NC --- F

La versión de Ubuntu instalado por la plantilla será la misma que en el host, salvo especificado con el -R opción, es decir,

sudo LXC-create-t ubuntu-n NC --- r lúcida

Si desea crear un contenedor de 32 bits en un host de 64-bit, pasar -I386 al contenedor. Si usted tiene la qemu-user-estática paquete instalado, entonces usted puede crear un contenedor con cualquier arquitectura compatible

por qemu-user-estática.

El contenedor tiene un usuario llamado Ubuntu cuya contraseña es Ubuntu y que es miembro de

la sudo grupo. Si se desea incorporar a un público clave ssh para la Ubuntu usuario, puede hacerlo con -S sshkey.pub.

También puede se unen el usuario jperez desde el host en el recipiente con el -B jperez opción. Esto copiará

jperez contraseña y las entradas de sombra en el contenedor, asegúrese de que su grupo por defecto y la cáscara

son

345

Virtualización

disponibles, lo agregue al grupo sudo, y se unen a montar su directorio home en el recipiente cuando el recipiente se ha iniciado.

Cuando un recipiente se crea, el liberación de actualizaciones archivo se añade a la del recipiente sources.list, y su archivo de paquetes serán actualizados. Si la liberación del recipiente es mayor que 12.04 LTS, entonces el

lxcguest paquete se instala automáticamente. Alternativamente, si el - Cortar se especifica la opción, a continuación, la lxcguest paquete no se instalará, y muchos servicios se retira del recipiente. Esto dará lugar a un más rápido el arranque, pero menos de actualización-capaz contenedor.

5.3.1.3. Ubuntu-nube de plantilla

La plantilla de Ubuntu-nube crea contenedores de Ubuntu por descargar y extraer el publicado Ubuntu imágenes de nubes. Acepta algunas de las mismas opciones que la plantilla de ubuntu, es decir, -R puesta en libertad, -S sshkey.pub,-un arco, y -F para limpiar la imagen almacenada en caché. También acepta algunas opciones

adicionales. La -C opción creará una nube recipiente, configurado para su uso con un servicio de metadatos. La -U opción acepta una nube-init por el usuario del archivo de datos para configurar el contenedor en el arranque. Si -L es pasado, entonces

no habrá lugares instalado. La -T opción se puede utilizar para elegir una ubicación para extraer archivo comprimido en lugar de la

publicación nube tarball de la imagen. Por último, el -I opción establece un identificador de anfitrión de la nube de inicio, que por

defecto se establece en un cadena aleatoria. 5.3.1.4. Otras plantillas

Las plantillas de ubuntu y ubuntu en la nube están bien soportados. Otras plantillas están disponibles sin embargo. La plantilla de Debian crea un contenedor basado en Debian, usando debootstrap tanto como la plantilla de Ubuntu hace. Por defecto se instala un debian squeeze imagen. Un comunicado de alternativa se puede elegir mediante el

establecimiento de la

SUITE variable de entorno, es decir:

sudo SUITE sid = LXC-create-t debian-n d1

Dado que debian no se puede arrancar de forma segura dentro de un contenedor, los contenedores de Debian se va a

recortar, como con la - Cortar opción de la plantilla de Ubuntu.

Para purgar la caché de imágenes de contenedores, llame a la plantilla directamente y le pasa el - Limpiar opción.

sudo SUITE = sid / usr / lib / LXC / templates / LXC-debian - limpias

Una plantilla de Fedora existe, lo que genera los contenedores sobre la base de versiones de Fedora <= 14. Fedora

versión 15 y mayores se basan en systemd, que la plantilla aún no es capaz de convertir en un contenedor la configuración de arranque. Antes de la plantilla de fedora es capaz de correr, usted tendrá que asegurarse de que

yum y rizo están instalados. Un contenedor de Fedora 12 se pueden crear con

346

Virtualización

sudo LXC-create-t fedora-n Fedora12 --- R 12

Una plantilla de OpenSuSE existe, pero requiere que la zypper programa, que aún no está empaquetado. La

Plantilla de OpenSuSE tanto, no se admite.

Dos plantillas de más existen principalmente con propósitos experimentales. La plantilla busybox crea una muy recipiente pequeño sistema basado enteramente en busybox. La plantilla de sshd crea un contenedor de aplicaciones sshd corriendo en un espacio de red privada. La biblioteca de la acogida y los directorios de binarios son bind- montada en el recipiente, aunque no su / Home o / Root. Para crear, iniciar y ssh en un ssh contenedor, usted puede:

sudo LXC-create-t-n sshd ssh1 ssh-keygen-f Identificación sudo mkdir / var/lib/lxc/ssh1/rootfs/root/.ssh sudo cp id.pub / var/lib/lxc/ssh1/rootfs/root/.ssh/authorized_keys

sudo LXC-start-n-d ssh1 ssh-i id root @ SSH1.

5.3.1.5. Tiendas de Acompañamiento

De forma predeterminada, LXC a crear pone sistema de archivos del contenedor raíz como un árbol de directorios en

el / Var / lib / LXC / CN / rootfs. Otra opción es utilizar volúmenes lógicos. Si un grupo de volúmenes llamado LXC existe, puede crear un contenedor de lvm respaldado llama NC con:

sudo LXC-create-t ubuntu-n CN-B lvm

Si desea utilizar un grupo de volúmenes llamado schroots, con un sistema de ficheros XFS 5G, entonces deberías

usar

sudo LXC-create-t ubuntu-n CN-B lvm - schroots nombre_grupo_volúmenes - fssize 5G - fstype xfs

5.3.2. Clonación

Para un rápido aprovisionamiento, puede que desee personalizar un contenedor canónica de acuerdo a sus necesidades y luego hacer varias copias de la misma. Esto puede hacerse con el LXC-clone programa. Dada una existente contenedor llamado C1, un nuevo contenedor denominado C2 pueden ser creados usando

LXC-clon-o sudo C1-C2 n

347

Virtualización

Si / Var / lib / LXC es un sistema de ficheros Btrfs, a continuación, LXC-clone creará sistema de archivos C2 como

una instantánea de la C1. Si sistema de archivos del contenedor raíz es respaldado por LVM, entonces usted puede especificar el -S opción para

crear el nuevo rootfs como una instantánea de LVM del original de la siguiente manera:

LXC-clon-s-o sudo C1-C2 n

Ambas instantáneas de LVM y btrfs proporcionará una clonación rápida con el uso de disco muy pequeño

inicial.

5.3.3. Inicio y detención

Para iniciar un contenedor, utilice LXC-comienzo-n NC. Por defecto LXC-inicio ejecutará / Sbin / init en el recipiente. Puede proporcionar un programa diferente para ejecutar, además de los argumentos, como argumentos

adicionales a los LXC de inicio:

sudo LXC-start-n de contenedores / sbin / init nivel de registro de depuración =

Si no se especifica el -D (Demonio) opción, entonces usted verá una consola (en el de contenedores / Dev /

ver Sección 5.3.5, "Consolas" [p. 350] para más información) en el terminal. Si especificar el -D opción, no se ve que la consola, y LXC de inicio de inmediato saldrá el éxito - incluso si una parte posterior de inicio contenedor ha fallado. Usted puede usar LXC-espera o LXC-monitor (Ver Sección

5.3.4,

"Supervisión del régimen de contenedor" [p. 349]) para verificar el éxito o fracaso de la puesta en marcha de

contenedores.

Para obtener información de depuración LXC, utilice -O nombre-l debuglevel, por ejemplo:

la consola,

sudo LXC-inicio-o lxc.debug-l-n DEBUG contenedor

Por último, puede especificar los parámetros de configuración en línea con -S. Sin embargo, es

generalmente recomienda colocarlos en el archivo de configuración del contenedor en su lugar. Asimismo, una totalmente

archivo de configuración alternativo se puede especificar con la -F opción, pero esto no se recomienda

generalmente.

Mientras que LXC-inicio corre el contenedor / Sbin / init,LXC a ejecutar utiliza un programa mínimo init llama

LXC- init, que intenta montar / Proc,/ Dev / mqueue, Y / Dev / shm, Ejecuta los programas especificados en la línea de comandos, y espera a que los termine de ejecutarse. LXC-inicio se destina a ser utilizado para sistema contenedores, mientras que LXC a ejecutar está diseñado para contenedores de aplicaciones (Ver este artículo36 para más).

Puede detener un contenedor de varias maneras. Usted puede usar apagado, poweroff y reiniciar mientras está

conectado en el recipiente. Para cerrar sin errores un contenedor externo (es decir, desde el host), puede emitir la LXC sudo shutdown-NC-n comando. Esto tiene un valor de tiempo de espera opcional. Si no se especifica,

36 https://www.ibm.com/developerworks/linux/library/l-lxc-containers/

348

Virtualización

las cuestiones de mando una señal SIGPWR al contenedor y vuelve inmediatamente. Si la opción es utilizada, como en LXC sudo shutdown-n-CN-t 10, a continuación, el comando esperará el número especificado

de segundos para el contenedor para cerrar sin errores. Entonces, si el envase está todavía funcionando, lo matará

(Y todas las aplicaciones en ejecución). También se puede matar de inmediato el contenedor (sin ninguna posibilidad

de aplicaciones a cerrar sin errores), utilizando sudo LXC-stop-n NC. Por último, LXC matar se puede utilizar más

en general, para enviar señal a cualquier número del contenedor es de

inicio.

Mientras que el contenedor se está cerrando, usted puede esperar ver algunos mensajes de error (inofensiva),

como sigue:

$ Sudo poweroff Contraseña [sudo] para Ubuntu: =

$ =

Difundir mensaje de ubuntu @ CN1 (/ Dev / LXC / consola) a las 18:17 ...

El sistema se está cerrando para apagar AHORA! * Pedir a todos los demás procesos para terminar ...

... Hecho. * Todos los procesos de finalizado el plazo de 1

segundo .... ... Hecho.

* Desconfigurar las interfaces de red ... ... Hecho.

* Desactivación de intercambio

... No ...!

umount: / run / bloqueo: no está montado

umount: / dev / shm: sin montar Montaje: / está ocupado

* Ahora se detendrá

Un contenedor puede ser congelado con sudo LXC-congelación-n NC. Esto bloqueará todos los procesos hasta

que el recipiente es posterior descongelado utilizando sudo LXC-descongelar-n NC.

5.3.4. Supervisión del régimen de depósito

Dos comandos están disponibles para controlar los cambios de contenedores del estado. LXC-monitor monitores uno

o más contenedores para los cambios de estado. Se necesita un nombre de contenedor como es habitual con el -N opción, pero

en este caso el nombre del contenedor puede ser una expresión posix regular para permitir el seguimiento conjuntos deseables de los

contenedores. LXC-monitor continúa funcionando, ya que imprime cambios de contenedores. LXC-espera espera a que un estado

específico cambiar y luego se cierra. Por ejemplo,

sudo LXC-monitor-n cont [0-5] *

que imprimir todos los cambios de estado a los contenedores que coincidan con la expresión regular, mientras

que la lista

349

Virtualización

sudo LXC-espera-n CONT1-s 'DETENIDO | CONGELADOS'

esperará hasta que el recipiente CONT1 entra en el estado DETENIDO o estado congelada y luego

salir.

5.3.5. Consolas

Los contenedores tienen un número configurable de las consolas. Uno siempre existe en el recipiente de / Dev / la consola. Esto se muestra en el terminal desde el que ejecutó LXC de inicio, a menos que el -D opción es especificado. La salida en / Dev / console se puede redirigir a un archivo utilizando el -C-archivo de la consola opción para LXC de inicio. El número de consolas adicionales se especifica por el lxc.tty variable, y normalmente se establece a

4. Estas consolas se muestran en / Dev / ttyn (Para 1 <= n <= 4). Para acceder a la consola 3 desde el host, utilice

sudo LXC-consola-n de contenedores-t 3

o si el N-t opción no se especifica, una consola sin usar se seleccionará automáticamente. Para salir de la consola, utilice la secuencia de escape Ctrl-a q. Tenga en cuenta que la secuencia de escape no funciona en la consola resultante de LXC-inicio sin el -D opción.

Cada consola es en realidad un contenedor de pty Unix98 en el de acogida (no de los huéspedes) pty montaje, se unen- montado sobre el invitado de / Dev / ttyn y / Dev / console. Por lo tanto, si el cliente desmonta los o de lo contrario intenta acceder al dispositivo de carácter real 4: N, no se sirve getty al LXC consolas. (Con la configuración predeterminada, el contenedor no podrá acceder a dicho dispositivo de la fuente y

getty por lo tanto, se producirá un error.) Esto puede suceder fácilmente cuando un script de arranque ciegamente

monta una nueva / Dev.

5.3.6. Inspección de contenedores

Varios comandos están disponibles para recoger información sobre los contenedores existentes. LXC-ls informará de

todos los los contenedores existentes en su primera línea de salida, y todos los recipientes se ejecutan en la segunda línea. LXC-list proporciona la misma información en un formato más detallado, lista de contenedores se ejecutan primero y se detuvo contenedores próximos. LXC-PS proporcionará listas de procesos en los contenedores. Para proporcionar ps argumentos para LXC- ps, anteponer con -. Por ejemplo, para la inclusión de todos los procesos en el llano de contenedores,

sudo LXC-ps-n normal --- EF

LXC-info proporciona el estado de un contenedor y el pid del proceso de inicialización. LXC-cgroup se puede

utilizar para consultar o establecer los valores de los límites de un contenedor del grupo de control e información. Esto

puede ser más conveniente que la interacción con el cgroup sistema de archivos. Por ejemplo, para consultar la lista de

dispositivos que un contenedor se está ejecutando permite el acceso, se puede utilizar

350

Virtualización

sudo LXC-cgroup-n NC devices.list

o para agregar mknod, leer y escribir en el acceso a la / Dev /

sda,

sudo LXC-cgroup-n NC devices.allow "b 8: * RWM"

y, para limitarlo a 300M de memoria RAM,

LXC-cgroup-n NC memory.limit_in_bytes 300000000

LXC-netstat ejecuta netstat en el contenedor en ejecución, que le da una idea de su estado de la red.

LXC-copia de seguridad va a crear copias de seguridad de los sistemas de archivos raíz de todos los contenedores

existentes (excepto LVM basado en unos), utilizando rsync realizar una copia de los contenidos en el marco de / Var/lib/lxc/CN/rootfs.backup.1. Estas

copias de seguridad se pueden restaurar utilizando LXC-restauración. Sin embargo, LXC-copia de seguridad y LXC-restauración son

frágiles con respecto a personalizaciones y por lo tanto su uso no se recomienda. 5.3.7. La destrucción de los envases

Utilizar LXC-destruir para destruir a un contenedor existente.

sudo LXC-destruir-n NC

Si el contenedor está en funcionamiento, LXC-destruir terminará con un mensaje que le informa que puede forzar detener y destruir el recipiente con

sudo LXC-destruir-n CN-f

5.3.8. El uso de espacio de nombres avanzada

Una de las características del kernel de Linux utilizado por LXC para crear contenedores de espacios de nombres es

privado. Los espacios de nombres permiten una serie de tareas que tienen asignaciones privados de nombres a los recursos para

cosas como rutas de acceso y los identificadores de proceso. (Véase Sección 5.9, "Recursos" [p. 360] un enlace a más

información). A diferencia de los grupos de control y otras características de montaje que también se utilizan para crear los

contenedores, los espacios de nombres no puede ser manipulado utilizando una interfaz de sistema de archivos. Por lo tanto, barcos LXC con el LXC-deje de

compartir programa, que es principalmente para la prueba. Se ofrece la posibilidad de crear nuevas tareas en los espacios de

nombres particulares. Por ejemplo,

351

Virtualización

sudo LXC-deje de compartir-s 'MONTAJE | PID / bin / bash

crea un shell bash con pid privada y los espacios de montaje. En esta capa, que puede hacer

root @ ubuntu: ~ # mount-t proc proc / proc root @ ubuntu: ~ # ps-ef UIDPID PPID C STIME TTYTIME CMD root10 6 10:20 pts/900: 00:00 / bin / bash

raíz 110 1 0 10:20 pts / 9 00:00:00 ps-ef

de modo que ps sólo muestra las tareas en el nuevo espacio de

nombres.

5.3.9. Contenedores efímeras

Contenedores son efímeros de una sola vez los contenedores. Dado un CN contenedor existente, puede ejecutar

una comando en un contenedor de lo efímero creado en base a CN, con el usuario jperez del huésped obligado en la recipiente, utilizando:

LXC-start-efímera-jperez b-o CN - / home / jperez / run_my_job

Cuando el trabajo esté terminado, el contenedor será descartado.

5.3.10. Los comandos de contenedores

A continuación se presenta una tabla de todos los comandos

de contenedores:

Tabla 20.3. Comandos de contenedores

Comando

LXC a colocar

LXC-copia de

seguridad LXC-cgroup

LXC-checkConfig

LXC-puesto de control

LXC-clone

LXC-console

LXC a crear

LXC-destruir

LXC a ejecutar

Sinopsis

(No soportado) Ejecutar un comando en un recipiente corriendo

Copia de seguridad de los sistemas de archivos raíz para todos los

contenedores lvm respaldados Ver y configurar la configuración del grupo de control de

contenedores Verificar el apoyo de acogida para los

contenedores (No soportado) Checkpoint un recipiente corriendo

Clonar un nuevo envase de uno ya existente

Abra una consola en un recipiente corriendo

Crear un nuevo contenedor

Destruye un contenedor existente

Ejecutar un comando en un contenedor de aplicaciones (no funciona)

352

Virtualización

Comando

LXC-congelación

LXC-info

LXC matar

LXC-list

LXC-ls

LXC-monitor

LXC-netstat

LXC-PS

LXC-restart

LXC-restauración

LXC-setcap

LXC-setuid

LXC-apagado

LXC-inicio

LXC-start-efímera

LXC-stop

LXC-descongelar

LXC-deje de

compartir LXC-versión

LXC-espera

Sinopsis

Congelar un recipiente corriendo

Imprimir información sobre el estado de un contenedor

Enviar una señal a un contenedor de inicio

Lista de todos los

contenedores Lista de todos los contenedores con una menor producción que

LXC-list Controlar los cambios de estado de uno o más recipientes

Ejecutar netstat en un recipiente corriendo

Ver información del proceso en un recipiente

corriendo (No soportado) Reiniciar un contenedor de punto de control

Restaurar los contenedores de copias de seguridad realizadas por

LXC-copia de seguridad (NO RECOMENDADO) Establecer las capacidades de archivo en las

herramientas LXC (NO RECOMENDADO) Establecer o quitar los bits setuid en las herramientas

LXC Con seguridad apagar un contenedor

Iniciar un contenedor parado

Iniciar un efímero (una sola vez) de contenedores

Inmediatamente deje correr un contenedor

Liberar un recipiente congelado

Prueba de herramienta para dejar de compartir espacios de

nombres de forma manual Imprimir la versión de las herramientas LXC

Espere a que un contenedor para llegar a un estado

particular

5,4. Archivo de configuración

Contenedores LXC son muy flexibles. El paquete Ubuntu LXC establece valores predeterminados para la creación de

Ubuntu los recipientes del sistema lo más simple posible. Si necesita más flexibilidad, este capítulo se mostrará cómo afinar sus contenedores como sea necesario.

La información detallada está disponible en el lxc.conf (5) La página man. Tenga en cuenta que las configuraciones

por defecto creado por las plantillas de ubuntu son razonables para un contenedor de sistema y por lo general no es necesario personalización.

5.4.1. Selección de los archivos de configuración y opciones

La configuración de recipiente es controlado por las opciones de configuración LXC. Las opciones pueden ser

especificadas en varios puntos:

• Durante la creación del contenedor, un archivo de configuración se puede especificar. Sin embargo, la creación de

plantillas, es habitual insertar sus propias opciones de configuración, así que por lo general sólo se especifican las opciones de configuración

de red en

353

Virtualización

este punto. Por otra configuración, por lo general es mejor para editar el fichero de configuración que el contenedor creación.

• El archivo / Var / lib / LXC / CN / config se utiliza en el inicio de contenedores por

defecto. •LXC-inicio acepta un archivo de configuración alternativa con el -F nombre de archivo opción. • Las variables específicas de configuración se puede anular en LXC-inicio uso -S clave = valor. En general, es mejor para editar el archivo de configuración del contenedor.

5.4.2. Configuración de la red

La creación de redes de contenedores en LXC es muy flexible. Se desencadena por el lxc.network.type configuración las entradas del archivo. Si no hay entradas que existan, a continuación, el contenedor será compartir la pila de la red

de acogida. Servicios y las conexiones iniciadas en el contenedor va a utilizar la dirección IP del anfitrión. Si al menos uno lxc.network.type la entrada está presente, entonces el contenedor tendrá una privada (nivel 2) de la red pila. Tendrá sus propias interfaces de red y las reglas de firewall. Hay varias opciones para lxc.network.type:

•lxc.network.type = vacío: El contenedor no tienen interfaces de red que no sean de bucle invertido.

•lxc.network.type = veth: Este es el valor predeterminado cuando se utilizan las plantillas de Ubuntu o Ubuntu en la

nube, y crea un túnel de red veth. Un extremo de este túnel se convierte en la interfaz de red en el interior del recipiente. El otro extremo está conectado a un puente sobre el huésped. Cualquier número de tales túneles puede ser

creado mediante la adición de más lxc.network.type = veth entradas en el archivo de configuración del

contenedor. La puente para que el extremo del host del túnel se adjunta se especifica con lxc.network.link = lxcbr0.

•lxc.network.type = phys Un interfaz de red física (es decir, eth2) se hace pasar al interior del recipiente.

Las otras dos opciones son utilizar VLAN o macvlan, sin embargo, su uso es más complicado y no es se describe aquí. Algunas otras opciones de red existen:

•lxc.network.flags Sólo se puede establecer a hasta y asegura que la interfaz de red es de hasta.

•lxc.network.hwaddr especifica una dirección MAC para asignar la tarjeta del interior del contenedor.

•lxc.network.ipv4 y lxc.network.ipv6 establecer las direcciones IP correspondientes, si los que deben ser estáticos.

•lxc.network.name especifica un nombre para asignar el interior del recipiente. Si esto no se especifica, una buena por defecto (es decir, eth0 para la primera NIC) que se elija.

•lxc.network.lxcscript.up especifica un script que se llamará después de que el lado del host de la red tiene ha creado. Véase el lxc.conf (5) página del manual para más detalles.

5.4.3. Control de grupo de configuración

Cgroup opciones se puede especificar mediante lxc.cgroup entradas. lxc.cgroup.subsystem.item = valor LXC instruye para establecer cgroup elemento del subsistema a valor. Tal vez sea más fácil de darse cuenta de

que esta voluntad simplemente escriba valor en el fichero artículo para el grupo control del contenedor para el subsistema

subsistema. Para ejemplo, para establecer el límite de memoria de 320M, puede agregar

354

Virtualización

lxc.cgroup.memory.limit_in_bytes = 320000000

lo que provocará 320000000 que se escriben en el archivo / Sys / fs / cgroup / memoria / LXC / CN / limit_in_bytes.

5.4.4. Rootfs, montes y fstab

Una parte importante de la configuración del contenedor es el montaje de sistemas de ficheros diferentes en su lugar. El

siguiente es un ejemplo de configuración extracto de archivo mostrando las opciones de configuración de uso común:

lxc.rootfs = / var / lib / LXC / CN / rootfs lxc.mount.entry = proc / var / lib / LXC / CN / rootfs / proc proc nodev, noexec, nosuid 0 0 lxc.mount = / var / lib / LXC / CN / fstab

La primera línea dice que el sistema de archivos del contenedor de la raíz ya está montado en el / Var / lib / LXC /

CN / rootfs. Si el sistema de archivos es un dispositivo de bloques (por ejemplo, un volumen lógico LVM), entonces la ruta de acceso

al dispositivo de bloques se debe dar lugar.

Cada lxc.mount.entry línea debe contener un elemento para montar en formato fstab válido. El directorio de destino debe ser precedido por / Var / lib / LXC / CN / rootfs, Incluso si lxc.rootfs apunta a un dispositivo de bloque.

Por último, lxc.mount apunta a un archivo, en formato fstab, que contiene elementos adicionales para montar. Nótese

que todas estas entradas serán las organizadas por la máquina antes de que el contenedor de init se ha iniciado. De esta manera es

posible de obligar a montar varios directorios desde el host en el recipiente.

5.4.5. Otras opciones de configuración

•lxc.cap.drop se puede utilizar para evitar que el recipiente de tener u obtener siempre la lista

capacidades. Por ejemplo, incluyendo

lxc.cap.drop = sys_admin

evitará que el contenedor de sistemas de ficheros de montaje, así como todas las otras acciones que requieren

CAP_SYS_ADMIN. Véase el capacidades (7) página del manual para una lista de capacidades y sus

significados. •lxc.aa_profile = LXC-NC-el perfil especifica un perfil de AppArmor personalizada en la que para iniciar el recipiente. Ver Sección 5.2.6, "AppArmor" [p. 342] para más información.

•lxc.console = / ruta / a / consolefile hará que los mensajes de consola que se escriben en el archivo especificado.

•lxc.arch especifica la arquitectura para el contenedor, por ejemplo x86 o x86_64.

•lxc.tty = 5 especifica que 5 consolas (además de / Dev / console) Debe ser creado. Esto es, consolas estará disponible en / Dev/tty1 a través de / Dev/tty5. Las plantillas de ubuntu establecer este valor en 4.

355

Virtualización

•lxc.pts = 1024 especifica que el recipiente debe tener una empresa privada (Unix98) devpts sistema de archivos de

montaje. Si esto no se especifica, a continuación, el contenedor se comparten / Dev / pts con el anfitrión, que raramente se

desea. El número 1024 significa que 1024 ptys debe permitirse en el contenedor, sin embargo, este número es ignora actualmente. Antes de comenzar el envase de inicio, LXC va a hacer (esencialmente) un

sudo mount-t devpts-o nueva-ventana devpts / dev / pts

dentro del recipiente. Es importante darse cuenta de que el contenedor no deben montar sistemas de ficheros devpts propia. Se puede hacer con seguridad montajes se unen o se mueven de su montaje / Dev / pts. Pero si lo hace

sudo mount-t devpts devpts / dev / pts

que volverá a montarse ejemplo, el anfitrión devpts. Si se añade la opción de montaje nueva-ventana, entonces

será montar un nuevo privado (vacío) ejemplo. En ningún caso va a volver a montar la instancia que se creó por LXC. Por esta razón, y para evitar que el recipiente de utilizar ptys del huésped, el valor predeterminado

La política de AppArmor no permitirá que los contenedores para montar sistemas de ficheros devpts después de que

el init de contenedores tiene ha iniciado.

•lxc.devttydir especifica un directorio bajo / Dev en el que LXC creará sus dispositivos de consola. Si esta opción no se especifica, a continuación, los ptys no serán vinculantes a montarse sobre / Dev / console y / Dev /

Sin embargo, las actualizaciones de paquetes raros puede tratar a ciegas rm-f y, a continuación mknod dichos

dispositivos. Ellos no (porque el archivo ha sido montado en aprieto), haciendo que el paquete de actualización a fallar. Cuando lxc.devttydir es ajustado a LXC, por ejemplo, a continuación, LXC se unirá a montar la consola en los ptys / Dev /

ttyn.

y / Dev / LXC / ttyn, y, posteriormente, simbólicamente vincularlos a / Dev / console y / Dev / ttyn. Esto permite que las actualizaciones de paquetes para tener éxito, aun a riesgo de hacer gettys

futuras en esas consolas no hasta el siguiente reinicio. Este problema se resuelve con idealmente dispositivo

LXC / consola

espacios de nombres.

5,5. Las actualizaciones de Ubuntu

contenedores

Debido a algunas limitaciones que se colocan en los contenedores, la actualización de paquetes, a veces puede fallar.

Para ejemplo, un paquete de instalación o actualización puede fallar si no se le permite crear o abrir un dispositivo de

bloques. Esto a menudo bloquea todas las actualizaciones futuras hasta que el problema se ha resuelto. En algunos casos, puede

evitar esto Instalando el contenedor, para evitar las restricciones de contenedores, y completar la actualización en de la jaula.

Algunas de las cosas concretas que se denominan en ocasiones para impedir la actualización de

paquetes incluyen: • Las modificaciones de contenedores se realiza cuando la creación de contenedores con la opción - de

corte. • Las acciones que realiza lxcguest. Por ejemplo, debido / Lib / init / fstab se unen de montaje de la otro archivo, las actualizaciones mountall que insisten en la sustitución de ese archivo puede fallar.

356

Virtualización

• El exceso de montaje de los dispositivos de consola con ptys desde el host puede causar problemas con udev actualizaciones.

• Apparmor la política y las restricciones de los dispositivos de cgroup puede impedir la actualización de paquetes de

realizar ciertas acciones.

• Capacidades cayó por el uso de lxc.cap.drop Asimismo, puede dejar de realizar actualizaciones de los paquetes ciertas acciones.

5,6. LXC Libvirt

Libvirt es una potente solución de gestión de hipervisor con el que podrás administrar Qemu, Xen y LXC máquinas virtuales, tanto local como remoto. El conductor LXC libvirt es una aplicación independiente de lo que normalmente llamamos LXC. Algunas diferencias son:

• La configuración se almacenan en formato XML

• No existen herramientas para facilitar la creación de

contenedores • Por defecto no hay ninguna consola / Dev / console

• No hay apoyo (aún) para reiniciar el envase o cierre total

5.6.1. La conversión de un contenedor de libvirt-LXC LXC

Sección 5.3.1, "Creación de Contenedores" [p. 344] mostró cómo crear contenedores LXC. Si usted tiene crea un contenedor válido LXC de esta manera, se puede manejar con libvirt. Recuperar un archivo XML de

ejemplo de

wget http://people.canonical.com/ ~ serge/o1.xml

Editar este archivo para reemplazar el nombre del contenedor y la ubicación del sistema de archivos raíz. A

continuación, puede definir el recipiente con:

virsh-c LXC :/ / / definir o1.xml

5.6.2. Creación de un contenedor de imagen de la nube

Si prefiere crear un contenedor prístina nuevo sólo para LXC, puede descargar una nube de Ubuntu imagen, extraer, y un punto libvirt LXC xml a la misma. Por ejemplo, encontrar la URL de un archivo comprimido

raíz de el último día de Ubuntu 12.04 LTS imagen de la nube utilizando

url1 = `ubuntu-cloudimg-consulta precisa todos los días $ arch - formato"% {url} \ n "` url = `echo $ url1 | sed-e 's / .tar.gz / root \ 0 /'`

357

Virtualización

wget $ url filename = `basename $ url`

Extraer el tarball descargado, por ejemplo

mkdir $ HOME/c1 cd $ HOME/c1 sudo tar zxf $ nombre_archivo

Descargue la plantilla xml

wget http://people.canonical.com/ ~ serge/o1.xml

En la plantilla de XML, reemplace el nombre con o1 c1 y el directorio de origen / Var/lib/lxc/o1/rootfs con $ HOME/c1. A continuación, defina el recipiente con

virsh define o1.xml

5.6.3. La interacción con los contenedores libvirt

Como hemos visto, puede crear un contenedor con libvirt-LXC

virsh-c LXC :/ / / definir container.xml

Para iniciar un recipiente llamado recipiente, utilizar

virsh-c LXC :/ / / inicio de contenedores

Para detener un contenedor en ejecución,

utilice

virsh-c LXC :/ / / destruir el recipiente

Obsérvese que mientras que el LXC-destruir comando elimina el contenedor, el virsh destruir comando detiene un contenedor de funcionamiento. Para eliminar la definición de contenedor, utilice

358

Virtualización

virsh-c LXC :/ / / contenedor undefine

Para conseguir una consola a un contenedor en

ejecución, utilice

virsh-c LXC :/ / / consola de contenedores

Salir de la consola pulsando simultáneamente las teclas Control y].

5,7. El paquete de lxcguest

En los 11.04 (Natty) y 11.10 (onírico) las emisiones de Ubuntu, un paquete se introdujo llamada lxcguest. Una imagen raíz no modificado no pudo ser arrancado de forma segura dentro de un contenedor, pero una imagen con el lxcguest paquete instalado se podía iniciar como un contenedor, en hardware desnudo, o en un Xen, KVM, o VMware Virtual Machine.

A partir de la versión 12.04 LTS, el trabajo realizado anteriormente por el paquete de lxcguest pasó a un segundo los paquetes principales, y el paquete fue eliminado en lxcguest. Como resultado, una no modificada 12,04 LTS

imagen se puede arrancar como un contenedor, en hardware desnudo, o en un Xen, KVM, o de la máquina virtual de VMware.

Para utilizar una versión anterior, el paquete de lxcguest se deben utilizar.

5,8. Seguridad

Un espacio de nombres identificadores de mapas a los recursos. Al no proporcionar un recipiente con cualquier ID que

hacer referencia a una recurso, el recurso puede ser protegido. Esta es la base de algunas de la seguridad que proporciona al contenedor usuarios. Por ejemplo, los espacios de nombres de la CIP están completamente aislados. Otros espacios de

nombres, sin embargo, tienen diversos fugas que permiten el privilegio de ser inapropiada ejercida desde un recipiente a otro recipiente o al host.

De forma predeterminada, los contenedores LXC se inician en una política de AppArmor para restringir algunas

acciones. Sin embargo, al mismo tiempo una mayor seguridad es un objetivo para futuras versiones, en 12.04 LTS el objetivo de la política de

AppArmor es no dejar de acciones maliciosas, sino más bien dejar de daño accidental de la máquina por el huésped.

Véase el LXC de seguridad37 página wiki para más, una información actualizada.

5.8.1. Llamadas explotables del sistema

Es una característica fundamental de que los recipientes contenedores compartir un núcleo con el host. Por lo

tanto, si el núcleo contiene ninguna llamada del sistema explotables, el contenedor puede explotar éstos también. Una vez que el

contenedor controla el núcleo se puede controlar totalmente cualquier recurso a la hueste. 37 http://wiki.ubuntu.com/LxcSecurity

359

Virtualización

5,9. Recursos

• El artículo de DeveloperWorks LXC: Herramientas contenedores Linux38 fue una introducción temprana al uso de

contenedores.

• El Contenedores Cookbook seguro39 demostró el uso de módulos de seguridad para hacer los envases más seguro.

• Las páginas del manual se hace referencia anteriormente se

pueden encontrar en:

capacidades40 lxc.conf41

• El proyecto de aguas arriba LXC está alojado en Sourceforge42.

• Los problemas de seguridad LXC se enumeran y se discuten en el el Consejo de Seguridad LXC página wiki43 • Para más información sobre espacios de nombres en Linux, véase: S. Bhattiprolu, Biederman EW, Hallyn SE, y

D. Lezcano. Servidores virtuales y Check Point-/ reinicio en la corriente principal de Linux. SIGOPS Op-erating Revisión de los sistemas, de 42 años (5), 2008.

38 https://www.ibm.com/developerworks/linux/library/l-lxc-containers/ 39 http://www.ibm.com/developerworks/linux/library/l-lxc-security/index.html 40 http://manpages.ubuntu.com/manpages/en/man7/capabilities.7.html 41 http://manpages.ubuntu.com/manpages/en/man5/lxc.conf.5.html 42 http://lxc.sf.net 43 http://wiki.ubuntu.com/LxcSecurity

360

Capítulo 21. Clustering

361

Clustering

1. DRBD

Distribuida Replicated Block Device (DRBD) refleja los dispositivos de bloque entre varios hosts. La replicación es transparente para otras aplicaciones en los sistemas host. Cualquier bloque discos duros de

dispositivos, particiones, los dispositivos RAID, volúmenes lógicos, etc se puede reflejar.

Para empezar a utilizar DRBD, en primer lugar instalar los paquetes necesarios. Desde un terminal

escriba:

sudo apt-get install drbd8-utils

Si está utilizando el virtual del núcleo como parte de una máquina virtual tendrá que manualmente compilar el módulo drbd. Puede ser más fácil para instalar el paquete linux-servidor dentro de la máquina virtual.

Esta sección abarca la creación de un drbd para replicar una por separado / Srv partición, con un sistema de

archivos ext3 entre dos hosts. El tamaño de la partición no es particularmente relevante, pero ambas particiones tienen que ser los mismo tamaño.

1,1. Configuración

Los dos anfitriones de este ejemplo se llamará drbd01 y drbd02. Ellos tendrán que tener el nombre resolución de configurarse a través de DNS o el / Etc / hosts archivo. Ver Capítulo 8, de nombres de dominio Service (DNS) [p. 139] para más detalles.

• Para configurar drbd, en la edición de acogida primeros / Etc /

drbd.conf:

mundial {contador de uso no;} común {{syncer tasa 100M;}}

recursos r0 {

protocolo C; inicio {

WFC-tiempo de espera de 15; degr-WFC-tiempo de espera de

60 años; } net {

CRAM-HMAC-SHA1 alg; secreto compartido "secreto";

} el drbd01 {

dispositivo / dev/drbd0;

disco / dev/sdb1; Dirección 192.168.0.1:7788;

meta-disco interno; } el drbd02 {

dispositivo / dev/drbd0; disco / dev/sdb1;

Dirección 192.168.0.2:7788;

362

Clustering

meta-disco interno; }

}

Hay muchas otras opciones en / Etc / drbd.conf, Pero para este ejemplo su valor por defecto

los valores están muy

bien. • Ahora copia / Etc / drbd.conf el segundo anfitrión:

scp / etc / drbd.conf drbd02: ~

• Y, por drbd02 mover el archivo a / Etc:

drbd.conf sudo mv / etc /

• Ahora con la utilidad drbdadm inicializar el almacenamiento de datos meta. En cada servidor ejecute:

sudo drbdadm create-md r0

• A continuación, en ambas máquinas, inicie el demonio

drbd:

sudo / etc / init.d / drbd inicio

• En el drbd01, o cualquier host que desea ser el principal, escriba lo siguiente:

sudo ---- drbdadm sobrescribir los datos de toda la primaria-peer

• Después de ejecutar el comando anterior, los datos se iniciará la sincronización con el host secundario. Para ver

el progreso, en drbd02 escriba lo siguiente:

reloj-n1 cat / proc / drbd

Para dejar de ver la prensa de salida Ctrl + c.

• Por último, añadir un sistema de archivos para / Dev/drbd0 y

montar:

sudo mkfs.ext3 / dev/drbd0 sudo mount / dev/drbd0 / srv

1,2. Pruebas

Para comprobar que los datos son en realidad la sincronización entre los ejércitos copiar algunos archivos en el drbd01, la, primaria a / Srv:

sudo cp-r / etc / default / srv

Desmontar A continuación, /

Srv:

sudo umount / srv

363

Clustering

Degradar la primario servidor al secundario papel:

sudo drbdadm secundaria r0

Ahora, en el secundario servidor promover al primario papel:

sudo drbdadm primaria r0

Por último, montar la partición:

sudo mount / dev/drbd0 / srv

Uso ls usted debe ver / Srv / default copia de la antigua primario anfitrión drbd01.

1,3. Referencias

• Para más información sobre DRBD ver el DRBD sitio web1.

• El drbd.conf página de manual2 contiene detalles sobre las opciones que no están cubiertos en esta guía.

• Asimismo, consulte la drbdadm página de manual3. • El DRBD Wiki de Ubuntu4 página también tiene más información.

1 http://www.drbd.org/~~V 2 http://manpages.ubuntu.com/manpages/precise/en/man5/drbd.conf.5.html 3 http://manpages.ubuntu.com/manpages/precise/en/man8/drbdadm.8.html 4 https://help.ubuntu.com/community/DRBD

364

Capítulo 22. VPN

OpenVPN es una red privada virtual (VPN) previsto en los repositorios de Ubuntu. Es flexible, fiable y seguro. Pertenece a la familia de SSL / TLS VPN de pilas (diferente de IPSec VPN). En este capítulo se describe la instalación y configuración de OpenVPN para crear una VPN.

365

VPN

1. OpenVPN

Si desea algo más que claves pre-compartidas OpenVPN hace que sea fácil de configurar y usar una clave pública Infraestructura (PKI) para uso de certificados SSL / TLS para la autenticación y el intercambio de claves entre los el servidor VPN y los clientes. OpenVPN puede ser utilizado en un modo de VPN ruta o un puente y puede ser configurado para utilizar UDP o TCP. El número de puerto puede ser configurado así, pero es el puerto 1194 de la oficial. Y sólo se utiliza ese puerto único para todas las comunicaciones. Implementaciones de los clientes VPN

están disponibles para casi cualquier cosa, incluyendo todas las distribuciones de Linux, OS X, Windows y

OpenWRT basadas en routers WLAN.

1,1. De instalación del servidor

Para instalar openvpn en una terminal escriba:

sudo apt-get install openvpn

1,2. Instalación de infraestructura de clave

pública

El primer paso en la construcción de una configuración de OpenVPN es establecer una PKI (infraestructura de clave

pública). La PKI se compone de:

• un certificado separado (también conocido como una clave pública) y la clave privada para el servidor y cada

cliente, y

• un certificado de maestro de Autoridad (CA) certificado y la clave que se utiliza para firmar cada uno de los servidores

y certificados de cliente.

OpenVPN soporta la autenticación bidireccional basada en certificados, lo que significa que el cliente debe autentificar el certificado de servidor y el servidor debe autenticar el certificado de cliente antes de mutua se establece la confianza.

Tanto el servidor y el cliente se autentique la otra, en primer lugar verificar que el certificado presentado fue firmado por la autoridad principal de certificación (CA), y luego probando la información en el ahora- certificado autenticado de cabecera, como el nombre común del certificado o el certificado de tipo (cliente o servidor).

1.2.1. Certificado de instalación de la

Autoridad

Para configurar su propia autoridad de certificación (CA) y la generación de certificados y las claves para una

OpenVPN clientes del servidor y múltiples primero copiar el easy-rsa directorio para / Etc / openvpn. Esto asegurará que cualquier cambio en las secuencias de comandos no se perderán cuando el paquete se actualiza. Desde un terminal

para el cambio usuario root y:

mkdir / etc / openvpn / easy-rsa / cp-r / usr/share/doc/openvpn/examples/easy-rsa/2.0 / * / etc / openvpn / easy-rsa /

366

VPN

A continuación, modifique / Etc / openvpn / easy-rsa o vars ajustando el siguiente a su entorno:

exportar KEY_COUNTRY = "EE.UU." exportación KEY_PROVINCE = "NC"

exportar KEY_CITY = "Winston-Salem" exportar KEY_ORG = "Ejemplo de empresa" exportación KEY_EMAIL = "[email protected]"

Escriba el siguiente para generar el certificado de maestro de Autoridad de certificación (CA) y la clave:

cd / etc / openvpn / easy-rsa / vars fuente . / Clean-all . / Build-ca

1.2.2. Certificados de servidor

A continuación, vamos a generar un certificado y la clave privada para el

servidor:

. / Build-key-server NombreDelServidor

Como en el paso anterior, la mayoría de los parámetros pueden ser de pago. Dos otras consultas requieren positivo las respuestas, "Sign the certificate? [Y / n]" y "1 de 1 solicitudes de certificados certificados, se comprometen? [s /

n]".

Parámetros Diffie Hellman deben ser generados por el servidor OpenVPN:

. / Build-dh

Todos los certificados y las claves se han generado en las claves subdirectorio /. La práctica común es copiar

a / etc / openvpn /:

claves de cd / cp myservername.crt myservername.key ca.crt dh1024.pem / etc / openvpn /

1.2.3. Certificados de cliente

El cliente VPN también se necesita un certificado para autenticarse en el servidor. Por lo general, se crea un certificado diferente para cada cliente. Para crear el certificado, escriba lo siguiente en una terminal, mientras que

siendo usuario root:

cd / etc / openvpn / easy-rsa / vars fuente . / Build-key cliente1

Copie los siguientes archivos en el cliente utilizando un método seguro:

367

VPN

• / etc / openvpn / ca.crt

• / etc/openvpn/easy-rsa/keys/client1.crt

• / etc/openvpn/easy-rsa/keys/client1.key

A medida que los certificados de cliente y las claves sólo son necesarios en la máquina cliente, debe eliminar

desde el servidor.

1,3. Configuración del servidor simple

Junto con la instalación de OpenVPN tienes estos archivos de configuración de ejemplo (y muchos más, si si cheque):

root @ servidor :/ # ls-l / usr / share / doc / openvpn / examples / sample-config-

archivos o total de 68 -Rw-r - r - 1 root root 3427 07/04/2011 15:09 client.conf -Rw-r - r - 1 root root 4141 07/04/2011 15:09 server.conf.gz

Comience con la copia y el desembalaje server.conf.gz a / etc / openvpn / server.conf.

sudo cp / usr / share / doc / openvpn ejemplos / / configuración de la muestra-de los archivos / server.conf.gz / etc / openvpn / sudo gzip-d / etc / openvpn / server.conf.gz

Editar / Etc / openvpn / server.conf para asegurarse de que las siguientes líneas que enlazan con los certificados

y claves que ha creado en la sección anterior.

ca ca.crt

cert myservername.crt clave myservername.key

dh dh1024.pem

Eso es lo mínimo que tiene que configurar para tener un servidor OpenVPN de trabajo. Usted puede utilizar toda la

configuración predeterminada en el archivo server.conf muestra. Ahora iniciamos el servidor. Usted encontrará la tala

y el error los mensajes de syslog.

root @ servidor :/ etc / openvpn # / etc / init.d / openvpn

inicio * Iniciando el demonio de red privada virtual (s) ...

* Autoarranque 'servidor' VPN [OK]

Ahora compruebe si OpenVPN creado una interfaz tun0:

root @ servidor :/ etc / openvpn # ifconfig tun0 tun0 Link encap: indeterm HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

inet addr: 10.8.0.1 punto a punto: 10.8.0.2 Máscara: 255.255.255.255

UP pointopoint RUNNING MULTICAST NOARP [...]

MTU: 1500 Métrica: 1

368

VPN

1,4. Configuración del cliente simple

Hay varias implementaciones diferentes de clientes OpenVPN con y sin interfaces gráficas de usuario. Usted puede leer más acerca de los clientes en una sección posterior. Por ahora se utiliza el cliente OpenVPN para Ubuntu, que es el mismo ejecutable que el servidor. Así que tienes que instalar el paquete openvpn vez más en el cliente

la máquina:

sudo apt-get install openvpn

Esta copia en tiempo de la muestra client.conf archivo de configuración a / etc /

openvpn /.

sudo cp / usr / share / doc / openvpn ejemplos / / configuración de la muestra-de los archivos / client.conf / etc / openvpn /

Copie las claves del cliente y el certificado de la CA que ha creado en la sección anterior para, por ejemplo, / Etc / openvpn / y editar / Etc / openvpn / client.conf para asegurarse de que las siguientes líneas que enlazan con los archivos. Si tiene los archivos en / etc / openvpn / se puede omitir el paso.

ca ca.crt cert client1.crt clave client1.key

Y usted tiene que especificar al menos el nombre del servidor o la dirección de OpenVPN. Asegúrese de que el cliente

clave es en la configuración. Eso es lo que activa el modo cliente.

cliente distancia vpnserver.example.com 1194

Ahora inicie el cliente OpenVPN:

root @ cliente :/ etc / openvpn # / etc / init.d / openvpn

inicio * Iniciando el demonio de red privada virtual (s) ...

* Autoarranque "cliente" VPN [OK]

Compruebe que ha creado una interfaz de tun0:

root @ cliente :/ etc / openvpn # ifconfig tun0 tun0 Link encap: indeterm

inet addr: 10.8.0.6 HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 P-t-P: 10.8.0.5 Máscara: 255.255.255.255

MTU: 1500 Métrica: 1 UP pointopoint RUNNING MULTICAST NOARP

Compruebe si puede hacer ping al servidor OpenVPN:

root @ cliente :/ etc / openvpn # ping 10.8.0.1

PING 10.8.0.1 (10.8.0.1) 56 (84) bytes de datos. 64 bytes from 10.8.0.1: icmp_req = 1 ttl = 64 tiempo = 0,920 ms

369

VPN

El servidor OpenVPN siempre utiliza la primera dirección IP utilizable en la red del cliente y sólo que la propiedad intelectual es pingable. Por ejemplo si se ha configurado un / 24 de la máscara de red del

cliente, la dirección 0.1 se utilizará. La dirección punto a punto que se ve en el resultado de ifconfig por encima de lo general no se

responde solicitudes de ping.

Echa un vistazo a las rutas:

root @ cliente :/ etc / openvpn # netstat-rn

IP del Kernel de la tabla de

enrutamiento DestinationGateway 10.8.0.50.0.0.0 10.8.0.110.8.0.5

192.168.42.0 0.0.0.0

0.0.0.0 192.168.42.1

GenmaskFlags 255.255.255.255 UH 255.255.255.255 UGH

255.255.255.0 0.0.0.0

U UG

MSS Window 0 0 0 0

0 0 0 0

irtt Iface Tun0 0 Tun0 0

0 eth0 0 eth0

1,5. En primer lugar la resolución de

problemas

Si lo anterior no funciona para usted, revise lo siguiente:

• Revise su registro de sistema, por ejemplo, grep-i VPN / var / log

/ syslog • ¿Puede el cliente conectarse a la máquina del servidor? Tal vez un firewall está bloqueando el acceso? Compruebe

syslog en el servidor.

• Cliente y servidor debe utilizar el mismo protocolo y el puerto, por ejemplo, El puerto UDP 1194, consulte

configuración del puerto y proto opción

• Cliente y servidor debe usar misma configuración en relación con la compresión, vea comp-lzo opción de

configuración • Cliente y servidor debe usar misma configuración en relación con el modo versus puente encaminado, consulte el

servidor vs servidor puente de una opción de

configuración

1,6. Configuración de Advanved

1.6.1. Advanced VPN enrutada de configuración en el servidor

Lo anterior es una VPN muy simple de trabajo. El cliente puede acceder a servicios en el equipo servidor VPN

a través de un túnel encriptado. Si quieres llegar a más servidores o cualquier cosa en otras redes,

impulsar algunas de las rutas a los clientes. Por ejemplo si la red de su empresa se puede resumir a la red 192.168.0.0/16, se puede llevar este camino a los clientes. Pero también tendrá que cambiar la ruta para el camino de regreso - los servidores que necesita saber una ruta hacia el cliente VPN de la red.

O usted puede empujar una puerta de enlace predeterminada a todos los clientes para enviar todo su tráfico de

Internet a la VPN primera puerta de enlace y de allí a través del firewall de la compañía en la internet. En esta sección se muestran

algunas las opciones posibles.

Presione rutas al cliente para que pueda llegar a otras subredes privadas detrás del servidor. Recuerde que estas subredes privadas también se necesita saber para dirigir el conjunto de direcciones del cliente OpenVPN

(10.8.0.0/24) de vuelta al servidor OpenVPN.

370

VPN

impulsar "la ruta 10.0.0.0 255.0.0.0"

Si se habilita, esta directiva va a configurar todos los clientes para redirigir su puerta de enlace predeterminada a

través de la red la VPN, lo que todo el tráfico IP, tales como la navegación web y las búsquedas de DNS, y para ir a través de la VPN (La máquina del servidor OpenVPN o el servidor de seguridad central, puede ser necesario NAT la interfaz TUN /

TAP para Internet para que esto funcione correctamente).

push "redirect-gateway DEF1 by-pass-dhcp"

Configurar el modo de servidor y suministro de una subred VPN OpenVPN para dibujar las direcciones de los

clientes de. La servidor se llevará a 10.8.0.1 por sí mismo, el resto será puesto a disposición de los clientes. Cada cliente podrá llegar al servidor en 10.8.0.1. Comenta esta línea si usted está Ethernet puente.

servidor 10.8.0.0 255.255.255.0

Mantener un registro de cliente para las asociaciones virtuales de direcciones IP en este archivo. Si se cae o

OpenVPN se reinicia, los clientes de reconexión se le puede asignar la misma dirección IP virtual de la piscina que era asignado previamente.

ifconfig-pool-persist ipp.txt

Presione servidores DNS para el cliente.

push "dhcp-option DNS 10.0.0.2" push "dhcp-option DNS 10.1.0.2"

Permitir al cliente que la comunicación del

cliente.

de cliente a cliente

Habilitar la compresión en el enlace de VPN.

comp-lzo

La directiva keepalive causa como mesa de ping-que se envíen mensajes de ida y vuelta a través del enlace de manera

que cada lado sabe cuando la otra parte se ha reducido. Ping cada 1 segundo, se supone que es distancia entre pares de abajo si no hay mesa de ping recibidos durante un período de tiempo de 3 segundos.

keepalive 1 3

Es una buena idea para reducir los privilegios del demonio OpenVPN después de la

inicialización.

usuario nobody grupo nogroup

371

VPN

OpenVPN 2.0 incluye una característica que permite que el servidor OpenVPN para obtener con seguridad un nombre

de usuario y contraseña de un cliente que se conecta, y utilizar esa información como base para la autenticación del cliente. Para utilizar este método de autenticación, agregue primero la directiva de autenticación del usuario de paso a la

configuración del cliente. Lo dirigirá el cliente OpenVPN para solicitar al usuario un nombre de usuario / contraseña, que pasa que en el servidor

sobre el canal seguro TLS.

# Configuración del

cliente! autenticación de usuario

de paso Esto le dirá al servidor OpenVPN para validar el usuario / contraseña introducidos por los clientes que utilizan la ingresa el módulo PAM. Es útil si usted tiene la autenticación centralizada con, por ejemplo Kerberos.

plugin / usr / lib / openvpn / openvpn-auth-pam.so de inicio

de sesión

Por favor lea la OpenVPN endurecimiento de la Guía de seguridadUn consejo de seguridad adicional.

1.6.2. Configuración avanzada de puente VPN en el servidor

OpenVPN puede configurar ya sea para una ruta o un puente modo de VPN. A veces esto se conoce también

como capa del modelo OSI-2-3 en comparación con la capa de VPN. En una VPN de capa-puente todos los 2 cuadros

- POR EJEMPLO todas las tramas Ethernet - Se envían a los socios de VPN y VPN en un enrutados a sólo 3 capas paquetes se envían a los socios de VPN. En el modo de puente todo el tráfico, incluido el tráfico que era tradicionalmente la LAN local como de red local

emisiones, peticiones DHCP, etc peticiones ARP se envían a los socios VPN, mientras que en modo enrutado este se filtró.

1.6.2.1. Preparar la interfaz de configuración para tender un puente en el servidor

Asegúrese de que tiene el paquete bridge-utils instalado:

sudo apt-get install bridge-utils

Antes de configurar OpenVPN en modo puente que necesita para cambiar su configuración de la interfaz. Vamos a asumir que su servidor tiene una interfaz eth0 conectado a Internet y una interfaz eth1 conectada a de la LAN que desea salvar. El archivo / etc / network / interfaces que de esta manera:

auto eth0

iface eth0 inet static dirección 1.2.3.4

máscara de red 255.255.255.248 por defecto 1.2.3.1

auto eth1 iface eth1 inet static

# 1 http://openvpn.net/index.php/open-source/documentation/howto.html de seguridad

372

VPN

la dirección 10.0.0.4 máscara de red 255.255.255.0

Esta interfaz de configuración recta hacia adelante hay que cambiar a un modo de puente, como en la configuración de interfaz eth1 se mueve a la nueva interfaz br0. Además, podemos configurar que debería llenar la interfaz br0

eth1. También tenemos que asegurarnos de que la interfaz eth1 está siempre en modo promiscuo - le dice al Interfaz para desviar todas las tramas de Ethernet a la pila IP.

auto eth0

iface eth0 inet static dirección 1.2.3.4 máscara de red 255.255.255.248 por defecto 1.2.3.1

auto eth1 iface eth1 inet manual de por ip link set $ IFACE hasta el promisc

auto br0

iface br0 inet static la dirección 10.0.0.4

máscara de red 255.255.255.0 bridge_ports eth1

En este punto es necesario reiniciar la red. Esté preparado para que esto podría no funcionar como se esperaba y que perderá la conectividad remota. Asegúrese de que puede resolver los problemas que tienen acceso local.

sudo / etc / init.d / network restart

1.6.2.2. Preparar el servidor de configuración de puente

Editar / Etc / openvpn / server.conf cambiar las siguientes opciones para:

; Dev tun

dev tap arriba "/ etc / openvpn / up.sh br0 eth1"

, Servidor 10.8.0.0 255.255.255.0 servidor de puente 10.0.0.4 255.255.255.0 10.0.0.128 10.0.0.254

A continuación, cree un script de ayuda para agregar el aprovechar interfaz para el puente y para

asegurarse de que es eth1 modo promiscuo. Crear / Etc / openvpn / up.sh:

#! / Bin / sh

BR = $ 1 ETHDEV = $ 2 TAPDEV = $ 3

/ Sbin / ip link set "$ TAPDEV" hasta

373

VPN

/ Sbin / ip link set "$ ETHDEV" promisc de / Sbin / brctl addif $ BR $ TAPDEV

A continuación, hacerlo ejecutable:

sudo chmod 755 / etc / openvpn / up.sh

Después de configurar el servidor, reinicie openvpn introduciendo:

sudo / etc / init.d / openvpn restart

1.6.2.3. Configuración del cliente

En primer lugar, instale openvpn en el cliente:

sudo apt-get install openvpn

Luego, con el servidor configurado y los certificados de cliente copia en el / Etc / openvpn / directorio, crear un archivo de configuración de cliente copiando el ejemplo. En una terminal en la máquina cliente escriba:

sudo cp / usr / share / doc / openvpn ejemplos / / configuración de la muestra-de los archivos / client.conf / etc / openvpn

Ahora edita / Etc / openvpn / client.conf cambiando las siguientes opciones:

dev tap ; Dev tun

Por último, reinicie openvpn:

sudo / etc / init.d / openvpn restart

Ahora debería ser capaz de conectarse a la red LAN remota a través de la VPN.

1,7. Implementaciones de software del cliente

1.7.1. Linux Network-Manager GUI para OpenVPN

Muchas distribuciones de Linux, incluyendo las variantes de escritorio de Ubuntu vienen con Network Manager, un

buen Interfaz gráfica para configurar la configuración de red. También puede administrar las conexiones VPN. Asegúrese de

que tienen el paquete network-manager-openvpn instalado. Aquí puede ver que la instalación instala todos los demás los paquetes requeridos, así:

root @ cliente: ~ # apt-get install network-manager-openvpn Leyendo lista de paquetes ... Hecho

Creando árbol de dependencias Leyendo la información de estado ... Hecho

374

VPN

Los siguientes paquetes extras serán instalados:

liblzo2-2-libpkcs11 helper1 network-manager-openvpn-gnome openvpn Paquetes sugeridos:

resolvconf Los siguientes paquetes se instalarán:

liblzo2-2-libpkcs11 helper1 network-manager-openvpn network-manager-openvpn-gnome openvpn

0 actualizados, 5 nuevos instalados, 0 para eliminar y 631 no actualizados. Necesito descargar 700 kB de archivos. Después de esta operación, 3.031 kB de espacio de disco adicional se utilizará.

¿Desea continuar [S / n]?

Para informar a network-manager acerca de los nuevos paquetes instalados se tendrá que reiniciar:

root @ cliente: ~ # reiniciar el gestor de red network-manager de arranque / funcionamiento, el

proceso de 3078

Abra el Administrador de Red de interfaz gráfica de usuario, seleccione la pestaña de VPN y luego el botón 'Añadir'.

Seleccione OpenVPN como el tipo de VPN en el solicitante de la apertura y pulse en 'Crear'. En la siguiente ventana de agregar el OpenVPN servidor de nombres como el 'Gateway' set 'tipo' a los certificados (TLS) "," Certificado de Usuario "punto a su

usuario certificado, "Certificado CA 'a su certificado de la CA y la" clave privada "a su archivo de clave privada. Utilice el botón Opciones avanzadas para habilitar la compresión u otros ajustes especiales se establecen en el servidor. Ahora

trata de establecer la VPN.

1.7.2. OpenVPN con interfaz gráfica de usuario para Mac OS X:

Tunnelblick

Tunnelblick es una excelente aplicación gratuita y de código abierto de una interfaz gráfica para OpenVPN para OS X.

La página de inicio del proyecto se encuentra en http://code.google.com/p/tunnelblick/. Descarga la última versión del

sistema operativo de instalación de X a partir de ahí e instalarlo. Entonces ponga su client.ovpn fichero de configuración junto con los certificados y las

claves en / Users / usuario / Library / Application Support / Tunnelblick / Configuraciones / y Tunnelblick lauch de la carpeta de aplicaciones.

# Muestra client.ovpn de Tunnelblick cliente distancia blue.example.com

puerto 1194 proto udp

dev tun dev tun tipo ns-cert-tipo de servidor

reneg seg-86400 autenticación de

usuario de paso auth-nocache auth-retry interactuar comp-lzo sí

3 verbo ca ca.crt

cert client.crt clave client.key

375

VPN

1.7.3. OpenVPN con interfaz gráfica de usuario

para Windows 7

Primero descargar e instalar la última versión OpenVPN Windows Installer2. OpenVPN 2.2.1 es la última cuando esto fue escrito. Además descarga una alternativa Open VPN GUI de Windows. La

OpenVPN GUI desde MI http://openvpn-mi-gui.inside-security.de parece ser uno bueno para Windows

7. Descargue la versión más reciente. 20110624 fue la versión más reciente cuando esto fue escrito.

Es necesario para iniciar el servicio OpenVPN. Ir a Inicio> Equipo> Administrar> Servicios y Aplicaciones> Servicios. Encuentre el servicio OpenVPN y ponerlo en marcha. Establezca su tipo de inicio a

automático. Cuando se inicia el OpenVPN GUI MI primera vez que hay que ejecutar como administrador. Tiene hacer clic derecho sobre él y verás esa opción.

Usted tendrá que escribir su configuración de OpenVPN en un archivo de texto y colocarlo en C: \ Archivos de

programa \ OpenVPN \ Config \ client.ovpn junto con el certificado de la CA. Se puede poner el certificado de usuario en el hogar del usuario directorio como en el ejemplo siguientes aparatos.

# C: \ Archivos de programa \ OpenVPN \ config \

client.ovpn cliente remota server.example.com

puerto 1194

proto udp dev tun

dev tun tipo ns-cert-tipo de servidor

reneg seg-86400

autenticación de usuario de

paso auth-retry interactuar comp-lzo sí 3 verbo

ca ca.crt

cert "C: \ \ Users \ \ \ username \ Mis documentos \ \ OpenVPN \ \

client.crt" tecla "C: \ \ Users \ \ nombre de usuario \ \ Mis documentos \ \ OpenVPN \

\ client.key" gestión 127.0.0.1 1194 gestión de retención

consulta gestión de contraseñas auth-retry interactuar

1.7.4. OpenVPN para OpenWRT

OpenWRT se describe como una distribución de Linux para dispositivos embebidos como router WLAN. Hay ciertos tipos de routers WLAN, que puede ser flasheado a correr OpenWRT. Dependiendo de la disposición

la memoria en el router OpenWRT puede ejecutar software como OpenVPN y que podría, por ejemplo construcción de un pequeño router de bajo costo de la sucursal con conectividad VPN a la oficina central. Más información sobre OpenVPN en OpenWRT es aquí3. Y aquí está la página del proyecto OpenWRT de: http://

openwrt.org

2 http://www.openvpn.net/index.php/open-source/downloads.html 3 http://wiki.openwrt.org/doc/howto/vpn.overview

376

VPN

Inicie sesión en el router OpenWRT e instalar OpenVPN:

opkg actualización opkg instalar OpenVPN

Echa un vistazo a / etc / config / openvpn y te ponen el cliente de configuración en ese país. Copia certificada de las

teclas y para / etc / openvpn /

configuración de openvpn

cliente1 opción de permitir a un

# opción opción opción opción opción

cliente 1 dev tap dev tun proto udp ca / etc / openvpn / ca.crt

opción de cert / etc / openvpn / client.crt tecla de opción / etc / openvpn / client.key

opción de una comp_lzo

Reiniciar OpenVPN:

/ Etc / init.d / openvpn restart

Usted tendrá que ver si es necesario ajustar el enrutamiento del router y las reglas del cortafuegos.

1,8. Referencias

• Consulte el OpenVPN4 página web para obtener información adicional.

•OpenVPN endurecimiento de la Guía de seguridad5 • Además, los Pakt OpenVPN: construcción e integración de redes privadas virtuales6 es un buen recurso.

4 http://openvpn.net/ 5 # http://openvpn.net/index.php/open-source/documentation/howto.html de seguridad 6 http://www.packtpub.com/openvpn/book

377

Capítulo 23. Otras aplicaciones útiles

Hay muchas aplicaciones muy útiles desarrollados por el equipo de Ubuntu Server, y otros que son bien integrado con Ubuntu Server Edition, que no pueden ser bien conocidos. En este capítulo se mostrará algunas aplicaciones útiles que pueden hacer que la administración de un servidor de Ubuntu, o muchos servidores de

Ubuntu, que

mucho más fácil.

378

Otras aplicaciones útiles

1. pam_motd

Al iniciar sesión en un servidor de Ubuntu te habrás dado cuenta el mensaje informativo del Día (MOTD). Esta información se obtiene y se muestra mediante un par de paquetes:

•paisaje común: proporciona las bibliotecas del núcleo del paisaje y el cliente, que pueden ser utilizadas para

administrar sistemas que utilizan la web en base Paisaje aplicación. El paquete incluye el / usr/bin/landscape- utilidad sysinfo que se utiliza para recopilar la información que aparece en el MOTD.

•update-notifier-common: se utiliza para actualizar automáticamente el MOTD a través del módulo

pam_motd.

pam_motd ejecuta las secuencias de comandos en / Etc / update-motd.d en el orden basado en el número

antepuesto el guión. La salida de los guiones se escriben en / Var / run / motd, Manteniendo el orden numérico, entonces concatenado con / Etc / motd.tail.

Usted puede agregar la información de su propia dinámica a la MOTD. Por ejemplo, para añadir el clima local información:

• En primer lugar, instalar el paquete clima-util:

sudo apt-get install tiempo-util

• La utilidad del tiempo utiliza los datos METAR de la Administración Nacional Oceánica y Atmosférica

y las previsiones del Servicio Meteorológico Nacional. Con el fin de encontrar información local tendrá el de 4 caracteres Indicador de lugar OACI. Esto puede ser determinado por la navegación a la Nacional El tiempo de servicioUn sitio.

Aunque el Servicio Meteorológico Nacional es una agencia de gobierno de Estados Unidos no son el clima estaciones disponibles en todo el mundo. Sin embargo, la información del tiempo local para todas las ubicaciones

fuera de los EE.UU. puede no estar disponible.

• Crear / Usr / local / bin / local a la intemperie, Un simple script de shell para utilizar el tiempo con su

oficina local de la OACI Indicador:

#! / Bin / sh #

# # Imprime la información del tiempo local para el MOTD. # #

# Vuelva a colocar KINT con su estación meteorológica

local. # Estaciones locales se puede encontrar aquí: http://www.weather.gov/tg/siteloc.shtml

eco el clima i KINT eco

1 http://www.weather.gov/tg/siteloc.shtml

379

Otras aplicaciones útiles

• Haga el script ejecutable:

sudo chmod 755 / usr / local / bin / local a la intemperie

• A continuación, cree un enlace simbólico a / Etc/update-motd.d/98-local-

weather:

sudo ln-s / usr / local / bin / local a la intemperie / etc/update-motd.d/98-local-weather

• Por último, salir del servidor y volver a entrar para ver el MOTD nuevo.

Ahora debería ser recibido con un poco de información útil, y alguna información sobre el local El tiempo que puede no ser tan útil. Esperemos que el ejemplo local de clima demuestra la flexibilidad de pam_motd.

380

Otras aplicaciones útiles

2. etckeeper

etckeeper permite que el contenido de / Etc ser fácilmente almacenado en el control de versiones del sistema (VCS)

repositorio. Se engancha a tienden a comprometerse de forma automática los cambios en / Etc cuando los paquetes se han instalado

o actualizado. Colocación / Etc bajo control de versiones se considera una mejor práctica del sector, y es el objetivo de etckeeper para que este proceso sea lo menos doloroso posible.

Instale etckeeper escribiendo lo siguiente en una terminal:

sudo apt-get install etckeeper

El archivo de configuración principal, / Etc / etckeeper / etckeeper.conf, Es bastante simple. La opción principal

es que VCS para su uso. De forma predeterminada etckeeper está configurado para usar bzr para el control de versiones. El

repositorio es inicializa automáticamente (y se comprometieron por primera vez) durante la instalación del paquete. Es posible deshacer esta introduciendo el siguiente comando:

No inic etckeeper sudo

De forma predeterminada, se compromete etckeeper cambios no confirmados realizados a / etc todos los días. Esto

se puede desactivar utilizando la opción de configuración AVOID_DAILY_AUTOCOMMITS. Se hará también de forma automática confirmar los cambios antes y después de la instalación del paquete. Para un seguimiento más preciso de los

cambios, es recomienda confirmar los cambios manualmente, junto con un mensaje de confirmación, mediante:

etckeeper sudo cometer ".. La razón para el cambio de configuración .."

Con los comandos de control de versiones se puede ver información acerca de los archivos

de registro en la / Etc:

registro de bzr sudo / etc / passwd

Para demostrar la integración con el sistema de gestión de paquetes, instalar postfix:

sudo apt-get install postfix

Cuando la instalación haya finalizado, todos los archivos de configuración de sufijo debe estar comprometido

con el repositorio:

Comprometerse a: / etc /

añadido aliases.db modificación del grupo

grupo modificado gshadow modificado gshadow-modificado

modificado passwd modificado passwd-

añadido postfix

381

Otras aplicaciones útiles

resolvconf añadido

añadido rsyslog.d modificada por la

sombra sombra-modificado añadido init.d / postfix

añadido network / if-down.d / postfix añadido network / if-up.d / postfix

añadido postfix / dynamicmaps.cf añadido postfix / main.cf añadido postfix / master.cf

añadido añadido añadido añadido

añadido añadido añadido añadido añadido añadido

postfix / post-instalación postfix / postfix-archivos postfix / postfix-script postfix / sasl

ppp / ip-down.d ppp / ip-down.d / postfix ppp / ip-up.d / postfix rc0.d/K20postfix rc1.d/K20postfix rc2.d/S20postfix

añadido rc3.d/S20postfix

añadido rc4.d/S20postfix añadido rc5.d/S20postfix

añadido rc6.d/K20postfix resolvconf añadido / actualización

libc.d- resolvconf añadido / update-libc.d / postfix

añadido rsyslog.d / postfix.conf añadido UFW / applications.d / postfix

Comprometidos con la revisión

2.

Para un ejemplo de cómo etckeeper seguimiento de los cambios manuales, añadir un nuevo host para / Etc / hosts.

Usando bzr puede ver qué archivos han sido modificados:

estado de bzr sudo / etc / modificada por:

los

ejércitos

Ahora aplicar los cambios:

etckeeper sudo cometer "nuevo huésped"

Para más información sobre bzr ver Sección 1, "Bazar" [p. 267].

382

Otras aplicaciones útiles

3. Byobu

Una de las aplicaciones más útiles para cualquier administrador del sistema es la pantalla. Se permite la ejecución de proyectiles múltiples en una sola terminal. Para hacer un poco de la pantalla de las funciones avanzadas más fácil de

usar, y proporcionar información útil sobre el sistema, el paquete fue creado byobu.

Cuando se ejecuta pulsando el byobu F9 clave que aparezca el menú de configuración. Este menú se le permiten:

• Ver el menú Ayuda

• El color de fondo del cambio Byobu

• El color de primer plano Cambiar Byobu

• Las notificaciones de estado de

palanca • Cambie el conjunto de combinación de

teclas • Cambie la secuencia de escape

• Crear nuevas ventanas

• Gestionar la predeterminada de Windows

• Byobu actualmente no se ejecuta al iniciar la sesión (activar)

La combinaciones de teclas determinar aspectos tales como la secuencia de escape, una nueva ventana, la ventana

de cambio, etc Hay dos grupos principales de unión para elegir teclas de función y evacuación de pantalla de las teclas. Si

desea utilizar el originales combinaciones de teclas elegir el ninguno establecido.

byobu ofrece un menú que muestra la versión de Ubuntu, la información del procesador, la memoria información, y la fecha y la hora. El efecto es similar a un menú de escritorio.

Utilizando el "Byobu actualmente no se ejecuta al iniciar la sesión (de alternancia en)" opción hará que byobu

ser ejecutada en cualquier momento se abre un terminal. Los cambios realizados en byobu están en función de cada

usuario, y no se afectar a otros usuarios en el sistema.

Una diferencia cuando se utiliza byobu es el scrollback modo. Pulse el botón F7 para entrar en el modo de scroll.

El modo de scroll le permite navegar a la salida el pasado con vi como comandos. Aquí está una lista rápida de comandos de movimiento:

•h- Mueva el cursor a la izquierda un carácter

•j- Mover el cursor hacia abajo por una línea

•k- Mover el cursor hacia arriba por una línea

•l- Mover el cursor hacia la derecha por un carácter

•0- Ir al principio de la línea actual

•$- Ir al final de la línea actual

•G- Pasa a la línea indicada (por defecto el final del búfer)

•/- Búsqueda hacia delante

383

Otras aplicaciones útiles

•?- Buscar hacia atrás

•n- Pasa a la siguiente coincidencia, ya sea hacia adelante o hacia

backword

384

Otras aplicaciones útiles

4. Referencias

• Consulte el update-motd página man2 para más opciones disponibles para actualizar-motd.

• El paquete Debian del Día tiempo3 El artículo tiene más detalles sobre cómo usar el weatherutility.

• Consulte el etckeeper4 sitio para obtener más información sobre el uso de etckeeper.

• El etckeeper Wiki de Ubuntu5 página.

• Para conocer las últimas noticias e información sobre bzr ver el bzr6 sitio web.

• Para obtener más información en la pantalla de ver el pantalla de sitio web7. • Y el Wiki de Ubuntu la pantalla8 páginas.

• Además, vea la byobu Página del proyecto9 para más información.

2 http://manpages.ubuntu.com/manpages/precise/en/man1/update-motd.1.html 3 4 http://kitenet.net/ ~ joey / code / etckeeper / 5 https://help.ubuntu.com/community/etckeeper 6 http://bazaar-vcs.org/~~V 7 http://www.gnu.org/software/screen/ 8 https://help.ubuntu.com/community/Screen 9 https://launchpad.net/byobu

385

Apéndice A. Apéndice

386

Apéndice

1. Informar sobre Fallos en Ubuntu Server Edition

Mientras que el proyecto Ubuntu intenta liberar el software con el mayor número posible de errores, que se producen. Usted puede ayudar a corregir estos errores al reportar los que se encuentran en el proyecto. El proyecto Ubuntu usa

Launchpad1 a realizar un seguimiento de sus informes de error. Con el fin de presentar un bug de Ubuntu Server en Launchpad,

tendrá que crear una cuenta2.

1,1. Informar sobre Fallos con ubuntu-bug

La mejor forma de informar de un error es con el comando ubuntu-bug. La herramienta de ubuntu-bug reúne información sobre el sistema útil para los desarrolladores en diagnosticar el problema informó que luego se se incluirán en el informe de error presentado en Launchpad. Los informes de errores en Ubuntu necesita ser

presentada en contra de un paquete de software específico, de ahí el nombre del paquete que el error se produce en las necesidades que debe

darse a ubuntu-bug:

ubuntu-bug NOMBREPAQUETE

Por ejemplo, para presentar un error contra el paquete openssh-server, puede hacer:

ubuntu-bug openssh-server

Puede especificar un paquete binario o el paquete de fuentes para ubuntu-bug. Una vez más usando openssh- servidor como un ejemplo, también puede generar el informe en contra del paquete de fuentes de openssh- servidor, OpenSSH:

ubuntu-bug openssh

Ver Capítulo 3, La administración de paquetes [p. 20] Para obtener más información acerca de los

paquetes de Ubuntu.

El comando ubuntu-bug reunirá información sobre el sistema en cuestión, que pueden incluir información específica para el paquete especificado, y luego hacer lo que te gustaría hacer con

la información recopilada:

ubuntu-bug postgresql

La recogida de información *** problema

La información recopilada puede ser enviado a los desarrolladores para mejorar la aplicación. Esta operación puede tardar unos minutos. ..........

1 https://launchpad.net/ 2 https://help.launchpad.net/YourAccount/NewAccount

387

Apéndice

*** Enviar informe de problemas a los

desarrolladores?

Después de que el informe de problemas ha sido enviado, por favor llene el formulario

en el abre automáticamente navegador web.

¿Qué te gustaría hacer? Sus opciones son: S: Envía el informe (1,7 Kb)

V: Ver informe K: Mantener archivo de informe para el envío fuera de plazo o copiar a otra

parte C: Cancelar

Por favor, elija (S / V / M / C):

Las opciones disponibles son:

•Enviar Selección Enviar informe presenta la información recopilada a Launchpad como parte de la el proceso de presentar un informe de error. Se le dará la oportunidad de describir la situación que condujo a la aparición del error.

Carga de información del problema ***

La información recogida se envía al sistema de seguimiento de fallos. Esta operación puede tardar unos minutos.

91%

*** Para continuar, debes visitar el siguiente URL:

https://bugs.launchpad.net/ubuntu/+source/postgresql-8.4/+filebug/kc6eSnTLnLxF8u0t3e56EukFeqJ?

Se puede lanzar un navegador de ahora, o copiar la URL en un navegador a otro ordenador.

Opciones: 1: Abra el navegador de hoy

C: Cancelar Por favor, elija (1 / C):

Si usted decide iniciar un navegador, de forma predeterminada el texto basado en w3m navegador web se utilizará

para terminar presentar el informe de error. Alternativamente, usted puede copiar la URL dada a un navegador web actualmente en

funcionamiento. •Ver informe La selección Ver informe hace que la información recopilada para que se muestre a la

terminales para su revisión.

Package: postgresql 8.4.2-2 PackageArchitecture: todos Tags: lucidos ProblemType: Bug

ProcEnviron: LANG = es_ES.UTF-8

SHELL = / bin / bash Uname: Linux 6.2.32-16-server x86_64 Dependencias:

388

Apéndice

adduser 3.112ubuntu1

base-files 5.0.0ubuntu10 base-passwd 05/03/22

coreutils 7.4-2ubuntu2 ...

Después de ver el informe, se le trajo de vuelta a la misma carta preguntando qué le gustaría ver con el informe.

•Mantener archivo de los informes Selección de mantener el archivo Informe hace que la información recopilada

para ser escrito a un archivo. Este archivo puede ser utilizado para presentar después un informe de error o transferido a otro sistema de

Ubuntu para la presentación de informes. Para enviar el archivo de informe, sólo tiene que dar como un argumento para el

comando de ubuntu-bug: ¿Qué te gustaría hacer? Sus opciones son: S: Envía el informe (1,7 Kb) V: Ver informe

K: Mantener archivo de informe para el envío fuera de plazo o copiar a otra

parte C: Cancelar Por favor, elija (S / V / M / C): k Problema archivo de informe: / tmp/apport.postgresql.v4MQas.apport

ubuntu-bug / tmp/apport.postgresql.v4MQas.apport

*** Enviar informe de problemas a los

desarrolladores? ...

•Cancelar Si selecciona Cancelar hace que la información recopilada para ser desechado.

1,2. Los accidentes de informes de aplicación

El paquete de software que proporciona la utilidad ubuntu-bug, apport, se puede configurar para activar cuando las aplicaciones del accidente. Esto está desactivado por defecto, como la captura de un accidente puede

consumir muchos recursos dependiendo de la cantidad de memoria de la aplicación que se estrelló estaba usando como capturas y el apport procesa el volcado de memoria.

Configuración de apport para capturar información sobre las aplicaciones que se estrellan requiere un par de pasos. En primer lugar, el BGF tiene que ser instalado, no se instala por defecto en Ubuntu Server Edition.

sudo apt-get install gdb

Ver Capítulo 3, La administración de paquetes [p. 20] Para obtener más información sobre el manejo de

paquetes en Ubuntu.

Una vez que se han asegurado de que el gdb está instalado, abra el archivo / Etc / default / apport en su editor

de texto, y cambiar el activado fijar a ser 1de este modo:

# Set a 0 para desactivar el apport, o 1 para habilitarla

# Temporalmente puede reemplazar esto con # Sudo servicio de apport inicio force_start = 1

389

Apéndice

enabled = 1

# Set básico de vertido máxima de tamaño de archivo (por defecto: 209715200 bytes ==

200 MB) maxsize = 209715200

Una vez que haya terminado de editar / Etc / default / apport, Inicie el servicio apport:

apport inicio sudo

Después de una aplicación se bloquea, utilice el comando apport-cli para buscar el informe de errores existente

guardado información:

apport-cli

Tablero *** cerró inesperadamente el 11/03/2010 a las 21:40:59.

Si no estaban haciendo nada confidencial (contraseñas u otros que entran en información privada), puede ayudar a mejorar la aplicación por

la presentación de

informes el problema.

¿Qué te gustaría hacer? Sus opciones son: R: informe de problemas ... I: Cancelar e ignorar los accidentes en el futuro de esta versión del

programa C: Cancelar

Por favor, elija (R / E / C):

Selección Informe de Incidencia le guiará a través de medidas similares cuando se utiliza como ubuntu-bug.

Uno diferencia importante es que un informe de choque será marcado como privado, cuando presentó en Launchpad, lo que significa que será visible sólo a un conjunto limitado de triagers de errores. Estos triagers revisará la recogida de datos para obtener información privada antes de hacer el informe de error visible para el público.

1,3. Recursos

• Consulte el Informar sobre Fallos3 Ubuntu wiki de la página.

• Además, el Apport4 página tiene alguna información útil. Aunque algunos de los que se refiere al uso de una interfaz gráfica de usuario.

3 https://help.ubuntu.com/community/ReportingBugs 4 https://wiki.ubuntu.com/Apport

390