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
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
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
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
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
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
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
Top Related