Configuración De Servidores Con GNU/Linux Edición Enero 2012

25 De Enero De 2012

Joel Barrios Dueñas

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

2

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Si este libro le ha sido de utilidad, puede contribuir al desarrollo de éste a través de suscripciones voluntarias a nuestro portal. Sus aportaciones nos ayudarán a crecer y desarrollar más y mejor contenido en el sitio de red y para mejorar este libro. http://www.alcancelibre.org/staticpages/index.php/suscripciones Alcance Libre ofrece soporte técnico gratuito exclusivamente a través de nuestros foros localizados en: http://www.alcancelibre.org/forum/ Para cualquier consulta a través de otros medios, como correo electrónico, teléfono o mensajería instantánea, ofrecemos un servicio comercial de consultoría. Alcance Libre ofrece los siguientes productos y servicios basados sobre Software Libre, gracias a los cuales financia sus operaciones. Para mayor información, estamos disponibles a través del número telefónico (52) (55) 5677-7130 de la ciudad de México, a través de nuestro Formulario de contacto o bien directamente en nuestras oficinas centrales en Alumnos #34, Colonia San Miguel Chapultepec, delegación Miguel Hidalgo, México, D.F., C.P. 11850, México.
• • • • • •

Capacitación (cursos) Conferencias y pláticas Consultoría Implementaciones (Servidores) Soporte Técnico Publicidad en el portal

3

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

A mi difunto padre, a quien debo reconocer jamás supe comprender y a quien jamás le dí la oportunidad de entenderme. Blanca, eres el amor de mi vida, y gracias a ti inicié mi gusto por escribir. Te agradezco el haberme permitido escribirte todas esas cosas hace tantos años, y el que hoy seas mi compañera en la vida. A mis hijos, Joel Alejandro Barrios Caullieres, y Sergio Armando Barrios Caullieres.

Ai

4

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Conformación.
Me encuentro de regreso en mis raíces, reviso mis trabajos pasados, entre risas y otros cursis versos (sueños entonces de adolescente), desde existenciales a lo absurdo, ligerezas tan sentimentales construyendo un carácter (mi mundo).

5

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Acerca de Joel Barrios Dueñas.
Hay poco que decir respecto de mí. Solía ser médico veterinario zootecnista, dedicado principalmente a la atención médica de pequeñas especies y otras mascotas (perros, gatos, peces y tortugas) y a la venta de alimentos y accesorios para mascotas. Trabajo activamente con computadoras personales desde 1990, con las cuales siempre he tenido gran facilidad. Mi primera computadora, fue una Apple IIe que me prestó un amigo, y que eventualmente me vendió. Curiosamente, salvo por una clase que tomé en tercero de secundaria, durante la cual nos impartieron una introducción a la programación en BASIC y el uso general de computadoras Comodore 16, jamás he tomado un curso o capacitación relacionada con la informática o computación. Siempre he sido auto-didáctica. Utilizo GNU/Linux desde Febrero de 1998, y desde Junio de 1999 como única plataforma en mi trabajo diario. Creo que es más que evidente que equivoque de carrera. Gran parte de las razones de mi incursión en el mundo de la informática fueron verdaderamente incidentales. En 1997, nunca hubiera imaginado que me estaría ganado la vida en un ámbito completamente distinto al que me dedicaba durante ese tiempo. Yo ya tenía un consultorio veterinario y negocio pequeño de distribución de alimentos para mascotas, los cuales me aseguraban un ingreso regular y constante. Lamentablemente las condiciones del mercado durante el siguiente año repercutieron de forma importante en mis ingresos, y fue entonces que empecé a buscar alternativas. Durante 1999 me estuve dedicando a la venta de equipo de cómputo y algo de diseño de sitios de red. Fueron algunos meses durante los cuales pude sobrevivir gracias a mis ahorros y a la suerte de contar un con talento poco común con las computadoras.

¿Cómo empecé este proyecto?
A mediados de 1999, mientras visitaba a un buen amigo mío, tuve un encuentro amistoso de unos 10 minutos con quien fue, en algún momento, la persona más importante que ha habido en mi vida, Blanca. Yo subía por un elevador, divagando en mis pensamientos con sutilezas y otros menesteres relacionados con mi profesión de veterinario. Salí del ascensor y me dirigí hacia la puerta de mi amigo. Me detuve unos instantes antes de pulsar el botón del timbre. Había una extraña sensación que circundaba mi mente, como un aroma familiar que no era posible recordar. Mi amigo tenía una reunión con varias personas, algunas de las cuales yo conocía desde hacía algunos años pero que por diversas circunstancias no frecuentaba, así que supuse que era solo la sensación de volver a ver a personas después de mucho tiempo. Toque el timbre y un instante después mi amigo abrió la puerta. Le saludé con un apretón de manos y tras saludarle de la acostumbrada forma cortés, quedé mudo al ver que la chica de la que me había enamorado durante mis años de preparatoria, estaba presente. Frente a mi, sonriendo y mirándome. Habían pasado varios años desde la última vez que nos habíamos visto. Conversamos un poco mientras ella cargaba al perro de mi amigo, al cual me disponía a aplicar una vacuna. Fue difícil dejar de mirarle y lo fue también el gusto de volver a verle de nuevo. Me despedí, pues tenía otro compromiso, pero en mi mente quedó un sentimiento de alegría de ver que aquella persona que había tenido un gran impacto en mi vida, estaba bien, muy hermosa y, en apariencia, feliz.

6

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Fue ese breve encuentro el que me inspiró algunos meses después a crear algo que me proporcionara los medios para lograr hacer algo importante en vida. Fue ese deseo de ser alguien y tener algo que ofrecer si algún día, y si las circunstancias lo permitían, buscar una segunda oportunidad con la persona de la que me había enamorado muchos años atrás y que de alguna forma jamás olvidé. Fue así que tras pasar muchas semanas planeando y tratando de dar forma a las ideas, el proyecto de comunidad que inicié con Linux Para Todos un 27 de agosto de 1999 y que hoy en día continuo con Alcance Libre. Surgió como un sueño, se materializó, se desarrollo y creció más allá de lo que hubiera imaginado. Es irónico que años después, mi reencuentro con Blanca, quien es hoy en día mi esposa y madre de mi hijo Joel Alejandro, coincidiera con el fin del ciclo de Linux Para Todos, aunque también coincide con el inicio de otros proyectos y una nueva etapa con Alcance Libre. Esta obra, que ahora comparto con los lectores, constituye la culminación del trabajo de más de 10 años de investigación y experiencias. Mucho del material que le compone fue escrito durante diferentes etapas de mi ciclo mientras fui propietario y administrador de Linux Para Todos. El fin de dicho ciclo me da la oportunidad de explorar otras áreas de la informática desde un diferente enfoque, mismo que se verá reflejado en el material actualizado que compone esta obra. Nunca me ha interesado ser famoso o un millonario. Respecto del futuro, tengo una percepción distinta acerca de trascender más allá de los recuerdos familiares y trascender en la historia. Tal vez algún día, tal vez cien años después de haya muerto, se que de alguna forma mi legado en la historia será a través de todo lo que escribí y las cosas que pensaba y aquellas en las que creía.

7

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Currículo.
Datos personales
• • • •

Nombre: Joel Barrios Dueñas. Año y lugar de nacimiento: 1970, México, Distrito Federal. Sexo: masculino. Estado civil: Unión Libre.

Escolaridad
• • •

Secundaria: Colegio México (Acoxpa). 1982-1985 Preparatoria: Instituto Centro Unión. 1985-1988 Facultad de Medicina Veterinaria y Zootecnia, U.N.A.M. 1989-1993

Empleos en los que me he desempeñado.

• • • •

1993-1999 • Mi propia sub-distribuidora de alimentos y accesorios para mascotas. Dirección general. • Visitador Médico y asesor en informática. Distribuidora de Alimentos para Pequeñas Especies (Dialpe). Junio 1997 - Noviembre 1997. • Consultor externo de Dialpe 1998 – 1999. 1999 a 2006: • Fui el creador, director y administrador LinuxParaTodos.net. Dicho dominio fue tomado hostilmente por mi ex-socio quien se quedó con todo y literalmente me dejó en la calle. Dicha empresa continua comercializando mi trabajo violando la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1, la cual explícitamente prohíbe la explotación comercial de material sin la autorización del autor. • Asesoría y consultoría en GNU/Linux. • Capacitación en GNU/Linux. 2002 - 2003: • Director Operativo Grupo MPR S.A. de C.V. (Actualmente Buytek Network Solutions) 2002 a 2006: • Director del proyecto LPT Desktop. 2004 a 2006: • Director Operativo de la unidad Linux de Factor Evolución S.A. de C.V. 2007 a la fecha: • Director de proyecto AL Desktop (descartado). • Director de proyecto AL Server. • Director de proyecto ALDOS. • Fundador y director de proyecto de AlcanceLibre.org • Director General Alcance Empresarial, S.A. De C.V. • Director del área de soporte técnico de Buytek Network Solutions.

Capacidades
• • • • • •

Inglés 97.5% Ensamble, configuración y mantenimiento de computadoras personales. Lenguaje HTML 4.0 Lenguaje CSS 1.0 Programación BASH Instalación, configuración y administración de Linux y servicios que trabajan sobre éste (Samba, Apache, Sendmail, Postfix, ClamAV, OpenLDAP, NFS, OpenSSH, VSFTPD, Shorewall, SNMP, MRTG, Squid, etc.)

8

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Índice de contenido
1.¿Que es GNU/Linux?............................................................................................34
1.1.Requerimientos del sistema.................................................................................................35

2.Estándar de Jerarquía de Sistema de Archivos...................................................36
2.1.Introducción.......................................................................................................................... 36 2.2.Estructura de directorios...................................................................................................... 36 2.3.Particiones recomendadas para instalar CentOS, o Red Hat Enterprise Linux.......................38 2.4.Bibliografía........................................................................................................................... 39

3.Procedimiento de instalación de CentOS 6.........................................................40
3.1.Procedimientos..................................................................................................................... 40
3.1.1.Planeación.................................................................................................................................... 40 3.1.2.Obtención de los medios.............................................................................................................. 40 3.1.3.Instalación del sistema operativo................................................................................................. 41

3.2.Posterior a la instalación....................................................................................................... 74

4.Ajustes posteriores a la instalación de CentOS 6................................................75
4.1.Procedimientos..................................................................................................................... 75
4.1.1.Dispositivos de red....................................................................................................................... 75 4.1.2.Localización.................................................................................................................................. 76 4.1.3.Desactivar Plymouth..................................................................................................................... 77 4.1.4.Instalar, y habilitar, el modo gráfico............................................................................................. 79

5.Planificadores de Entrada/Salida en Linux..........................................................83
5.1.Introducción.......................................................................................................................... 83 5.2.Planificadores de Entrada/Salida disponibles en el núcleo de Linux......................................83
5.2.1.Anticipatory.................................................................................................................................. 83 5.2.2.CFQ.............................................................................................................................................. 84 5.2.3.Deadline....................................................................................................................................... 85 5.2.4.Noop............................................................................................................................................. 86

5.3.¿Qué planificador de Entrada/Salida elegir?..........................................................................87 5.4.Bibliografía........................................................................................................................... 88

6.Utilizando el disco de rescate de CentOS 6........................................................89
6.1.Procedimientos..................................................................................................................... 89

7.Iniciando el sistema en nivel de ejecución 1 (nivel mono-usuario)...................100
7.1.Introducción........................................................................................................................ 100 7.2.Procedimientos................................................................................................................... 100

8.Cómo compilar el núcleo (kernel) de GNU/Linux en CentOS.............................106
8.1.Introducción........................................................................................................................ 106
8.1.1.Un ejemplo del porque conviene recompilar el núcleo...............................................................106

8.2.Procedimientos................................................................................................................... 107
8.2.1.Determinar el sustento físico y controladores............................................................................. 107 8.2.2.Instalación el equipamiento lógico necesario.............................................................................109 8.2.3.Obtener el código fuente del núcleo........................................................................................... 110 8.2.4.Configuración del núcleo............................................................................................................ 113

9

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

9.Gestión de espacio de memoria de intercambio (swap) en GNU/Linux............120
9.1.Introducción........................................................................................................................ 120
9.1.1.Algo de historia.......................................................................................................................... 120 9.1.2.¿Qué es y como funciona el espacio de intercambio?.................................................................120 9.1.3.Circunstancias en lasque se requiere aumentar la cantidad de memoria de intercambio...........120

Procedimientos......................................................................................................................... 121
9.1.4.Cambiar el tamaño de la partición.............................................................................................. 121 9.1.5.Crear un archivo para memoria de intercambio......................................................................... 121

9.2.Procedimientos................................................................................................................... 121
9.2.1.Activar una partición de intercambio adicional...........................................................................121 9.2.2.Utilizar un archivo como memoria de intercambio......................................................................122 9.2.3.Optimizando el sistema, cambiando el valor de /proc/sys/vm/swappiness..................................123

10.Procedimientos de emergencia......................................................................125
10.1.Introducción...................................................................................................................... 125 10.2.Disco de rescate............................................................................................................... 125 10.3.Verificación de la integridad del disco..............................................................................126 10.4.Asignación de formato de las particiones.........................................................................127

11.Gestión de volúmenes lógicos........................................................................129
11.1.Introducción...................................................................................................................... 129 Procedimientos......................................................................................................................... 129
11.1.1.Crear un volumen lógico a partir de un disco duro nuevo.........................................................129 11.1.2.Añadir un volumen físico a un volumen lógico existente, a partir de espacio libre sin particionar en un disco duro.................................................................................................................................. 132 11.1.3.Quitar una unidad física a un volumen lógico........................................................................... 135

11.2.Bibliografía....................................................................................................................... 137

12.Optimización de los sistemas de archivos ext3 y ext4...................................139
12.1.Introducción...................................................................................................................... 139
12.1.1.Acerca de Ext3......................................................................................................................... 139 12.1.2.Acerca de Ext4......................................................................................................................... 139 12.1.3.Acerca del registro por diario (journaling)................................................................................ 139

12.2.Procedimientos................................................................................................................. 140
12.2.1.Utilizando el mandato e2fsck.................................................................................................... 140 12.2.2.Opciones de montado............................................................................................................... 141 12.2.3.Convirtiendo particiones de Ext3 a Ext4................................................................................... 143 12.2.4.Eliminando el registro por diario (journal) de Ext4....................................................................145

12.3.Bibliografía....................................................................................................................... 147

13.Cifrado de particiones con LUKS.....................................................................148

13.1.Introducción...................................................................................................................... 148 13.2.Equipamiento lógico necesario.........................................................................................148 13.3.Procedimientos................................................................................................................. 148

14.Cómo configurar y utilizar Sudo......................................................................151
14.1.Introducción...................................................................................................................... 151
14.1.1.Historia..................................................................................................................................... 151

14.2.Equipamiento lógico necesario.........................................................................................152
14.2.1.Instalación a través de yum...................................................................................................... 152 14.2.2.Instalación a través de Up2date............................................................................................... 152

14.3.Archivo /etc/sudoers......................................................................................................... 152
14.3.1.Cmnd_Alias............................................................................................................................... 152 14.3.2.User_Alias................................................................................................................................. 153 14.3.3.Host_Alias................................................................................................................................. 153 14.3.4.Runas_Alias.............................................................................................................................. 153

10

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

14.4.Candados de seguridad.................................................................................................... 153 14.5.Lo que no se recomienda.................................................................................................. 154 14.6.Facilitando la vida a través de ~/.bash_profile..................................................................154

15.Cómo crear cuentas de usuario......................................................................156
15.1.Introducción...................................................................................................................... 156 15.2.Procedimientos................................................................................................................. 156
15.2.1.Creando una cuenta en el modo de texto: useradd y passwd...................................................156 15.2.2.Eliminar una cuenta de usuario................................................................................................ 158

15.3.Manejo de grupos............................................................................................................. 159
15.3.1.Alta de grupos.......................................................................................................................... 159 15.3.2.Alta de grupos de sistema........................................................................................................ 159 15.3.3.Baja de grupos......................................................................................................................... 159 15.3.4.Asignación de usuarios existentes a grupos existentes............................................................159

15.4.Comentarios finales acerca de la seguridad.....................................................................159 15.5.Apéndice: Configurando valores predefinidos para el alta de cuentas de usuario............161
15.5.1.Archivo /etc/default/useradd para definir variables utilizadas por el mandato useradd............161 15.5.2.Directorio /etc/skel como molde para crear los directorios de inicio de los usuarios.................162

15.6.Apéndice: Ejercicio: Creando cuentas de usuario.............................................................163
15.6.1.Introducción............................................................................................................................. 163 15.6.2.Procedimientos......................................................................................................................... 163

16.Breve lección de mandatos básicos................................................................165
16.1.Introducción...................................................................................................................... 165 16.2.Procedimientos................................................................................................................. 165
16.2.1.Visualizando contenido de archivos.......................................................................................... 171 16.2.2.Bucles....................................................................................................................................... 176 16.2.3.Aliases...................................................................................................................................... 178 16.2.4.Gestión de archivos zip, tar, tar.gz y tar.bz2............................................................................ 179 16.2.5.Apagado y reinicio de sistema.................................................................................................. 180

17.Funciones básicas de vi..................................................................................182
17.1.Introducción...................................................................................................................... 182 17.2.Procedimientos................................................................................................................. 182
17.2.1.Instalación y paquetes adicionales........................................................................................... 182

17.3.Conociendo vi................................................................................................................... 182 17.4.Otras combinaciones de teclas.........................................................................................195 17.5.Más allá de las funciones básicas.....................................................................................196

18.Introducción a sed..........................................................................................197
18.1.Introducción...................................................................................................................... 197
18.1.1.Acerca de sed........................................................................................................................... 197

18.2.Procedimientos................................................................................................................. 197 18.3.Bibliografía....................................................................................................................... 201

19.Introducción a AWK.........................................................................................202
19.1.Introducción...................................................................................................................... 202
19.1.1.Acerca de AWK......................................................................................................................... 202 19.1.2.Estructura de los programas escritos en AWK.......................................................................... 202

19.2.Procedimientos................................................................................................................. 203

20.Permisos del Sistema de Archivos..................................................................208
20.1.Introducción...................................................................................................................... 208 20.2.Notación simbólica........................................................................................................... 208 20.3.Notación octal................................................................................................................... 209
20.3.1.Permisos adicionales................................................................................................................ 209 11

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

20.4.Ejemplos........................................................................................................................... 210
20.4.1.Ejemplos de permisos regulares............................................................................................... 210 20.4.2.Ejemplos de permisos especiales............................................................................................. 211

20.5.Uso de chmod................................................................................................................... 211
20.5.1.Opciones de chmod.................................................................................................................. 212 20.5.2.El mandato chmod y los enlaces simbólicos............................................................................. 212

21.Cómo utilizar el mandato chattr.....................................................................213
21.1.Introducción...................................................................................................................... 213
21.1.1.Acerca del mandato chattr....................................................................................................... 213

21.2.Opciones........................................................................................................................... 213 21.3.Operadores....................................................................................................................... 214 21.4.Atributos........................................................................................................................... 214 21.5.Utilización......................................................................................................................... 215
21.5.1.Ejemplos................................................................................................................................... 215

22.Creando depósitos yum..................................................................................216

22.1.Introducción...................................................................................................................... 216 22.2.Procedimientos................................................................................................................. 216

23.Uso de yum para instalar y desinstalar paquetería y actualizar sistema........218
23.1.Introducción...................................................................................................................... 218 23.2.Procedimientos................................................................................................................. 218
23.2.1.Actualizar sistema.................................................................................................................... 218 23.2.2.Búsquedas................................................................................................................................ 218 23.2.3.Consulta de información........................................................................................................... 218 23.2.4.Instalación de paquetes............................................................................................................ 219 23.2.5.Desinstalación de paquetes...................................................................................................... 219 23.2.6.Listado de paquetes................................................................................................................. 220 23.2.7.Limpieza del sistema................................................................................................................ 220

24.Cómo utilizar RPM...........................................................................................221
24.1.Introducción...................................................................................................................... 221
24.1.1.Acerca de RPM.......................................................................................................................... 221

24.2.Procedimientos................................................................................................................. 221
24.2.1.Reconstrucción de la base de datos de RPM............................................................................. 221 24.2.2.Consulta de paquetería instalada en el sistema.......................................................................222 24.2.3.Instalación de paquetes............................................................................................................ 224 24.2.4.Desinstalación de paquetes...................................................................................................... 230

25.Cómo crear paquetería con rpmbuild.............................................................232
25.1.Introducción...................................................................................................................... 232 25.2.Instalación del equipamiento lógico necesario.................................................................232 25.3.Procedimientos................................................................................................................. 233
25.3.1.Creación de la clave GnuPG...................................................................................................... 233 25.3.2.Configuración y creación de una jaula para rpmbuild...............................................................233 25.3.3.Creación de los archivos*.spec................................................................................................. 235 25.3.4.Uso del mandato rpmbuild....................................................................................................... 238

25.4.Ejercicios.......................................................................................................................... 240
25.4.1.Paquete RPM binario y el paquete *.src.rpm correspondiente creando el archivo *.spec necesario ............................................................................................................................................................ 240 25.4.2.Paquete RPM binario y el paquete *.src.rpm correspondiente realizando limpieza de directorio, firma digital......................................................................................................................................... 241

26.Cómo instalar y utilizar ClamAV en CentOS....................................................242
26.1.Introducción...................................................................................................................... 242
12

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

26.1.1.Acerca de ClamAV.................................................................................................................... 242

26.2.Equipamiento lógico necesario.........................................................................................242
26.2.1.Creación del usuario para ClamAV............................................................................................ 242 26.2.2.Instalación a través de yum...................................................................................................... 243

26.3.Procedimientos................................................................................................................. 243
26.3.1.SELinux y el servicio clamav-milter.......................................................................................... 243 26.3.2.Configuración de Freshclam..................................................................................................... 243 26.3.3.Uso básico del mandato clamscan............................................................................................ 244

27.Cómo asignar cuotas de disco en GNU/Linux..................................................246
27.1.Introducción...................................................................................................................... 246
27.1.1.Acerca de las cuotas de disco................................................................................................... 246 27.1.2.Acerca de Inodos...................................................................................................................... 246 27.1.3.Acerca de Bloques.................................................................................................................... 246

27.2.Equipamiento lógico necesario.........................................................................................247
27.2.1.Instalación a través de yum...................................................................................................... 247

27.3.Procedimientos................................................................................................................. 247
27.3.1.Edquota.................................................................................................................................... 248

27.4.Comprobaciones............................................................................................................... 250

28.Introducción a TCP/IP......................................................................................252
28.1.Introducción...................................................................................................................... 252 28.2.Niveles de pila.................................................................................................................. 252
28.2.1.Modelo TCP/IP........................................................................................................................... 253 28.2.2.Modelo OSI............................................................................................................................... 258

29.Introducción a IP versión 4..............................................................................260
29.1.Introducción...................................................................................................................... 260 29.2.Direcciones....................................................................................................................... 260
29.2.1.Representación de las direcciones............................................................................................ 260

29.3.Asignación........................................................................................................................ 261
29.3.1.Bloques reservados.................................................................................................................. 261

29.4.Referencia de sub-redes de IP versión 4...........................................................................263 29.5.Referencias....................................................................................................................... 264

30.Cómo configurar los parámetros de red en Linux...........................................265
30.1.Introducción...................................................................................................................... 265 30.2.Procedimientos................................................................................................................. 265
30.2.1.Detección y configuración del sustento físico (hardware).........................................................265 30.2.2.NetworkManager...................................................................................................................... 266 30.2.3.Asignación de parámetros de red............................................................................................. 267 30.2.4.Agregar rutas estáticos............................................................................................................ 268 30.2.5.Función de Reenvío de paquetes para IP versión 4...................................................................269 30.2.6.Comprobaciones....................................................................................................................... 269 30.2.7.Alta de direcciones IP virtuales................................................................................................. 270 30.2.8.La función Zeroconf.................................................................................................................. 270

Ejercicios.................................................................................................................................. 271
30.2.9.Rutas estáticas......................................................................................................................... 271 30.2.10.Ejercicio: Direcciones IP virtuales........................................................................................... 274

31.Cómo configurar VLANs en GNU/Linux............................................................278
31.1.Introducción...................................................................................................................... 278 31.2.Equipamiento lógico necesario.........................................................................................278 31.3.Procedimientos................................................................................................................. 278
31.3.1.Administrando direcciones IP de las VLANs a través de un servidor DHCP................................281

13

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

32.Cómo configurar acoplamiento de tarjetas de red (bonding).........................283
32.1.Introducción...................................................................................................................... 283 32.2.Procedimientos................................................................................................................. 283
32.2.1.Archivo de configuración /etc/modprobe.conf........................................................................... 283 32.2.2.Archivo de configuración /etc/sysconfig/network-scripts/bond0................................................285 32.2.3.Iniciar, detener y reiniciar el servicio network.......................................................................... 286

32.3.Comprobaciones............................................................................................................... 286 32.4.Bibliografía....................................................................................................................... 287

33.Cómo conectarse a una red Wifi desde la terminal........................................288
33.1.Introducción...................................................................................................................... 288
33.1.1.¿Que es WPA? ¿Por qué debería usarlo en lugar de WEP?........................................................288

33.2.Equipamiento lógico necesario.........................................................................................289
33.2.1.Instalación a través de yum...................................................................................................... 289 33.2.2.Preparativos............................................................................................................................. 289 33.2.3.Autenticando en el punto de acceso......................................................................................... 290 33.2.4.Asignando parámetros de red a la interfaz............................................................................... 291

33.3.Bibliografía....................................................................................................................... 293

34.Cómo utilizar lsof............................................................................................294
34.1.Introducción...................................................................................................................... 294
34.1.1.Acerca de lsof........................................................................................................................... 294

34.2.Procedimientos................................................................................................................. 294

35.Cómo utilizar Netcat (nc)................................................................................297
35.1.Introducción...................................................................................................................... 297
35.1.1.Acerca de Netcat...................................................................................................................... 297

35.2.Equipamiento lógico necesario.........................................................................................297
35.2.1.Instalación a través de yum...................................................................................................... 297 35.2.2.Instalación a través de Up2date............................................................................................... 297

35.3.Procedimientos................................................................................................................. 297
35.3.1.Conexiones simples.................................................................................................................. 297 35.3.2.Revisión de puertos.................................................................................................................. 298 35.3.3.Creando un modelo cliente servidor......................................................................................... 299 35.3.4.Transferencia de datos............................................................................................................. 299

36.Como utilizar Netstat......................................................................................300
36.1.Introducción...................................................................................................................... 300
36.1.1.Acerca de Netstat..................................................................................................................... 300

36.2.Procedimientos................................................................................................................. 300

37.Cómo utilizar ARP...........................................................................................305
37.1.Introducción...................................................................................................................... 305
37.1.1.Acerca de ARP.......................................................................................................................... 305

37.2.Procedimientos................................................................................................................. 305

38.Introducción a IPTABLES.................................................................................308
38.1.Introducción...................................................................................................................... 308
38.1.1.Acerca de Iptables y Netfilter.................................................................................................... 308

38.2.Equipamiento lógico necesario.........................................................................................308
38.2.1.Instalación a través de yum...................................................................................................... 308

38.3.Procedimientos................................................................................................................. 308
38.3.1.Cadenas................................................................................................................................... 308 38.3.2.Reglas de destino..................................................................................................................... 309 38.3.3.Políticas por defecto................................................................................................................. 309 38.3.4.Limpieza de reglas específicas................................................................................................. 309 14

......................3...........................................CBQ compartiendo ancho de banda entre clases................ 316 39.........Samba............. 327 41........Parámetros de filtración................................................................................330 41................................................CBQ sin compartir ancho de banda entre clases..........3......... 334 41............ 315 39...................................................................................1.....................................SELinux y el servicio dhcpd..............Acerca de dhcp por Internet Software Consortium...........Otros servicios.............................5..4............................................................................. detener y reiniciar el servicio iptables.......................................6.........................................................................................Parámetro de clase ISOLETED......333 41......................................................................4....6................ el servicio dhcpd...........3.... 320 39...........4...............3..................4............ 323 40..............................................................2...................................................................Procedimientos...........................2.335 41..... 317 39................4.......................Limitar el acceso por dirección MAC....................................Acerca de cbq....2.......Servicios de FTP....................2............4............1.....................................................................Eliminar reglas...........................................................3..........................3.......................................Instalación a través de yum.......................5................................Cómo utilizar CBQ.................................3....................................................... 324 40.........................................1..............................5.........3................... 324 40....3.......................................................................4............................ 331 41..................1............................................... 313 39.....................................................1............4............... 318 39......... detener y reiniciar el servicio cbq.......................4...................... 322 39..............................................conf..............................................331 41............. 330 41.............Agregar el servicio iptables al arranque del sistema.....................5................................Introducción....................................7............ 326 40...... 309 Ejemplos de reglas..........................1..........Iniciar... 331 41.....Iniciar..................... 325 40...................................................4.............................................................Configuración para funcionar con DNS dinámico.....................................Introducción.....321 39.................................................... 310 38........1...............Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 38...............Equipamiento lógico necesario....4...........4......Bibliografía....Parámetro de clase PRIO.............................................................................................................4...............8.......Instalación a través de yum........8..... Inc...................9..................4....................................1............Modificaciones necesarias en el muro cortafuegos....................................................Apache.....................Mostrar la lista de cadenas y reglas.............. 316 39..............................¿Qué es SELinux?.....................................5........... 318 39...................................................................... 329 41........Iniciar.................2.................................................... 314 39.........2........................ 326 40......................................................................................3............................................................................................................Comprobaciones desde cliente DHCP................4...........................313 38...........................................................Agregar el servicio dhcpd al inicio del sistema.........................................Procedimientos......................................................1........................... 331 41.......................................................Comprendiendo la velocidad binaria (bit rate).........................314 39.................................................................................................330 41...Agregar el servicio cbq al arranque del sistema......................................2.. 313 38......... 316 39.........3....................... 311 38...............................4.3..4......................4............................................................1.............. 329 41....Mandato setsebool..............324 40................4...............................................................................4.......................................................4..2.................4................................................. 315 39...........Preparativos...... 318 39.......... detener............1............Reglas específicas...........314 39.......5................................... 314 39................322 39....... y reiniciar................. 315 39...7.....5..3.....4................................Acerca del protocolo DHCP...........Instalación a través de up2date..........................................330 41.....Parámetro de clase WEIGHT..................Parámetro de clase LEAF................................5.Parámetro de clase BOUNDED....................................315 39.....2.............................................. 334 41.............5.......329 41.................................Archivo de configuración dhcpd.. 324 40.........................Parámetro DEVICE....................................................Parámetro de clase PARENT....OpenVPN...................Equipamiento lógico necesario........6............................................. 315 39................4.............................4........................................ 326 40..........Cómo configurar un servidor DHCP en una LAN..........Archivo de configuración /etc/sysconfig/dhcpd....................................................................................4............................................4..1....................Mandato getsebool...5....................339 15 .................................................................................................... 325 40........1............Introducción...................................................................1...........Introducción a SELinux en CentOS 5 y Fedora........................................................................2..............4...........................3.............................................7........................................ 311 38......................................................................

..............................................1........................................... 354 43.......................................................................Procedimientos.........................2.......................... 342 de vsftpd......................4.........................................................................13......... 344 42............4.......1..........5................................................................Archivos de configuración............................................... 342 42............ 351 SFTP.................... 341 de OpenSSL.....................Introducción....................................................341 42......................................................... 342 42.........................................................3..Acerca 43.......3..................... 344 42...............................1................................7..............................1.............................................................................. 353 X11Forwarding.........................................SELinux y el servicio sshd...........345 42......Parámetro 43.........Acerca 42.........................Iniciar..............................2...................................3.....1.......4..........................6....................................................... 352 43............................................1.................................................................Modificaciones necesarias en el muro cortafuegos.................................................349 42..........................................Instalación y configuración vsftpd (Very Secure FTP Daemon).......2.........2.........4......4.....................................4....................Introducción............................................4.............................. 341 42......................................................................................................Parámetro local_enable............ 353 43...............4.................................................................................Introducción...........................................1.........Parámetro 43..6............................. 343 42..................................Equipamiento lógico necesario.......................................................................Acerca de de de de SSH.....2..........Archivo /etc/vsftpd/vsftpd.......... 344 42...........4............................ 344 42.............................. 354 43.........................................Instalación a través de yum.Parámetro write_enable...........................................Parámetro anon_upload_enable..............Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 42....... 346 42.......................Parámetro anonymous_enable.....4.........................1............ 352 43.................................... 351 OpenSSH.... 345 42..............2...................351 43..Transferencia de archivos a través de SFTP...............342 42.360 44........................................5................... 354 43...............4............3........Política 43.....................................349 42..7.................................................. 341 del protocolo FTPS..........3..........353 43....1.......... 351 43.........Instalación a través de yum.............................................................7............352 43......................................................................8.......7...................1.............3.. 343 42............................... 360 44.....1.......1.............. 343 42.................Agregar el servicio vsftpd al arranque del sistema....Acerca 42............. detener..................Estableciendo jaulas para los usuarios: parámetros chroot_local_user.....................................11............................1...................3..................................................................1...................2...........................................2...........................Acerca 42.... 342 de X.............................Parámetro anon_mkdir_write_enable...............................6.....................................................5....................1.2..............................................2............... 360 44.....3...............................................................................................................Probando OpenSSH. y el servicio vsftpd.5..........352 43..............................................................................................5.Parámetro Port..........2..................................................................1.....................................................................3.......... 353 PermitRootLogin...Aplicando los cambios............5.....................................4........... 360 44......... 352 allow_ssh_keysign.....................................Modificaciones necesarias en el muro cortafuegos...........................................................1....5....342 42.........................Acerca del protocolo FTP.................1....................................9.................................OpenSSH con autenticación a través de firma digital.......................... 344 42.......................................................................... 352 fenced_can_ssh........................................4..................4...... 355 43.................................Archivos de configuración...... y reiniciar el servicio vsftpd......................................5.........Procedimientos...........Acerca 43....Política 43.............................................Política ssh_chroot_rw_homedirs........8.................................. 341 de RSA..........................................................................................2...........5........4...........................................Acerca 43...........................................................SELinux.............................5..........................12..................Control del ancho de banda...............................1......................................Acerca 42......................3.....Parámetro 43............................. 351 43.............................................................................Equipamiento lógico necesario... 357 43............................................Acceso a través de intérprete de mandatos................................................................Transferencia de archivos a través de SCP............................................conf.........4.................................. 353 AllowUsers.....................10..Configuración de OpenSSH..........................................1......................................................................................... y chroot_list_file......................................................Soporte SSL/TLS para VFSTPD......................................Parámetro ftpd_banner......... 352 ssh_sysadm_login.............4.........349 43.....................................................................Acerca 42..2.............4................509..Modificaciones en el Servidor remoto.Procedimientos...........................2..3....... 344 42......................................................................358 44......4...7....... 353 ListenAddress........................................Modificaciones en el cliente..............................................................1......... 351 SCP...... 361 16 ........ 354 43....................3......................................................1..............................Política 43..........4................Parámetro 43....................

.....Procedimientos...1...... 376 48....3................... 365 45.................................... 386 49..5.................... 377 48............................2.......................................................................6...................................Compartir un volumen NFS...............................................2....4......................................1...............................374 48............................................................Introducción..................................................4............................................388 17 ...........Introducción....................7.............................Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 44...........Aplicando los cambios.............................1.Comprobaciones..............2........ 370 47..........370 47............................2..1.................................................................conf...........................................4................................................................382 48.......................... y añadirlo al arranque del sistema................El archivo lmhosts....................... 376 48........2....................conf......................Cómo configurar un servidor NFS..... 366 45........................3.............1...................................Modo gráfico....................................................................Cómo configurar Samba denegando acceso a ciertos archivos....380 48......................1...............................................................................2........................1..................................................... 387 50........Introducción.................................................................................3....................3. 364 45......................386 49................Instalación de GNU/Linux a través de un servidor NFS....3.....1.366 46..................................... 377 48........................................... 370 47.................................................... 386 49.............................................................................................Archivo de configuración /etc/ntp...................................................................1.............................5.......................................... 364 45....................3...................................................................................... 364 45...................... 363 45........................................ 375 48.....................................3......... 370 47.............1...............378 48.................375 48............ 375 48.....Cómo configurar el sistema para sesiones gráficas remotas................Cómo configurar Samba básico...............................Acerca del protocolo SMB........375 48........... 364 45...........................................................2.............................................367 46..............................Configurando las máquinas clientes...........Sesión gráfica remota con GDM...................Agregar el servicio ntpd al arranque del sistema..................................................Instalación a través de up2date...........................................1......................................................................................1...........................................................................363 45.......................... 380 48................................366 45..............Acerca de UTC.....3...3......... 384 49.....3.................................................................................2...........3.......Instalación a través de yum..... 372 47........ 383 48....................... 363 45...........................................................3.........2..1.........SELinux y el servicio smb. 370 47.....3.............Introducción..................................3..............................1.......Herramienta ntpdate................... 367 46.........Acerca de NTP....2..............2.....................Procedimiento...Equipamiento lógico necesario.......................Instalación del equipamiento lógico necesario......................................Parámetros principales del archivo smb......3................Cómo configurar NTP..................... detener y reiniciar el servicio ntpd.........................................1. 376 48.......................Procedimientos......................Comprobaciones................... 383 48............................Iniciar..Iniciar el servicio.................Introducción..........................................................................Procedimientos...............................2.................................................................................Instalación a través de yum...........1...............5..............................................................Alta de cuentas de usuario.........Procedimientos.............Cómo configurar Samba con Papelera de Reciclaje.............Acerca de Samba.......5......... 362 45.........................................................Modificaciones necesarias en el muro cortafuegos....................................2..................................................................... 386 49....1...................................................2......3.......................................................Compartiendo directorios a través de Samba.............................................................2.................................................................. 367 46....................364 45............................... 367 47.........................................................1.............................................................................................................. 371 47.......................Impresoras en Samba........................................................... 379 48..................4.......................................................................................................2..........................2...............................................4..1...................................Comprobaciones..............4.......................................3.........................................................Configurando la seguridad........................Equipamiento lógico necesario.................Modo texto.................................................Parámetro remote announce.........................................3......3.......... 364 45.....2.......3............................................. 375 48...........................

.....................................1..................Preparativos.....................................................Configuración de Procmail......Acerca de Samba-Vscan.............................................3....Cómo configurar Samba como cliente o servidor WINS........................................................................................Parámetros wins server........................................1....Referencias..............................................................................................Comprobaciones.............................................1.......2.................2...........................Aplicando los cambios......................Equipamiento lógico necesario............SELinux y el servicio spamasssassin..........5.............................. 421 57..................Incrementando las capacidades de filtrado.... 399 52...Cómo instalar y configurar Samba-Vscan en CentOS 5....Acerca de SpamAssassin...3................... 402 54..cf.............................. 390 50................Parámetro name resolve order..... 417 56.......................Introducción.............................................................................................2.................................Procedimientos...3..................1... 388 50........................................................................................1................................................1.2................Configuración básica de Sendmail.....................Introducción a los protocolos de correo electrónico............Parámetros max wins ttl y min wins ttl.......... 401 54............................2......................................... 402 54...................................5............................................................................. 390 51......Otros ajustes de SELinux..1....................................... 399 53.................................................... 400 53.................................................................................................................................................Instalación a través de yum.......2..6.....Introducción................................. 402 54..........Procedimientos..............Optimizando Spamassassin...................... 404 54..........................Configuración del archivo /etc/mail/spamassassin/local................................Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 50.............................................................Políticas de SElinux............... 398 52..........................................................................1....................1........2.........................Introducción.4..................................................................................................................................2...............................................397 52.........................................412 55..................................................................2....................2................................................................1.............................................Procedimientos........................... 418 56....Acerca de Procmail....... 413 56.... 411 54......400 53......................2.................4..............3..................3...... 397 52..410 54....................................417 56.............................. 398 52.........2.......................................Introducción..........2.......................... 397 52.......Parámetro max ttl..............................402 54............Parámetro wins proxy..... y wins support.............................................. 393 52.........................6........................Parámetro dns proxy. 406 54......................... 402 54....3............................................................................2............1...........................................................................4...................................Configuración simple para Antivirus y Antispam..............3............................................2.................... Pyzor........ 393 51.....................Introducción............Protocolos utilizados........................ 388 50..........................................393 51..................La ingeniería social y los [incorrectos] hábitos del usuario.............................................Procedimientos..........Iniciar el servicio y añadirlo a los servicios de arranque del sistema............... 403 54............................2....................................... 393 51..............4............Procedimientos......................6..........................6..................1......................... Spamassassin-FuzzyOcr y poppler-utils?........................................422 18 ........................................... 406 54...............407 54.......4..... 398 52..... 417 56.........Aplicando los cambios...¿Por qué Perl-Mail-SPF...1..............................1.......................................................................................................402 54............406 54............................................................................................... 398 52................1................................................................................ configuración y optimización de Spamassassin........................1...............................................................................2............................................................................. Perl-Razor-Agent...................Instalación.....2.......... 397 52..............................2...................393 51.........403 54...3.................................1...........................................................................1.........Introducción..............................Instalación de equipamiento lógico necesario.....................Consejos para sacarle mejor provecho a Spamassassin utilizando sa-learn.....4................4.....................................Recomendaciones para evitar ser víctimas de la ingeniería social a través del correo electrónico......409 54..413 55................................

.3................ 449 59........................Introducción...................................Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 57.........446 59.............................2................................. 446 59................................................................. 448 59.........6.......................................4........................................................................................ 448 59.. y sendmail.........................3......................... 435 OpenSSL.. 455 60.....3.......................................5................................Procedimientos...... 457 19 ................................................................ 451 59................ 436 58.......................7....................................................4..........................2..............4......................................... 423 57.............433 57..............................Configuración de Sendmail......2..423 57.....................................2............................Acerca de de de de DSA.................................3.Cómo configurar Sendmail y Dovecot con soporte SSL/TLS.......................................1............ 455 60.............................................1............................................................................................................................. 454 60........... 435 58..........1..5.........................................................confCONNECTION_RATE_THROTTLE.......................Dominios a administrar.....................1......423 Instalación a través de yum..........................Acerca 58.................................................. 455 60..... 449 59................. 422 57............5........Introducción....................................3...2..2....................................... 434 58.................................................Redundancia del servidor de correo.. 435 RSA......................................................................................... 441 58.....................................................................7.................................................................................................457 61............................ 454 60....................................Utilizando nc..............................................Verificando el servicio....................................Configuración Mozilla Thunderbird...........Alias de la cuenta de root.Configuración avanzada de Sendmail.................................Cómo instalar y configurar Postfix y Dovecot con soporte para TLS y autenticación.....................................................................Alta de cuentas de usuario.........3.....................................1..5..Introducción.....................1...................................2.................1...........................................3.1....................Opciones avanzadas de seguridad para Sendmail.........1.........Acerca de Sendmail.......1..............Generando firma digital y certificado....................confMAX_HEADERS_LENGTH...................2...3..3................. 438 58................................................... 423 57.......Definiendo Sendmail como agente de transporte de correo predeterminado.... 422 57.............2...........3..............2.......................................................................Comprobaciones...................................1.....................3..2...................1..................3...........................................................Lecturas posteriores...........................................Acerca de Dovecot.......................1............................................................................................................................ y asignación de claves de acceso.............................Funciones................................. 441 58................................... 446 59..................... 454 60.....Configuración de Dovecot... 456 61... ....Introducción........................................................3.....................................................................3...confMAX_RCPTS_PER_MESSAGE............................2........................................................................Añadir al inicio del sistema e iniciar servicios dovecot....................................................................................3.......................................3........... 452 60.....3....Procedimientos.........................................1........................................................................... 457 61....confMAX_MESSAGE_SIZE............... 440 58..2...............................................8.............................4................................Antes de continuar... 454 60........................................... 428 57...........3....................................................1.......... 455 60..........................Modificaciones necesarias en el muro cortafuegos..............................................1.................................................... y Cyrus SASL...4................................................2................2............................Servidor de correo intermediario............1................................ 436 58....................3..1.................................................................................................................. 436 58........................................................................ 425 57...................Acerca 58.............................................................................2....................................................................................confBAD_RCPT_THROTTLE.....................................424 57..................Encaminamiento de dominios........... 425 57.................................................2...5.........Pruebas de envío de correo.............Utilizando mutt............................ 451 59.................................................1...... .......................................2.....................Configuración de Dovecot..........435 58.........454 60....1............. 422 57..............................1....confMAX_DAEMON_CHILDREN.....................................................confPRIVACY_FLAGS...Acerca de SASL.......................2.........................................................Control de acceso........................................2.......................................2..1.....509.Equipamiento lógico necesario.................433 57..................................................Acerca 58.........................3...................................................Acerca de Postfix................2.................... 432 57..................................................................... 427 57........6.5.......Configuración de funciones de Sendmail................. 443 59.....................Usuarios Virtuales.............................. 435 X........................................................Configuración de GNOME Evolution.................................... 422 57..................................

..................... 467 61..............2.............3.........................6........ 479 63..2.............. 485 64..............................478 63...2........................................................3........................473 62...1...................4................ 458 61......Cómo instalar y configurar Amavisd-new con Postfix en CentOS 5.......................3...........................1.... 484 64..1................................Configuración de Dovecot en CentOS 6...................5......................4.................... 462 61....1.................................................................3..............Acerca 61..................... 458 RSA.......................................1..........Acerca de de de de de de Dovecot................................... 475 62...2..................................................................3......................................459 61.................................................3............1........2........Equipamiento lógico necesario.. y Red Hat Enterprise Linux 6..........SELinux.....486 64.............Comprobaciones........1................................... ........ detener y reiniciar el servicio spamass-milter...................... y Postfix......................... 459 61...........4..............3....................................Acerca 61.................................Modificaciones necesarias en el muro cortafuegos....................................474 62............3............. y Cyrus SASL..................Apéndice: Enviar correo a todos los usuarios del sistema....................................................1............................... 474 62........1...........................3.............Iniciar................................... 486 64........................Iniciar..9........... 469 61.........1..........................................7....................................................2.................................Definiendo Postfix como agente de transporte de correo predeterminado.............3...................Procedimientos.....................Instalación a través de up2date...............509................. 474 62.......................Cómo configurar Cyrus IMAP..Configuración de Amavisd-new.............................................3...................Creación del usuario para ClamAV...........479 63........477 62..............................Integración con Sendmail...Comprobaciones...................................5............................ y añadir éstos al arranque del sistema.................................................. y Red Hat Enterprise Linux 5............Configuración de depósitos YUM para CentOS 5 y Red Hat Enterprise Linux 5.........................1.............................Equipamiento lógico necesario........2...............................Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 61.............................484 64.............. 476 62....................................3...............Acerca 61..... 484 64......................2.............468 61............. 458 X.......................466 61........6....................................................................................................3...............Introducción.....................................1.......474 62.................................................................Introducción........... 483 64.. 457 DSA...................................................................................................... 489 65.............3.............................................................Procedimientos.................................................. 468 61...................................................................................... 484 64... 479 63...................................................................................................................................................................................5...................1...2......8................................................................................. 475 62......................................2..486 64...2....................................................Iniciar servicios..................4...................................................3........ 479 63.........................3...............3.....................................................................4.................................3..........................................1.................... 476 62...........Introducción................................4.............................................................Procedimientos......2....................................A través de terminal....3........................3.......Configuración de SELinux..............2..........................3.................................................................................Soporte para LMTP.........................Requisitos en la zona de reenvío en el servidor DNS..Modificaciones necesarias en el muro cortafuegos............458 61............4....4..3.................................................Procedimientos...465 61..........Acerca de Amavisd-new........485 64.......... 458 OpenSSL....................................................................Acerca 61..3................3..........Agregar el servicio cyrus-imapd al arranque del sistema.........................................................A través de clientes de correo electrónico................................. detener y reiniciar el servicio cyrus-imapd.....Configuración de SELinux........1...............1...................................................5.........2............................................................................................................................................................................2........... 489 20 ........ 457 SASL......................................................................................2.........................Procedimientos...................................................................2..................Configuración de Postfix..........................................7......Cómo configurar Postfix en CentOS 5 para utilizar dominios virtuales con usuarios del sistema...................Acerca de la seguridad................... 468 61........................2...................467 61.......................3.............................475 62.........................................Postfix con dominios virtuales y Amavisd-new......... 459 61...............484 64...................489 65.................................................2.................1..............1...................Alta de cuentas de usuario y asignación de claves de acceso.....Configuración de Dovecot en CentOS 5...................1....Configuración de Postfix.............................................3.467 61..Acerca 61....2........Equipamiento lógico necesario...........Reiniciar el servicio postfix........Instalación a través de yum........ 474 62.................................... 481 63... 486 65..........Configuración de Postfix........................

......................... 490 66..............494 67..........................................2....2...................................2......1....................Acerca de de de de LDAP...........Requisitos previos................ 499 68......................................498 68................................................Cómo configurar un servidor NIS...........................4...........................SELinux y el servicio spamass-milter.....................................Configuración...........3.............................................Procedimientos........................................ 490 66..........................1. 509 70.3............................................1......................................3...............................Procedimientos........................................... 493 67.........................................2................2......Introducción..................................... detener y reiniciar el servicio spamass-milter...................................................................3.Intrucción...........Cómo instalar y configurar el programa vacation para responder avisos automáticos en vacaciones......1................SELinux y el servicio ldap.......................................................................................Equipamiento lógico necesario....3....3....Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 66...........3............1........................................................... 502 68......Archivo /etc/mail/sendmail..............................Requisitos previos................................................................. 491 67............490 66.......Equipamiento lógico necesario........3................1..................... 513 70......2..................................................................1.......2.2..........................................................SELinux........................................................................................... 496 67........Instalación a través de yum...............Archivo /etc/procmailrc.......................................................................................................1..490 66..................Acerca 70.......................................................................Introducción.....1.............. 514 70..................3...................... 513 70.........Cómo configurar spamass-milter....................Equipamiento lógico necesario..........1...............................................................................................................................................493 67.........................................................................................1....2......................3...............Instalación a través de yum................................................................................................Instalación a través de yum...Procedimientos.......................................2.............. 513 70...... 490 66.............................4.......... 512 X.....Acerca de spamass-milter.........................Archivo /etc/sysconfig/spamass-milter........3.......................Archivo /etc/mail/sendmail.......................................................................2..........................................................................................................4..........................................Instalación a través de up2date............ 512 OpenSSL............................................................. 512 70...Cómo configurar clamav-milter.............................................................................. 507 69...mc...........................................................509 69............Configuración del cliente NIS.....mc.........509........2...... 493 67.............Procedimientos..Acerca de SpamAssassin.............................2....................................Configuración del servidor NIS.............................. 515 21 ........Iniciar...... 493 67........................................................................................... 496 67...................................................................................................................................... 512 RSA........................504 69.................................1................................3....1...................................513 Instalación a través de yum......... y el servicio clamav-milter.....497 68...506 69......................2......................................Acerca de clamav-milter..................................................................................................................506 69.... detener.............................3........2............3.2.............3............................................1.Equipamiento lógico necesario.............................. 494 67.....................................................................3....................... 504 68...................................3...............2........................Creación del usuario para ClamAV................................................Creación de directorios........................................ 498 68...............................................................................................................Introducción.................1........ 499 68..........................................................2.................1.................Introducción....................5..................... 494 67......498 68......3.........................................Acerca de ClamAV.....................................3...........3. 498 68......................2... 506 Instalación del equipamiento lógico necesario en el servidor NIS...............................................................................4.............Instalación del equipamiento lógico necesario en el cliente NIS.. y reiniciar el servicio clamav-milter................................................................................................................Cómo configurar OpenLDAP como servidor de autenticación................................................. 503 Archivo /etc/sysconfig/spamassassin........2.............................Procedimientos................................ 498 68................... 496 67.............. 513 70.......2.................1...................Acerca 70.......1. 499 68............................................ 494 67...3..................................................5.........................................512 70.................Acerca 70...................................................................................................Certificados para TLS/SSL..................1............. 494 67.....................................................3.......................... 506 69....................................... 501 68............................Iniciar...................1.........2.....................1.1.........................................................1..........3......................... 498 68..........................................................................

..Cómo configurar OpenLDAP como libreta de direcciones....................3.... 526 71....2........................ 534 71.........................Equipamiento lógico necesario...............Modificaciones necesarias en el muro cortafuegos.3.........................3.......................................................Mozilla Thunderbird...................Procedimientos..............................522 70............................................................................................... 519 70.......509.......2...........................conf.................... 538 72...................................2...........................................................Acerca de MySQL™.......................................................................................... 537 72......... 542 73..1.............................................Cómo instalar y configurar MySQL™.............. 539 72................542 73...........526 71.2.............................................6...............................1................................................................................................5....6....................7...conf... detener y reiniciar el servicio mysqld....2................................1..................................Restauración de datos....................................................3.......................3........................Creación de directorios...........2..............................7......................... 527 71............................526 71...............Instalación a través de yum......................................528 71............Acerca de de de de LDAP en modo SSL/TLS........................................................... 526 71..........2..........................................................................conf..................Respaldo de datos.............................................................................. 528 71...............................................................................Instalación a través de up2date........Instalación a través de up2date.....4...................530 71..3............................ 543 22 ....................... 540 72....525 71...............................................5..............................5................................................................................................................1............... 516 70.................................................2..............................5..............516 70.2..................................2..................Modificaciones necesarias en el muro cortafuegos......................................................................... 527 71...................................535 72......... 536 RSA................................................1...Configuración de Mozilla Thunderbird......Iniciar....1...............Modificaciones necesarias en el muro cortafuegos...............................4....................................1..........................Archivo de esquemas........................... 523 70.................1.............. 527 71.2...2........................................................................2................................Introducción..............3.......................................................2....... 536 X... 542 73...................................................Squirrelmail.......................................................Inicio del servicio ldap...542 73............................................... 543 73.......................... 532 71......Acerca 72...............................Cómo configurar OpenLDAP con soporte SSL/TLS.................. 536 72....................................Administración.................6..............3...........................................................................................................................................................................3.......3....................Procedimientos................................ 537 72.............................1... 534 71...................6.........Acerca 72.......................................................2.......................... 537 72..........SELinux y el servicio ldap....Novell Evolution.....................................................3..........................1................4........7..........................Comprobaciones..............................................9..............8..................2...............................................................Respaldo de datos...............................................................................1......................Configuración de GNOME Evolution..........Migración de cuentas existentes en el sistema........................................................................................1...........................................................3........................ 528 71.......................................Equipamiento lógico necesario..Inicio del servicio..............................................3.........................3................ 520 70..........Acerca 72...................................1............................................................................................................................3.........Comprobación..........4........3.......... 543 73.............................1..Configuración de clientes........3....................................8.....................................Configuración LDAP Browser.....................3.............Generación de claves de acceso para LDAP.................................................2. 530 71.......................Introducción.....4............. 539 72....2............Configuración LDAP Administration Tool.................................5............................................2...............................3..... 527 71..........541 73........................... 519 70.............................Creación de claves de acceso para LDAP....................................................... 537 OpenSSL................4.......................................Instalación a través de yum...............536 72....................4................Administración.....4.............Añadir datos al directorio..................................Archivo de configuración /etc/openldap/slapd.................1..................................Procedimientos. 540 72................................................Configuración de clientes........................................................ 526 71. 523 70.....2............................... 527 71..SELinux y el servicio mysqld........... 534 71..................................Introducción..........1............................Generando clave y certificado...............................................................................7...........Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 70......................................................................................Archivo de configuración /etc/openldap/slapd.......................7........................................................... 542 73........... 542 73......................................................3...................6.......................2.Parámetros de /etc/openldap/slapd... 538 72..... 533 71...... 524 70.......................................................................Restauración de datos............................4.......

........................................................................................................ 564 76....3.......................................1.......................................................................................................... 562 76..........................4...................................2.................................................................................................4..Introducción al protocolo DNS...........4...4.....................Conceptos.....2........................................Cómo habilitar los archivos ............................................... 553 74.......................... 567 76.................. 558 75......................Iniciar servicio y añadir el servicio al arranque del sistema....Soporte para CGI con extensión *......................................................................... 562 Triple DES..................................................1...............7......................5......569 77...4..1............................2...Acerca de de de de de de HTTPS..1...htaccess y SSI )Server Side Includes) en Apache 2..........6.........................SELinux y Apache.....558 75.. 552 74..................................cgi..1...................................................................1..4..............................Acerca del protocolo DNS (Domain Name System)................8...556 75..........568 77...............................................................................562 76....................................4. 558 75............1......4...........................Introducción..................................................................................3... 563 OpenSSL....................... 569 77...... 548 74...............................................................3.........................................3...........................6.................................2...................UTF-8 y codificación de documentos...Modificaciones necesarias en el muro cortafuegos.........................545 73.............................569 77................Configuración de Apache para múltiples dominios......566 76.................................................Creando y destruyendo bases de datos.............................................................................................................545 73......5...........................................Acerca 76........................... 563 mod_ssl..........543 73..................................................................................¿Qué es un FQDN (Fully Qualified Domain Name)?.543 73...................................Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 73.................................4.....1....................5..549 74......Acerca 76........Directorios virtuales..........565 76...........................................................................................548 74..569 77....................1................Comprobación............................1..............................Requisitos......... 548 74... 553 74...................Autenticación de directorios.1..........................................................................1...........................................Introducción............................2................................Generando firma digital y certificado..................................2...................2............4................................................................................................. ..................................................................Modificaciones necesarias en el muro cortafuegos.......................3..........................Configuración simple de Apache para un solo dominio.......................................................Acerca 76.................... 548 74.......1.....3................2........................... 551 74........5...... 549 74................................ 555 74...................... 550 74......................2........ 563 76...............4..................... 562 RSA................................Equipamiento lógico necesario.......Tipos de MIME......................Asignación de directivas para PHP..................................Instalación a través de yum..........1...............4...........Procedimientos. 552 74.Configuración de Apache con soporte SSL/TLS..........................................Introducción...............Equipamiento lógico necesario..........................................4.............................2............................Instalación a través de yum.... 550 74......... 562 X...................... 558 75..............................Asignación de clave de acceso al usuario root.......3....................................................................2................................................................................6.....................................................................................Archivos de configuración........Robo de imágenes..................................................2...................4..................................563 76...1..............................................................................4....................................................Equipamiento lógico necesario.....................546 74.......................................................................2..1........5......555 74...4...... 563 76.3.................................4............................................................ 563 76..................Acerca de Apache.....................509.....................................................2......... 548 74.......................................................Acerca 76....................................2.................................¿Qué es un NIC (Network Information Center)?.......Acerca del protocolo HTTP............................................................Modificaciones necesarias en el muro cortafuegos.........................2............... 560 76............................Apéndice: Configuración de Sitios de Red virtuales en Apache........................................................................................................2...........................................4.3............Procedimientos..................................................1.......Agregar el servicio mysqld al arranque del sistema....1................Redirección de directorios..........548 74..................................4............. 553 74...........Procedimientos..................................Configuración básica de Apache.........x.............. 569 77.....Acerca 76............................................ 564 76...............1...Otorgando permisos a los usuarios....................Instalación a través de Up2date.......................6.................3....................................................................................................................................................................1..........4......2...569 23 .

......................................Restricción por expresiones regulares.................. 602 79.................................................................612 80.........Listas y reglas de control de acceso................................................. 601 79......1................1...................601 79..................... 613 80............1.......1.......... 604 79........................617 81.......................................................................2............ 577 78..................574 78.................8...5.....Finalizando procedimiento..............................................4...................... 603 79.................7.............................................................Creación de los archivos de zona.......................................617 81............................................3................................................... 603 79..................................................3....................2............................................3................2...............................Re-direccionamiento de peticiones a través de la opción REDIRECT en Shorewall..611 Re-direccionamiento de peticiones a través de iptables....2............Seguridad adicional para transferencias de zona..............................606 79.......................................5... 601 79............4..............2..............3.........2....2..................................................................................................................................................1.......................................Preparativos....Parámetro cache_peer: caches padres y hermanos...................2.............Equipamiento lógico necesario........................Introducción.......3............1............................. 570 77..................................................... 573 77........Depuración de errores.......609 79............... 579 78.....................4............Seguridad adicional en DNS para uso exclusivo en red local.....................5.. 604 79..................1.............3.................................................................5.......6...................................................5...........................................................................................................1.......1.......................................587 78.....................Acerca de Bind (Berkeley Internet Name Domain).........................Instalación a través de yum......................................................................................................Antes de continuar....................................................................2...................................Procedimientos.................................613 80...........................593 78....1....................3....................................................5................................................................. 616 81...................Aplicando Listas y Reglas de control de acceso................................Parámetro cache_mem........................ 609 79............Parámetro http_port.........SELinux y el servicio named.....................610 79.................................Componentes de DNS................................. 608 79...........................Seguridad adicional en DNS para uso público....... 603 79.............. 611 79....................................................6...............3.......Autenticación a través del módulo NCSA............................5....................................................8................5............................................1.....Iniciando...............2................576 78..........................................................3......................................SELinux y el servicio squid..............Equipamiento lógico necesario........................... 582 78....................619 81................1.......Autenticación a través del módulo LDAP.. reiniciando y añadiendo el servicio al arranque del sistema........................................6......................1............Modificaciones necesarias en el muro cortafuegos.......................................3.............3.....................3.. 596 78.613 80........................615 80..............................................Cómo configurar un servidor de nombres de dominio (DNS)........... 577 78..........Permitiendo acceso a sitios inocentes incidentalmente bloqueados.................................................................5................................ 608 79.............Restricción por expresiones regulares...... 614 80..3.3.....Configuración de Squid: Parámetros básicos................. 577 78.........................5............618 81........................................................Configuración de Squid: Restricción de acceso a Sitios de Internet...................................576 78..........................................Parámetro cache_mgr..........................................................7.........3............................................. 595 78....................................9.1...........2.........Introducción..............................................................4.2.........................Estableciendo el idioma de los mensajes mostrados por de Squid hacia el usuario................... 617 81....7.....................613 Eligiendo el módulo de autenticación.......................................................Las zonas esclavas...Instalación a través de yum..................... 576 78...Acerca de Squid..........1.........610 79...................3...1.......................................................................................................2....................... 613 80.....................................................................................Introducción..............................1..576 78..612 79.......Herramientas de búsqueda y consulta....................603 79.......................Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 77................... 599 79..Ajustes para el muro corta-fuegos..........¿Qué es Servidor Intermediario (Proxy)?..........Equipamiento lógico necesario......... 620 24 ......................Configuración de Squid: Acceso por autenticación............................................9...........Configuración básica.............................................................................3..Parámetro cache_dir....................Finalizando procedimiento...........3................................2.. 608 79.......................................................................................................5...Introducción............Controles de acceso.................2.............................Reiniciar servicio y depuración de configuración................................

.........Iniciar.............................Equipamiento lógico necesario......2....2.......4.1......Procedimientos........................................Requisitos.... 626 84.........................................3........................................621 82....................................................Introducción............. 636 87....................................................................................................Configuración de Squid: Restricción de acceso a contenido por extensión.....2..................................................................Acerca de Squid...................4....................................................................1........................................ 641 87....................629 85...................624 83..............................4....................................Archivo /etc/squid/squid............. 639 87..........................................................0...................627 84.........................Definiendo elementos de la Lista de Control de Acceso.........................1.....Procedimientos............................ 637 87.................................................................... 624 83......................Procedimientos....................................................................................... detener y reiniciar el servicio squid.Archivo de configuración /etc/shorewall/masq........1................................................ 627 84.......Archivo de configuración /etc/shorewall/interfaces... .....2......Cómo configurar un muro cortafuegos con Shorewall y tres interfaces de red..............640 87.......621 82................................ 637 una Red Privada?........................... 628 84.........................................................................Instalación a través de yum.... 621 82...........................4......................................................................................................conf..................... 640 87...2............ 634 87....................... 627 Archivo /etc/squid/listas/macsredlocal..............................¿Que 87....................Procedimientos................................................Introducción.................................1............................................................ 636 87.638 87..................................2.............2...................................................4........................................... 624 83..........3........4.........Equipamiento lógico necesario......................3.................................Conceptos requeridos........................................................................................................................Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 82.......................................1................................................Reglas aplicadas.1........1................................. 638 un DNAT?.......¿Qué es es es es una zona desmilitarizada?.......................Acerca de Shorewall......4...........Introducción....................647 25 ...........1.........Configuración de SELinux.............................Configuración de Squid: Restricción de acceso por horarios..1.............Finalizando procedimiento.2......................................................Breve explicación de lo que se logrará con este documento..........................2...... 637 87.........Introducción............. 636 87............... 647 88.........................................4...........................................3.2................3........................................................................................1....................................................7.....2.......................1..................................................................Acerca de OpenVPN...........................Archivo de configuración /etc/shorewall/policy...................................5.................................¿Qué 87......................634 86...............................3................................................................642 87............Archivo de configuración /etc/shorewall/shorewall........................................................................Acerca de Iproute.... 630 86..............5..........1................... 636 87.........................................................647 88. 638 87......................Equipamiento lógico necesario............................................3.......................2......................... 636 87................................................................................... 638 un NAT?.645 88............Introducción...4...............................................................Acerca de Iptables y Netfilter.....................Introducción........................................................................................Finalizando procedimiento........1.....1......4........1......2.............Cómo configurar squid con soporte para direcciones MAC............................. 630 85.......................4..........................................Apéndice: Listas y reglas de control de acceso para Squid........................................................2..............................................2.................. 628 84.. 625 83...... ..............1...............Iniciar el cortafuegos y añadirlo a los servicios de arranque del sistema....1............................... 647 88.............2..........................2..............630 85...........1....................................................conf.................4.................640 87.................... 627 84....................Archivo de configuración /etc/shorewall/zones......................................................... 639 87........... 623 83.............................................Más ejemplos............1............ 627 84..Cómo instalar y configurar la herramienta de reportes Sarg....... 642 87..................1....6.................1...................................................1............2.......................¿Qué 87..Cómo configurar un servidor de OpenVPN...................627 84....Archivo de configuración /etc/shorewall/rules............................................................................................................................630 85........

..... 684 26 .................. 669 90..........Acerca de Daloradius....................................................668 89...............................Acerca de Net-SNMP..............2.........Procedimientos...4....Acerca de Freeradius.......Agregar el servicio snmpd al arranque del sistema..................Introducción....2........................................................Instalación del equipamiento lógico necesario...1.................................1.... 678 92..................................................................................Equipamiento lógico necesario........ 664 89..........................Instalación del equipamiento lógico necesario.....Modificaciones necesarias en el muro cortafuegos...................................................................... 673 91.................... 672 91..............................................................................1.................................................................................2.............................1.................................................4.....................................................2...................................................Instalación a través de yum.........Clientes GNU/Linux............................677 91.........1.............................................Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 88........2................................................................2..............................................................Cómo configurar MRTG........................................3...............Acerca de SNMP............................................................................672 91.............................. 648 88... 668 89..........................Introducción..................3........................3...................................... 684 93...................................................3...Acerca de Xsane.......................Procedimientos..........................1.................................1....................2......3.....Cómo instalar Java 1........................Acerca de SANE................................ 657 88......Un ejemplo funcional de configuración...................................1.........2...................Instalación a través de yum....Instalación en CentOS 5.....1....................................Procedimientos........Creación de usuario para utilizar rpmbuild...3....3...................................653 88....................................................................................................................3................Instalar Daloradius para administración a través de HTTP...........................1......................2....................... 672 91.1....Instalación a través de up2date....................1.................Comprobaciones..................................................Instalación del servicio saned.....................................Configuración de muro cortafuegos con Shorewall.................................Instalación a través de up2date..............Cómo configurar escáner en red.......3.......Equipamiento lógico necesario...........Acerca de RADIUS... 654 88........................... 683 93..........3...........................................683 93...............................................Introducción..................................................................... 664 89.............2.664 89....................................................................................................................... 667 89.........................................................6 en CentOS 5.2...Introducción.................2..................679 92...............................................................................2. 673 91..................................................................................Introducción................................. 664 89..............................................................Cómo configurar SNMP............... 665 Archivo de configuración /etc/snmp/snmpd......................Bibiliografía...................................Instalación del cliente Xsane.. 663 89......................................1...........Instalación a través de yum..........conf...................................5......................................... 679 92................................................................................4..................1...........................................3.............................669 90................... 684 93..............................................................2....2.....2..1......664 89................... 649 88..........................................................................1...............................................3................ 669 90........684 93.Procedimientos...................3.............................Cómo configurar Freeradius con MySQL en CentOS 5..................................1..2...................................................2..................................679 92..................................................Bibliografía..........Creación de estructura de directorios para rpmbuild.............. 679 92......................................................1.......1.............4............................................................................................... 670 91........................................................................................................................................648 88.........668 90.....................2.........Configuración de clientes Windows........................1........................................................................................................................... 672 91...................................................... detener y reiniciar el servicio snmpd......2.1......................................................2..... 669 90......................... 669 90..........................................................................2..........................................................3........ 679 92..............................1...........3............ 683 93.........................................................Iniciar..............................1.............1.....1.....................................................3......Acerca de MRTG.................. 669 90............................................Procedimientos..............Comprobaciones.......................................................................................................................................Equipamiento lógico necesario........................... 683 93............................3...........Procedimientos.................... 665 89..........2...................................................... 665 89.......... 679 92.............2...........................679 93.669 90......................................... 664 89..............................667 89.

......713 97.............Cómo configurar un servidor de respaldos con BackupPC...................................710 96.................Ejercicio SAMBA...........2...................................1.......................2....................................................................................................... 697 95.............................................712 97...............................................690 los sistemas Windows a respaldar............................................................. 712 97.........................5............712 97................................2....................Procedimientos.... Apache...........3........Introducción......................1...........................723 98.......................1............................................2....Procedimientos. 686 94..........................Ejercicios..........................................................................2..........................2......................................................................................... 720 98.....Comprobaciones......................4........................... 697 95........................1...................................................2.....................................3.........2..2. 688 94. 698 95................................................................................................1............Acerca de Heartbeat................2.....................3.......2............................... 708 96..........................................1....................2....................................................................................................... 698 95...............................2.......................................................1.......... 687 94..............................................................................2...........................................697 95.......................4..................................Procedimientos............................................................................4.......1.3...........................Ejercicio NFS.........Configuración del Nodo 1............3.................................3.....Procedimientos. 688 BackupPC............Creación de archivo de configuración de instalación personalizada.......................... 710 97.........................................................2................3....................................................1.....2..............2.3....Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 93.............................. 687 94.......................................................................Ejercicio Apache® y VSFTPD.............................................1...........................Introducción..........................2....Introducción...............2..........................................Cómo configurar un racimo (cluster) de alta disponibilidad con Heartbeat en CentOS 5.........Verificando el agrupamiento (cluster).1........................................Procedimientos................................................................................................................................................ 701 95.......................... 718 98..........1.............Configuración 94........................Instalación del equipamiento lógico necesario.3. 706 95..Usando Smartd para anticipar los desastres de disco duro......1.............................731 27 .............726 98...............Cómo crear un disco con instalación personalizada de CentOS 5..............2.............. 716 98..............Servicios que deben desactivarse....................................................................................................................Procedimientos.........................1................. 723 98.Ejercicio: Cuotas de disco....................... 729 Notas....................................687 94.......Comprobaciones.....Configuración 94.............................................. 724 98.......................................... 689 los sistemas GNU/Linux a respaldar.. VSFTPD y DNS................................ 684 93................................... 715 97.......................Procedimientos...4....3.................Instalación de equipamiento lógico necesario.........Configuración de de de de Apache............................ 718 98....................................1.............1....................687 94....................................................718 98.......3...............................Configuración 94.....................................692 95...........4................................1...4....................................Configuración del servicio saned................................................................................................................................Configuración del Nodo 2.....................2...........Instalación en CentOS 5. 718 98.......2....................................Configuración del cliente Xsane.........................................................Creación del directorio de trabajo y contenido del mismo....................................Añadir equipamiento lógico adicional............................................................... 726 98..................................................................................................................712 97................................................................Creación de la imagen ISO........................................SELinux y Heartbeat................................................. 720 98......... 710 96...................3................................1....................................................3.Procedimientos.................Introducción.................................................2..... 698 95..............

1 Usted es libre de: ● copiar. 28 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Información de Derechos reservados de esta publicación. distribuir y comunicar públicamente la obra ● hacer obras derivadas Bajo las condiciones siguientes: Reconocimiento. ● Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. NI ASUME RESPONSABILIDAD ALGUNA POR DAÑOS PRODUCIDOS A CONSECUENCIA DE SU USO.1 CREATIVE COMMONS CORPORATION NO ES UN DESPACHO DE ABOGADOS Y NO PROPORCIONA SERVICIOS JURÍDICOS. CREATIVE COMMONS PROPORCIONA ESTA INFORMACIÓN TAL CUAL (ON AN "ASIS" BASIS). No comercial. Si altera o transforma esta obra. Compartir bajo la misma licencia. o genera una obra derivada. QUEDA PROHIBIDO CUALQUIER USO DE LA OBRA DIFERENTE A LO AUTORIZADO BAJO ESTA LICENCIA O LO DISPUESTO EN LAS LEYES DE PROPIEDAD INTELECTUAL. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. tiene que dejar bien claro los términos de la licencia de esta obra. LA DISTRIBUCIÓN DE ESTA LICENCIA NO CREA UNA RELACIÓN ABOGADO-CLIENTE. Reconocimiento-NoComercial-CompartirIgual 2. ● Al reutilizar o distribuir la obra. LA OBRA SE ENCUENTRA PROTEGIDA POR LA LEY ESPAÑOLA DE PROPIEDAD INTELECTUAL Y/O CUALESQUIERA OTRAS NORMAS RESULTEN DE APLICACIÓN. Reconocimiento-NoComercial-CompartirIgual 2. No puede utilizar esta obra para fines comerciales. Debe reconocer y citar al autor original. Licencia LA OBRA (SEGÚN SE DEFINE MÁS ADELANTE) SE PROPORCIONA BAJO TÉRMINOS DE ESTA LICENCIA PÚBLICA DE CREATIVE COMMONS ("CCPL" O "LICENCIA"). CREATIVE COMMONS NO OFRECE GARANTÍA ALGUNA RESPECTO DE LA INFORMACIÓN PROPORCIONADA.

Se entiende por "distribución" la puesta a disposición del público del original o copias de la obra mediante su venta. "Obra compuesta e independiente". Se entiende por "reproducción" la fijación de la obra en un medio que permita su comunicación y la obtención de copias de toda o parte de ella.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux MEDIANTE EL EJERCICIO DE CUALQUIER DERECHO SOBRE LA OBRA. Para evitar la duda. El "autor" es la persona o la entidad que creó la obra. El "licenciador" es la persona o la entidad que ofrece la obra bajo los términos de esta licencia y le cede los derechos de explotación de la misma conforme a lo dispuesto en ella. 1. o que ha recibido el permiso expreso del licenciador de ejercitar los derechos cedidos mediante esta licencia a pesar de una violación anterior. m. f. "Obra en colaboración". d. las revisiones. entendiendo por tal la creada por la iniciativa y bajo la coordinación de una persona natural o jurídica que la modifique y divulgue bajo su nombre y que esté constituida por la reunión de aportaciones de diferentes autores cuya contribución personal se funde en una creación única y autónoma. así como las composiciones musicales. Cuando se trate de una base de datos según se define más adelante. "Usted" es la persona o la entidad que ejercita los derechos cedidos mediante esta licencia y que no ha violado previamente los términos de la misma con respecto a la obra. c. resúmenes y extractos. i. que estén destinadas esencialmente a ser mostradas a través de aparatos de proyección o por cualquier otro medio de comunicación pública de la imagen y del sonido. alquiler. La "transformación" de una obra comprende su traducción. si la obra consiste en una composición musical o grabación de sonidos. h. La creación resultante de la transformación de una obra tendrá la consideración de obra derivada. adaptación y cualquier otra modificación en su forma de la que se derive una obra diferente. préstamo o de cualquier otra forma. los compendios. g. cualesquiera transformaciones de una obra literaria. los arreglos musicales y. 29 . La "explotación" de la obra comprende su reproducción. La "obra" es la creación literaria. "Obra colectiva". entendiendo por tal la obra nueva que incorpore una obra preexistente sin la colaboración del autor de esta última. con independencia de la naturaleza de los soportes materiales de dichas obras. artística o científica. comunicación pública y transformación. en general. USTED ACEPTA Y CONSIENTE LAS LIMITACIONES Y OBLIGACIONES DE ESTA LICENCIA. No se considerará pública la comunicación cuando se celebre dentro de un ámbito estrictamente doméstico que no esté integrado o conectado a una red de difusión de cualquier tipo. actualizaciones y anotaciones. Definiciones a. entenderá por "comunicación pública" todo acto por el cual una pluralidad de personas pueda tener acceso a la obra sin previa distribución de ejemplares a cada una de ellas. artística o científica ofrecida bajo los términos de esta licencia. entendiendo por tal aquella que sea resultado unitario de la colaboración de varios autores. distribución. tales como: las traducciones y adaptaciones. para la cual haya sido concebida sin que sea posible atribuir separadamente a cualquiera de ellos un derecho sobre el conjunto de la obra realizada. A efectos de esta licencia se considerará comunicación pública la puesta a disposición del público de la obra por procedimientos alámbricos o inalámbricos. EL LICENCIADOR LE CEDE LOS DERECHOS CONTENIDOS EN ESTA LICENCIA. Tendrán la consideración de "obras audiovisuales" las creaciones expresadas mediante una serie de imágenes asociadas. con o sin sonorización incorporada. incluida la puesta a disposición del público de la obra de tal forma que cualquier persona pueda acceder a ella desde el lugar y en el momento que elija. salvo que la obra resultante tenga el carácter de obra conjunta en cuyo caso no será considerada como una obra derivada a los efectos de esta licencia. j. k. se considerará también transformación la reordenación de la misma. Se n. Se considerarán "obras derivadas" aquellas que se encuentren basadas en una obra o en una obra y otras preexistentes. SIEMPRE QUE USTED ACEPTE LOS PRESENTES TÉRMINOS Y CONDICIONES. Se considerará "obra conjunta" aquella susceptible de ser incluida en alguna de las siguientes categorías: i. la sincronización temporal de la obra con una imagen en movimiento ("synching") será considerada como una obra derivada a los efectos de esta licencia. b. l. e.

3. distribuir o comunicar públicamente la obra con medidas tecnológicas que controlen el acceso o uso de la obra de una manera contraria a los términos de esta licencia. a título enunciativo pero no limitativo. con cada copia o grabación de la obra que usted reproduzca. d. por medio de una obra derivada. b. conocidos o por conocer. Nada en esta licencia pretende reducir o restringir cualesquiera límites legales de los derechos exclusivos del titular de los derechos de propiedad intelectual de acuerdo con la Ley de Propiedad Intelectual o cualesquiera otras leyes aplicables. al margen de la obra objeto de esta licencia. en su caso. sin derecho de remuneración. La cesión de derechos que supone esta licencia se encuentra sujeta y limitada a las restricciones siguientes: a. p. lo que se le requiera y en la medida de lo posible. o de una versión posterior de esta licencia con sus mismos elementos principales. Usted puede reproducir. según lo que se le requiera y en la medida de lo posible. distribución y comunicación pública sobre la obra. tales como el derecho de copia privada o el derecho a cita. como incorporada a obras conjuntas o bases de datos. tengan que estar sujetas a los términos de esta licencia. con cada copia o grabación de la obra que usted reproduzca. Usted debe incluir una copia de la esta licencia o de la mencionada anteriormente.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux o. Usted no puede ejercitar ninguno de los derechos cedidos en la sección 3 anterior de manera que pretenda principalmente o se encuentre dirigida hacia la obtención de un beneficio mercantil o la remuneración monetaria privada. distribuya o comunique públicamente. el licenciador concede (durante toda la vigencia de los derechos de propiedad intelectual) una licencia de ámbito mundial. Usted no puede sublicenciar la obra. o de una licencia iCommons de Creative Commons que contenga los mismos elementos principales que esta licencia (ejemplo: Reconocimiento-NoComercial-Compartir 2. distribuir o comunicar públicamente una obra derivada solamente bajo los términos de esta licencia. Restricciones. c. incluyendo. ya sean derivados de usos legítimos. El intercambio de la obra por otras obras protegidas por la propiedad intelectual mediante sistemas de compartir archivos no se considerará como una manera que pretenda principalmente o se encuentre dirigida hacia la obtención de un beneficio mercantil o la remuneración monetaria privada. o su Identificador Uniforme de Recurso (URI). previa comunicación del licenciador. Si usted crea una obra derivada. Derecho para efectuar cualquier transformación sobre la obra y crear y reproducir obras derivadas. Derecho de reproducción. Compartir de manera igual (CompartirIgual). sin perjuicio. tengan que estar sujetas a los términos de la misma. o bien su Identificador Uniforme de Recurso (URI). Lo anterior se aplica a una obra en tanto que incorporada a una obra conjunta o base de datos. Los anteriores derechos se pueden ejercitar en todos los medios y formatos. 30 . Derecho de distribución y comunicación pública de copias o grabaciones de la obra. los establecidos en la sección 4(e). previa comunicación del licenciador. Usted debe mantener intactos todos los avisos que se refieran a esta licencia y a la ausencia de garantías. 2. de datos o de otros elementos independientes como las antologías y las bases de datos propiamente dichas que por la selección o disposición de sus contenidos constituyan creaciones intelectuales. Conforme a los términos y a las condiciones de esta licencia. Concesión de licencia. e. Usted no puede reproducir. Derecho de distribución y comunicación pública de copias o grabaciones de la obra. pero no implica que éstas. al margen de la obra objeto de esta licencia. distribuya o comunique públicamente. Los derechos mencionados incluyen el derecho a efectuar las modificaciones que sean precisas técnicamente para el ejercicio de los derechos en otros medios y formatos. Derecho a incorporarla en una o más obras conjuntas o bases de datos y para su reproducción en tanto que incorporada a dichas obras conjuntas o bases de datos. Sin uso comercial (NoComercial).0 Japón). siempre que no haya ningún pago de cualquier remuneración monetaria en relación con el intercambio de las obras protegidas. usted deberá quitar de la obra derivada cualquier referencia a dicho licenciador o al autor original. Usted debe mantener intactos todos los avisos que se refieran a esta licencia y a la ausencia de garantías. Todos los derechos no cedidos expresamente por el licenciador quedan reservados. b. Los "elementos de la licencia" son las características principales de la licencia según la selección efectuada por el licenciador e indicadas en el título de esta licencia: Reconocimiento de autoría (Reconocimiento). usted deberá quitar de la obra conjunta o base de datos cualquier referencia a dicho licenciador o al autor original. Tendrán la consideración de "bases de datos" las colecciones de obras ajenas. Usted puede reproducir. de los derechos que pudieran subsistir sobre dichos contenidos. tangibles o intangibles. pero no implica que éstas. Usted no puede ofrecer o imponer ningún término respecto de las obras derivadas o sus transformaciones que alteren o restrinjan los términos de esta licencia o el ejercicio de sus derechos por parte de los cesionarios de la misma. Si usted crea una obra conjunta o base de datos. u otras limitaciones como la derivada de la primera venta de ejemplares. no exclusiva e indefinida que incluye la cesión de los siguientes derechos: a. c. Usted no puede reproducir. 4. distribuir o comunicar públicamente la obra solamente bajo términos de esta licencia y debe incluir una copia de la misma. Lo anterior se aplica a una obra derivada en tanto que incorporada a una obra conjunta o base de datos. Límites y uso legítimo de los derechos. Usted no puede ofrecer o imponer ningún término sobre la obra que altere o restrinja los términos de esta licencia o el ejercicio de sus derechos por parte de los cesionarios de la misma. distribuir o comunicar públicamente la obra derivada con medidas tecnológicas que controlen el acceso o uso de la obra de una manera contraria a los términos de esta licencia.

GENERALES O ESPECIALES (INCLUIDO EL DAÑO EMERGENTE Y EL LUCRO CESANTE). PRODUCIDOS EN CONEXIÓN CON ESTA LICENCIA O EL USO DE LA OBRA. el licenciador se reserva el derecho a divulgar o publicar la obra en condiciones distintas a las presentes. 5. Configuración de Servidores con GNU/Linux Si usted reproduce. con tal de que. Limitación de responsabilidad. Para evitar la duda. tal disposición se entenderá reformada en lo estrictamente necesario para hacer que tal disposición sea válida y ejecutiva. ello no afectará la validez o aplicabilidad del resto de los términos de esta licencia y. b. Tal aviso se puede desarrollar de cualquier manera razonable. EL LICENCIADOR OFRECE LA OBRA TAL CUAL (ON AN "AS-IS" BASIS) Y NO CONFIERE NINGUNA GARANTÍA DE CUALQUIER TIPO RESPECTO DE LA OBRA O DE LA PRESENCIA O AUSENCIA DE ERRORES QUE PUEDAN O NO SER DESCUBIERTOS. (por ejemplo: SGAE. "traducción francesa de la obra de Autor Original. ni que se consiente violación alguna de la misma. A pesar de lo anterior. que continuará vigente y con efectos completos a no ser que haya finalizado conforme a lo establecido anteriormente. FORTUITOS O CAUSALES. el licenciador se reserva el derecho exclusivo a percibir. c. No se entenderá que existe renuncia respecto de algún término o disposición de esta licencia. el propietario o el gestor de la base de datos deberá renunciar a cualquier derecho relacionado con esta inclusión y concerniente a los usos de la obra una vez extraída de las bases de datos. ya sea de manera individual o conjuntamente con otros materiales. distribuye o comunica públicamente la obra o cualquier obra derivada.Joel Barrios Dueñas d. Exoneración de responsabilidad A MENOS QUE SE ACUERDE MUTUAMENTE ENTRE LAS PARTES. No caben interpretaciones. Cada vez que usted explote de alguna forma la obra. el Identificador Uniforme de Recurso (URI). que el licenciador especifica para ser vinculado a la obra. en el caso de una obra derivada. indicando el nombre (o el seudónimo. sin perjuicio de la preceptiva autorización del licenciador. Miscelánea a. o una obra conjunta o una base datos que la incorpore. DIRECTOS O INDIRECTOS. 7 y 8 permanecerán vigentes pese a cualquier finalización de esta licencia. 8. de manera razonable. la cesión de derechos de esta licencia es perpetua (durante toda la vigencia de los derechos de propiedad intelectual aplicables a la obra). conjuntas o bases de datos de usted bajo esta licencia. o varias. bajo los términos de esta licencia). Si alguna disposición de esta licencia resulta inválida o inaplicable según la Ley vigente. aparezca como mínimo este aviso allá donde aparezcan los avisos correspondientes a otros autores y de forma comparable a los mismos. Finalización de la licencia a. e. f. ello no supondrá dar por concluida esta licencia (o cualquier otra licencia que haya sido concedida. el licenciador original ofrece a los terceros y sucesivos licenciatarios la cesión de derechos sobre la obra en las mismas condiciones y términos que la licencia concedida a usted. conjunta o base datos que la incorpore. así como los derivados de obras derivadas. 6. 31 . b. 7. Esta licencia constituye el acuerdo pleno entre las partes con respecto a la obra objeto de la licencia. Dama. En el caso de la inclusión de la obra en alguna base de datos o recopilación. e. El licenciador no estará obligado por ninguna disposición complementaria que pueda aparecer en cualquier comunicación de usted. y especialmente cuando la obra se trate de una obra audiovisual. sin embargo. Esta licencia no se puede modificar sin el mutuo acuerdo por escrito entre el licenciador y usted. Las secciones 1. EN NINGÚN CASO EL LICENCIADOR SERÁ RESPONSABLE ANTE USTED POR CUALQUIER TEORÍA LEGAL DE CUALESQUIERA DAÑOS RESULTANTES. de manera razonable conforme al medio o a los medios que usted esté utilizando. 5. los derechos de explotación de la obra. 2. Esta licencia y la cesión de los derechos que contiene terminarán automáticamente en caso de cualquier incumplimiento de los términos de la misma. el título de la obra si es facilitado. si existe. Conforme a las condiciones y términos anteriores. si dicha explotación pretende principalmente o se encuentra dirigida hacia la obtención de un beneficio mercantil o la remuneración monetaria privada. Las personas o entidades que hayan recibido obras derivadas. sin ninguna acción adicional por cualquiera las partes de este acuerdo." o "guión basado en obra original de Autor Original"). conjuntas o bases de datos. acuerdos o términos con respecto a la obra que no se encuentren expresamente especificados en la presente licencia. SALVO QUE LO DISPONGA EXPRESA E IMPERATIVAMENTE LA LEY APLICABLE. o sea necesario ser concedida. conjunta o base datos. Cada vez que usted explote de alguna forma una obra derivada. POR LO QUE TAL EXCLUSIÓN PUEDE NO SER DE APLICACIÓN A USTED. 6. sin embargo. usted debe mantener intactos todos los avisos sobre la propiedad intelectual de la obra y reconocer al autor original. INCLUSO SI EL LICENCIADOR HUBIERA SIDO INFORMADO DE LA POSIBILIDAD DE TALES DAÑOS. No obstante. no verán sus licencias finalizadas. tanto individualmente como mediante una entidad de gestión de derechos. y en el caso de una obra derivada. VEGAP). el licenciador original ofrece a los terceros y sucesivos licenciatarios la cesión de derechos sobre la obra original en las mismas condiciones y términos que la licencia concedida a usted. un aviso que identifique el uso de la obra en la obra derivada (e. ALGUNAS JURISDICCIONES NO PERMITEN LA EXCLUSIÓN DE TALES GARANTÍAS.. a menos que tal URI no se refiera al aviso sobre propiedad intelectual o a la información sobre la licencia de la obra. en su caso) del autor original si es facilitado. d. a menos que tal renuncia o consentimiento figure por escrito y lleve la firma de la parte que renuncie o consienta.g. siempre que tales personas o entidades se mantengan en el cumplimiento íntegro de esta licencia. o de retirar la obra en cualquier momento.

Salvo para el propósito limitado de indicar al público que la obra está licenciada bajo la CCPL.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Creative Commons no es parte de esta licencia. 32 . y no ofrece ninguna garantía en relación con la obra. en conexión con esta licencia. incluyendo. A pesar de las dos (2) oraciones anteriores. en tanto que sean publicadas su página web (website) o sean proporcionadas a petición previa. pero no limitado. ninguna parte utilizará la marca registrada "Creative Commons" o cualquier marca registrada o insignia relacionada con "Creative Commons" sin su consentimiento por escrito. tendrá todos los derechos y obligaciones del licenciador. por cualquier teoría legal de cualesquiera daños resultantes. daños generales o especiales (incluido el daño emergente y el lucro cesante). Cualquier uso permitido se hará de conformidad con las pautas vigentes en cada momento sobre el uso de la marca registrada por "Creative Commons". si Creative Commons se ha identificado expresamente como el licenciador. Puede contactar con Creative Commons en: http://creativecommons. Creative Commons no será responsable frente a usted o a cualquier parte.org/. fortuitos o causales.

Inc. Apache® es una marca registrada de The Apache Group. aún sin la garantía implícita de comercialización o adecuamiento para un propósito en particular. RPM® y GLINT® son marcas registradas de Red Hat Software. y se proporciona tal cual es pero SIN GARANTÌA ALGUNA. Linux® es una marca registrada de Linus Torvalds. MS-Office® y Windows® son marcas registradas de Microsoft Corporation. Configuración de Servidores con GNU/Linux La información contenida en este manual se distribuye con la esperanza de que sea de utilidad. Darkshram™ es ©1987 y marca registrada de Joel Barrios Dueñas. TrueType es una marca registrada de Apple Computer. Unix® es marca registrada de X/Open.Joel Barrios Dueñas Otras notas acerca de esta publicación. StarOffice® es una marca registrada de Sun Mycrosystems. 33 . MS-DOS®. WordPerfect® es una marca registrada de Corel Corporation. Sendmail® es una marca registrada de Sendmail. Raymond. y el autor o autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de esta. Inc. Fetchmail® es una marca registrada de Eric S.. Red Hat™ Linux. X Window System® es marca registrada de X Consortium.

GNU es un acrónimo recursivo que significa GNU No es Unix (GNU is Not Unix). está diseñada para asegurar que el usuario tenga siempre la libertad de distribuir copias del equipamiento lógico (y cobrar por el servicio si así lo desea). lo hacemos en relación a la libertad y no al precio. sino que también desean un sistema operativo estable. a la cual Linus Torvalds incorporó a Linux. o genera una obra derivada. Esto también incluye el derecho a poder instalar el núcleo de GNU/Linux® en cualquier número de ordenadores o equipos de cómputo que el usuario desee. el núcleo Linux> fue combinado con el sistema GNU. Al reutilizar o distribuir la obra. Este proyecto fue iniciado por Richard Stallman. siempre que se incluya el código fuente. robusto y confiable.alcancelibre. es decir. La GPL es aplicable a la mayoría del equipamiento lógico de la Free Software Foundation así como a cualquier otro programa cuyos autores se comprometan a usarlo. que es el modo que ha dispuesto la Free Software Foundation (Fundación de equipamiento lógico libre). iniciar o reiniciar independientemente sin afectar al resto del sistema permitiendo operar las 24 horas del día los 365 días del año. estaciones de trabajo y también para computadoras personales. que se traduce como Interfaz de Sistema Operativo Portable). Los distintos servicios servicios se pueden detener. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Las características de GNU/Linux® le permiten desempeñar múltiples tareas en forma simultánea de forma segura y confiable. GNU/Linux® es también de la mejor alternativa de siglo XXI para los usuarios que no solo desean libertad. como lo indica la Licencia Pública General GNU (acrónimo de GNU is Not Unix). La GPL (acrónimo de General Public Licence.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. y anunciado el 27 de septiembre de 1983. Es un sistema operativo idóneo para utilizar en Redes. asegurarse de que el equipamiento lógico siempre permanezca libre para todos los usuarios. se trata de equipamiento lógico libre o Software Libre. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.1 © 1999-2011 Joel Barrios Dueñas. GNU/Linux es equipamiento lógico libre o Software Libre. 34 . Fue creado en 1991 por Linus Torvalds. GNU/Linux® no es equipamiento lógico gratuito (comúnmente denominado como Freeware). que se traduce como Licencia Pública General).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 1. b) No puede utilizar esta obra para fines comerciales. tiene que dejar bien claro los términos de la licencia de esta obra. Esto significa que el usuario tiene la libertad de redistribuir y modificar a de acuerdo a necesidades específicas. El Sistema Operativo formado por esta combinación se conoce como GNU/Linux. con el objetivo de crear un sistema operativo completamente libre. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. siendo entonces un estudiante de la Universidad de Helsinski. c) Si altera o transforma esta obra. Finlandia. GNU/Linux® es un poderoso y sumamente versátil sistema operativo con licencia libre y que implemente el estándar POSIX (acrónimo de Portable Operating System Interface. Cuando nos referirnos a libre. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. En 1992. La GPL tiene como objetivo garantizar al usuario la libertad de compartir y cambiar equipamiento lógico libre. como es el caso de servidores. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. ¿Que es GNU/Linux? Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Usted es libre de copiar.

estación de trabajo o la computadora personal de un usuario intrépido. Con casi cualquier distribución comercial de Linux.. que muchas de las empresas de Software más importantes del mundo. se recomiendan 512 MB. se recomienda contar con al menos 4 GB de espacio libre en disco. como Compaq. o bien solamente aplicaciones para modo de texto.x es de 384 MB RAM.org). y un microprocesador i686. 35 . Si desea instalar Linux en una computadora personal con las suficientes aplicaciones para ser totalmente funcional y productivo y contar con el espacio necesario para instalar herramientas de oficina (OpenOffice. que cada vez son de más fácil uso. mientras que el instalador en modo gráfico de éstos requeire al menos 640 MB RAM. al menos 512 MB RAM. El servidor de vídeo puede funcionar con sólo 128 MB RAM. se requieren al menos 384 MB RAM. Sin ambiente gráfico. Hewlett Packard. y un microprocesador i686 a 500 MHz serán suficientes. llevan varios años distribuyendo equipos con GNU/Linux® como sistema operativo. IBM y muchos más. el ambiente gráfico necesitará al menos 640 MB RAM.1. Gracias a sus características. han encontrado en GNU/Linux una plataforma con un muy amplio mercado. Para contar con una cantidad mínima de aplicaciones.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Tal ha sido el impacto alcanzado por GNU/Linux® en los últimos años. como es el caso de GNOME y KDE. y se han volcado al desarrollo de versiones para Linux de sus más importantes aplicaciones. al trabajo de cientos de programadores y usuarios fieles alrededor del mundo. entre las cuales están IBM. a cuando menos 1 GHz. Se recomienda como mínimo un microprocesador i686 a 1 GHz. El mínimo recomendado para utilizar GNOME 2. 1. El óptimo es de 1 GB RAM. como es el caso de un servidor. Grandes corporaciones. Oracle. El instalador en modo texto de CentOS 6 y Red Hat Enterprise Linux 6 requiere al menos 384 MB RAM. y Sun Microsystems. ya sea para una servidor. la constante evolución de los ambientes gráficos para X Window®. Requerimientos del sistema Se debe contar con la suficiente cantidad de memoria y un microprocesador en buen estado. pero su desempeño será extremadamente lento. 512 MB o 1 GB de RAM adicional. repartido en al menos 3 particiones. Linux ha dejado de ser un sistema operativo poco atractivo y complicado de utilizar para convertirse en una alternativa real para quienes buscan un sistema operativo confiable y poderoso. Dell. se requieren al menos 2 GB adicionales de espacio libre en disco duro. y 1 GB de espacio libre en disco duro para la instalación mínima. Algunas aplicaciones para modo gráfico pueden necesitar escalar 256 MB.

sin aplicar de forma estricta el estándar. Revisiones de éste se publicaron el 9 de Octubre de 1994 y el 28 de Marzo de 1995. Introducción. fue anunciada el 29 de enero de 2004. Dell.wikipedia. aún si están almacenados en dispositivos físicamente diferentes. Todos los archivos y directorios aparecen debajo del directorio raíz «/». El estándar de jerarquía de archivos (FHS o Filesystem Hierarchy Standard) define los principales directorios y sus contenidos en GNU/Linux y otros sistemas operativos similares a Unix.3 del FHS. Red Hat Enterprise Linux 5. IBM y Red Hat. El FHS es mantenido por Free Standards Group.alcancelibre. un estándar de jerarquía de archivos específico para GNU/Linux. Enciclopedia Libre. Al reutilizar o distribuir la obra. que es la utilizada por CentOS 5. y Red Hat Enterprise Linux 6. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Usted es libre de copiar. CentOS 6. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. inclusive las que forman parte de Free Software Standards. Estructura de directorios. 2.2.1 © 1999-2011 Joel Barrios Dueñas. una organización sin fines de lucro constituida por compañías que manufacturan sustento físico (Hardware) y equipamiento lógico (Software) como Hewlett Packard. Estándar de Jerarquía de Sistema de Archivos Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. tiene que dejar bien claro los términos de la licencia de esta obra. se fijó como objetivo el desarrollar una versión de FSSTND más detallada y dirigida no solo hacia Linux sino también hacia otros sistemas operativos similares a Unix. o genera una obra derivada.1. Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. La mayoría de las distribuciones de Linux. La versión 2. El procesos de desarrollar un estándar de sistema de archivos jerárquico inició en Agosto de 1993 con un esfuerzo para reorganizar la estructuras de archivos y directorios de GNU/Linux. 36 . b) No puede utilizar esta obra para fines comerciales.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 2. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Como uno de los resultados el estándar cambió de nombre a FHS o Filesystem Hierarchy Standard. en http://en. A principios de 1996.org/wiki/FHS. El 14 de Febrero de 1994 se publicó el FSSTND (Filesystem Standard). 2. c) Si altera o transforma esta obra.org/ Artículo basado sobre el publicado en inglés por Wikipedia. con la ayuda de miembros de la comunidad de desarrolladores de BSD.

archivos de texto. 37 . Binarios de administración de sistema. y estados del núcleo. archivos de texto. Contiene. Dispositivos esenciales. y que son específicos del anfitrión. debe evitarse que contenga datos específicos del anfitrión que los comparte. Paquetes de aplicaciones de terceros. etc.). archivos de audio. lanzamiento 6. Bibliotecas compartidas. Códigos fuente. Sistema de archivos virtual que documenta sucesos. Archivos de inclusión estándar (cabeceras de desarrollo). Archivos utilizados durante el inicio del sistema (núcleo y discos RAM). independientes de la arquitectura del sistema.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Directorio. Mandatos binarios. Archivos de configuración para XML. /bin/ /boot/ /dev/ /etc/ /etc/opt/ /etc/X11/ (opcional) /etc/sgml/ (opcional) /etc/xml/ (opcional) Directorio. Archivos temporales Datos específicos de sitio. Descripción Jerarquía secundaria para datos compartidos de solo lectura (Unix system resources). como son las unidades lectoras de discos compactos. Archivos de configuración para SGML. Descripción Mandatos binarios esenciales (como son cp. servidos por el sistema. Sistemas de archivos montados temporalmente. Este directorio debe poder ser compartido para múltiples anfitriones. ls. /usr/ /usr/bin/ /usr/include/ /usr/lib/ /usr/share/ /usr/src/ (opcional) /usr/X11R6/ (opcional) Sistema X Window. Puntos de montaje para dispositivos de medios. /sbin/ y el núcleo del sistema. cuando se comprate a través de NFS. mkdir. principalmente. Descripción Directorios de inicio de los usuarios locales. /home/ (opcional) /lib/ /mnt/ /media/ /opt/ /proc/ /root/ (opcional) /sbin/ /tmp/ /srv/ Directorio. rm. Archivos de configuración utilizados en todo el sistema. Directorio de inicio del usuario root (super-usuario). Datos compartidos. versión 11. Bibliotecas compartidas esenciales para los binarios de /bin/. mv. Prácticamente ninguna /usr/local/ Jerarquía terciaria para datos compartidos de solo-lectura. y. Archivos de configuración utilizados por programas alojados dentro de /opt/ Archivos de configuración para el sistema X Window. Consiste en imágenes. específicos del anfitrión. distribución de Linux lo utiliza en la actualidad. etc.

Archivos temporales que prevalecen después de un reinicio. Depósito de información referente a fallas del de sistema. 2. bases de datos. y FTP. Datos variables de aplicaciones para juegos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Directorio. y jamás se le asigna punto de montaje. Ésta será siempre la última partición del espacio disponible para almacenamiento. si se tiene más de 1 GB RAM. como son bitácoras. y PostgreSQL. Algunos servidores como MySQL. y directorios. son: 38 . colas de correo. Si se tiene menos de 1 GB de RAM. y carretes de datos de aplicaciones. etc. se debe asignar una cantidad igual al tamaño del RAM físico. Como mínimo se requieren tres particiones: /boot / Swap Requiere de 200 MB a 512 MB. archivos temporales. Archivos. Información de estado variable. Archivos de bloqueo de los servicios en ejecución. utilizados para almacenar las bitácoras de eventos del sistema.pathname.com/fhs/. Requiere de 3072 MB a 5120 MB. más 2 GB. almacenan sus bases de datos en directorios subordinados de éste.3. Otras particiones que se recomienda asignar. se debe asignar el doble del tamaño del RAM físico. /var/lock/ /var/log/ /var/mail/ (opcional) /var/opt/ /var/spool/ /var/tmp/ Más detalles acerca del FHS en http://www. Buzones de correo de usuarios. /var/ /var/account/ (opcional) Procesa bitácoras de cuentas de usuarios. Datos variables de /opt/. Descripción Archivos variables. directorio raíz de servidores HTTP. o Red Hat Enterprise Linux. Colas de procesamiento. /var/cache/ /var/crash/ (opcional) /var/games/ (opcional) /var/lib/ Cache da datos de aplicaciones. Particiones recomendadas para instalar CentOS.

Para uso general se recomiendan al menos de 5120 MB.2 GB. Debe considerarse el equipamiento lógico que se planee compilar desde código fuente. En estaciones de trabajo. Si. y. y. el sistema cuenta con un grabador de DVD. Debe considerarse el equipamiento lógico de terceros que se planee instalar a futuro. que se planeen hospedar a futuro. por ejemplo. aplicaciones. de ser posible. considere un tamaño óptimo de hasta 20480 MB. para uso general se recomiendan al menos de 5120 MB. que se planeen hospedar a futuro. y de densidad simple. lo cual permitiría optimizar el registro por diario utilizando el modo writeback para un mejor desempeño. y del tipo de aplicaciones.4.org/wikipedia/en/wiki/Filesystem_Hierarchy_Standard 39 . dependiendo de la carga de trabajo. Requiere al menos 3072 MB en instalaciones básicas. al menos 4. a futuro. Bibliografía. o más. será necesario asignar a /tmp el espacio suficiente para almacenar una imagen de disco DVD. y contenido para ser servido a través del protocolo HTTP. • https://secure. para uso general se recomiendan al menos de 5120 MB.wikimedia. Requiere al menos 3072 MB en instalaciones básicas. Al igual que /usr. Si se asigna como partición independiente de /var. Al igual que /usr. Requiere al menos 350 MB. asumiendo que es de una sola cara. Si se asigna como partición independiente de /var. En servidores regularmente se le asigna al menos la mitad del espacio disponible para almacenamiento.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux /usr Requiere al menos 3072 MB en instalaciones básicas. o directorios de LDAP. /tmp /var /home /usr/local /opt /var/lib /var/www 2. considere un tamaño óptimo de hasta 20480 MB. Requiere al menos 3072 MB en estaciones de trabajo sin servicios. Deben considerarse las bases de datos. y puede asignarse hasta 5 GB. requiere al menos 3072 MB en instalaciones básicas. requiere al menos 3072 MB en instalaciones básicas. Deben considerarse los anfitriones virtuales. lo cual permitiría optimizar el registro por diario utilizando el modo journal para un mejor desempeño. es decir. de ser posible. y. Debe considerarse el equipamiento lógico se planee instalar a futuro. de ser posible. considere un tamaño óptimo de hasta 20480 MB. a esta partición se asigna al menos la mitad del espacio disponible para almacenamiento. e instalar.

para arquitectura i386. y 1. c) Si altera o transforma esta obra. en formatos privativos (como ocurre son el soporte para MP3. Al reutilizar o distribuir la obra.1.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Tenga claro que CentOS. lo que se establezca en este punto debe prevalecer. Remi.707. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. caben perfectamente en discos DVD+R y DVD-R. La imagen de DVD para i386 (4. • • • • 3.456. y video.992 bytes).» Limitaciones. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. y que solo incluye Software Libre que se encuentre exento de problemas de patentes. Antes de comenzar. Obtención de los medios. respectivamente. Para más detalles al respecto. o escritorio? ¿Qué uso va tener el equipo? ¿Que servicios va a requerir? Idealmente.319. se añada algún almacén YUM como EPEL. para ser utilizado como sistema operativo en servidores.2. dos años. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.700. Las imágenes de los dos DVD para arquitectura x86-64. b) No puede utilizar esta obra para fines comerciales. o bien arquitectura x8664 (solo es necesario el DVD 1. o genera una obra derivada.896 bytes. Determine como administrará el espacio disponible de almacenamiento. y estaciones de trabajo. Procedimientos. posteriormente. cinco años? Capacidad del equipo. etc. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. al igual que sucede con Red Hat Enterprise Linux. 3. Ciclo de producción.1 © 1999-2011 Joel Barrios Dueñas. 40 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 3. ¿Cuánto tiempo considera que estará en operación el equipo? ¿Seis meses.808 bytes). sin modificaciones. y enfocado específicamente. Procedimiento de instalación de CentOS 6.264.705. y poder de procesamiento suficiente? Particiones del disco duro.520 bytes.1. este sistema operativo carecerá de soporte para medios de audio. consulte el documento titulado «Estándar de Jerarquía de Sistema de Archivos.238. H. Descargue la imagen ISO del DVD de CentOS 6. ¿A cuantos usuarios dará servicio? ¿Tiene el equipo la cantidad suficiente de RAM. a lo largo de su ciclo productivo. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. DivX. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. tiene que dejar bien claro los términos de la licencia de esta obra.centos.128 bytes) es demasiado grande para poder ser grabada en un DVD+R (capacidad de 4.1. es un sistema operativo diseñado.1. desarrollo de programas.alcancelibre.182.org/centos/6/isos/ Si descarga la imagen para arquitectura i386. un año. 3. Usted es libre de copiar. desde algunos de los sitios espejo que encontrará en el siguiente URL: • http://mirror.).800.699. AL Server o RPMFusion. Planeación. grabe ésta en un disco virgen DVD-R (capacidad de 4. 4.372. ¿Va ser un servidor. MPEG. estación de trabajo. Salvo que. salvo que requiera soporte para algún idioma exótico). determine primero los siguientes puntos: • Finalidad productiva.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 3. o bien pulse la tecla ENTER para iniciar de manera inmediata.3. 41 . y espere 60 segundos para el inicio automático.1. Inserte el disco DVD de instalación de CentOS 6. Si está haciendo la instalación desde una máquina virtual con una imagen ISO. o bien pulse la tecla «TAB». Es buena idea verificar medios de instalación. La primer pantalla que aparecerá. e ingrese las opciones de instalación deseadas. descarte verificar. Si descargó una imagen ISO desde Internet. Instalación del sistema operativo. le preguntará si desea verificar la integridad del medio de instalación.

Haga clic sobre el botón «Next». en cuanto aparezca la pantalla de bienvenida de CentOS. considere que esto puede demorar varios minutos. a partir del cual se realizará la instalación. está en buen estado. o discos a partir de los cuales se realizará la instalación. o bien «Español». seleccione «OK» y pulse la tecla ENTER. pulse la tecla «TAB» para seleccionar «Skip» y pulse la tecla ENTER.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si desea verificar la integridad del medio de instalación (DVD o conjunto de discos compactos). como idioma para ser utilizado durante la instalación. Seleccione «Spanish». 42 . o bien «Siguiente». Si está seguro de que el disco.

Elija el mapa de teclado al «Español». de acuerdo a lo que corresponda. o bien el mapa de teclado «Latinoamericano». haga clic sobre el botón denominado «Siguiente.» 43 . Al terminar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux A partir de este punto. Seleccione el mapa de teclado. todos los textos deberán aparecer al español.

o bien uno al que le fue borrada la tabla de particiones.» Si se trata de un disco duro nuevo. sin tabla de particiones.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux CentOS 6 incluye soporte para realizar una instalación sobre dispositivos de almacenamiento especializados.» 44 . Si está seguro de que se trata de un disco duro nuevo. «Dispositivos de almacenamiento básicos» y haga clic sobre el botón denominado «Siguiente. y zFCP. elija la opción predeterminada. Requiere disponer de un SAN en la red de área local para poder hacer uso de este tipo de dispositivos de almacenamiento. iSCSI. como Redes de Área de Almacenamiento (SAN). recibirá una advertencia respecto de que el disco duro deberá ser inicializado antes de guardar la tabla de particiones que será creada posteriormente. haga clic sobre el botón «Reinicializar todo. Si solo dispone de uno o más discos duros en el equipo donde se realizará la instalación. como FCoE.

de hasta a 12 caracteres.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Defina el nombre del sistema en el siguiente el formato: nombre.tld.dominio.localdomain. Si está indeciso al respecto. deje el valor predeterminado como localhost. Procure que el nombre del equipo sea corto. y haga clic sobre el botón denominado «Siguiente. y que el dominio esté resuelto en un DNS.» 45 .

haga clic sobre el botón denominado «Siguiente.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Seleccione la zona horaria que corresponda a su localidad.» Ésto último significa que el reloj del sistema utilizará UTC (Tiempo Universal Coordinado). la clave de acceso para el usuario root.» Defina. el cual será el utilizando para la administración del sistema. haga clic sobre el botón denominado «Siguiente. que es el sucesor de GMT (b>Greenwich Mean Time. haciendo clic sobre cualquier punto en el mapamundi.» 46 . que significa Tiempo Promedio de Greenwich). y es la zona horaria de referencia respecto a la cual se calculan todas las otras zonas horarias del mundo. y confirme. Al terminar. Al terminar. Se recomienda dejar seleccionada la casilla «El reloj del sistema utiliza UTC.

el cual consistirá en: • • Una partición estándar de 200 MB para /boot Un volumen lógico para /. utilizará un espacio será equivalente al doble del RAM físico del sistema. Este diseño predeterminado funcionará bien para cualquier servidor. procurando utilizar al menos 8 caracteres. y que posteriormente permitirá hacer crecer el sistema añadiendo otro disco duro. Evite utilizar palabras de diccionario. Si se trata de una computadora portátil. con unidades físicas que se añadirán al volumen lógico. o sistema de escritorio. que carezca de alguna forma sencilla de añadir otro disco duro. siempre que se trate de un equipo que permita añadir fácilmente más unidades de almacenamiento. más 2 GB. Un volumen lógico para la partición de memoria de intercambio (swap). letras minúsculas. que en equipos con menos de 1 GM RAM. que utilizará la mayor parte del espacio disponible. • Las opciones en pantalla hacen lo siguiente: 47 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. letras mayúsculas. La siguiente pantalla le dará a elegir las opciones para crear las particiones en el disco duro. este diseño predeterminado resultará totalmente inadecuado. para así aprovechar los volúmenes lógicos. con cualquier propósito. Salvo que elija «Crear un diseño personalizado. y otros caracteres. en equipos con más de 1 GB RAM. o bien.» invariablemente se aplicará un diseño predeterminado. en combinaciones de números. utilizará un espacio equivalente a la suma del RAM físico del sistema. pues se estará utilizando una función (volúmenes lógicos) que jamás se podrá aprovechar. datos personales. Nota.

Joel Barrios Dueñas • • • Configuración de Servidores con GNU/Linux «Usar todo el espacio». permitirá elegir las particiones estándar. «Crear un diseño personalizado». como Windows. haciendo el espacio necesario para poder instalar un diseño predeterminado de particiones Linux. creará de forma automática las particiones necesarias en el espacio disponible. solo eliminará todas las particiones Linux existentes. «Usar espacio libre». y creará de forma automática las particiones necesarias. y haga clic sobre el botón denominado «Siguiente. o volúmenes lógicos.» 48 . que uno requiera. «Achicar el sistema actual». cambiará el tamaño de las particiones existentes de otros sistemas operativos. basándose sobre un diseño predeterminado. eliminará cualquier partición de cualquier otro sistema operativo presente. y creará de forma automática las particiones necesarias. • • Seleccione «Crear un diseño personalizado». «Reemplazar sistema(s) Linux existente(s)».

Elija crear una «Partición estándar.» Al terminar. haga clic sobre el botón «Crear.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Se mostrará la tabla de particiones actual. mostrando el espacio libre disponible para crear nuevas particiones.» Se abrirá una ventana donde podrá definir el tipo de partición a crear.» 49 . Haga clic sobre el botón «Crear.

mantenga el tamaño de 200 MB.» 50 . haga clic sobre el botón «Aceptar. defina /boot como punto de montaje. y active la casilla de opción denominada «Forzar a partición primaria. mantenga el formato ext4.» Al terminar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En la ventana que aparece sobre la tabla de particiones.

al igual que ext3.» Al terminar. entre las que se incluyen. donde deberá aparecer la partición recién creada. menor uso de recursos de sistema. o cuarto sistema de archivos extendido) es. un sistema de archivos con registro por diario. Ext4 (fourth extended filesystem. mejoras sustanciales en la velocidad de lectura y escritura. el soporte de volúmenes de hasta 1024 PiB. y verificación más rápida con el mandato fsck. vuelva a hacer clic sobre el botón «Crear. Elija crear una «Partición estándar. Para añadir la siguiente partición. entre otras cosas. prefiera utilizar ext4. En resumen. Se deberá mostrar la tabla de particiones.» Se abrirá una ventana donde podrá definir el tipo de partición a crear.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota.» 51 . con muchas mejoras respecto de ext3. soporte añadido de extents (conjunto de bloques físicos contiguos). haga clic sobre el botón «Crear.

» Al terminar.» 52 . y active la casilla de opción denominada «Forzar a partición primaria. y defina un tamaño de 3072 MB. mantenga el formato ext4. defina / como punto de montaje.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En la ventana que aparece sobre la tabla de particiones. haga clic sobre el botón «Aceptar.

Elija crear una «Partición estándar. con la finalidad de que éstas sean creadas entre los primeros sectores del disco duro. Solo se recomienda definir como particiones primarias a las correspondientes a /boot y /. tienen un límite máximo de cuatro particiones.» Se abrirá una ventana donde podrá definir el tipo de partición a crear. donde deberá aparecer la partición recién creada. Se puede utilizar un diseño de hasta cuatro particiones primarias. dentro de la cual se pueden crear un número ilimitado de particiones lógicas. vuelva a hacer clic sobre el botón «Crear. dentro de la cual se crearán cuantas particiones lógicas como sean necesarias. y para evitare que incidentalmente queden incluidas dentro de la partición extendida. haga clic sobre el botón «Crear. Esta última se creará de manera automática después como la cuarta partición del disco duro. las cuales en realidad son sub-particiones de la partición extendida. basados sobre arquitectura Intel. Se deberá mostrar la tabla de particiones. o bien un diseño de tres particiones primarias y una partición extendida. o unidad de almacenamiento. Para añadir la siguiente partición.» Al terminar. Los sistemas modernos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota.» 53 .

vuelva a hacer clic sobre el botón «Crear. en particular. defina /usr como punto de montaje. mantenga el formato ext4.» 54 . haga clic sobre el botón «Aceptar. Al terminar. o conjunto de aplicaciones. o más.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En la ventana que aparece sobre la tabla de particiones. donde deberá aparecer la partición recién creada. y defina un tamaño de 10240 MB. Para añadir la siguiente partición. si considera que ocupará más espacio para alguna aplicación.» Se deberá mostrar la tabla de particiones.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Se abrirá una ventana donde podrá definir el tipo de partición a crear. mantenga el formato ext4. haga clic sobre el botón «Aceptar. Elija crear una «Partición estándar.» 55 . Al terminar. haga clic sobre el botón «Crear. y defina un tamaño de 5120 MB.» Al terminar. defina /tmp como punto de montaje.» En la ventana que aparece sobre la tabla de particiones.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 56 .

» Al terminar. vuelva a hacer clic sobre el botón «Crear. será más que suficiente con asignar 5120 MB.» 57 . Se deberá mostrar la tabla de particiones. Para la mayoría de los casos. Elija crear una «Partición estándar. haga clic sobre el botón «Crear.» Se abrirá una ventana donde podrá definir el tipo de partición a crear. donde deberá aparecer la partición recién creada. Para añadir la siguiente partición. El tamaño de la partición para /tmp dependerá del tipo de aplicaciones que se utilizarán posterior a la instalación. Consulte la documentación del programa o aplicación que tenga planeado utilizar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota.

» Al terminar. mantenga el formato ext4. defina /home como punto de montaje. haga clic sobre el botón «Aceptar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En la ventana que aparece sobre la tabla de particiones. y elija la casilla de opción denominada «Completar hasta el tamaño máximo aceptable.» 58 .

ambas se repartirán nuevamente el espacio. donde deberá aparecer la partición recién creada. vuelva a hacer clic sobre el botón «Crear.» Se abrirá una ventana donde podrá definir el tipo de partición a crear. Para añadir la siguiente partición.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Se deberá mostrar la tabla de particiones. Elija crear una «Partición estándar. casi equitativamente.» Al terminar. Temporalmente notará que /home tiene asignado todo el espacio de almacenamiento que anteriormente estaba libre. En cuanto haya creado la partición /var.» 59 . haga clic sobre el botón «Crear.

» Al terminar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En la ventana que aparece sobre la tabla de particiones. mantenga el formato ext4. defina /var como punto de montaje.» 60 . haga clic sobre el botón «Aceptar. y elija la casilla de opción denominada «Completar hasta el tamaño máximo aceptable.

Para añadir la última partición. la correspondiente a la de la memoria de intercambio. donde deberá aparecer la partición recién creada. Elija crear una «Partición estándar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Se deberá mostrar la tabla de particiones. Temporalmente notará que /home y /var se han repartido el espacio disponible.» Al terminar.» 61 .» Se abrirá una ventana donde podrá definir el tipo de partición a crear. vuelva a hacer clic sobre el botón «Crear. haga clic sobre el botón «Crear.

más 2 GB. Si el sistema tiene 768 MB RAM. Si el sistema tiene 8 GB RAM. Si el sistema tiene 4 GB RAM. defina 2048 MB para la partición de memoria de intercambio. siga las siguientes reglas: • Si el sistema tiene menos de 1 GB RAM: Defina una cantidad equivalente a dos veces la cantidad de RAM físico. Ejemplos:  Si el sistema tiene 1. Notará que la partición de intercambio ha tomado la mitad de su espacio asignado de /home. Si el sistema tiene 1 GB RAM. Ejemplos:  Si el sistema tiene 512 MB RAM. defina 3584 MB para la partición de memoria de intercambio. Examine a detalle. defina 6144 MB para la partición de memoria de intercambio. defina 1536 de memoria de intercambio.   • Si el sistema tiene más de 1 GB RAM: Defina una cantidad equivalente a la suma de la cantidad de RAM físico.    Se mostrará la tabla de particiones. Si está conforme con el diseño. y la otra mitad de /var. defina 4096 MB para la partición de memoria de intercambio.» 62 . defina 10240 MB para la partición de memoria de intercambio.5 GB RAM. Si el sistema tiene 2 GB RAM. defina 1024 MB para la partición de memoria de intercambio. haga clic sobre el botón denominado «Siguiente.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para el tamaño de la partición de memoria de intercambio (swap). asegurándose que tengan los tamaños aproximados a lo que se especificó en los pasos anteriores. y verifique que estén presentes todas las particiones que planeo.

utilizando el formato writeback. Se solicitará que confirme de manera explícita que se procederá a eliminar o dar formato a particiones existentes en el medio de almacenamiento. y /var/www. sobre los cuales se realiza lectura y escritura simultánea.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota.» 63 . y una vez que inicie el sistema operativo por primera vez. Si desea proceder. y éstos sufrirán pocos cambios. conviene optimizar el registro por diario de esta partición. obteniendo como resultado una mejor velocidad de lectura. como LDAP. Si /var/www va a contener los archivos de un portal de Internet. Siendo que /var/lib suele utilizarse principalmente para almacenar bases de datos. Puede asignar a cada una de estas particiones cuanto espacio como considere necesario para necesidades particulares. Para más detalles consulte el documento titulado «Como optimizar el sistema de archivos ext3 y ext4. Asignar como particiones a estos directorios permitirá posteriormente una optimizar cambiando el formato del registro por diario (journal). Otras particiones recomendadas pueden ser /var/lib. haga clic sobre el botón «Formato. obteniendo como resultado un mejor rendimiento para las bases de datos y servidores de directorios. conviene optimizar el registro por diario de esta partición. o bien sufrirán cambios poco frecuentes. utilizando el formato journal. y otros tipos de datos. servidores directorios.» con la finalidad de conocer los procedimientos necesarios para optimizar el sistema de archivos después de terminar la instalación. como LDAP.

» Espere algunos minutos mientras de guarda la tabla de particiones. Si desea proceder.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Se solicitará confirme que desea escribir los cambios al disco duro. 64 . y se da formato a todas las particiones definidas en los pasos anteriores. haga clic sobre el botón «Escribir cambios al disco.

haga clic sobre la casilla de opción denominada «Usar la contraseña del gestor de arranque. conviene asignar una clave de acceso al gestor de arranque. Si desea proceder. e iniciar en modo mono-usuario (nivel de ejecución 1). pueda modificar los parámetros de arranque del gestor de arranque.» Asigne y confirme una clave de acceso para el gestor de arranque.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Por seguridad. Ésto tiene como finalidad el de evitar que cualquiera que tenga acceso físico al sistema. 65 .

haga clic en el botón «Siguiente.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Al terminar.» Elija el tipo de instalación. 66 .

y una vez que inicie por primera vez el sistema operativo. un conjunto básico de políticas para SELinux. policycoreutils-python. wget. Mientras menos paquetes estén instalada. a través del mandato yum. lo necesario para configurar las interfaces de red. un conjunto de mandatos básicos. La instalación mínima básicamente consiste en el núcleo del sistema. Al terminar. haga clic sobre el botón «Aceptar. selinux-policy-targeted.centos. yum yum yum yum yum -y -y -y -y -y install install install install install system-config-firewall-tui openssh-clients system-config-network-tui bind-utils policycoreutils-python selinux-policy-targeted selinux-policy-mls vim-enhanced wget Si desea aplicar de una vez las actualizaciones. bind-utils. además de que serán menores las descargas de paquetes durante las actualizaciones y parches de seguridad. haga clic sobre el botón denominado «+ Agregar repositorios de software adicional.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. y parches de seguridad. system-confignetwork-tui. Es una buena práctica de seguridad el realizar una instalación mínima (casilla de opción «Minimal»). herramientas básicas para administrar el sistema de archivos.org/centos/6/updates/x86_64/. los paquetes system-config-firewall-tui. o bien http://mirror. si está instalando la edición i386. lo cual sería una excelente práctica de seguridad. y posteriormente ir instalando solo los paquetes que realmente se requieran. y lo mínimo necesario para tener un sistema operativo funcional en modo texto. probablemente querrá instalar. si está instalando la edición x86-64. el mandato yum. Tras finalizar la instalación. utilice http://mirror.centos. habrá menos servicios por los cuales preocuparse. Si desconoce que dirección definir. y openssh-clients. que estén disponibles.org/centos/6/updates/i386/. vimenhanced.» Ésto abrirá una ventana donde podrá ingresar la dirección de cualquier sitio de Internet que haga espejo de las actualizaciones de CentOS 6.» 67 . selinux-policy-mls.

y haga clic sobre el botón denominado «Editar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si dispone de al menos una tarjeta de red. haga clic sobre el botón denominado «Aceptar. el programa de instalación le solicitará seleccione que dispositivo utilizar para configurar una conexión de red que permita conectarse hacia el URL que especificó en el paso anterior.» Lo anterior abrirá la ventana «Conexiones de red» de NetworkManager. Seleccione la interfaz de red deseada.» 68 . Una vez seleccionado el dispositivo de red.

Haga clic sobre la pestaña denominada «Ajustes de IPv4.» Configure los parámetros necesarios para poder establecer una conexión de red. haga clic sobre el botón denominado «Aplicar. Al terminar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Abrirá la ventana de edición de la interfaz.» 69 .

» Deberá regresar a la pantalla principal.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Regresará a la ventana de «Conexiones de red». Haga clic sobre el botón denominado «Cerrar. 70 . donde deberá aparecer el almacén YUM que acaba de configurar.

añadir el grupo de paquetes denominado «Base. haga clic sobre el botón denominado «Siguiente. cuando mucho. Prefiera conservar el diseño de instalación mínima. haga clic sobre la casilla de opción denominada «Personalizar ahora.» Al terminar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para elegir grupos específicos de paquetes. y.» Podrá seleccionar cualquier grupo de paquetes que sirva a necesidades particulares.» 71 .

Si desea personalizar la lista de paquetes que se instalará en un grupo en particular. y reinicie el sistema para que inicie en modo gráfico. localice la siguiente línea: id:3:initdefault: Y reemplazar en ésta el 3 por un 5: id:5:initdefault: Guarde el archivo. vim /etc/inittab Al final del archivo. si decide que necesitará utilizar el entorno gráfico. hay que editar el archivo /etc/inittab. salga del editor de texto. Una vez instalado el sistema. haga clic sobre el botón denominado «Paquetes opcionales. Al terminar. solo requerirá ejecutar: yum yum yum yum yum yum -y -y -y -y -y -y groupinstall x11 basic-desktop general-desktop install system-config-services system-config-firewall install system-config-users system-config-date install system-config-printer system-config-lvm install system-config-language system-config-keyboard install cups-pk-helper policycoreutils-gui Luego.» 72 . y de-seleccionar lo que se quiera omitir.» abrirá una ventana desde la cual podrá seleccionar lo que requiera.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. haga clic sobre el botón denominado «Cerrar.

El tiempo que demore el proceso dependerá de la cantidad de grupos. y paquetes. 73 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si está conforme. que se hayan seleccionado. haga clic sobre el botón denominado «Siguiente.» Iniciará el proceso de instalación de paquetes. y considera que ha terminado de seleccionar los grupos de paquetes.

Posterior a la instalación.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Una vez completada la instalación. 3. haga clic sobre el botón «Reinciar. Revise el documento titulado «Ajustes posteriores a la instalación de CentOS 6.» 74 .2.» y retire el DVD o disco compacto de la unidad óptica.

distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Dispositivos de red. c) Si altera o transforma esta obra. y dejar que se encargue de ésta el servicio network. una vez terminada la instalación de CentOS 6. 4. Si realizó la instalación mínima.1. Al reutilizar o distribuir la obra. Ajustes posteriores a la instalación de CentOS 6. sin agregar grupos de paquetes al diseño predeterminado. Edite los archivos de interfaz de sus dispositivos de red: vi /etc/sysconfig/network-scripts/ifcfg-eth0 Asegúrese que al menos una de las interfaces de red tenga el parámetro «ONBOOT» con el valor «yes»: DEVICE="eth0" NM_CONTROLLED="yes" ONBOOT="yes" HWADDR=08:00:27:89:15:BE TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes PEERDNS=yes PEERROUTES=yes DHCP_CLIENT_ID=pruebas-centos6 IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 Si el equipo se va a utilizar como servidor. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Hay algunos ajustes que se recomienda realizar. Usted es libre de copiar. tiene que dejar bien claro los términos de la licencia de esta obra. 4.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 4. o genera una obra derivada.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.1. b) No puede utilizar esta obra para fines comerciales. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. por NM_CONTROLLED="no": 75 .alcancelibre. descubrirá que probablemente los dispositivos de red están desactivados.1 © 1999-2011 Joel Barrios Dueñas. Procedimientos. Cambie NM_CONTROLLED="yes". conviene desactivar que la gestión de las interfaces de red se haga a través del servicio NetworkManager.1. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. o configurar dispositivos de red para incluir actualizacines.

UTF-8" por LANG="es_MX.conf Localice en éste LANG=es_ES.2.1. Si durante la instalación estableció «Español» como idioma predeterminado. se establecerá la variable de entorno «LANG» con el valor «es_ES..» lo cual resultará conveniente para los usuarios que radican en España. Edite el archivo /etc/sysconfig/i18n: vi /etc/sysconfig/i18n Localice LANG="es_ES. Localización.UTF-8": LANG="es_ES.UTF-8.UTF-8" SYSFONT="latarcyrheb-sun16" Edite el archivo /boot/grub/grub. Sin embargo. ésto hará que en los números las divisiones de miles se hagan con un punto.UTF-8" (español de México). reinicie el servicio network: service network restart 4.conf: vi /boot/grub/grub.UTF-8 (sin comillas): 76 . o bien la localización que corresponda a su país: LANG="es_MX.UTF-8" SYSFONT="latarcyrheb-sun16" Cambie LANG="es_ES. y que la división para decimales se haga con una coma.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux DEVICE="eth0" NM_CONTROLLED="no" ONBOOT="yes" HWADDR=08:00:27:89:15:BE TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes PEERDNS=yes PEERROUTES=yes DHCP_CLIENT_ID=pruebas-centos6 IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 Para aplicar los cambios.

UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto rhgb quiet initrd /initramfs-2.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2. This means that # all kernel and initrd paths are relative to /boot/.UTF-8 (español de México. Desactivar Plymouth.1.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition.el6.0) kernel /vmlinuz-2.29.3.29.29.32-71.1.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0.img Cambie LANG=es_ES. sin comillas).0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version.0)/grub/splash.i686 ro root=UUID=09c6dc39-a62b-409e-8306-5344640cd104 r d_LVM_LV=Swap/LogVol00 rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=es_ES.1.el6.img Reinicie el sistema para que surtan efecto los cambios.6.UTF-8 por LANG=es_MX.UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto rhgb quiet initrd /initramfs-2.6.29.6.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux # grub.i686.0)/grub/splash. This means that # all kernel and initrd paths are relative to /boot/.1.32-71.i686.1.32-71.xpm. Plymouth es la nueva implementación para mostrar un arranque gráfico.el6.i686 ro root=UUID=09c6dc39-a62b-409e-8306-5344640cd104 r d_LVM_LV=Swap/LogVol00 rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=es_MX.gz hiddenmenu password --md5 $1$xU. reboot 4. # root (hd0. Si se hizo una instalación mínima.32-71. el arranque del sistema se mostrará de la siguiente forma: 77 .32-71.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0.el6. # root (hd0.29.gz hiddenmenu password --md5 $1$xU.6.i686) root (hd0. o bien la localización que corresponda a su país: # grub.i686) root (hd0. eg.0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version.32-71.xpm.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2.6. eg.1.el6.1.0) kernel /vmlinuz-2.29.6.el6.

probablemente resulte poco conveniente.conf Localice rhgb: 78 . En un servidor. solo hay que pulsar la tecla «Supr» para conmutar al arranque tradicional en texto.conf: vi /boot/grub/grub. Edite el archivo /boot/grub/grub. y viceversa. mostrando los mensajes de inicio de los servicios.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para visualizar que ocurre detrás de Plymouth. y se prefiera un arranque tradicional.

img Reinicie el sistema para que surtan efecto los cambios.29.i686.gz hiddenmenu password --md5 $1$xU. # root (hd0.xpm.29.el6.32-71.6.1.6.0) kernel /vmlinuz-2.img Elimine rhgb: # grub.el6.1.i686) root (hd0.0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version.i686 ro root=UUID=09c6dc39-a62b-409e-8306-5344640cd104 r d_LVM_LV=Swap/LogVol00 rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=es_MX.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux # grub.32-71.i686 ro root=UUID=09c6dc39-a62b-409e-8306-5344640cd104 r d_LVM_LV=Swap/LogVol00 rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=es_MX. eg.6.i686) root (hd0.1.i686.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2.29.el6.xpm. e instale los siguientes grupos: yum -y groupinstall x11 basic-desktop general-desktop Complemente instalando algunos paquetes de herramientas de administración.1.UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto quiet initrd /initramfs-2.6.29.0)/grub/splash. omita la sección anterior (Desactivar Plymouth).32-71. This means that # all kernel and initrd paths are relative to /boot/. y habilitar.32-71.0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version. reboot 4. Si considera que requiere utilizar el modo gráfico.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition.32-71.29.gz hiddenmenu password --md5 $1$xU. # root (hd0.1.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0. This means that # all kernel and initrd paths are relative to /boot/.6.el6. el modo gráfico.32-71.el6.29.UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto rhgb quiet initrd /initramfs-2.1. eg.6.1.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. Instalar.el6.0)/grub/splash.4. yum yum yum yum -y -y -y -y install install install install system-config-services system-config-date system-config-printer system-config-lvm system-config-language system-config-keyboard cups-pk-helper policycoreutils-gui 79 .0) kernel /vmlinuz-2.

con la finalidad de que los mensajes de error que se pudieran generar al arrancar el sistema. salga del editor de texto Instale el complemento para GDM (el gestor de pantalla de GNOME). vi /etc/inittab Al final del archivo. hay que editar el archivo /etc/inittab. y enviar reportes de errores de las aplicaciones gráficas a los desarrolladores de CentOS. que solo son útiles para realizar depuración del núcleo. el tema gráfico predeterminado de CentOS 6 (rings) para Plymouth: yum -y install plymouth-theme-rings plymouth-set-default-theme rings /usr/libexec/plymouth/plymouth-update-initrd 80 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. Probablemente quiera eliminar los siguientes paquetes. localice la siguiente línea: id:3:initdefault: Y reemplazar en ésta el 3 por un 5: id:5:initdefault: Guarde el archivo. yum remove kexec-tools abrt-* Luego. se muestren con icono de advertencia en la pantalla gráfica de autenticación: yum -y install plymouth-gdm-hooks Ejecute lo siguiente para instalar. y establecer.

y vistoso.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si desea un tema más atractivo. establezca el tema solar: yum -y install plymouth-theme-solar plymouth-set-default-theme solar /usr/libexec/plymouth/plymouth-update-initrd 81 .

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. vga=0x317 activará una resolución de 1024x768). Reinicie el sistema para que apliquen los cambios. Plymouth solo se mostrará si el sistema dispone de una tarjeta de gráficos con soporte para KMS (Kernel mode-setting) en el núcleo de Linux. reboot 82 . e inicie en modo gráfico. o bien definiendo manualmente una resolución como parámetro de inicio del núcleo de Linux (ejemplo: vga=0x315 activará la resolución a 800x600.

Usted es libre de copiar. fue eliminado del núcleo de Linux. b) No puede utilizar esta obra para fines comerciales.6. y reduciendo de manera significativa las operaciones de petición de los discos duros.6. o re-ordenar. Anticipatory. de los disco duros. hasta que éste se vacía por completo.1 © 1999-2011 Joel Barrios Dueñas. Era ideal para servidores HTTP.6. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. para moverse desde una posición. eligiendo un algoritmo de planificación de Entrada/salida. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. o garantizar que algunas peticiones se atenderán antes de una fecha de caducidad. 83 . 5. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. La mayoría de los planificadores de Entrada/Salida (I/O schedulers) se basan sobre el algoritmo del elevador. Este algoritmo basa su nombre sobre el comportamiento del elevador de un edificio.18. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.1. pues prácticamente hoy en día hay muy pocos discos duros basados sobre el estándar estándar SCSI-1. o sistemas de Escritorio. las operaciones de búsqueda que son hechas. 5. siempre que éstos vayan en la misma dirección actual del elevador. es disminuir los tiempos de búsqueda (seek times).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 5. Este planificador de Entrada/Salida funciona realizando una demora controlada antes de despachar los procesos de Entrada/Salida. o bien muy lentos. Fue el planificador de Entrada/Salida del núcleo de Linux desde la versión 2. Está diseñado específicamente para optimizar los sistemas con sub-sistemas de discos pequeños. Al reutilizar o distribuir la obra. o hacia abajo. y que aún estén en operación. o unidad de almacenamiento.1. Desde la versión 2. con discos duros SCSI-1. Planificadores de Entrada/Salida disponibles en el núcleo de Linux.33. o genera una obra derivada. pues se conseguía un rendimiento sensiblemente superior. y algunos modelos de IDE/ATA. mejorando el desempeño. priorizar las peticiones de ciertos procesos de Entrada/salida. 5. asignar un ancho de banda más adecuado a cada procesos. El objetivo de optimizar el sistema.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. o IDE/ATA. o IDE/ATA.0 hasta a versión 2. o I/O scheduling) consiste en el método mediante el cual los sistemas operativos deciden el orden en que se procesan las peticiones de lectura/escritura en el disco duro. con la finalidad de agregar. La planificación de Entrada/Salida (Input/Output Scheduling. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. c) Si altera o transforma esta obra. donde éste continúa su trayectoria actual. el cual determina el movimiento del brazo de un disco y cabezal al servir peticiones de lectura/escritura. y el cabezal. Introducción. deteniéndose solo para permitir que nuevos individuos lo aborden.2. Planificadores de Entrada/Salida en Linux. como es el caso de discos duros con estándar SCSI-1.alcancelibre. Básicamente.2. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. hacia otra posición más alejada. hacia arriba. El planificador de Entrada/Salida Anticipatory consiste en un algoritmo cuyo objetivo es incrementar la eficiencia de la utilización del disco duro al anticipar operaciones sincrónicas de lectura. fueron diseñados para mitigar la demora de los tiempos de búsqueda que utilizan el brazo. tiene que dejar bien claro los términos de la licencia de esta obra.

29.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0. Ofrece un excelente rendimiento para la mayoría de los usos que se le pueda dar al sistema operativo. 84 .6. que podría traducirse como encolado de procesamiento completamente justo. es decir todos los modernos disco duros que actualmente existen en mercado. es el planificador de Entrada/Salida predeterminado de CentOS y Red Hat Enterprise Linux.conf Y añadir a los parámetros de inicio del núcleo el parámetro elevator.32-71.i686.img 5. eg. se debe editar el archivo /boot/grub/grub.i686) root (hd0. así como con arreglos de discos por RAID.2.gz hiddenmenu password --md5 $1$xU. que es una tecnología consiste en la optimización de peticiones de lectura/escritura desde la propia unidad de disco duro. CFQ. que es el acrónimo de Completely Fair Queuing. PATA.6.0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version.el6.32-71.1.1.conf: vim /boot/grub/grub. # root (hd0.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. permitiendo al sistema operativo realizar múltiples peticiones de lectura/escritura. Asumiendo que se dispone de un disco duro basado sobre el estándar SCSI-1.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2.0) kernel /vmlinuz-2. este planificador de Entrada/Salida puede aplicarse de manera inmediata ejecutando: echo "anticipatory" > /sys/block/sda/queue/scheduler Lo anterior hará que el sistema utilice este planificador de Entrada/Salida hasta el siguiente reinicio.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Es totalmente inadecuado para discos duros que utilicen TCQ (Tagged Command Queuing).el6. Esta tecnología es utilizada en los discos duros con el estándar SCSI-2.xpm. Verifique que realmente se ha establecido como el planificador de Entrada/Salida actual ejecutando: cat /sys/block/sda/queue/scheduler Lo cual debe devolver una salida similar a la siguiente: [anticipatory] noop deadline cfq Para que el cambio sea permanente.UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto rhgb quiet elevator=anticipatory initrd /initramfs-2. Tampoco se recomienda con discos duros de alto desempeño.2.29. This means that # all kernel and initrd paths are relative to /boot/. CFQ. y SATA. # grub. que se ha asignado como el dispositivo /dev/sda.32-71. con el valor anticipatory. o bien IDE/ATA.el6.i686 ro root=UUID=09c6dc39-a62b-409e-8306-5344640cd104 r d_LVM_LV=Swap/LogVol00 rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=es_MX.29.6.0)/grub/splash.

e intentar distribuir equitativamente el ancho de banda disponible para los procesos de Entrada/Salida. La longitud de los intervalos de tiempo.2.3. Funciona colocando peticiones sincrónicas. al permitir que las colas de procesamiento puedan pausar al finalizar un procesos de Entrada/Salida. discos duros con el estándar SCSI-2. a fin de que puedan acceder al disco duro. anticipando el procesos de Entrada/Salida más cercano de ese mismo proceso. para intentar distribuir equitativamente las peticiones de Entrada/Salida. evitando se agote la capacidad de procesamiento. Básicamente impone tiempos de caducidad (deadline) a todas las operaciones de Entrada/Salida. verificando después si ha caducado la primera petición en la cola de procesamiento. Es decir. en menos colas de procesamientos. Este planificador de Entrada/Salida funciona de modo similar al tiempo real.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Su objetivo es mantener una cola de procesamiento de Entrada/Salida escalable por proceso. asignando una por prioridad. los tiempos de caducidad son de 500 ms para las peticiones de lectura. manteniendo una buena capacidad de procesamiento. depende de la prioridad del mismo procesos de Entrada/Salida. y de 5 segundos para las peticiones de escritura. pues es el predeterminando del sistema. De modo predeterminado. Técnicamente. y particularmente para aquellos sistemas que disponen de discos duros con capacidad de TCQ. Se recomienda su uso para servidores dedicados para bases de datos. al mismo tiempo que las colas de procesamiento son ordenadas de acuerdo a su número de sector. las peticiones asincrónicas para todos los procesos son agrupadas. utilizando una política de asignación en circuito (round robin). Antes de servir la siguiente petición. decide que cola de procesamiento utilizar. entre todas las peticiones de Entrada/Salida. y luego distribuyendo intervalos de tiempo para cada una de las colas de procesamiento. o SATA 85 . y procesadas. Deadline. es innecesario hacer modificación alguna. así como también el número de peticiones que tiene permitido una cola de procesamiento. otorgando mayor prioridad a las peticiones de lectura. enviadas por un proceso. dentro de un número de colas de procesamiento por proceso. 5. Puede verificar que CFQ es el planificador de Entrada/Salida utilizado por el sistema. PATA. dos de las cuales son ordenadas de acuerdo a los tiempos de caducidad. con la finalidad de impedir que se agote la capacidad de recibir peticiones. De este modo. así como en sistemas con discos duros de alto desempeño. tiene el mismo efecto similar al del planificador de Entrada/Salida Anticipatory. Utiliza cinco colas de procesamiento. ejecutando lo siguiente: cat /sys/block/sda/queue/scheduler Lo cual debe devolver una salida similar a la siguiente: anticipatory noop deadline [cfq] Para utilizar este planificador de Entrada/Salida.

o unidad de almacenamiento. primero en salir).2.conf: vim /boot/grub/grub.0) kernel /vmlinuz-2. este planificador de Entrada/Salida puede aplicarse de manera inmediata ejecutando: echo "deadline" > /sys/block/sda/queue/scheduler Lo anterior hará que el sistema utilice este planificador de Entrada/Salida hasta el siguiente reinicio. como pudiera ser en el dispositivo de bloque.img 5. con el valor deadline.32-71. o bien un controlador conectado de manera externa.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0. Verifique que realmente se ha establecido como el planificador de Entrada/Salida actual ejecutando: cat /sys/block/sda/queue/scheduler Lo cual debe devolver una salida similar a la siguiente: anticipatory noop [deadline] cfq Para que el cambio sea permanente.1.conf Y añadir a los parámetros de inicio del núcleo el parámetro elevator. que se ha asignado como el dispositivo /dev/sda.1.gz hiddenmenu password --md5 $1$xU.32-71. This means that # all kernel and initrd paths are relative to /boot/. # root (hd0.i686.29.el6.6. como en el caso en los controladores RAID para SAS (Serial Attached SCSI).el6. eg. dentro de una cola de procesamiento tipo FIFO (first in.6. o bien un HBA (Host Bus Adapter. Es el planificador de Entrada/Salida más simple que existe para el núcleo de Linux.UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto rhgb quiet elevator=deadline initrd /initramfs-2.32-71. o adaptador de transporte del anfitrión) inteligente.0)/grub/splash. como ocurre con los SAN (Storage Area Network. Asume que la optimización del desempeño de Entrada/Salida será gestionado por otro nivel de la jerarquía de Entrada/Salida. # grub. first out.4. se debe editar el archivo /boot/grub/grub.1.i686 ro root=UUID=09c6dc39-a62b-409e-8306-5344640cd104 r d_LVM_LV=Swap/LogVol00 rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=es_MX. que se traduce como primero en entrar.29. o Redes de Área de Almacenamiento).el6.xpm.i686) root (hd0.6.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2. Noop.0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version.29.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Asumiendo que se dispone de un disco duro. Funciona insertando todas las peticiones de Entrada/Salida. e implementando fusión de peticiones. 86 .conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition.

tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2. servicios utilizados en el sistema. This means that # all kernel and initrd paths are relative to /boot/.1.3. ¿Qué planificador de Entrada/Salida elegir? Depende del tipo de disco duro.6. capacidades de procesamiento. Solid State Drives) basadas sobre memoria Flash.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition.i686 ro root=UUID=09c6dc39-a62b-409e-8306-5344640cd104 r d_LVM_LV=Swap/LogVol00 rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=es_MX.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0.xpm.img 5.gz hiddenmenu password --md5 $1$xU.i686. 87 .1.el6. y los tipos de procesos que se quieran priorizar.0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version. que se ha asignado como el dispositivo /dev/sda.29.6. y la variabilidad del tiempo de servicio de Entrada/Salida.i686) root (hd0. # grub. este planificador de Entrada/Salida puede aplicarse de manera inmediata ejecutando: echo "noop" > /sys/block/sda/queue/scheduler Lo anterior hará que el sistema utilice este planificador de Entrada/Salida hasta el siguiente reinicio.0)/grub/splash.29. con el valor noop. Verifique que realmente se ha establecido como el planificador de Entrada/Salida actual ejecutando: cat /sys/block/sda/queue/scheduler Lo cual debe devolver una salida similar a la siguiente: anticipatory [noop] deadline cfq Para que el cambio sea permanente.el6.conf: vim /boot/grub/grub.6.0) kernel /vmlinuz-2.32-71.UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto rhgb quiet elevator=noop initrd /initramfs-2. los cuales carecen de re-ordenamiento de peticiones múltiples de Entrada/Salida.32-71. Asumiendo que se dispone de un disco duro. se debe editar el archivo /boot/grub/grub. y en dispositivos que carecen de dependencia a movimientos mecánicos.29.32-71.el6.1. reduciendo el tiempo de petición. donde se agrupan juntas las peticiones de Entrada/Salida que están físicamente cercanas.conf Y añadir a los parámetros de inicio del núcleo el parámetro elevator. eg.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Este planificador de Entrada/Salida es principalmente utilizado con unidades de estado sólido (SSD. # root (hd0. o unidad de almacenamiento.

org/wikipedia/en/wiki/CFQ https://secure.wikimedia. Simplemente.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En general. En lo que respecta a cfq.wikimedia. Definitivamente se recomienda utilizar deadline en servidores para bases de datos. En cuanto a noop. Bibliografía.wikimedia.org/wikipedia/es/wiki/Planificaci%C3%B3n_de_E/S https://secure. y de rendimiento. Se recomienda realizar pruebas de desempeño.org/wikipedia/en/wiki/Deadline_scheduler https://secure. antes de elegir el planificador de Entrada/salida definitivo para un sistema en particular. 5. elegir el que se considere que funcione mejor. se puede utilizar anticipatory en equipos con discos duros viejos (SCSI-1.redhat.wikimedia.org/wikipedia/en/wiki/Anticipatory_scheduling https://secure.4. será conveniente en sistemas con unidades de estado sólido basadas sobre memoria flash. • • • • • • • https://secure.com/magazine/008jun05/features/schedulers/ 88 .wikimedia. se recomienda en sistemas para uso general.org/wikipedia/en/wiki/Noop_scheduler https://www. o IDE/ATA).wikimedia. o bien sistemas con unidades de almacenamiento controladas por HBA inteligentes.org/wikipedia/en/wiki/Elevator_algorithm https://secure.

Utilizando el disco de rescate de CentOS 6. Inicie el sistema con el disco de instalación. pulse cualquiera de la tecla ↑.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 6. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Al reutilizar o distribuir la obra.1. Seleccione la entrada denominada «Rescue installed system. b) No puede utilizar esta obra para fines comerciales. Usted es libre de copiar.alcancelibre. 6. o bien la tecla ↓. Procedimientos. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.» 89 . En cuanto aparezca la pantalla de bienvenida. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Tendrá 60 segundos para hacerlo.1 © 1999-2011 Joel Barrios Dueñas. c) Si altera o transforma esta obra. tiene que dejar bien claro los términos de la licencia de esta obra. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. o genera una obra derivada.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.

Si desea ver que opciones de arranque utiliza esta entrada. Notará que la opción de arranque es simplemente rescue. pulse la tecla TAB. El disco de instalación iniciará en modo rescate.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Puede pulsar la tecla ↵ (ENTER) y continuar. 90 . Lo primero a configurar es el idioma. Pulse la tecla ↵ (ENTER) para proceder.

pulse la tecla TAB hasta que resalte Aceptar. Si su teclado tiene disposición Español/España. y pulse la tecla ↵ (ENTER). pulse la tecla TAB hasta que resalte Ok. A partir de este punto. 91 . todos los mensajes se mostrarán al español. y pulse la tecla ↵ (ENTER).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Seleccione Spanish. seleccione es.

y pulse la tecla ↵ (ENTER). pulse la tecla TAB hasta que resalte Aceptar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si su teclado tiene disposición Español/Latinoamérica. 92 . Seleccione CD/DVD Local. seleccione la-latin1. y pulse la tecla ↵ (ENTER). pulse la tecla TAB hasta que resalte Aceptar.

Configure lo necesario para establecer la conexión de red por DHCP. 93 . y pulse la tecla ↵ (ENTER). y pulse la tecla TAB para conmutar entre los elementos de pantalla. Si respondió con Si en la pantalla anterior. o bien No.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Se le preguntará si desea activar las tarjetas de red del sistema. Pulse la tecla TAB hasta que resalte Si. pulse la tecla TAB hasta que resalte Aceptar. y pulse la tecla ↵ (ENTER). Utilice la tecla ESPACIO para definir activar los dispositivos de red. o bien por dirección IP fija. el sistema le solicitará que elija qué tarjeta. Una vez terminado lo anterior. desea utilizar para establecer una conexión de red. o bien tarjetas.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Tiene cuatro opciones a elegir. pero todo el sistema de archivos se montará en modo de solo lectura. iSCSI. Esta opción es idónea para realizar reparaciones del sistema de archivos de las particiones. o bien para realizar operaciones que requieren que las particiones estén sin montar. Permitirá hacer uso de dispositivos espaciales de almacenamiento. 94 . Modo lectura. como como Redes de Área de Almacenamiento (SAN). Similar a la opción anterior. utilizando el mandato fsck. Se omitirá el montado del sistema de archivos del disco duro. Omitir. y zFCP. El entorno de rescate intentará encontrar una instalación de GNU/Linux en el disco duro. y así poder realizar los cambios o modificaciones que requiera. Avanzado. • • • Seleccione Continuar. El sistema examinará los dispositivos de almacenamiento. debajo del directorio /mnt/sysimage. e intentará montar todas las particiones en el árbol que corresponde. De este modo se podrá acceder en modo lectura y escritura al sistema de archivos. • Continuar. y pulse la tecla ↵ (ENTER). es decir FCoE. Ésto puede demorar varios segundos.

y pulse la tecla ↵ (ENTER). Reboot. una herramienta que realiza verificación. • Start shell. • • Seleccione Start shell. desde el cual podrá trabajar de modo similar al nivel de ejecución 1 (mono usuario). Iniciará el intérprete de mandatos. el entorno de rescate le informará que las particiones de la instalación existente de GNU/Linux estarán montadas debajo del directorio /mnt/sysimage. Para continuar. Ejecutará FirstAidKit. y reparación. pulse la tecla ↵ (ENTER).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Una vez detectada la instalación en el disco duro. Reiniciará el sistema. y tendrá acceso a un conjunto básico de herramientas de diagnóstico y reparación. 95 . Aparecerá una pantalla con tres opciones. Run diagnostic. automática de algunos problemas comúnes.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior le devolverá un intérprete de mandatos. Verifique que todas las particiones de la instalación de GNU/Linux han sido montadas. 96 . utilizado el mandato df con la opción -h.

97 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Ejecute el mandato exit para regresar a la pantalla anterior.

Si hay algo que reparar. Si ejecuta el siguiente mandato: chroot /mnt/sysimage Cambiará del sistema operativo del disco de rescate. Pulse la tecla ↵ (ENTER) para salir. imagen de disco RAM para el inicio del sistema (initrd). arreglos de discos por software. del gestor de arranque.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. puede seleccionar ejecutar fakd. FirstAidKit lo hará de manera automática. al sistema operativo en el disco duro. para cambiar la clave de acceso del usuario root. grub-install /dev/sda Para regresar al sistema operativo del entorno de rescate. si acaso fuese necesario. ejecute el mandato exit. y regresar a la pantalla anterior. 98 . que es una herramienta de diagnóstico para verificación. passwd O bien reinstalar manualmente el gestor de arranque del sistema. y reparación automática. y re-instalación de algunos paquetes básicos. Esto puede ser de mucha utilidad. es decir FirstAidKit. exit Si lo desea.

99 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Seleccione Reboot y pulse la tecla ↵ (ENTER) para reiniciar el sistema. Retire el DVD o disco compacto de la unidad óptica.

distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. se definió una clave de acceso para el gestor de arranque. y otros ajustes. aparecerá la siguiente pantalla. o genera una obra derivada. para detener la cuenta regresiva de 3 segundos. Iniciando el sistema en nivel de ejecución 1 (nivel mono-usuario). Al iniciar el sistema. 100 . Procedimientos. tiene que dejar bien claro los términos de la licencia de esta obra.alcancelibre. c) Si altera o transforma esta obra. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. y poder ingresar al menú de GRUB. Al reutilizar o distribuir la obra. 7. b) No puede utilizar esta obra para fines comerciales.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. o bien para realizar correcciones. Pulse cualquier tecla. a fin de realizar tareas de mantenimiento.1 © 1999-2011 Joel Barrios Dueñas. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.1. también denominado nivel monousuario. Usted es libre de copiar. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. 7. conocido como GRUB (Grand Unified Boot Loader). Si durante la instalación de CentOS.2. excepto la tecla ENTER. éste presentará la pantalla del gestor de arranque. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 7. Introducción Existen situaciones en las cuales se puede requerir iniciar el sistema en nivel de ejecución 1.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para ingresar la clave de acceso. Ingrese la clave de acceso que se asignó al gestor de arranque durante la instalación del sistema operativo: 101 . pulse la tecla «p».

Pulse la tecla «e» para editar las opciones de arranque del núcleo seleccionado: Seleccione la línea referente al núcleo. 102 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux El texto de la sección de opciones cambiará después de ingresar la clave de acceso.

y pulse la tecla ENTER. 103 . Se mostrará la siguiente pantalla Agregue un espacio. vuelva a pulsar la tecla «e». al final de la línea.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Con el fin de realizar una edición de esta línea. y un número 1.

Ésto hará que el sistema inicie en nivel de ejecución 1: 104 . Pulse la tecla «b».Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Regresará a la pantalla anterior.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 105 .

Athlon. Cyrix i686. En sistemas caseros y computadoras portátiles con cierta antigüedad. Duron. Una de las grandes ventajas de que el núcleo (kernel) GNU/Linux sea equipamiento lógico libre (Software Libre) es el poder descargar el código fuente del núcleo. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. etc. soporte genérico para arquitectura ix86. por ejemplo. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. La gran variedad de distribuciones de GNU/Linux instalan un núcleo (kernel) que fue configurado y compilado con opciones genéricas y que permiten utilizar éste en una gran variedad de dispositivos y computadoras. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Pentium II. soporte para IPv6 y otras opciones que solo serían útiles en otro tipo de sistemas como servidores. soporte para otros modelos de computadoras portátiles. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.alcancelibre. Usted es libre de copiar. Pentium 4.1. c) Si altera o transforma esta obra. Cómo compilar el núcleo (kernel) de GNU/Linux en CentOS. Esto facilita la vida a los desarrolladores y empaquetadores que trabajan para cada distribución pues de esta forma con cuatro o cinco versiones del paquete de núcleo abarcan la mayoría de los sustentos físicos en el mercado. tiene que dejar bien claro los términos de la licencia de esta obra. Introducción. circuitos integrados Intel PIIX4. soporte para más de un microprocesador. Configurar y compilar el núcleo específicamente para las características de este modelo de computadora portátil. pueden excluirse funciones como el soporte para más de 4 GB de RAM.1 © 1999-2011 Joel Barrios Dueñas. 8. con 320 MB RAM. tarjeta de red Ethernet Pro 100 y otros ciertos dispositivos en particular.1. compilarlo y obtener como resultado mejoras en el desempeño. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Al reutilizar o distribuir la obra. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. tarjeta de audio ESS Technology ES1978. Pentium M.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 8. se dispone una computadora portátil (Laptop) Compaq Armada M300 con microprocesador Pentium III (Coppermine) de 500 MHz.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Evidentemente este soporte genérico impide poder explotar todo el potencial e instrucciones de un modelo de microprocesador en particular. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Celeron. por entidades con fines de lucro). el paquete del núcleo de CentOS 5 y Red Hat Enteprise Linux 5 que se distribuye para arquitecturas i686 incluye opciones y optimizaciones genéricas que permiten utilizar un mismo paquete RPM del núcleo para una amplia variedad de sistemas. configurar éste para compilar específicamente con opciones adecuadas a necesidades particulares o con controladores específicos para un sustento físico (hardware) en particular. Licencia completa en castellano. Ésto elimina la necesidad de los usuarios por compilar el núcleo. Si. a través de cualquier medio. Un ejemplo del porque conviene recompilar el núcleo. excluyendo de la configuración funciones que jamás se utilizarán en este sistema. o genera una obra derivada. mejorará su desempeño significativamente. 8. Por mencionar un ejemplo.1. Éste incluye el soporte para ser utilizado con microprocesadores como Pentium Pro. 106 . pero se tendrá un desempeño inferior. el núcleo genérico incluido en la instalación funcionará bien. Pentium III.

y compilar algunos controladores (cómo el soporte para LVM) dentro del núcleo en lugar de hacerlo como módulos a fin de mejorar el desempeño durante el arranque del sistema.snd_seq_oss. como por ejemplo más dispositivos USB. Utilice el mandato de la siguiente forma: /sbin/lsmod Lo anterior puede devolver una salida similar a la siguiente. Este procedimiento es complicado e implica contar con un cierta experiencia y conocimientos generales acerca del sustento físico (hardware). Módulos utilizados por el sistema.snd_pcm_oss 0 0 2 snd_seq. Utilizando el mandato lsmod es posible determinar que controladores se están utilizando en el sistema. Procedimientos. que dependerá del sustento físico del sistema: Module nls_utf8 vfat fat sg sd_mod usb_storage scsi_mod i2c_dev dm_multipath backlight snd_es1968 gameport snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_pcm_oss snd_mixer_oss battery ac snd_pcm button parport_pc snd_timer snd_page_alloc parport snd_mpu401_uart Size 1888 12768 50268 35536 28112 46848 148044 7492 18856 5220 28192 13608 97760 1728 3556 30976 7008 47856 41184 16192 12932 5796 72168 7984 27524 22148 10216 35400 7872 Used by 1 1 1 vfat 0 2 1 3 sg.snd_ac97_codec.usb_storage 0 0 0 1 1 snd_es1968 1 snd_es1968 1 snd_ac97_codec 0 0 1 snd_seq_oss 5 snd_seq_dummy.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Puede agregarse soporte para más periféricos. En un servidor se puede mejorar mucho el desempeño configurando y compilando exclusivamente las opciones y módulos específicos para la configuración de sustento físico (hardware) y funciones requeridas para los servicios a brindar.1. 8.2. 8.snd_seq_midi_event 0 1 snd_pcm_oss 0 0 3 snd_es1968.1.1. Determinar el sustento físico y controladores.2.sd_mod. 8.snd_pcm 1 parport_pc 1 snd_es1968 107 . Esta lista de controladores debe tomarse muy en cuenta a fin de evitar excluir alguno de éstos.snd_pcm 2 snd_es1968.2.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux snd_rawmidi joydev snd_seq_device snd e100 soundcore mii i2c_piix4 pcspkr i2c_core serio_raw floppy dm_snapshot dm_zero dm_mirror ext3 jbd uhci_hcd ohci_hcd ehci_hcd 23392 11232 8044 52068 34220 7264 5440 8780 2624 24432 6500 55652 17472 1920 25568 132488 42100 23696 22916 33740 1 snd_mpu401_uart 0 4 snd_seq_dummy. La información del microprocesador se puede consultar leyendo el contenido del archivo virtual /proc/cpuinfo utilizando el mandato less del siguiente modo: less /proc/cpuinfo Lo anterior puede devolver una salida similar a la siguiente.snd_seq.snd_seq.2. Tipo de microprocesador.snd_pcm. snd_mpu401_uart. que dependerá del tipo de microprocesador del que se disponga: processor : vendor_id : cpu family : model : model name : stepping : cpu MHz : cache size : fdiv_bug : hlt_bug : f00f_bug : coma_bug : fpu : fpu_exception : cpuid level : wp : flags : mtrr pge mca cmov bogomips : clflush size : 0 GenuineIntel 6 8 Pentium III (Coppermine) 3 498.snd_rawmidi 13 snd_es1968.snd_mixer_oss. snd_pcm_oss.86 32 108 .2.i2c_piix4 0 0 0 0 0 2 1 ext3 0 0 0 8.snd_timer.snd_ac97_codec.snd_rawmidi.1.164 256 KB no no no no yes yes 2 yes fpu vme de pse tsc msr pae mce cx8 sep pat pse36 mmx fxsr sse 996.snd_seq_device 0 1 snd 1 e100 0 0 2 i2c_dev.snd_seq_oss.snd_seq_oss.

1.3.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 8. a fin de disponer de los paquetes RPM de fuentes. De manera similar al mandato lspci.2. El mandato lspci permite determinar los dispositivos PCI (Peripheral Component Interconnect o Interconexión de Componentes Periféricos) presentes en el sistema. Super Flash Apple. Conecte a las ranuras USB del sistema los dispositivos USB más frecuentemente utilizados y utilice el mandato lsusb. que dependerá de los dispositivos PCI de los que que se disponga: 00:00. /sbin/lsusb Lo anterior puede devolver una salida similar a la siguiente. USB Keyboard [Alps or Logitech. Para CentOS. con el siguiente contenido: #source packages [sources] name=CentOS-$releasever .1 Serial controller: Agere Systems LT WinModem 01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage LT Pro (rev dc) 00:07.0 Host bridge: Intel Corporation 440BX/ZX/DX . Instalación el equipamiento lógico necesario. el mandato lsusb permite determinar los dispositivos USB (Universal Serial Bus o Transporte Universal en Serie) presentes en el sistema. Inc.Sources baseurl=http://mirror. Dispositivos USB. Keyboard Hub [ALPS] Linux Foundation 1.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03) 00:08.centos. /sbin/lspci Lo anterior puede devolver una salida similar a la siguiente.centos. que dependerá del tipo de dispositivos USB de los que se disponga: Bus 001 Device 005: ID 0457:0151 1GB / GXT 64MB Flash Drive Bus 001 Device 004: ID 05ac:0201 M2452] Bus 001 Device 003: ID 05ac:1001 Bus 001 Device 001: ID 1d6b:0001 Silicon Integrated Systems Corp. Dispositivos PCI.82443BX/ZX/DX Host bridge (AGP disabled) (rev 03) 00:04.org/centos/RPM-GPG-KEY-CentOS-5 #source packages 109 .2. Apple.2.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 09) 00:09. se debe configurar primero los depósitos yum de los paquetes RPM fuentes (.rpm) como el nuevo archivo /etc/yum.1.1 root hub 8.repos.org/centos/$releasever/os/SRPMS/ gpgcheck=1 enabled=1 gpgkey=http://mirror.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01) 00:07.4.d/CentOS-Sources.repo.2.0 CardBus bridge: Texas Instruments PCI1211 00:05.0 Ethernet controller: 3Com Corporation 3CRPAG175 Wireless PC Card (rev 01) 8.0 Multimedia audio controller: ESS Technology ES1978 Maestro 2E (rev 10) 00:09.src.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02) 00:07. Inc.

6.6. para construir la herramienta de configuración del núcleo.el5. y el paquete para creación de paquetería RPM: yum -y install gcc glibc-devel ncurses-devel rpm-build Si se va a utilizar la herramienta de configuración gráficos.src. Se procede a instalar el paquete fuente kernel-2.6.2. Primero se instala el paquete yum-utils de la siguiente forma: yum -y install yum-utils El paquete yum-utils incluye la herramienta yumdownloader. 8.el5. Utilizar el paquete fuente de la distribución de GNU/Linux utilizada garantiza que se utilizará la misma versión oficial de núcleo para producción del distribuidor. misma que se utilizará para descargar el paquete fuente del paquete RPM del kernel.spec.el5.1. del siguiente modo: yumdownloader --source kernel Suponiendo que se tiene instalado el paquete del núcleo denominado kernel-2.6.rpm de la siguiente forma: rpm -ivh kernel-*.org/centos/RPM-GPG-KEY-CentOS-5 Al terminar se continúa con la instalación de los paquetes RPM binarios de el compilador gcc.6.org/centos/5/updates/SRPMS/ gpgcheck=1 enabled=1 gpgkey=http://mirror.rpm dentro del directorio de trabajo actual.18-92.Sources Updates baseurl=http://mirror.18-92. 110 . cabeceras de desarrollo para el lenguaje de programación C. Obtener el código fuente del núcleo.centos.rpm Esto instalará los fuentes y parches para el núcleo en el directorio /usr/src/redhat/SOURCES/ y el archivo de especificación para construir el paquete binario RPM como /usr/src/redhat/SPECS/kernel-2.2. lo anterior descargara desde los depósitos de equipamiento lógico en Internet el paquete kernel2.18-92.6. hay que instalar además los paquetes qt-devel y gcc-c++ del siguiente modo: yum -y install qt-devel gcc-c++ 8.3.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux [sources-updates] name=CentOS-$releasever .centos.1. paquete de desarrollo de ncurses.6. A partir de los depósitos de la distribución utilizada.src. Esto garantiza que se mantendrá la compatibilidad de los API (Application Programming Interface o Interfaz de Programación de Aplicaciones) requeridos por aplicaciones de terceros.1.src.3. la cual seguramente incluye parches específicos para funcionar con la instalación de esa distribución de GNU/Linux.

donde [arquitectura]representa la arquitectura genérica del microprocesador. para equipos . Configuración genérica para arquitectura ia64 (Intel Itanium).1.1892. rpmbuild -bp --target=i686 kernel-2.config kernel-2. ia64-xen y x86_64-xen. hay que descomprimir y aplicar los parches incluidos por el distribuidor.18ia64./BUILD/kernel-2. con soporte para Xen.18/linux-2. lo que significa que se descomprimirá el fuente del núcleo y se aplicarán los parches. Pentium MMX. AMD K6. La opción --target=i686 se utilizará en ejemplo a continuación para que se instale un archivo previamente configurado con opciones genéricas para la arquitectura i686.18/linux-2.config kernel-2.config kernel-2. AMD K6 III).6.el5.6.18i686.config kernel-2.6. Esto se consigue utilizando el mandato rpmbuild con las opciones -bp y --target=[arquitectura]. AMD K7..6. x86_64. para utilizar las funciones de Xen que permiten utilizar paravirtualización.6.6. Configuración genérica para arquitectura ia64. AMD Athlon XP.18-i686xen. Configuración genérica para arquitectura i686.18. Las opciones -bp inician parcialmente el la construcción del paquete (build) pero solo hasta la sección %prep (preparativos) del archivo de especificación. Celeron.src. s390 y s390x.rpm. AMD Duron). los cuales se instalan dentro del directorio /usr/src/redhat/SOURCES/. Pentium II.6. Uno de estos archivos se selecciona y copia automáticamente dentro del directorio /usr/src/redhat/BUILD/kernel-2.18-i686PAE. i686-xen. Pentium III. AMD K5. están disponibles las configuraciones genéricas para i586.6. ppc.6. Configuración genérica para arquitectura i686 (Pentium Pro. cd .6. Pentium M. AMD K6 II.18-ia64Configuración genérica para arquitectura i586 (Pentium. Permite utilizar paravirtualización a través de Xen. Se debe acceder al directorio /usr/src/redhat/SPECS/.18i586.i686/ Dentro del paquete RPM se incluyen varios archivos con configuraciones genéricas de acuerdo a la arquitectura.6.6. cd /usr/src/redhat/SPECS/ Posteriormente se procede a descomprimir fuentes y aplicar parches.config kernel-2. kernel-2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para poder utilizar el código fuente. con opciones de depuración.6. con opciones de depuración. i686.6. solo resta es acceder al directorio /usr/src/redhat/BUILD/kernel2. Utilizado en sistemas con más de 4 GB de RAM. Xeon.18-i686debug. ppc64. ia64. con soporte PAE (Physical Address Extension) que añade capacidades para utilizar mayor espacio de intercambio (swapspace).config kernel-2.18. En el caso de CentOS 5.spec Considerando en el ejemplo que se instaló el paquete fuente RPM kernel-2. Pentium 4. y las variantes i686-PAE.6.6.18/linux-2. Configuración genérica para arquitectura i686.i686/ para configurar las opciones que se utilizarán. Solo recomendado para desarrolladores y escenarios donde se requiere diagnóstico. Configuración genérica para arquitectura ia64.18.i686/ cuando se define la arquitectura con la opción --target del mandato rpmbuild. 111 .

con soporte para Xen.config kernel-2.tar.config kernel-2.18-ia64xen. Solo recomendado para desarrolladores y escenarios donde se requiere diagnóstico.18x86_64.6.10.config kernel-2.org es que se contará con la más reciente versión.18x86_64-xen. Configuración genérica para arquitectura PPC de 32 bit. Configuración genérica para arquitectura PPC de 32 bit (G3 y G4). mejoras y más dispositivos soportados. con opciones de depuración. la versión más reciente del núcleo.6/linux-2. Configuración genérica para arquitectura x86_64. Configuración genérica para arquitectura s390. con soporte de Multi-Procesamiento Simétrico (SMP). Descargar desde kernel.config kernel-2.config kernel-2.18-ppc64debug.6.6.tar.config Solo recomendado para desarrolladores y escenarios donde se requiere diagnóstico.6. Solo recomendado para desarrolladores y escenarios donde se requiere diagnóstico.6.25.6.18ppc.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux debug.10.bz2 utilizando lo siguiente: tar jxvf linux-2.10.tar.6. AMD Athlon 64. Configuración genérica para arquitectura PPC de 64 bit.config kernel-2.bz2. con soporte para Xen. 8.25. El inconveniente es que puede perderse la estandarización con la distribución utilizada o bien la compatibilidad con algunas aplicaciones de terceros que dependen directa o indirectamente de una versión en particular del núcleo. Permite utilizar paravirtualización a través de Xen.6.25.6.18x86_64-debug.6.10.config kernel-2.3. wget \ http://www.org/pub/linux/kernel/v2.6. Configuración genérica para arquitectura ia64.18-ppcsmp. Configuración genérica para arquitectura s390x.kernel.25.18s390x.config kernel-2. Permite utilizar paravirtualización a través de Xen.config kernel-2.org/ y se descarga. Configuración genérica para arquitectura s390. desde la parte inferior de la portada del sitio.18-s390xdebug. Configuración genérica para arquitectura x86_64.6. con opciones de depuración.tar. con opciones de depuración.2.org La principal ventaja de descargar el núcleo desde kernel. Se accede hacia http://www. o un API incluido en alguna versión en particular del núcleo.bz2 112 .6.2.18ppc64.18s390.6. AMD Opteron). Configuración genérica para arquitectura PPC de 64 bit (G5).6. Configuración genérica para arquitectura x86_64 (AMD K8. Se procede a descomprimir linux-2.config kernel-2.kernel. Solo recomendado para desarrolladores y escenarios donde se requiere diagnóstico.config kernel-2.bz2 Lo anterior descargará el paquete linux-2.

Se puede utilizar el mandato make con la opción menuconfig de la siguiente forma: make menuconfig Lo anterior compilará y ejecutará una interfaz hecha en ncurses que permitirá examinar el árbol de opciones y habilitar y deshabilitar de una forma más amistosa. 113 .10.2.25.6.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior descomprimirá el contenido en un directorio denominado linux-2.25. Solo se recomienda para usuario muy experimentados. Configuración del núcleo.6. compilarla como módulo o excluirla.4. cd linux-2. Se puede utilizar el mandato make con la opción config de la siguiente forma: make config El inconveniente de ésto es que se tendrá que responder una a una cada una de las opciones del núcleo. Solo resta es acceder hacia este directorio para configurar las opciones que se utilizarán.10 8. pues cada opción incluye una ayuda que explica para que sirve y si es seguro incluirla.

114 . se puede empezar excluyendo las optimizaciones genéricas y funciones que nunca se utilizarán en el sistema como el multiprocesamiento simétrico y soporte para más de 4 GB de RAM.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En general.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Y luego seleccionado el tipo exacto de microprocesador y excluir las funciones genéricas. 115 .

Soporte de LVM (Logical Volume Manager o Gestor de Volúmenes Lógicos).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Pueden habilitarse o excluirse funciones y módulos. como controladores de disco y transportes (buses) SCSI (Small Computers System Interface o Sistema de Interfaz para Pequeñas Computadoras). PATA (Parallel Advanced Technology Attachment). Controladores de dispositivos de uso continuo. • • En general se debe evitar incluir dentro del kernel y solo compilar como módulo lo siguiente: 116 . de acuerdo a las necesidades y el sustento físico determinado previamente con los mandatos lsmod. Controladores para sistemas de archivos (ext3). etc. RAID (Redundant Array of Inexpensive Disks o conjunto redundante de discos independientes). en el resto de las opciones del árbol de configuración de menuconfig. SATA (Serial Advanced Technology Attachment). ATA (Advanced Technology Attachment). lspci y lsusb. En general se puede compilar dentro del núcleo lo siguiente: • • Controladores para dispositivos integrados en la tarjeta madre que sean de uso continuo.

incluyendo los dispositivos que utilicen ranuras PCI.).4. Al terminar de configurar lo anterior. Si se compila un controlador dentro del núcleo y el dispositivo es retirado del sistema o éste sufre algún tipo de daño que afecte su funcionamiento. etc. simplemente se sale de menuconfig para guardar los cambios.2. • La regla general es mantener el núcleo lo más pequeño posible y evitar incluir dentro de éste demasiados controladores.1. Compilación del núcleo. Controladores de dispositivos que se intercambien con frecuencia. Bluetotooth. La compilación se inicia utilizando el mandato make. 8. el núcleo puede sufrir conflictos con el resto de los controladores. Es preferible compilar como módulos los controladores de todo aquello que se pueda remover del sistema. o bien sufrir un fallo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux • • Controladores de dispositivos periféricos (como los controladores para cámaras digitales). Controladores para cualquier dispositivo que se pueda remover del sistema (es decir dispositivos USB. 117 . Firewire.

18-92. respetando los núcleos previamente instalados al colocarse como opción de arranque secundaria. puede editar el archivo /boot/grub/grub.1.6. make install Lo anterior instalará el núcleo en el directorio /boot.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition.1.10 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.img NOTA: Es muy importante siempre conservar una copia del núcleo que viene con la distribución utilizada en caso de presentarse problemas.el5) root (hd0.0)/grub/splash. 8.18-92. # grub.0) kernel /vmlinuz-2.6.conf. Creando paquete RPM.6.2.img #boot=/dev/hda default=0 timeout=5 splashimage=(hd0. # root (hd0.xpm.6.2.el5.6.0) # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 # initrd /initrd-version.2.4.el5 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2. Si todo parece funcionar correctamente. creará el archivo system.0) kernel /vmlinuz-2.4.25.img title CentOS (2. Acceda de nuevo hacia el directorio del núcleo recién compilado y utilice el mandato make con la opción binrpm-pkg de la siguiente forma: make binrpm-pkg 118 .18-92. Simplemente reinicie y pruebe el nuevo núcleo.6.gz hiddenmenu title CentOS (2.25. dependiendo de la capacidad del sistema.1.conf y colocar el nuevo núcleo como predeterminado.map correspondiente. creará la imagen del disco RAM correspondiente y añadirá una entrada en el archivo /boot/grub/grub.3.25.10.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux make 8. se procede a instalar primero los módulos: make modules_install Al concluir el procedimiento. eg. Instalación del núcleo.6.6. Se puede crear un paquete RPM a partir de los binarios recién compilados.10) root (hd0. Después de varios minutos. This means that # all kernel and initrd paths are relative to /boot/. se instala el núcleo.6.

25. sin afectar a otras versiones de paquetes del núcleo que estén previamente instaladas.25. a fin de que se mantengan instalados los paquetes del núcleo existentes en el sistema y estos coexistan.18-92. Al terminar.6.1.1.6.18-92.6. rpm -ivh /usr/src/redhat/RPMS/i386/kernel-2. 119 .1.10-2. permitiendo elegir con cual iniciar el sistema desde el arranque con Grub. puede utilizar el mandato make con la opción rpm-pkg de la siguiente forma: make rpm-pkg La instalación del paquete resultante se realiza utilizando el mandato rpm con las opciones -ivh (instalar.97 (639K lower / 261056K upper memory) _________________________________________________________________ |CentOS (2.rpm Lo anterior instalará el paquete RPM del núcleo recién creado. Press enter to boot the selected OS or 'p' to enter a password to unlock the next set of features.el5) | |CentOS (2.10) | |CentOS (2.i386. Grub version 0.6. descriptivo y mostrar barra de progreso). solo será necesario eligir desde Grub el núcelo con el cual se iniciará el sistema.el5) | | | | | | | | | | | | | | | | | |________________________________________________________________| Use the ↑ and the ↓ to select which entry is highlighted.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si desea crear un paquete RPM compilando todo de nuevo.

Licencia completa en castellano. en los tiempos del núcleo versión 2. El inconveniente radica en que. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. 9. ¿Qué es y como funciona el espacio de intercambio? El espacio de memoria de intercambio o Swap. 9. es lo que se conoce como memoria virtual. Hace muchos años. 9. o genera una obra derivada. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Al reutilizar o distribuir la obra.2. Usted es libre de copiar.alcancelibre. GNU/Linux. c) Si altera o transforma esta obra.1. Gestión de espacio de memoria de intercambio (swap) en GNU/Linux. ¿Cuanto espacio para memoria de intercambio se debe asignar al sistema? Menos de 1 GB RAM Más de 1 GB RAM Doble de la cantidad total de memoria RAM. Utilizar memoria virtual tiene como ventaja el proporcionar la memoria adicional necesaria cuando la memoria real se ha agotado y se tiene que realizar un proceso. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.1. 9.1. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 9. la utilización de esta es mucho muy lenta. como consecuencia de utilizar espacio en el disco duro. Introducción. y hoy en día ya no existe dicho límite.0. Algo de historia. se encontraba limitado a utilizar una sola partición de memoria de intercambio de un máximo de 128 MB. Cuando la memoria real se agota. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.1 © 1999-2011 Joel Barrios Dueñas.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. por entidades con fines de lucro). tiene que dejar bien claro los términos de la licencia de esta obra. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Misma cantidad del total de memoria RAM.1. el sistema copia parte del contenido de esta directamente en este espacio de memoria de intercambio a fin de poder realizar otras tareas. Por fortuna las cosas han cambiado. Contar con mayor espacio para utilizar memoria virtual puede ser práctico en los siguientes casos: 120 . a través de cualquier medio. La diferencia entre la memoria real y la virtual es que está última utiliza espacio en el disco duro en lugar de un módulo de memoria. y es posible además utilizar cuanta memoria de intercambio sea requerida para satisfacer las necesidades de cualquier sistema. Uno puede percatarse de esto cuando el disco duro empieza a trabajar repentinamente hasta por varios minutos después de abrir varias aplicaciones.3. Circunstancias en lasque se requiere aumentar la cantidad de memoria de intercambio. más 2 GB.1. siendo esto una de los principales argumentos utilizados por sus detractores.

1. donde la opción -c indica se verifiquen sectores del disco duro buscando bloques dañados a fin de marcar estos. y se está consciente que la memoria de intercambio es muchísimo más lenta que la memoria RAM. Otro método más sencillo y sin riesgo alguno. Cambiar el tamaño de las particiones el disco duro y cambiar las dimensiones una partición de memoria de intercambio adicional es el método más efectivo. Cambiar el tamaño de la partición. size=1048576 bytes no label. En equipos con trabajo intensivo que consume mucha memoria (diseño gráfico.ésto representa un riesgo. consiste en utilizar un archivo de intercambio de forma similar a como se hace en otros sistemas operativos. Procedimientos. 9.4 o 2. 9. Sistemas donde se aumentó la cantidad de memoria RAM. la mejor solución siempre será adquirir más RAM. Sistemas que actualizaron desde una versión de núcleo 2. 9.Sin embargo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux • • • • • Sistemas en donde adquirir memoria adicional es imposible. y evitar utilizarlos: mkswap -c [dispositivo] En el siguiente ejemplo se dará formato como partición de memoria de intercambio a la partición /dev/sda8. y se encuentran con la problemática de cubrir la cuota mínima de espacio de memoria de intercambio. a una versión de núcleo 2. Crear un archivo para memoria de intercambio.2. se le da formato de la siguiente forma con el mandato mkswap. de aproximadamente 1 GB.2. Servidores de alto desempeño en donde se desea contar con un amplio margen de espacio de intercambio para satisfacer las demandas de servicios. Si se utiliza este método. Activar una partición de intercambio adicional. Ante todo. Todos los procedimientos listados a continuación requieren hacerse como el usuario root o bien utilizando el mandato sudo.1. Procedimientos. verificando sectores en busca de bloques dañados: mkswap -c /dev/sda8 Lo anterior puede devolver una salida similar a la siguiente: Setting up swapspace version 1. por ejemplo). Si se cambio la tabla de particiones del disco duro y se ha creado una nueva partición de memoria de intercambio. es importante disponer de un respaldo de todos los datos importantes antes de comenzar el proceso. UUID=d2fea5ab-c677-8047-789a-e54ae19c506b 121 .2. debido que podría ocurrir un error durante el procesos de repartición que podría desencadenar en pérdida de datos en un disco duro.4.5. 9.1.6.

que puede devolver una salida similar a la siguiente: total Mem: 321364 -/+ buffers/cache: Swap: 1426416 used 312576 248208 0 free 8788 73156 1426416 shared 0 buffers 940 cached 63428 Para que esta partición se utilice como memoria de intercambio automáticamente en el siguiente arranque del sistema. Utilizar un archivo como memoria de intercambio. en bloques de 1024 bytes (bs=1024) hasta completar una cantidad en bytes determinada (count=[cantidad multiplicada por el valor de bs]). se ejecuta el mandato dd. o de manera circunstancial. Este método no requiere hacer cambios en la tabla de particiones del disco duro.2. en el siguiente ejemplo se definirá como partición de memoria de intercambio a la partición /dev/sda8: /dev/sda8 swap swap defaults 0 0 9. especificando que se escribirán ceros (if=/dev/zero) para crear el archivo /swap (of=/swap). se ejecuta el mandato swapon de la siguiente forma: swapon [dispositivo] En el siguiente ejemplo se activa como partición de memoria de intercambio a la partición /dev/sda8: swapon /dev/sda8 Para corroborar que la nueva partición de memoria de intercambio está siendo utilizada por el sistema operativo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para activar la partición y que sea utilizada inmediatamente por el sistema operativo. o bien para quienes requieren más de memoria de intercambio ocasional. se edita el archivo /etc/fstab: vim /etc/fstab La línea que se deba agregar. lleva el siguiente formato: [partición] swap swap defaults 0 0 De tal modo. se ejecuta el el mandato free. En el siguiente ejemplo se realiza lo anterior hasta completar 524288000 bytes (1024 por ).2. Es idóneo para usuarios poco experimentados. Considerando que el archivo de memoria de intercambio puede ser colocado en cualquier directorio del disco duro. para quienes desean evitar tomar riesgos al cambiar la tabla de particiones el disco duro. que equivalen a 512 MB: dd if=/dev/zero of=/swap bs=1024 count=512000 122 .

Optimizando el sistema. se ejecuta el el mandato free.2. fue establecido teniendo en mente a quienes desarrollan el núcleo de Linux. UUID=fed2aba5-77c6-4780-9a78-4ae5e19c506b Para activar la partición. donde el valor más bajo establece que se utilice menos la memoria de intercambio. con la finalidad de permitir realizar pruebas y diagnósticos. 123 . size = 511996 KiB no label. del siguiente modo. lo cual significa que se reclamará en su lugar el caché de la memoria. El valor predeterminado es 60. El valor predeterminado de 60. se ejecuta el mandato mkswap.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para dar formato de memoria de intercambio al archivo creado. y que sea utilizada inmediatamente por el sistema operativo. donde en lugar de el dispositivo. del siguiente modo: mkswap /swap Lo anterior puede devolver una salida similar a la siguiente: Setting up swapspace version 1. En el siguiente ejemplo se activa como partición de memoria de intercambio a el archivo /swap: swapon /swap Para corroborar que nuevo archivo de memoria de intercambio está siendo utilizada por el sistema operativo. que puede devolver una salida similar a la siguiente: total Mem: 321364 -/+ buffers/cache: Swap: 3145724 used 312576 248208 0 free 8788 73156 3145724 shared 0 buffers 940 cached 63428 Para que este archivo se utilice como memoria de intercambio automáticamente en el siguiente arranque del sistema.3. cambiando el valor de /proc/sys/vm/swappiness El núcleo de GNU/Linux permite cambiar con que frecuencia las aplicaciones y programas son movidas de la memoria física hacia la memoria de intercambio. se edita el /etc/fstab: Y se agrega la línea correspondiente. como puede observarse al mirar el contenido de /proc/sys/vm/swappiness de la siguiente forma: cat /proc/sys/vm/swappiness Pueden establecerse valores entre 0 y 100. se ejecuta el mandato swapon. se pone la ruta del archivo de memoria de intercambio creado: vim /etc/fstab /swap swap swap defaults 0 0 9.

En el siguiente ejemplo se aplica el valor 10 para el archivo /proc/sys/vm/swappiness. confirmando que se ha aplicado el cambio: vm. se edita el archivo /etc/sysctl.swappiness=10 Lo anterior devuelve una salida similar a la siguiente.conf. conviene cambiar este valor por uno más bajo a fin de que el sistema utilice menos la memoria de intercambio. y utilice más la memoria cache. Se sitúa entre la Unidad Central de Procesamiento (CPU) y la memoria RAM y se presenta de forma temporal y automática para el usuario proporcionado acceso rápido a los datos de uso más frecuente. también se puede ejecutar el mandato sysctl de la siguiente forma: sysctl -w vm.swappiness = 10 Este cambio en las variables del sistema de forma aplica inmediata hasta el siguiente reinicio del sistema.conf Y se añade la siguiente línea: vm. Ésta es una clase de memoria RAM estática de acceso aleatorio (SRAM o Static Random Access Memory). Para hacer que el cambio sea permanente.swappiness = 10 124 . echo 10 > /proc/sys/vm/swappiness Para lo anterior. vim /etc/sysctl. Un valor apropiado y que funcionará para la mayoría de los sistemas en producción es 10.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para la mayoría de los casos.

3G 2. configurar el teclado y. la conectividad a través de dispositivos de red. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. c) Si altera o transforma esta obra.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 10. 10. Digite lo siguiente a fin de mostrar en pantalla las particiones del sistema: df -h Lo anterior deberá mostrar algo parecido a lo siguiente: S.8G 76M 8.4G 5% /var/lib 5.0G 6.1.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. b) No puede utilizar esta obra para fines comerciales. Introducción En ocasiones suele ser necesario realizar tareas de mantenimiento y de reparación en el sistema de archivos.archivos /dev/sda2 /dev/sda1 none /dev/hda5 /dev/sdb3 /dev/sdb1 /dev/sdb5 /dev/sdb2 /dev/hda6 /dev/hda2 /dev/hda1 Tamaño Usado 15G 4. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Procedimientos de emergencia Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.4G 30% /var 998M 95% /var/ftp 5.alcancelibre. Estas situaciones requieren que el administrador conozca al menos las herramientas correspondientes. Usted es libre de copiar.0G 36M 6. de forma opcional.2G 34% / 64M 12% /boot 507M 0% /dev/shm 2.2. se ingresará a un interprete de mandatos (BASH) con un conjunto básico de herramientas que permitirán realizar tareas de mantenimiento y reparación.2G 66% /usr/local 1. Disco de rescate El primer disco de instalación de Red Hat™ Enterprise Linux 3 y White Box Enterprise Linux 3 incluye la opción de iniciar el sistema en modo de rescate desde éste.1M 507M 0 40G 35G 2.1 © 1999-2011 Joel Barrios Dueñas.0G 570M 19G 17G 6.6G 94% /home 1. Al reutilizar o distribuir la obra. 10.9G 2% /tmp 2.4G 4.8G 12% /var/www 125 . La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.8G 71% /usr/src 1. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.4G 4.9G 792M Disp Uso% Montado en 9. o genera una obra derivada.0G 257M 6. tiene que dejar bien claro los términos de la licencia de esta obra. Solo bastará digitar «linux rescue» en el aviso de inicio (prompt) que aparece al arrancar el sistema con el disco 1: boot: linux rescue Después de iniciar.

fsck -fyC /dev/sdXX Forzar la verificación del sistema de archivos y responder automáticamente con «Si» (opción -y) a la reparación de cualquier problema que requiera intervención humana (opción -y). Verificación de la integridad del disco La verificación de cualquier partición del disco duro requiere. pero además con verificación de solo-lectura para buscar bloques dañados (opción -c). reparar automáticamente cualquier problema que pueda ser resuelto sin intervención humana (opción -p) y mostrando una barra de progreso (opción -C). preservando la lista de bloques dañados existente donde se añadirán nuevos bloques dañados a ésta (opción -k). Utilizar el mandato fsck en una partición montada. Una vez desmontada la partición a verificar. puede ocasionar la pérdida o corrupción de datos.3. necesariamente. desmontar antes ésta. fsck -fykc /dev/sdXX Lo mismo que el mandato anterior. Sí se encuentra un bloque dañado. este se añade al inodo de bloques dañados. es posible realizar una verificación y/o reparación utilizando cualquiera de los siguientes ejemplos de uso del mandato fsck. fsck -fpkc /dev/sdXX 126 . preservando la lista de bloques dañados existente donde se añadirán nuevos bloques dañados a ésta (opción -k). fsck -fy /dev/sdXX Lo mismo que el mandato anterior. pero con verificación de lectura-escritura no-destructiva para buscar bloques dañados (opción -cc). pero además con verificación de solo-lectura para buscar bloques dañados (opción -c). fsck -fykcc /dev/sdXX Forzar la verificación del sistema de archivos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 10. Forzar la verificación del sistema de archivos. preservando la lista de bloques dañados existente donde se añadirán nuevos bloques dañados a ésta (opción -k). fsck -fpC /dev/sdXX Forzar la verificación del sistema de archivos y reparar automáticamente cualquier problema que pueda ser resuelto sin intervención humana (opción -p). fsck -fp /dev/sdXX Lo mismo que el mandato anterior. responder automáticamente con «Si» (opción -y) a la reparación de cualquier problema que requiera intervención humana (opción -y) y mostrando una barra de progreso (opción -C).

preservando la lista de bloques dañados existente donde se añadirán nuevos bloques dañados a ésta (opción -k). para escribir 0 (ceros) en cada sector del disco duro. Sí se encuentra un bloque dañado. o bien re-ordenando y comprimiendo directorios en los casos de directorios pequeños o bien sistemas de archivos que utilicen directorios lineales tradicionales. fsck -fpDkcc /dev/sdXX 10. este se añade al inodo de bloques dañados.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo mismo que el mandato anterior. puede utilizarse lo siguiente.ext4 /dev/hda1 Se encuentran también disponibles las siguientes herramientas para asignación de formato: ● ● ● ● mkfs. y esté instalado el paquete e4fsprogs.ext2 mkfs. dd if=/dev/zero of=/dev/hda 127 . reparando automáticamente cualquier problema que pueda ser resuelto sin intervención humana y tratando de optimizar los directorios del sistema de archivos (opción -D). pero con verificación de lectura-escritura no-destructiva para buscar bloques dañados (opción -cc). fsck -fpD /dev/sdXX La optimización de directorios se realiza volviendo a crear un índice de éstos sí el sistema de archivos incluye soporte para índices (como es el caso de Ext4).vfat (fat32) mkfs.4. Sí se encuentra un bloque dañado. pero con verificación de lectura-escritura no-destructiva para buscar bloques dañados (opción -cc). considerando en el ejemplo que se intenta dar formato de bajo nivel al disco duro /dev/hda. este se añade al inodo (nodo índice) de bloques dañados. preservando la lista de bloques dañados existente donde se añadirán nuevos bloques dañados a ésta (opción -k).ext3 /dev/hda1 Cuando la situación lo amerite. fsck -fpkcc /dev/sdXX Verificar el sistema de archivos. será posible dar formato a una partición en particular con formato EXT4 de la siguiente forma: mkfs. Asignación de formato de las particiones Cuando la situación lo amerite. Lo mismo que el mandato anterior.msdos (fat16) mkswap Si se necesita dar un formato de bajo nivel a fin de eliminar toda la información del disco duro. será posible dar formato a una partición en particular con formato EXT3 de la siguiente forma: mkfs.

también es posible dar formato de bajo nivel escribiendo números aleatorios en todos los sectores del disco duro: dd if=/dev/urandom of=/dev/hda 128 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si se requiere.

1. 3. y volúmenes físicos sin utilizar. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. por entidades con fines de lucro). fin en 10240): parted /dev/sdb mkpart primary ext4 1 10480 129 . Volúmenes lógico (lv. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación.alcancelibre. 2.1. Básicamente. LVM carece de soporte para implementar RAID1 o RAID5.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 11. physical volume). Cambio de tamaño de volúmenes lógicos.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Procedimientos. tiene que dejar bien claro los términos de la licencia de esta obra. Instantáneas de lectura y escritura (a partir de LVM2). 11. Gestión de volúmenes lógicos. Se componen de uno o más volúmenes lógicos utilizados. o genera una obra derivada. Son unidades administrativas donde se agrupan los recursos. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Se pueden dividir en extensiones lógicas (le. Licencia completa en castellano. con la bandera 8e. por lo que se recomienda configurar este tipo de arreglos RAID. Volúmenes físicos (pv. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. parted /dev/sdb mklabel msdos Utilice nuevamente el mandato parted para crear una partición primaria tipo ext4. LVM es una implementación que consiste en un administrador de volúmenes lógicos para el núcleo de Linux. Son particiones en el disco duro. RAID0 de volúmenes lógicos. logical extents). c) Si altera o transforma esta obra. el cual solía ser utilizado en en sistemas HP-UX.1.1 © 1999-2011 Joel Barrios Dueñas. 11. Se componen de volúmenes físicos. Introducción. LVM se compone de tres partes: 1. Fue originalmente escrito en 1998 por Heinz Mauelshagen. que tendrá 10240 MB (inicio en 1. o physical extents). Se pueden dividir en extensiones físicas (pe. a través de cualquier medio. o logical volume). Al reutilizar o distribuir la obra. Ejecute el mandato parted para crear una nueva etiqueta en el disco duro nuevo. LVM2 permite hacer lo siguiente: • • • • Cambio de tamaño de grupos de volúmenes. Usted es libre de copiar. trabajando con volúmenes lógicos por encima de los arreglos RAID. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. quien se basó sobre el administrador de volúmenes de Veritas. Crear un volumen lógico a partir de un disco duro nuevo. Grupos de volúmenes (vg. o volume group). La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

5GB Tamaño 10.80 GiB / 0 free] PV /dev/sda3 VG VolGroup01 lvm2 [8. ejecute lo siguiente: parted /dev/sdb print Lo anterior debe devolver una salida similar al al siguiente: Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdb: 21. ejecute el mandato hdaparm del siguiente modo: hdparm -z /dev/sdb Para crear un volumen físico.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Numero 1 Inicio 1049kB Fin 10.76 GiB] Para crear el grupo de volúmenes denominado VolDatos.5GB Typo primary Sistema de ficheros Banderas lvm Para presentar la nueva partición ante el núcleo del sistema. ejecute el mandato pvcreate del siguiente modo: pvcreate /dev/sdb1 Ejecute el mandato pvscan para verificar el procedimiento anterior: pvscan Lo anterior deberá devolver una salida similar a la siguiente: PV /dev/sda2 VG VolGroup00 lvm2 [53. y verificar que se ha creado una partición primaria de 10240 MB. ejecute el mandato vgcreate del siguiente modo: vgcreate VolDatos /dev/sdb1 Ejecute el mandato vgscan para verificar el procedimiento anterior: 130 .00 GiB / 0 free] PV /dev/sdb1 lvm2 [9.79 GiB] / in no VG: 1 [9. Si lo anterior falla.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Cambie el tipo de partición a LVM: parted /dev/sdb set 1 lvm on Para visualizar la tabla de particiones.55 GiB] / in use: 2 [61.76 GiB] Total: 3 [71. tipo LVM. ejecute el mandato partprobe del siguiente modo: partprobe /dev/sdb1 Nota.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux vgscan Lo anterior deberá devolver una salida similar a la siguiente: Reading all physical volumes. This may take a Found volume group "VolDatos00" using metadata Found volume group "VolGroup00" using metadata Found volume group "VolGroup01" using metadata while. ejecute el mandato lvcreate del siguiente modo: lvcreate -l 100%FREE VolDatos00 -n Datos00 Ejecute el mandato lvscan para verificar el procedimiento anterior: lvscan Lo anterior deberá devolver una salida similar a la siguiente: ACTIVE ACTIVE ACTIVE '/dev/VolDatos00/Datos00' [9. type lvm2 type lvm2 type lvm2 Para crear un volumen lógico.00 GiB] inherit Para dar formato al nuevo volumen lógico. asignando el 100% de las extensiones lógicas libres.ext4 /dev/VolDatos00/Datos00 Ejecute el mandato mkdir para crear el punto de montaje /datos: mkdir /datos Para montar el volumen lógico en el directorio /datos.. denominado Datos00. ejecute el mandato mkfs. perteneciente al grupo de volúmenes denominado VolDatos.76 GiB] inherit '/dev/LogVol00/LogVol01' [53.ext4 del siguiente modo: mkfs. ejecute lo siguiente: mount /dev/VolDatos00/Datos00 /datos Ejecute el mandato df para verificar el procedimiento anterior: df Lo anterior deberá devolver una salida similar a la siguiente: 131 ..80 GiB] inherit '/dev/LogVol01/LogVol00' [8.

2. y que el contenido actual del volumen lógico es menor al tamaño del nuevo volumen físico añadido al volumen lógico. y que corresponde al dispositivo /dev/sdb El grupo de LVM al cual se añadirá el disco es VolGroup00 Que el volumen lógico que se hará crecer con un nuevo volumen físicos. vgreduce VolGroup00 /dev/sda1 11. Mover contenidos desde un volumen físico a otro en un nuevo disco duro.1. edite el archivo /etc/fstab: vim /etc/fstab Añada el siguiente contenido: /dev/mapper/VolDatos00-Datos00 /datos ext4 defaults.1. asumiendo que el tamaño del volumen físico en /dev/sdb1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux S. es igual o mayor al del volumen físico en /dev/sda1.1. Se asume un escenario donde: • • • Se utilizará el mismo disco duro del procedimiento anterior.noatime.nodiratime 1 2 Desmonte. ejecutando el mandato parted del siguiente modo: parted /dev/sdb unit MB print free 132 . a partir de espacio libre sin particionar en un disco duro.1. sólo se requiere utilizar el mandato pvmove para mover el contenido de un volumen físico a otro. pvmove /dev/sda1 /dev/sdb1 Una vez terminado el movimiento. Añadir un volumen físico a un volumen lógico existente. umount /datos mount /datos 11. sólo resta eliminar /dev/sda1 del volumen lógico. Asumiendo que se ha realizado todo el procedimiento anterior. será LogVol00. y monte de nuevo el volumen lógico para verificar que todo trabaje correctamente.ficheros Bloques de 1K /dev/mapper/VolGroup00-LogVol00 26351440 tmpfs 319096 /dev/sda1 198337 / /dev/mapper/VolDatos00-Datos00 10071208 Usado 221008 88 24376 153560 Dispon Uso% Montado en 26130432 319008 163721 9406060 1% / 1% /dev/shm 13% /boot 2% /datos Para que el volumen lógico se monte automáticamente al iniciar el sistema. Determine el espacio disponible del disco duro.

reinicie el sistema más adelante. As a result. De ser necesario. ejecute el mandato pvcreate del siguiente modo: pvcreate /dev/sdb2 Ejecute el mandato pvscan para verificar el procedimiento anterior: pvscan 133 .5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Numero 1 2 Inicio 1049kB 10. Ignore la advertencia. Es posible que el sistema devuelva una advertencia que indica que se necesita reiniciar para que el núcleo de Linux pueda leer la nueva tabla de particiones: Aviso: WARNING: the kernel failed to re-read the partition table on /dev/sdb (Dispositivo o recurso ocupado). ejecute lo siguiente: parted /dev/sdb print Lo anterior deberá devolver una salida similar a la siguiente: Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdb: 21. o bien ejecute el mandato partprobe del siguiente modo: partprobe /dev/sdb2 Si lo anterior falla. tipo LVM.5GB 5119MB Typo primary primary Sistema de ficheros Banderas lvm lvm Para crear un volumen físico.5GB 15.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Determine en qué MB comienza el espacio libre.6GB Tamaño 10. Para crear una nueva partición de aproximadamente 5120 MB. y verificar que se ha creado una partición primaria de 5120 MB. ejecute el mandato parted del siguiente modo: parted /dev/sdb mkpart primary ext4 10481 15600 Nota. ejecute el mandato hdaparm del siguiente modo: hdparm -z /dev/sdb Cambie el tipo de partición a LVM: parted /dev/sdb set 2 lvm on Para visualizar la tabla de particiones. y continúe trabajando.5GB Fin 10. it may not reflect all of your changes until after reboot.

80 GiB / 0 free] PV /dev/sda3 VG VolGroup01 lvm2 [8. ejecute el mandato resize2fs del siguiente modo: resize2fs /dev/VolGroup00/LogVol00 Lo anterior debe devolver una salida similar a la siguiente: resize2fs 1. al volumen lógico LogVol00.77 GiB] Total: 4 [76.00 GiB / 0 free] PV /dev/sdb2 lvm2 [4. Ejecute df. al grupo de volúmenes denominado VolGroup00. provisto por el nuevo volumen físico añadido al grupo de volúmenes denominado VolGroup00.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior deberá devolver una salida similar a la siguiente: PV /dev/sda2 VG VolGroup00 lvm2 [53. ejecute el mandato lvextend del siguiente modo: lvextend -l +100%FREE /dev/VolGroup00/LogVol00 Lo anterior debe devolver una salida similar a la siguiente: Extending logical volume LogVol00 to 31. on-line resizing required old desc_blocks = 2. ejecute el mandato vgextend del siguiente modo: vgextend VolGroup00 /dev/sdb2 Lo anterior debe devolver una salida similar a la siguiente: Volume group "VolGroup00" successfully extended Para asignar el 100% nuevo espacio libre disponible. para ver el nuevo tamaño de del sistema de archivos alojado en /dev/VolGroup00/LogVol00: df -h Lo anterior debe devolver una salida similar a la siguiente: 134 .41. new_desc_blocks = 2 Performing an on-line resize of /dev/Datos/LogVol00 to 8300544 (4k) blocks.77 GiB] Para añadir este volumen físico. y que éste utiliza el nuevo espacio libre recién asignado al volumen lógico.66 GiB Logical volume LogVol00 successfully resized Para cambia el tamaño del sistema de archivos. El sistema de ficheros en /dev/VolGroup00/LogVol00 tiene ahora 8300544 bloques. con la opción -h.12 (17-May-2010) Filesystem at /dev/Datos/LogVol00 is mounted on /home. que corresponde a la partición /dev/sdb2.32 GiB] / in use: 3 [71.55 GiB] / in no VG: 1 [4.

o /var. pvdisplay /dev/sda2 /dev/sdb2 Lo anterior debe devolver una salida similar a la siguiente: 135 . para verificar la partición a reducir. Verifique que el respaldo es confiable. Si se trata de un volumen lógico cuyo sistema de archivos esté en uso.9G 3% /datos 11. Ejecute el mandato fsck. y /dev/sdb2. Inicie el sistema con el disco de instalación en modo de rescate. ejecute el mandato parted del siguiente modo: parted /dev/sdb print Ejecute el mandato resize2fs para reducir el tamaño del sistema de archivos. /usr.ficheros Size Used Avail Use% Montado en /dev/mapper/VolGroup00-LogVol00 32G 216M 30G 1% / /dev/sda1 194M 24M 160M 13% /boot /dev/mapper/VolDatos00-Datos00 9. Antes de proceder. como /. Quitar una unidad física a un volumen lógico. Este procedimiento requiere que el volumen lógico esté sin montar. y cuantas extensiones físicas contienen cada una. Ejecute el mandato df. el procedimiento debe hacerse desde un disco vivo. con la opción -f. a una cantidad Desmonte la partición Ejecute el mandato pvdisplay para determinar el tamaño de las particiones /dev/sda2. es importante contar con un respaldo de los datos almacenados en el volumen lógico al cual se le quitará la unidad física.1.3. fsck -f /dev/VolGroup00/LogVol00 Para determinar el tamaño al que debe reducirse el sistema de archivos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux S. o bien utilizando el disco de instalación en modo de rescate.7G 229M 8. y desmonte todas las particiones que estén debajo del directorio /mnt/sysimage.

136 . Si se reduce el tamaño del sistema de archivos. Vuelva a verificar el volumen lógico con el mandato fsck.77 GiB / not usable 2. defina 52 GB. El sistema de ficheros en /dev/Datos/LogVol00 tiene ahora 7077888 bloques. resize2fs /dev/VolGroup00/LogVol00 52G Lo anterior debe devolver una salida similar a la siguiente: Resizing the filesystem on /dev/Datos/LogVol00 to 7077888 (4k) blocks. a uno menor al del espacio utilizado por el contenido actual.00 MiB Total PE 13772 Free PE 0 Allocated PE 13772 PV UUID jZCHg7-ub0R-kziP-hCy6-V12S-tXRm-2qXont --. del siguiente modo: fsck -f /dev/VolGroup00/LogVol00 Asumiendo un escenario donde el volumen físico que se eliminará del volumen lógico tiene 1220 extensiones. para restar del volumen lógico estas extensiones físicas. la cual indica que tiene un alto riesgo reducir el tamaño del volumen lógico. y que es posible se pierdan todos los datos. donde el tamaño del volumen físico que se conservará es de 53. de modo que el nuevo tamaño sea ligeramente menor al tamaño del volumen físico que se continuará utilizando en el volumen lógico.Physical volume --PV Name /dev/sda2 VG Name VolGroup00 PV Size 53.00 MiB Allocatable yes (but full) PE Size 4. siempre y cuando el espacio utilizado del sistema de archivos sea menor al tamaño del volumen físico que se conservara. se perderán todos los datos. ejecute el mandato lvresize del siguiente modo: lvresize -l -1220 /dev/VolGroup00/LogVol00 Lo anterior le mostrará una advertencia.Physical volume --PV Name /dev/sdb2 VG Name VolGroup00 PV Size 4.80 GB.00 MiB Allocatable yes (but full) PE Size 4.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux --.00 MiB Total PE 1220 Free PE 0 Allocated PE 1220 PV UUID lk6bMt-3vci-yw1p-Te2w-KPot-kpje-l18cAB Primero hay que reducir el tamaño del sistema de archivos involucrado.80 GiB / not usable 4. Asumiendo un escenario como el del ejemplo de arriba. Es precisamente por ésto que se redujo primero el tamaño del sistema de archivos.

2.90 GiB THIS MAY DESTROY YOUR DATA (filesystem etc. fdisk -f /dev/VolGroup00/LogVol00 Monte la partición en el directorio que le corresponda. ejecute el mandato resize2fs del siguiente modo: resize2fs /dev/VolGroup00/LogVol00 Lo anterior debe devolver una salida similar a la siguiente: resize2fs 1. ejecute lo siguiente: vgreduce VolGroup00 /dev/sdb2 Lo anterior debe devolver una salida similar a la siguiente: Removed "/dev/sdb2" from volume group "Datos" Como precaución. y retire el disco de rescate. • https://secure.wikimedia. se redujo el tamaño del sistema de archivos a una cantidad menor a la disponible en el volumen físico que se conservó. correspondientes al volumen físico que se eliminará.12 (17-May-2010) Filesystem at /dev/Datos/LogVol00 is mounted on /home.) Do you really want to reduce LogVol00? [y/n]: Si el tamaño del sistema de archivos es menor al tamaño que se asignará después de eliminar las extensiones. y verifique que contiene datos. Bibliografía. Ésto deja espacio libre que probablemente se quiera utilizar. WARNING: Reducing active logical volume to 26.41. new_desc_blocks = 2 Performing an on-line resize of /dev/Datos/LogVol00 to 7051264 (4k) blocks.org/wikipedia/es/wiki/LVM 137 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux WARNING: Reducing active logical volume to 26.) Do you really want to reduce LogVol00? [y/n]:y Reducing logical volume LogVol00 to 26. Vuelva a verificar la partición. on-line resizing required old desc_blocks = 2. ejecutando el mandato fsck del siguiente modo. puede responder con una y sin temor a perder los datos contenidos en el volumen lógico. y que tome todo el espacio disponible en el volumen lógico. Al terminar reinicie el sistema. El sistema de ficheros en /dev/Datos/LogVol00 tiene ahora 7051264 bloques.90 GiB Logical volume LogVol00 successfully resized Para eliminar el volumen físico del grupo de volúmenes denominado VolGroup00. Para cambiar el tamaño del sistema de archivos.90 GiB THIS MAY DESTROY YOUR DATA (filesystem etc. 11.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 138 .

Las mejoras respecto de Ext3 incluyen. 12. por por Andrew Morton. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. y verificación más rápida con fsck.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.28 del núcleo de Linux. y estaciones de trabajo. Cuando se trabaja con servidores. a través de cualquier medio.1. menor uso de recursos de sistema. 12. Optimización de los sistemas de archivos ext3 y ext4. Además ext3 permite ser montado.1. y utilizado. Es el sistema de archivos predeterminado en CentOS 6 y Red Hat Enterprise Linux 6. por tanto. mejoras sustanciales en la velocidad de lectura. creado por los matemáticos rusos Georgii Adelson-Velskii. Licencia completa en castellano. Usted es libre de copiar. y escritura.6. Red Hat o Fedora. CentOS. Al reutilizar o distribuir la obra. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. como si fuera ext2.1.1. Acerca de Ext3. Acerca de Ext4. y también por incorporar el método Orlov de asignación para bloques de disco (el mismo que se gestiona a través de los mandatos lsattr. soporte añadido de extents (conjunto de bloques físicos contiguos). o genera una obra derivada. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. El 25 de diciembre de 2008 se publicó la versión 2. con instalaciones de Ubuntu. publicado como una mejora compatible con el formato Ext3. Ext3 (third extended filesystem o tercer sistema de archivos extendido) se diferencia de ext2 en que trabaja con registro por diario (journaling). Acerca del registro por diario (journaling). b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. como puede ocurrir durante una interrupción de energía. 12. Introducción. Es el sistema de archivos predeterminado en CentOS 5 y Red Hat Enterprise Linux 5.3. y chattr). o cuarto sistema de archivos extendido) es un sistema de archivos con registro por diario. 139 . 12. c) Si altera o transforma esta obra.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 12. Consiste en un registro en el que se almacena la información necesaria para restablecer los datos dañados por una transacción en caso de que ésta falle. y actualizar desde ext2 hacia ext3 sin necesidad de formatear la partición y.alcancelibre. El registro por diario (journaling) es un mecanismo por el cual un sistema de archivos implementa transacciones. y porque utiliza un árbol binario balanceado (árbol AVL.1. y se busca optimizar el uso del disco duro de sistemas de archivos en formato Ext3 o Ext4. Ext4 (fourth extended filesystem. hay ajustes que pueden mejorar el desempeño de manera significativa. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. tiene que dejar bien claro los términos de la licencia de esta obra. el soporte de volúmenes de hasta 1024 PiB. la cual eliminó la etiqueta experimental de código de Ext4. por entidades con fines de lucro).2. entre otras cosas.1 © 1999-2011 Joel Barrios Dueñas. y Yevgeniy Landis). sin perder los datos almacenados en ésta. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. el 10 de octubre de 2006.

Para poder desmontar una partición es indispensable que el sistema funcione sin procesos haciendo uso de contenidos en dicha partición.2. 208319/5243214 blocks Una vez terminado el procedimiento. se utiliza el mandato df. particiones con formato ext2.archivos Bloques de 1K Usado /dev/hda2 19283024 17279260 /dev/sda1 77749 21905 /dev/sdb1 17496684 10618980 /dev/hda5 54158844 41284544 /dev/sda2 15352348 4874232 tmpfs 777732 0 Dispon Uso% Montado en 1207584 94% / 51830 30% /boot 5988912 64% /home 11223624 79% /var/ftp 9698164 34% /home/rpmbuild 777732 0% /dev/shm Una vez determinados que dispositivos corresponden a las diferentes particiones. es indispensable que ésta esté desmontada. 12. o volviendo a acomodar. se pueden volver a montar las particiones optimizadas. Para optimizar una partición en formato ext3.1. and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 3A: Optimizing directories Pass 4: Checking reference counts Pass 5: Checking group summary information /home: ***** FILE SYSTEM WAS MODIFIED ***** /home: 13/5244736 files (7. Ejemplo: [root@servidor ~]# df S. pueden aplicarse varios métodos de optimización. y reparar. cuando el sistema de archivos incluye soporte para tal. Puede utilizarse el mandato lsof para determinar ésto. blocks. y comprimiendo directorios. 140 . y así definir que es lo que se debe detener momentáneamente. y ext3.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 12. Si el sistema funciona sin procesos haciendo uso de contenidos en la partición.39 (29-May-2006) Pass 1: Checking inodes.2. Incluye la opción -D que realiza la optimización de directorios en el sistema de archivos. Procedimientos Para determinar que dispositivos corresponden a las particiones en el disco duro. La opción -D se debe utilizar junto con la opción -f para forzar la verificación de la partición del disco duro. El mandato e2fsck se utiliza regularmente para revisar.7% non-contiguous). Utilizando el mandato e2fsck. se puede seguir el procedimiento ejemplificado a continuación con el dispositivo /dev/sda3 que en este particular ejemplo corresponde a la partición para /home: umount /home e2fsck -f -D /dev/sda3 La salida puede devolver algo similar a lo siguiente: [root@m100 SPECS]# e2fsck -D -f /dev/sda3 e2fsck 1. La optimización de todos los directorios de una partición consiste en volver a posicionar (reindexing) los directorios.

Opciones de montado. se configurará la opción noatime para la partición /var/www en el archivo /etc/fstab de un servidor HTTP.2. Opción commit (consignación de cambios).3. Opción data (datos).2.1. Esta opción controla el tiempo que se utilizará entra cada operación sincronización (sync) de datos y metadatos en una partición. o Input/Output). las modificaciones de esta opción requieren que la partición esté sin utilizar. y volver a montar. 141 . y ocurre una interrupción de energía antes de hacer una operación de sincronización (sync). Esta opción permite tres posibles valores: • ordered: Es el valor predeterminado. Es la forma más rápida. los cuales realmente son poco utilizados por la mayoría de los usuarios. Todas se especifican en la columna de opciones de los dispositivos en el archivo /etc/fstab.commit=8 1 2 12. es la opción que debe utilizarse. El tiempo predeterminado es de 5 segundos. En el siguiente ejemplo. Si la prioridad es garantizar la integridad de datos o bien se carece de un sistema de respaldo de energía confiable.2. desmontando las particiones que se quieran optimizar antes de proceder con el mandato e2fsck -f -D. pero aplicado a todos los datos de la partición.2. y fácil. Los sistemas de archivos ext3 y ext4 permiten tres opciones que particularmente son útiles. Esta opción impide se actualice los tiempos de acceso de los inodos (nodos índice). se perderán los datos más recientes con los que se haya trabajado. tomando en cuenta que si se específica demasiado tiempo. Puede incrementarse ligeramente para mejorar el desempeño. Es particularmente útil en computadoras portátiles pues reduce considerablemente la cantidad de procesos de E/S o Entrada.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En el caso de tratarse de particiones que sea imposible desmontar por encontrarse en uso. o un Disco Vivo (LiveCD). del disco duro. Escribe los datos asociados a los metadatos primero en el sistema de archivos antes de hacerlo en el registro por diario. en modo de rescate. Opción noatime (eliminar tiempos de acceso). 12. Fedora o Red Hat. Esto permite mejor desempeño en servidores de noticias y HTTP pues permite un más rápido acceso hacia el sistema de archivos. se configurará la opción commit con el valor equivalente a 8 segundos para la partición /var/www en el archivo /etc/fstab de un servidor HTTP. LABEL=/var/www /var/www ext3 defaults. LABEL=/var/www /var/www ext3 defaults. puede utilizarse el disco de instalación de CentOS.noatime 1 2 12. 12. Esta opción sólo se recomienda si se dispone de un sistema de respaldo de energía confiable.2. Por lo cual se recomienda realizar este procedimiento desde un disco de rescate o bien iniciando el sistema en nivel de ejecución 1 (monousuario). Equivale a utilizar chattr +A.2. en el caso de Ubuntu. Nota: Debido a que se debe desmontar. de lograr mejoras en el desempeño.2.2. En el siguiente ejemplo. y Salida (I/O.2.

o bien si en la partición configurada con este formato de registro por diario hay cambios poco frecuentes en los datos (como el caso de /boot. y posteriormente el mandato mount para volver a desmontarlas. dependiendo el caso. hay que convertir los registros de diarios a writeback o bien journal. /. y bases de datos. al mismo tiempo. • En el siguiente ejemplo se configurará en el archivo /etc/fstab de un servidor HTTP. el método más lento en la mayoría de los casos. y el cual. writeback: Hace que el sistema de archivos se comporte de manera similar a XFS. Este método es el más rápido porque sólo los metadatos se almacenan en el registro por diario.data=writeback defaults. Éste es. Sólo se recomienda si se dispone de un sistema de respaldo de energía confiable. se puede utilizar el mandato umount para desmontar la partición a modificar. de modo que las consignaciones de cambios (commits) en el registro por diario puede ocurrir antes de la escritura en el sistema de archivos. en algunos. Poco recomendado para particiones donde hay cambios frecuentes en los datos almacenados. /usr. /usr/local. y volver a montar. y volver a utilizar el modo ordered. como ocurre con /home o /var. como ocurre con las bases de datos. Para tal fin se utiliza el mandato tune2fs del siguiente modo. el sistema. /var/tmp. con la opción data. y. y el valor journal: LABEL=/var/www LABEL=/var/lib /var/www /var/lib ext3 ext3 defaults. y /var/cache. pero puede hacer que se muestren datos viejos después de una falla del sistema o interrupción de energía. evidentemente.data=journal 1 2 1 2 Antes de desmontar. o bien particiones para temporales o caches (como /tmp. Sin preservar el ordenamiento al escribir en el disco. y escritura. se puede utilizar el mandato tune2fs con la opción -o journal_data. la partición /var/www con la opción data con el valor writeback. por lo tanto. /opt. por lo cual utiliza un registro por diario más grande. y la partición /var/lib. y luego en el sistema de archivos. en el caso donde se desea cambiar al modo writeback el registro por diario de la partición LABEL=/var/www: tune2fs -o journal_data_writeback LABEL=/var/www En el caso donde se desea cambiar al modo journal el registro por diario de la partición LABEL=/var/lib. o reiniciar. sin correr el riesgo de reiniciar con errores de sintaxis en el archivo /etc/fstab que impedirían montar las particiones configuradas. /var/lib o /var/spool. Ejemplos: umount /var/www umount /var/lib mount /var/www mount /var/lib 142 . escenarios para /var/www). demora más tiempo en recuperarse en caso de una falla del sistema o interrupción de energía. Para aplicar los cambios. se utiliza lo siguiente: tune2fs -o journal_data LABEL=/var/lib Para revertir el cambio. Obliga a escribir primero los datos en el registro por diario. salvo que se realicen operaciones de lectura.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux • journal: Es lo opuesto a ordered.

Si uno sólo necesita hacer pruebas. y se elimina la opción data=valor. el formato predeterminado en las particiones es Ext4. es posible montar una partición Ext3 como Ext4 modificando el archivo /etc/fstab.5. debido a que en CentOS 5. y versiones posteriores. y aplicadas. carece de soporte para iniciar desde particiones Ext4.2. y que el sistema puede ser reiniciado con toda seguridad en el momento que se considere apropiado. y montan las particiones. Esta es la razón por la cual se desmontan. Si lo anterior devuelve el símbolo de sistema sin errores. Instalando los paquetes correspondientes. preservando los datos originales en el sistema de archivos. con la única restricción de que jamás se deberá convertir a Ext4 las particiones que correspondan /boot y /. En CentOS 6 o Red Hat Enterprise Linux 6.. y Red Hat Enterprise Linux 5 la versión de Grub. por lo cual es innecesario convertir de Ext3 a Ext4. CentOS 5.3. correctamente. Ext4 ha demostrado ser un sistema de archivos con mucho mejor desempeño que su predecesor. Para regresar todo a como estaba originalmente. Convirtiendo particiones de Ext3 a Ext4. significa que las opciones se aplicaron correctamente. incluye el soporte necesario para convertir al formato Ext4 las particiones Ext3. 12. Nuevamente. Es muy importante realizar un respaldo de información relevante antes de proceder. significa que las opciones fueron revertidas. y que el sistema puede ser reiniciado con toda seguridad en el momento que se considere apropiado. para cambiar el tipo de registro por diario de las particiones. por si acaso algo saliese mal. el gestor de arranque. si se utiliza CentOS 5 o Red Hat Enterprise Linux 5. pero carecerá de muchas funciones propias de Ext4. de la partición ivolucrada: LABEL=/var/www LABEL=/var/lib /var/www /var/lib ext3 ext3 defaults defaults 1 2 1 2 Se desmontan las particiones: umount /var/lib umount /var/www Y con el mandato tune2fs se define nuevamente el formato ordered: tune2fs -o journal_data_ordered LABEL=/var/lib tune2fs -o journal_data_ordered LABEL=/var/www Y finalmente se vuelven a montar las particiones: mount /var/lib mount /var/www Si lo anterior devuelve el símbolo de sistema sin errores.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Utilizar el mandato mount con la opción -o remount siempre devolverá un error de opción incorrecta. Ext3. 143 . jamás se deben convertir a Ext4 las particiones que correspondan a /boot o /. se edita el archivo /etc/fstab.

ext4 para verificar la partición. incluye también soporte básico para Ext4. lo cual haría que de modo irreversible jamás se pueda volver a montar como Ext3. entre otras herramientas.ext4 debe utilizarse con las opciones -fyD (forzar verificación. versión 5. sólo será necesario editar el archivo /etc/fstab. utilice el mandato fsck. El UUID se puede determinar utilizando el mandato blkid del siguiente modo: blkid /dev/sda7 144 . o bien un disco de rescate. que correspondería a /tmp. será necesario hacer lo anterior desde un disco vivo. e4label. como son e4fsck. fsck. y /). y ext3 por ext4. aunque carece de soporte para convertir particiones de Ext3 a Ext4 a través del mandato tune2fs.ext4 -fyD /dev/sda7 Si la partición está en uso. o Identificador Universalmente Único) en lugar de etiquetas. y carece de mandato tune4fs. umount /tmp tune4fs -O extents. y reparar.ext4. mkfs. y completar así los cambios necesarios en el sistema de archivos. el intérprete de mandatos del modo de rescate del disco de instalación de CentOS 5.5 en adelante. como sería el caso de las correspondientes a /usr y/o /var.uninit_bg. y cambiar ext3 por ext4. LABEL=/ LABEL=/boot /dev/sda7 tmpfs devpts sysfs proc LABEL=SWAP-hda3 / /boot /tmp /dev/shm /dev/pts /sys /proc swap ext3 ext3 ext4 tmpfs devpts sysfs proc swap defaults defaults defaults defaults gid=5. se requiere que el sistema tenga instalado el paquete e4fsprogs: yum -y install e4fsprogs Este paquete incluye las herramientas necesarias para gestionar particiones Ext4. contestar si a todas las modificaciones necesarias. y dumpe4fs. En el archivo /etc/fstab se reemplaza LABEL=/tmp por el nombre real del dispositivo. debe desmontarse primero la partición a convertir. Hasta aquí. y modificar la configuración de cualquier partición (excepto las que correspondan a /boot. Por tanto. y optimizar directorios). El modo de rescate del disco de instalación de CentOS. A partir de este punto. El mandato fsck.dir_index /dev/sda7 En seguida.dir_index. particiones Ext4 a través del mandato fsck.mode=620 defaults defaults defaults 1 1 1 0 0 0 0 0 1 2 2 0 0 0 0 0 Ext4 utiliza UUID (Universally Unique Identifier. para poder utilizar el formato Ext4 en cualquier otra partición. y volviendo a definir ext3 como formato de la partición modificada. y con el objetivo de realizar pruebas. para convertirla a Ext4.uninit_bg. y posteriormente utilizar el mandato tune4fs con las opciones -O extents.5 sólo permitirá verificar. Para convertir una partición por completo a Ext4. En el siguiente ejemplo se aplica el mandato tune4fs a la partición /dev/sda7. mke4fs.ext4. es posible revertir el cambio volviendo a editar el archivo /etc/fstab.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En CentOS 5 o Red Hat Enterprise Linux 5.

1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo cual devolvería algo similar a lo siguiente: /dev/sda7: LABEL="/tmp" UUID="238e532b-250c-4a80-87a3-3aecc9715795" TYPE="ext4" Con esta información. Los archivos se pueden ir migrando con las subsecuentes escrituras en disco. umount /tmp Con la finalidad de prevenir cualquier problema. es utilizar el mandato chattr para añadir el atributo de extents a todos los archivos y directorios de una partición en particular.2.4. pueden pasar meses antes de poder ser convertidos. como binarios y bibliotecas compartidas. monte de nuevo la partición. Una forma de convertir todo de una vez.2. 12. el archivo /etc/fstab quedaría del siguiente modo: LABEL=/ / LABEL=/boot /boot UUID=238e532b-250c-4a80-87a3-3aecc9715795 tmpfs /dev/shm devpts /dev/pts sysfs /sys proc /proc LABEL=SWAP-hda3 swap ext3 ext3 /tmp tmpfs devpts sysfs proc swap defaults 1 1 defaults 1 2 ext4 defaults defaults 0 0 gid=5.ext4 -fyD /dev/sda7 Para finalizar el procedimiento. El formato Ext3 carece de soporte para funcionar sin registro por diario. Eliminando el registro por diario (journal) de Ext4. Advertencias. Este procedimiento aplica exclusivamente a las particiones con formato Ext4. hay que migrar los archivos y directorios de la partición para que utilicen extents. pero mucho del contenido estático. mount /tmp 12. vuelva a verificar la partición.mode=620 0 0 defaults 0 0 defaults 0 0 defaults 0 0 1 2 Monte de nuevo la partición.4. mount /tmp Ext3 utiliza una cartografía de mapas de bits. fsck. Ext4 se caracteriza por el uso de extents. Para completar el procedimiento. 145 . find /tmp -xdev -type f -print0 | xargs -0 chattr +e find /tmp -xdev -type d -print0 | xargs -0 chattr +e Desmonte de nuevo la partición.

y forzar verificación) a fin de realizar correcciones importantes e indispensables en el sistema de archivos. es importante aclarar que eliminar el registro por diario implica perder lo que garantiza la integridad de los datos de una partición en caso de una interrupción de energía o una falla general del sistema.. optimizar re-ordenando directorios. Este procedimiento está totalmente contraindicado en servidores. que fue previamente convertida a Ext4. por si acaso algo saliese mal. Asumiendo que se dispone de una partición /dev/sda7. un sistema operativo estable. Procedimientos.2. por ejemplo). En este caso la opción eliminada fue has_journal.2. de la siguiente forma: tune2fs -O ^has_journal /dev/sda7 El símbolo ^ (acento circunflejo) significa que se elimina una opción. se requiere ejecutar el mandato tune2fs. Sólo se recomienda eliminar el registro por diario en los casos donde se dispone de un buen respaldo de energía (ultra-portátiles.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Antes de comenzar. sin importar la versión de sistema operativo. de la siguiente forma: tune4fs -O ^has_journal /dev/sda7 Para eliminar el registro por diario de la partición /dev/sda7 en CentOS 6 o Red Hat Enterprise Linux 6. se debe desmontar la partición: umount /tmp Para eliminar el registro por diario de la partición /dev/sda7 en CentOS 5 o Red Hat Enterprise Linux 5. y establecer el nombre real del dispositivo en lugar del UUID: 146 . por lo cual invariablemente hay que editar el archivo /etc/fstab.ext4 -pDf /dev/sda7 Eliminar el registro por diario de una partición ext4 hace que irremediablemente se pierda el UUID. y. se requiere ejecutar el mandato tune4fs. que es las responsable del registro por diario. y/o se tienen particiones asignadas a directorios donde la información es poco relevante (como /tmp. muy probablemente. Es importante también realizar un respaldo de información relevante antes de proceder.4. /var/tmp o /var/cache). 12. y que prescinda de interacción humana. sólo amerite eliminar el registro por diario en particiones en unidades de estado sólido (SSD). utilizando el método descrito en este mismo documento. o bien donde se requiera una garantía absoluta de integridad de datos. o formateada en Ext4. con las opciones -pDf (reparar automáticamente lo que sea necesario. Hay que considerar además que la mejoría obtenida puede ser apenas perceptible. o anterior requiere utilizar en seguida el mandato fsck. fsck. que en el ejemplo corresponde a /tmp.

y ejecutar lo siguiente. su -l umount /home tune2fs -O has_journal /dev/sda7 fsck -pDf /dev/sda7 mount /home 12.mode=620 defaults defaults defaults 1 1 1 0 0 0 0 0 1 2 2 0 0 0 0 0 Hecho lo anterior.487s 0m3. pero brindará el máximo rendimiento posible para el sistema de archivos Ext4. Bibliografía. y la misma partición /tmp.441s 0m8. Vuelva a montar la partición para verificar que todo funcione correctamente.444s 0m4.Joel Barrios Dueñas LABEL=/ LABEL=/boot /dev/sda7 tmpfs devpts sysfs proc LABEL=SWAP-hda3 / /boot /tmp /dev/shm /dev/pts /sys /proc swap ext3 ext3 ext4 tmpfs devpts sysfs proc swap Configuración de Servidores con GNU/Linux defaults defaults defaults defaults gid=5. sólo basta con volver a iniciar con el disco vivo. mount /tmp La mejoría será apenas perceptible. se habrá completado el procedimiento. pero significativa.811s /tmp con registro por diario /tmp sin registro por diario Como pude verse.org/articles/643 147 . la diferencia es muy poca. En un equipo con una partición /tmp con registro por diario. sin registro por diario. • http://www. abrir una terminal. superando incluso el desempeño en cuanto a velocidad de Ext2.796s 0m0. la escritura de 1 GB de información demoró lo siguiente: real user sys real user sys 0m9.3.debian-administration. En el dado caso que se quiera volver a utilizar el registro por diario.978s 0m0.

13. Al reutilizar o distribuir la obra. que el respaldo es confiable. utilice el mandato df para determinar que dispositivo corresponde a la partición que se desea cifrar. Si la partición contiene datos de algún tipo. Una vez hecho el respaldo. los datos hacia otro dispositivo de almacenamiento.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. se debe respaldar todo antes de proceder. A fin de evitar contratiempos. desmonte la partición que se pretende cifrar: 148 . La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. y sí acaso estuviese montada. Antes de continuar. Sí a caso fuese necesario. Usted es libre de copiar. El procedimiento eliminará. 13.3. c) Si altera o transforma esta obra.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 13. computadoras portátiles y dispositivos de almacenamiento cuya información se desee proteger. Por lo general el paquete cryptsetup-luks viene instalado de manera predeterminada en Fedora. Cifrado de particiones con LUKS.alcancelibre. y restaurar estos datos luego de terminar le procedimiento. y compruebe. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.2. tiene que dejar bien claro los términos de la licencia de esta obra. Procedimientos. Es particularmente útil en dispositivos móviles. Como root ejecute: init 1 Antes de proceder. LUKS (Linux Unified Key Setup-on-disk-format) es una implementación muy sencilla de utilizar para utilizar particiones cifradas en GNU/Linux. El siguiente procedimiento describe cómo cifrar una partición de disco asignada al punto de montaje /datos. de manera inevitable. o genera una obra derivada. Copie. CentOS y Red Hat. todo el contenido actual de dicha partición.1. o mueva. conviene realizar todos los procedimientos desde el nivel de ejecución 1 (mono usuario). sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. df -h Respalde todos los datos de la partición que necesite cifrar. De ser necesario. instalar el paquete correspondiente con el mandato yum: yum -y install cryptsetup-luks 13. Cabe señalar que el procedimiento hará que todos los datos de esta partición se pierdan. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Introducción.1 © 1999-2011 Joel Barrios Dueñas. b) No puede utilizar esta obra para fines comerciales. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. verifique. Equipamiento lógico necesario. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. es muy importante cerciorarse de qué dispositivo se va a utilizar para el procedimiento.

o incluso días. pues mejora el cifrado al llenar previamente la partición con datos aleatorios. se puede especificar la frase de acceso. o bien un archivo que contenga ésta. ésto puede demorar varias horas. Una vez realizado lo anterior. con las opciones --verbose (para obtener una salida más descriptiva en caso de problemas). o bien una clave de acceso). cryptsetup luksOpen /dev/sdaX datos Lo anterior crea un nuevo dispositivo denominado /dev/mapper/datos. o bien la clave de acceso. y se ingresa la nueva frase. datos /dev/sdaX none A fin de que el sistema operativo monte automáticamente el dispositivo. De manera opcional. luksFormat para dar formato en LUKS. que se desea proceder y que se está consciente que se perderán todos los datos actuales de la partición. dd if=/dev/urandom of=/dev/sdaX bs=4096 La partición a utilizar se inicializa con el mandato cryptsetup. al volver iniciar el sistema. Para que el sistema operativo pueda utilizarlo. y el nombre que se quiera asignar al planificador de dispositivos (device mapper). --verify-passphase (para asignar una frase de acceso. en lugar de none para que el sistema inicie sin necesidad de que el administrador ingrese la frase de acceso. para poder hacer uso de la nueva partición cifrada. pero se recomienda llevarlo a cabo. se edita el archivo /etc/fstab: 149 . que se pretenda asignar.ext4 /dev/mapper/datos A fin de que el sistema solicite automáticamente la frase de acceso. se utiliza el mandato cryptsetup con la opción luksOpen. indicando el dispositivo que corresponde a la partición que se acaba de cifrar. cryptsetup --verbose --verify-passphrase luksFormat /dev/sdaX Lo anterior requerirá responder explícitamente con YES. y el nombre del dispositivo. o bien la nueva clave de acceso. se define. dependiendo del tamaño de la partición. en mayúsculas. se pulsa la tecla ENTER. Debe tomarse en consideración que.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux umount /datos El siguiente paso es opcional. se crea o edita el archivo /etc/crypttab: vim /etc/crypttab Dentro de éste. En el siguiente ejemplo se da formato en ext4 a /dev/mapper/datos: mkfs. en el segundo campo se define el nombre del dispositivo que se cifró y en el tercer campo se define none. aunque poco recomendado. en el primer campo. el nombre que se quiera utilizar para el planificador de dispositivos (device mapper). o bien la clave de acceso. A continuación. este nuevo dispositivo requiere ser formateado. o bien la clave de acceso.

y así acceder a la partición cifrada. se monta la partición cifrada: mount /datos En adelante.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux vim /etc/fstab Y se añade lo siguiente. Cuando el caso lo amerite. como /dev/mapper/datos: /dev/mapper/datos /datos ext4 defaults. 150 . o LABEL=/datos. aparecerá un diálogo que solicitará ingresar la frase de acceso. En adelante se solicitará la frase de acceso. de acuerdo a como lo vea el planificador de dispositivos: cryptsetup luksClose /dev/mapper/datos Restaure los datos que respaldó. o bien se trate de un dispositivo de almacenamiento extraíble (una llave o disco USB. y reinicie el sistema. se desconecta el dispositivo utilizando el mandato cryptsetup. y el nombre del dispositivo. definida durante el procedimiento. o bien la clave de acceso. o bien se reemplaza el nombre del dispositivo anterior (UUID=xxxxxxxxxxxx. cuando se inicie el sistema. /dev/sdaX.noatime. para utilizar la partición cifrada. para poder iniciar el sistema. para desconectar manualmente el dispositivo. dependiendo de la versión del sistema operativo). por ejemplo). o bien la clave de acceso.nodiratime 1 2 Finalmente. se debe desmontar primero la partición: umount /datos A continuación. con la opción luksClose.

De modo predeterminado sudo requiere que los usuarios se autentiquen así mismos con su propia clave de acceso (nunca la clave de acceso de root).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 14. 14. Usted es libre de copiar. Garth Snyder publicó otra versión mejorada en el verano de 1986 y durante los siguientes cinco años fue mantenido con al colaboración de muchas personas. Sudo es una herramienta de sistema que permite a los usuarios realizar la ejecución de mandatos como superusuario u otro usuario de acuerdo a como se especifique en el archivo /etc/sudoers. Los números de identidad de usuario y de grupo (UID y GID) reales y efectivas se establecen para igualar a aquellas del usuario objetivo como esté especificado en el archivo /etc/passwd. c) Si altera o transforma esta obra. donde se determina quien está autorizado. Bob Manchek. en Buffalo. el usuario podrá utilizar nuevamente sudo sin necesidad de volver a autenticarse durante 5 minutos. Cliff Spencer. y Trent Hein.1. Una vez que el usuario se ha autenticado. versión que posteriormente fue publicada bajo los términos de la Licencia Pública General de GNU (GNU/GPL).1.alcancelibre. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Sudo fue inicialmente concebido en 1980 por Bob Coggeshall y Cliff Spencer del departamento de ciencia computacional en SUNY (State University of New York o Universidad Estatal de Nueva York). En 1991 Dave Hieb y Jeff Nieusma escribieron una nueva versión con un formato mejorado para el archivo /etc/sudoers bajo contrato con la firma consultora The Root Group. Historia.1 © 1999-2011 Joel Barrios Dueñas. Introducción.sources una versión mejorada acreditada a Phil Betchel. salvo que se especifique lo contrario en el archivo /etc/sudoers. b) No puede utilizar esta obra para fines comerciales. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Si el usuario ejecuta el mandato sudo -v podrá refrescar éste periodo de tiempo sin necesidad de tener que ejecutar un mandato. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. se registra la actividad en la bitácora de sistema (a través de syslogd) y se envía un mensaje de correo electrónico al administrador del sistema (root).1. trata de ejecutar un mandato a través de sudo. tiene que dejar bien claro los términos de la licencia de esta obra. en cuyo caso contrario expirará esta autenticación y será necesario volver a realizar ésta. Cómo configurar y utilizar Sudo Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. o genera una obra derivada. 151 . incluyendo Bob Coggeshall.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Desde 1996 el proyecto es mantenido por Todd Miller con la colaboración de Chris Jepeway y Aaron Spangler. John LoVerso y Don Gworek. 14. Gretchen Phillips. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. En 1985 se publicó el grupo de noticias net. Si un usuario no listado en el archivo /etc/sudoers. Al reutilizar o distribuir la obra. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.

Equipamiento lógico necesario.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 14. Instalación a través de Up2date Si se utiliza de Red Hat™ Enterprise Linux 4. Red Hat™ Enterprise Linux 5 o White Box Enterprise Linux 5. herramienta que a través de vi permite realizar cambios y verificar sintaxis y errores. fulano ALL = MANDATOSHTTPD Lo anterior define que el usuario fulano puede utilizar los mandatos de la lista MANDATOSHTTPD desde cualquier anfitrión. NOMBRELISTA] [anfitrión] = (id de usuario a usar) mandatos Se pueden definir Aliases y reglas.d/variables. una lista de usuarios. éste tiene permisos de solo lectura.1.2. modificar un archivo de configuración en la ruta /etc/httpd/conf.conf.1.3.2. elemento2.2.3. 152 . /usr/bin/vim /etc/php.2.ini. elemento3 La sintaxis básica de una regla sería: [usuario. un alista de anfitriones o bien ejecutar como otros usuarios. 14. Si se trata de modificar directamente /etc/sudoers. se puede instalar lo necesario utilizando lo siguiente: yum -y install sudo 14. Cmnd_Alias MANDATOSHTTPD = /sbin/service httpd restart. Si se utiliza de CentOS 5. 14. La sintaxis básica de una lista sería: XXXX_Alias NOMBRELISTA = elemento1. Instalación a través de yum. o versiones posteriores. Los aliases permiten definir una lista de mandatos . Archivo /etc/sudoers El archivo /etc/sudoers se edita con el mandato visudo.ini Lo anterior define una lista de mandatos que podrían utilizarse para reiniciar el servicio de httpd.conf y modificar el archivo /etc/php.d/variables. /usr/bin/vim /etc/httpd/conf. Cmnd_Alias. se puede instalar utilizando lo siguiente: up2date -i sudo 14. o versiones posteriores. %grupo.

Si además se añade la siguiente regla: USUARIOSHTTPD HOSTSHTTPD = ADMINHTTPD Lo anterior define que los usuarios de la lista HTTPDUSERS pueden utilizar los mandatos listados en ADMINHTTPD solamente si están conectados desde las direcciones IP listadas en HOSTSHTTPD. 192. 153 . se requiere definir una lista para estos mandatos y otra para los aliases de usuarios alternos. /bin/cp.0. /bin/chmod. pedro y hugo) solamente si se realiza desde las direcciones IP listadas en HOSTSHTTPD (192. User_Alias.3. Sudo incluye varios candados de seguridad que impiden se puedan realizar tareas peligrosas.168. chmod. touch y vim) identificándose como los usuarios definidos en CLIENTES1 (juan. cp.23). rm.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 14. rm.23 Lo anterior define que la lista HOSTSHTTPD está integrada por las 3 direcciones IP listadas anteriormente. Host_Alias HOSTSHTTPD = 192. /bin/mkdir. 14. /bin/mv. touch y vim como el usuarios juan.168. y la regla correspondiente. Runas_Alias. 192.3.168.4. 14. cp. /usr/bin/vim USUARIOSHTTPD HOSTSHTTPD = (CLIENTES1) MANDATOSCLIENTES Lo anterior permite a los usuarios definidos en USUARIOSHTTPD (fulano. Candados de seguridad.0. chmod.26. hugo Cmnd_Alias MANDATOSCLIENTES = /bin/ls. pedro y hugo. mengano y zutano. /bin/rm. pedro.0.168.4. 14. mengano. 192. 192.0.0. mv.25.0. Si por ejemplo se quisiera que los usuarios de la lista USUARIOSHTTP pudieran además utilizar los mandatos ls. Runas_Alias CLIENTES1 = juan. zutano Lo anterior define una lista denominada HTTPUSERS. mengano y zutano). mv.25. /bin/touch.3.26. USUARIOSHTTP ALL = /usr/bin/vim La regla anterior define que los usuarios que conforman la lista USUARIOSHTTP pueden utilizar el mandato vim desde cualquier anfitrión. mkdir.168. utilizar los mandatos definidos en MANDATOSCLIENTES (ls. Host_Alias.3.2. User_Alias USUARIOSHTTP = fulano. mkdir. integrada por los usuarios fulano.168.

5. el usuario podrá utilizarlo de los siguientes modos: $ sudo /bin/echo "Hola" $ sudo echo "Hola" Pero no podrá utilizarlo de la siguiente forma: $ sudo echo "Hola" > algo. Si se quiere permitir a un usuario utilizar lo que sea.txt Para poder realizar la operación anterior. Facilitando la vida a través de ~/.bash_profile al iniciar la sesión. estos se pueden simplificar a través de aliases que resuman éstos. se puede simplemente definir: fulano ALL = (ALL) NOPASSWD: ALL 14. Lo que no se recomienda.zone Pero no podrá utilizarlo así: $ sudo chown named /var/named/*.zone 14.bash_profile: 154 . cómo cualquier usuario del sistema y sin necesidad de autenticar. no podrá ser utilizado así: $ cd /usr/bin $ sudo .bash_profile./vim Si se define el mandato /bin/echo.6. se puede añadir lo siguiente al archivo ~/. se podrá hacer uso de éste de los siguientes modos: $ sudo /usr/bin/vim $ sudo vim Sin embargo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si se define el mandato /usr/bin/vim en /etc/sudoers. si se quiere definir que se utilice sudo cada vez que se invoque al mandato chkconfig. tendría que utilizar: $ sudo bash -c "echo 'Hola' > algo. desde cualquier anfitrión.txt" Sudo permitirá realizar una tarea sobre cualquier archivo dentro de cualquier directorio aún si no tiene permisos de acceso para ingresar a dicho directorio siempre y cuando especifique la ruta exacta de dicho archivo. siendo que el administrador utilizará activamente muchos mandatos diversos. BASH (Bourne-Again Shell) permite utilizar variables de entorno y aliases definidas en ~/. $ sudo chown named /var/named/dominio. Por ejemplo.

~/.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux alias chkconfig="sudo /sbin/chkconfig" Lo anterior permitirá ejecutar directamente el mandato chkconfig sin necesidad de preceder éste con el mandato sudo.bashrc y que permitirán utilizar mandatos diversos con sudo.bashrc ]. A continuación só diversos aliases que pueden ser de utilidad en el archivo ~/.bash_profile se añadieron estos aliases.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin:/sbin:/usr/sbin export PATH unset USERNAME alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias chkconfig="sudo /sbin/chkconfig" service="sudo /sbin/service" route="sudo /sbin/route" depmod="sudo /sbin/depmod" ifconfig="sudo /sbin/ifconfig" chmod="sudo /bin/chmod" chown="sudo /bin/chown" chgrp="sudo /bin/chgrp" useradd="sudo /usr/sbin/useradd" userdel="sudo /usr/sbin/userdel" groupadd="sudo /usr/sbin/groupadd" groupdel="sudo /usr/sbin/groupdel" edquota="sudo /usr/sbin/edquota" vi="sudo /usr/bin/vim" less="sudo /usr/bin/less" tail="sudo /usr/bin/tail" yum="sudo /usr/bin/yum" saslpasswd2="sudo /usr/sbin/saslpasswd2" htpasswd="sudo /usr/bin/htpasswd" openssl="sudo /usr/bin/openssl" system-config-printer="sudo /usr/sbin/system-config-printer" system-config-network="sudo /usr/sbin/system-config-network" system-config-display="sudo /usr/bin/system-config-display" Para que surtan efectos los cambios. hay que salir de la sesión y volver a ingresar al sistema con la misma cuenta de usuario. en cuyo archivo ~/.bashrc # Get the aliases and functions if [ -f ~/. # . 155 . then .

Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. etc. Para ello existen distintos métodos. 15. los permisos y ubicación de los archivos y directorios de sistema. Sin embargo aún resulta útil para la administración de servidores. tiene que dejar bien claro los términos de la licencia de esta obra.2. c) Si altera o transforma esta obra.1. cuando no se tiene instalado X Window®. Fue el método comúnmente utilizado antes de la aparición de programas como YaST y Linuxconf. Usted es libre de copiar. se altere accidentalmente la configuración del sistema. o bien se tienen limitaciones o problemas para utilizar un entorno gráfico.1. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra. como son los mandatos tradicionales. o genera una obra derivada.1. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. como YaST y la versión correspondiente de Linuxconf o Webmin. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. todos sencillos que permiten crear una cuenta con su propio directorio de trabajo y los archivos necesarios. los servicios que trabajan en el trasfondo. Lo primero: el mandato useradd El primer paso para crear una nueva cuenta consiste en utilizar el mandato useradd del siguiente modo: useradd nombre_del_usuario 156 . 15. y algunos otros programas.2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 15. Procedimientos Generalmente el paso que procede a una instalación de GNU/Linux® es la creación de cuentas de usuario. Aún cuando se tenga una PC con un único usuario.alcancelibre.1 © 1999-2011 Joel Barrios Dueñas. Cómo crear cuentas de usuario Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. como es Linuxconf y Webmin. b) No puede utilizar esta obra para fines comerciales. Introducción GNU/Linux® es un sistema operativo con muchas características y una de ellas es que se diseñó para ser utilizado por múltiples usuarios. Una cuenta de usuario contiene las restricciones necesarias para impedir que se ejecuten mandatos que puedan dañar el sistema -programas troyanos como el Bliss-. Creando una cuenta en el modo de texto: useradd y passwd Este procedimiento puede realizarse de forma segura tanto fuera de X Window® como desde una ventana terminal en el entorno gráfico del que se disponga.1. useradd y passwd. 15. así como recursos que funcionan en modo de texto o desde una ventana terminal. Actualmente existen recursos como el programa instalador de Red Hat™ Linux® y programas que funcionan desde un entorno gráfico.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. es importante recordar que no es conveniente realizar el trabajo diario desde la cuenta de root. misma que sólo debe utilizarse para la administración del sistema. no se tienen instalados YaST o Linuxconf -o las versiones de estos que se han instalado no trabajan correctamente-.2. 15.

preferentemente. a fin de tener un sistema bien organizado. Opciones avanzadas En muchos casos las opciones pueden no ser necesarias. Por seguridad. Lo segundo: el mandato passwd El paso siguiente después de crear la nueva cuenta con useradd es especificar una contraseña para el usuario. Existen otras recomendaciones. pero si se está administrando un servidor o estación de trabajo. Este procedimiento también puede utilizarse para cambiar una contraseña existente. Aunque el sistema siempre tratará de prevenirlo cuando se escoja una mala contraseña. De forma predeterminada se establece como único grupo 1. o bien cambiar la existente. en virtud de haberse producido un error.3. no contenga palabras que se encontrarían fácilmente en el diccionario. pueden utilizarse las siguientes opciones de useradd: -c comment Se utiliza para especificar el archivo de comentario de campo para la nueva cuenta. antes de continuar. -e expire date Se utiliza para establecer la fecha de expiración de una cuenta de usuario.2. mayúsculas y minúsculas y que. por lo que es conveniente leer.2. 15. -d home dir Se utiliza para establecer el directorio de trabajo del usuario. éste no le impedirá que lo haga. que mezcle números. Es conveniente. o bien se es un usuario un poco más experimentado.1. Ésta debe ingresarse en el siguiente formato: AAAA-MM-DD. Si todo salió bien recibirá como respuesta del sistema code 0. se puede realizar utilizando el mandato passwd del siguiente modo: passwd nombre_del_usuario Ejemplo: passwd fulano El sistema solicitará entonces que proceda a escribir la nueva contraseña para el usuario y que repita ésta para confirmar. atributos y/o permisos. Si se considera que tal vez se cometieron errores de tecleado. por lo que debe hacerlo con cuidado. significará que deberá repetir el procedimiento. Nota: el grupo asignado debe existir. 157 .1. que este se localice dentro del directorio /home.2. Determine una que le resulte fácil de recordar. -g initial group Se utiliza para establecer el grupo inicial al que pertenecerá el usuario. y se quiere crear una cuenta con mayores o menores restricciones. De cualquier forma el sistema le informará si coincide o no lo tecleado.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Ejemplo: useradd fulano 15. Si en cambio recibe code 1. los comentarios finales acerca de la seguridad incluidos en este mismo artículo. el sistema no mostrará los caracteres tecleados. puede presionarse las veces que sean necesarias la tecla <Backspace> o <Retroceso>. Especificar una nueva contraseña para un usuario.

se deberá agregar la opción -r: userdel -r nombre_del_usuario Ejemplo: 158 . Este es un procedimiento principalmente utilizado en servidores y estaciones de trabajo a los cuales acceden múltiples usuarios. la ID del usuario. se establece bash como intérpete de mandatos predefinido.2. que se encuentra incluida en los grupos floppy. De forma predeterminada.2. y se copiarán dentro de éste los archivos especificados en /etc/skel. Existen más opciones y comentarios adicionales para el mandato useradd. pppusers y popusers. Lo anterior es muy conveniente cuando se desea que el usuario tenga acceso a determinados recursos del sistema. -u uid Se utiliza para establecer el UID. 15.[..Joel Barrios Dueñas Configuración de Servidores con GNU/Linux -G group. como acceso a la unidad de disquetes. Ejemplo: useradd -u 500 -d /home/fulano -G floppy. Este debe ser único. utilice el mandato man useradd desde una ventana terminal. -s shell Se utiliza para establecer el intérprete de mandatos que podrá utilizar el usuario.. -m Se utiliza para especificar que el directorio de trabajo del usuario debe ser creado si acaso este no existiese. De forma predeterminada se establece como UID el número mínimo mayor a 99 y mayor que el de otro usuario existente.popusers fulano Lo anterior creará una cuenta de usuario llamada «fulano». La sintaxis básica de este mandato es la siguiente: userdel nombre_del_usuario Ejemplo: userdel fulano Si se desea eliminar también todos los archivos y directorios subordinados contenidos dentro del directorio de trabajo del usuario a eliminar.] Se utiliza para establecer grupos adicionales a los que pertenecerá el usuario. utilizará Bash como intérprete de mandatos y tendrá un directorio de trabajo en /home/fulano. Para tal fin nos valdremos del mandato userdel. administración de cuentas PPP y POP. Eliminar una cuenta de usuario En ocasiones un administrador necesitará eliminar una o más cuentas de usuario. es decir. en Red Hat™ Linux® y Fedora™ Core. Éstos deben separarse utilizando una coma y sin espacios. Nota: los grupos asignado deben de existir. Cuando se crea una cuenta de usuario por primera vez. Los UID entre 0 y 99 son reservados para las cuentas de los servicios del sistema.pppusers. las que se encuentran especificadas en los manuales. que tendrá un UID=500. Para acceder a esta información. como ocurre en Red Hat™ Linux® y Fedora™ Core generalmente se asignará 500 como UID del usuario.

4.F. Este último caso lo menciona con énfasis la página de manual del mandato passwd. Asignación de usuarios existentes a grupos existentes gpasswd -a usuario-que-sea grupo-que-sea 15. Regularmente se asigna automáticamente el número de identidad de grupo más bajo disponible. sino porque el intruso pudo vulnerar alguna de las contraseñas de las cuentas existentes.4.3. groupadd -r grupo-que-sea 15. etc. nombres de personajes de ciencia ficción. utilice entonces contraseñas fáciles de recordar. fechas de nacimiento. es altamente recomendado cambiarla. números de cuentas de académicos o alumnos y nombres de mascotas.3. Si necesita almacenar contraseñas en un archivo. 159 • • • • . Manejo de grupos 15. como son el registro federal de causantes (R. Comentarios finales acerca de la seguridad Cuando. prefiera siempre limitarse a memorizarlas. pero cámbielas periódicamente.2. Si se le dificulta memorizar contraseñas complejas. Jamás proporcione una contraseña a personas o instituciones que se la soliciten.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux userdel -r fulano 15.3. • Evite especificar contraseñas fáciles de adivinar . Si usted especificó durante el proceso de instalación de Linux® una mala contraseña de root.C. un delincuente informático consigue infiltrarse en un sistema GNU/Linux® o Unix® no es porque éste cuente con un hueco de seguridad.). Alta de grupos groupadd grupo-que-sea 15.3.3. Baja de grupos groupdel grupo-que-sea 15. Alta de grupos de sistema Un grupo de sistema es aquel que tiene un número de identidad de grupo (GID) por debajo de 500. números telefónicos.1. algo muy común entre usuarios novicios.3. Con esto nos referimos particularmente a utilizar contraseñas que utilicen palabras incluidas en cualquier diccionario de cualquier idioma. datos relacionados con el usuario o empresa. hágalo utilizando cifrado. en la mayoría de los casos. la palabra Linux®. seguro social. Evite proporcionarla en especial a personas que se identifiquen como miembros de algún servicio de soporte o ventas. Evite escribir las contraseñas sobre medios físicos.

Observar estas recomendaciones. o bien acrónimos de éstas. hará que el sistema sea más seguro. principalmente en sistemas con acceso a redes locales y/o públicas como Internet.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Consideraremos como una buena contraseña aquella se compone de una combinación de números y letras mayúsculas y minúsculas y que contiene al menos 8 caracteres. También es posible utilizar pares de palabras con puntuación insertada y frases o secuencias de palabras. 160 .

en el caso de un sistema dedicado al servicio de hospedaje de sitios de red virtuales a través de HTTPD. Muestra un mensaje respecto a que la cuenta no está disponible (o bien lo que se defina en /etc/nologin. sólo hay que cambiar SHELL=/bin/bash por SHELL=/sbin/nologin. como las carpetas de correo en el directorio de inicio del usuario. el cual es un programa que de forma cortés rechaza el ingreso en el sistema (login). 161 . utilice un editor de texto sobre /etc/default/useradd. El valor de esta variable puede ser cambiado de acuerdo a las necesidades o preferencias del administrador.5. localizados dentro del directorio /var/home/usuario/mail/. Archivo /etc/default/useradd para definir variables utilizadas por el mandato useradd Como root.1. sin embargo lo cierto es que si el sistema se utilizará como servidor. En otros casos. Para utilizarlo como valor para la variable SHELL. Este programa registra en la bitácora del sistema todo intento de acceso. donde se quiere aplicar una sola cuota de disco general para buzón de correo y carpetas de correo en el directorio de inicio. lo más conveniente sería asignarle de modo predefinido otro valor. Encontrará. localizado en /var/spool/mail/usuario. como por ejemplo /var/home o /var/users.1. ésta involucraría tanto el buzón de entrada del usuario. pudiera crearse un directorio dentro de /var. Apéndice: Configurando valores predefinidos para el alta de cuentas de usuario 15. Variable SHELL El intérprete de mandatos a utilizar para las nuevas cuentas que sean creadas en adelante se define a través de la variable SHELL. el siguiente contenido: # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel Puede cambiar lo valores que considere convenientes. Variable HOME El directorio de inicio del usuario será creado dentro de /home.txt) y da salida. El más utilizado es /sbin/nologin.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 15. específicamente en servidores de correo.5.5.5. 15. 15. de acuerdo a como se estipula en Estándar de Jerarquía de Sistema de Archivos o FHS (Filesystem Hierarchy Standard).1. invariablemente.2. De modo predefinido el sistema asigna /bin/bash (BASH o Bourne Again Shell) como intérprete de mandatos. de modo que al aplicar cuota de disco sobre la partición /var.1. pudiera preferirse utilizar /var/www para este fin a modo de simplificar tareas para el administrador del sistema. Por ejemplo. Se utiliza como reemplazo de un intérprete de mandatos en cuentas que han sido desactivadas o bien que no se quiere accedan hacia un intérprete de mandatos.

características podrán. el directorio /etc/skel incluye los siguientes guiones de inicio: . programa que realiza salida inmediata indicando falla. Es decir. un enlace simbólico que apunta hacia /bin/bash y ofrece una versión simplificada de Bash muy similar a Bourne Shell (sh). /bin/bash. por ejemplo. Samba. una versión mejorada de sh con funciones útiles encontradas en Bash y tcsh. correo. regularmente y como mínimo. 15. se desea que cada cuenta de usuario incluya un directorio subordinado para carpetas de correo y suscripción a éstas a través del servicio de IMAP.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/sbin/nologin SKEL=/etc/skel En adelante todo nuevo usuario que sea dado de alta en el sistema con parámetro alguno.. IMAP y/o cliente de correo con interfaz HTTP).5. En sistemas basados sobre Red Hat™. Ideal para definirse cuando se quiere utilizar una cuenta que sólo tenga acceso a correo (SMTP.2. utilizar cualquier otro servicios como problema alguno. /bin/zsh. acceso en terminal local o remotamente. /dev/null. etc. programa que de forma cortés rechaza el ingreso en el sistema (login). correo o Samba sin ● ● ● ● ● ● /sbin/nologin.bash_profile . /bin/sh.gtkrc Si. de modo predefinido no podrá acceder al sistema a mandatos (shell). el dispositivo nulo que descarta todos los datos escritos sobre éste y no provee datos para cualquier proceso que lo lea. /bin/tcsh. Directorio /etc/skel como molde para crear los directorios de inicio de los usuarios De modo predefinido las cuentas de usuario del sistema utilizarán como molde al directorio /etc/skel para crear el directorio de inicio de todos los usuarios del sistema. /bin/ash. sin embargo.bashrc . se debe realizar el siguiente procedimiento: mkdir touch touch touch /etc/skel/mail/ /etc/skel/mail/Borradores /etc/skel/mail/Enviados /etc/skel/mail/Papelera 162 . es decir. intérprete de mandatos desarrollado por el proyecto GNU. una versión mejorada del de mandatos de C (csh). un clon de Bourne shell (sh) que utiliza menos memoria. aunque sin permitir el acceso hacia un intérprete de mandatos. /bin/false. que no permite la realización de cosa alguna y además con falla. Otros valores para la variable SHELL pueden ser: ● ● el mandato useradd sin través de intérprete de Los usuarios con estas FTP.bash_logout . Ideal si se quiere tener cuentas de usuario con acceso hacia FTP. POP3. Es el intérprete de mandatos predefinido en Linux y Mac OS X (a partir de Tiger).

mkdir /etc/skel/. Genere al usuario denominado «mengano» sin derecho a intérprete de mandatos. al usuario denominado «fulano» con derecho a intérprete de mandatos.mail. directorio de inicio /home/fulano y grupo principal fulano (valores por defecto): useradd -s /bin/bash fulano passwd fulano 3. de forma adicional se puede corregir un problema con algunas versiones de Firefox que generan un directorio ~/.1..mozilla} ls -a /etc/skel 2.mozilla con permisos de acceso para el usuario al crear cada cuenta de usuario. Genere el grupo denominado «desarrollo»: groupadd desarrollo 5. ~/Documents.6. Apéndice: Ejercicio: Creando cuentas de usuario 15. Genere.6.mozilla 15.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Y .6.mozilla: ls -a /etc/skel mkdir /etc/skel/{Desktop. se crearán algunos grupos y cuentas de usuario con diversas características. Procedimientos 1. Genere contenido predefinido para los directorios de inicio a fin de que el de cada usuario contenga los directorio subordinados ~/Desktop.finalmente. utilizando el siguiente contenido: mail/Borradores mail/Enviados mail/Papelera Si se pretende utilizar modo gráfico en el sistema. 15.Documents.mozilla con permisos de acceso sólo para root.2. crear con el editor de texto el archivo /etc/skel/. de modo tal que al añadirlo en /etc/skel se incluya un directorio ~/. ~/mail y ~/. Genere el grupo denominado «sistemas» como grupo de sistema: 163 . si no lo ha hecho aún como parte de los procedimientos del curso.mailboxlist que sirve para registrar las suscripciones hacia carpetas de correo que serán utilizadas por el servicio IMAP con un servidor UW-IMAP. Introducción A fin de poder trabajar con comodidad. asignando el directorio de inicio /home/mengano y grupo principal «mengano» (valores por defecto): useradd -s /sbin/nologin mengano passwd mengano 4.

grupo principal sistemas y grupo adicional de desarrollo: useradd -s /bin/bash -m -d /home/sistemas/zutano -g sistemas -G desarrollo zutano passwd zutano 9. «mengano». Genere los directorios subordinados /home/desarrollo y /home/sistemas/ del siguiente modo: mkdir -p /home/desarrollo mkdir -p /home/sistemas 7. Visualice el contenido de los archivos /etc/group y /etc/passwd y compare y determine las diferencias entre los grupos «desarrollo» y «sistemas» y los usuarios «fulano». asignando el directorio de inicio /home/desarrollo/perengano. «perengano» y «zutano». grupo principal de desarrollo y grupo adicional sistemas: useradd -s /sbin/nologin -m -d /home/desarrollo/perengano -g desarrollo -G sistemas perengano passwd perengano 8. Genere al usuario denominado «perengano» con derecho a intérprete de mandatos. cat /etc/group cat /etc/passwd 164 . asignando el directorio de inicio /home/sistemas/zutano.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux groupadd -r sistemas 6. Genere al usuario denominado «zutano» con derecho a intérprete de mandatos.

Linux localhost.alcancelibre. Ingrese como root. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. e instale los siguientes paquetes: yum -y install man tar zip unzip gzip bzip2 perl less file man-pages-es Cierre la sesión como root. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación.29.1. versión del núcleo de Linux.el6. 16. a través de cualquier medio.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 16. /etc/hosts: ASCII text Ejecute lo siguiente: file /boot/grub/splash.1 © 1999-2011 Joel Barrios Dueñas. número de lanzamiento del núcleo. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. y nombre del sistema operativo. En varios ejemplos utilizará el caracter ~ (tilde). que es una forma de abreviar el directorio de inicio del usuario utilizado. Procedimientos. tipo de microprocesador. por entidades con fines de lucro). tiene que dejar bien claro los términos de la licencia de esta obra. o genera una obra derivada.localdomain 2. nombre de anfitrión. Al reutilizar o distribuir la obra. Por favor.gz 165 . Breve lección de mandatos básicos. Usted es libre de copiar. en la cual se mostrará el nombre del núcleo. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.6. e ingrese nuevamente al sistema como usuario regular (fulano). Licencia completa en castellano.32-71. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. c) Si altera o transforma esta obra. plataforma del sistema. siga los procedimientos al pie de la letra. 16. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Ejecute lo siguiente: uname -a Lo anterior devolverá una salida similar a la siguiente.2. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Introducción.xpm.i686 #1 SMP Mon Jun 27 18:07:00 BST 2011 i686 i686 i386 GNU/Linux Ejecute lo siguiente: file /etc/hosts Lo anterior devolverá que /etc/hosts es un archivo de texto.

gz: gzip compressed data. y mostrará que ahora se está dentro de éste. from Unix. . . was "splash.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior devolverá que file /boot/grub/splash.bash_history . . last modified: Thu May 6 13:38:24 2010 Ejecute lo siguiente: pwd Lo anterior devolverá el directorio de trabajo actual. /boot/grub/splash. El mandato ls sirve para listar el contenido del sistema de archivos (list) Ejecute lo siguiente: ls ls -a Primero se mostrará que el directorio de inicio (~) está vacío..bash_logout . poniendo un punto al inicio de su nombre.xpm. Ejecute lo siguiente: cd /usr/local pwd Lo anterior cambiará al directorio /usr/local. en este caso el directorio de inicio del usuario.bash_profile . El mandato cd sirve para cambiar de directorio (change directory). y otras propiedades.xpm". Ejecute lo siguiente: ls /usr/local Lo anterior mostrará el contenido del directorio /usr/local. y mostrará el directorio de trabajo actual.xpm. El mandato pwd sirve para mostrar la ruta del directorio de trabajo actual (path of working directory).bashrc . Ejecute lo siguiente: cd pwd Lo anterior regresará al directorio de inicio (~).gz es un archivo comprimido con GZIP.Xauthority Ejecute lo siguiente: 166 . después se mostrará que en realidad si hay contenido. sólo para ver su contenido. y demostrará que es innecesario cambiarse a un directorio en particular. los archivos y directorios de convierten a ocultos al re-nombrar éstos.gnome2 .mozilla .

mostrará los atributos y permisos. drwxr-xr-x.bash_history . la cual mostrará además tamaños en bytes.0K sep 30 30 30 23 23 23 11:58 11:58 11:58 20:59 20:51 21:35 . en una lista ordenada por nombre.bash_history . y ordenará los elementos por tamaño: 167 .. Ejecute lo siguiente: ls -hlar La salida será similar a la del mandato anterior.bash_logout . drwx------. -rw-------. -rw-r--r--. -rw-r--r--. drwxr-xr-x. ordenando los archivos por nombre. fulano 143 sep 23 20:59 . -rw-------.bash_logout . root 4096 sep 23 20:51 . ordenando por nombre los archivos. atributos y permisos: total 24 drwx------.bash_profile .0K sep fulano 4.bashrc . .bash_history fulano 18 may 30 11:58 . pero en orden inverso: total 24 -rw-r--r--. -rw-r--r--. Ejecute lo siguiente: ls -Sla Lo anterior deberá de mostrar todo el contenido del directorio de inicio (~).. -rw-r--r--.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux ls -la Lo anterior mostrará todo el contenido de su directorio de inicio (~). -rw-r--r--. 1 1 1 1 5 4 fulano fulano fulano fulano root fulano fulano 124 may fulano 176 may fulano 18 may fulano 143 sep root 4096 sep fulano 4096 sep 30 30 30 23 23 23 11:58 11:58 11:58 20:59 20:51 21:35 . 1 1 1 1 5 4 fulano fulano fulano fulano root fulano fulano 124 may fulano 176 may fulano 18 may fulano 143 sep root 4.bash_logout fulano 176 may 30 11:58 .bashrc . en orden inverso. drwxr-xr-x.bash_profile . 4 5 1 1 1 1 fulano root fulano fulano fulano fulano fulano 4096 sep 23 21:22 . -rw-r--r--. -rw-r--r--. pero mostrando los tamaños de archivos en unidades más fáciles de entender: total 24K -rw-r--r--. drwx------..bashrc Ejecute lo siguiente: ls -lar La salida será similar a la del mandato anterior. . -rw-------.bash_profile fulano 124 may 30 11:58 .

Ejecute lo siguiente: ls -tla Lo anterior deberá de mostrar todo el contenido del directorio de inicio (~). Configuración de Servidores con GNU/Linux 4 5 1 1 1 1 fulano root fulano fulano fulano fulano fulano 4096 sep 23 21:35 .bash_logout . -rw-------.bash_logout fulano 176 may 30 11:58 .bash_logout Ejecute lo siguiente: ls -Slar La salida será similar a la del mandato anterior.. ordenando los archivos por tamaño. drwxr-xr-x.bash_profile . -rw-r--r--. drwxr-xr-x. 4 1 5 1 1 1 fulano fulano root fulano fulano fulano fulano 4096 sep 23 21:35 .bash_history root 4096 sep 23 20:51 .bashrc Ejecute lo siguiente: ls -tlar La salida será similar a la del mandato anterior. -rw-r--r--. -rw-r--r--.bash_history .bashrc . 1 1 1 5 1 4 fulano fulano fulano root fulano fulano fulano 124 may 30 fulano 176 may 30 fulano 18 may 30 root 4096 sep 23 fulano 143 sep 23 fulano 4096 sep 23 11:58 11:58 11:58 20:51 20:59 21:35 .. -rw-------. drwx------. 1 1 1 1 5 4 fulano fulano fulano fulano root fulano fulano 18 may fulano 124 may fulano 143 sep fulano 176 may root 4096 sep fulano 4096 sep 30 30 23 30 23 23 11:58 11:58 20:59 11:58 20:51 21:35 .bash_logout .bashrc . ordenando los archivos por fecha de modificación.bashrc fulano 18 may 30 11:58 . . y ordenará los elementos por fecha de modificación: total 24 drwx------. -rw-r--r--. -rw-------. pero en orden inverso: total 24 -rw-r--r--.bash_profile fulano 143 sep 23 20:59 . . -rw-r--r--.bash_history fulano 124 may 30 11:58 . fulano 18 may 30 11:58 . pero en orden inverso: total 24 -rw-r--r--.bash_profile fulano 124 may 30 11:58 . -rw-r--r--. fulano 143 sep 23 20:59 . fulano 176 may 30 11:58 . -rw-r--r--. -rw-------... drwx------. -rw-r--r--. -rw-r--r--. mostrará los atributos y permisos.bash_history . root 4096 sep 23 20:51 . drwxr-xr-x. -rw-r--r--. drwxr-xr-x.bash_profile . Ejecute lo siguiente: 168 .Joel Barrios Dueñas total 24 drwx------.

Pulse simultáneamente las teclas <SHIFT> y <Re Pág>.. pero mostrando los tamaños de los archivos en unidades más fáciles de entender: total 24K -rw-r--r--. ésto permitirá avanzar o retroceder en el documento. pero dentro del directorio «ejemplos2» (el cual es inexistente). y luego las teclas <SHIFT> y <Av Pág>. es necesario crear primero «ejemplos2». ingrese la palabra «directorio».bash_profile . drwx------.bash_logout . y resaltado las incidencias de la palabra «directorio». y pulse la tecla <ENTER>: :/directorio Lo anterior habrá realizado una búsqueda en el manual del mandato ls. 1 1 1 5 1 4 fulano fulano fulano root fulano fulano fulano 124 may 30 fulano 176 may 30 fulano 18 may 30 root 4. Ejecute lo siguiente para crear un nuevo directorio: mkdir ejemplos1 Ejecute lo siguiente para intentar generar otro directorio denominado «uno». Pulse la tecla /. . y ejecute lo siguiente: man ls Lo anterior mostrará el manual en español. dentro del directorio «ejemplos2». -rw-r--r--. Pulse las teclas de <Av Pág> y <Reg Pág> para avanzar o retroceder. Sin embargo puede indicarle a mkdir que genere toda la ruta añadiendo la opción -p (path): 169 . Ejecute lo siguiente: ls --help Lo anterior mostrará la ayuda del mandato ls.bash_history . -rw-r--r--.0K sep 23 11:58 11:58 11:58 20:51 20:59 21:35 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux ls -htlar La salida será similar a la del mandato anterior. -rw-------. drwxr-xr-x. Pulse la tecla q para salir.0K sep 23 fulano 143 sep 23 fulano 4.bashrc . Pulse la tecla <ENTER>. mkdir ejemplos2/uno/ Lo anterior devolverá un mensaje de error como el siguiente: mkdir: no se puede crear el directorio «ejemplos2/uno»: No existe el archivo o el directorio A fin de poder crear el directorio «uno».

y dentro de éste al directorio «uno».Joel Barrios Dueñas Configuración de Servidores con GNU/Linux mkdir -p ejemplos2/uno ls ls ejemplos2 Lo anterior creo el directorio «ejemplos2». Ejecute lo siguiente: cd ~/ejemplos1/ Proceda a ver el contenido de este directorio. y mostró dentro de éste al directorio «uno». utilizando el mandato cp: cp /etc/fstab ~/ejemplos1/ Vuelva a utilizar el mandato cp de este modo: cp /etc/passwd ~/ejemplos1/ Con estos dos procedimientos. habrá copiado dos distintos archivos (/etc/fstab y /etc/passwd) dentro del directorio ejemplos1. y mostró al directorio «ejemplos2». mueva el archivo fstab dentro del directorio adicional: mv fstab adicional/ Examine el contenido del directorio ejemplos1 utilizando de nuevo el mandato ls: ls Obtendrá una salida similar a la siguiente: 170 . Utilice de nuevo el mandato mkdir. y el directorio adicional.: [fulano@localhost ejemplos1]$ adicional fstab passwd [fulano@localhost ejemplos1]$ Utilizando el mandato mv. mkdir ~/ejemplos1/adicional Acceda al directorio de ejemplos1 para continuar. ejecutando lo siguiente: ls Se mostrarán los archivos fstab y passwd. Copie algunos archivos para experimentar con este directorio. y genere un directorio denominado adicional dentro del directorio de ejemplos1.

.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux [fulano@localhost ejemplos1]$ adicional passwd [fulano@localhost ejemplos1]$ Acceda al directorio adicional con el mandato cd cd adicional Se mostrará una salida similar a la siguiente: [fulano@localhost adicional]$ fstab [fulano@localhost adicional]$ Regrese al directorio ejemplos1 que se encuentra en el nivel superior utilizando el mandato cd: cd ./ Proceda a eliminar el archivo passwd que se encuentra en el directorio ejemplos1 rm passwd Haga lo mismo con fstab.2. Visualizando contenido de archivos. Ejecute lo siguiente: wc -w /etc/crontab Lo anterior devolverá que el archivo /etc/crontab contiene 84 palabras. Ejecute lo siguiente: wc -l /etc/crontab 171 . Ejecute lo siguiente: wc -m /etc/crontab Lo anterior devolverá que el archivo /etc/crontab contiene 448 caracteres. el cual se localiza dentro del directorio adicional: rm adicional/fstab Elimine el directorio adicional: rmdir adicional 16.1.

---------------.31) | | | .mar.mon.------.59) | . Ejecute lo siguiente: wc -L /etc/crontab Lo anterior devolverá que la línea más larga del archivo /etc/crontab tiene 86 caracteres.wed..thu.6) (Sunday=0 or 7) OR sun. ejecutando lo siguiente: cat /etc/crontab Lo anterior devolverá algo similar a lo siguiente: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details see man 4 crontabs # # # # # # # # Example of job definition: .12) OR jan.hour (0 .tue.apr ..day of week (0 . | | | | .day of month (1 . se utiliza el mandato grep como subrutina.sat | | | | | * * * * * command to be executed Para mostrar sólo las lineas que contengan la cadena de caracteres root.feb.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior devolverá que el archivo /etc/crontab contiene 16 líneas.month (1 .---. y sólo visualizar las líneas que sin la cadena de caracteres root.minute (0 .---------. Ejecute lo siguiente: cat /etc/crontab | grep -v "root" Lo anterior devolverá una salida similar a la siguiente: 172 . Utilice el mandato cat para ver el contenido del archivo /etc/crontab. Ejecute lo siguiente: wc -c /etc/crontab Lo anterior devolverá que el tamaño del archivo /etc/crontab es de 448 bytes.fri.------------. se utiliza el mandato grep como subrutina del siguiente modo: cat /etc/crontab | grep root Lo anterior devolverá algo similar a lo siguiente: MAILTO=root Para hacer lo contrario.23) | | .

------.6) (Sunday=0 or 7) OR sun. # | # * | * | * | * | * command to be executed 173 .31) # | | | .minute (0 .thu.sat # | | | | | # * * * * * command to be executed Ejecute lo siguiente: head -3 /etc/crontab El mandato head devolverá la siguiente salida.mar.apr .fri.---------------.---.day of month (1 . | | | | . mostrando las 3 primeras líneas del archivo /etc/crontab.day of month (1 .---------------.day of week (0 .minute (0 .12) OR jan.------.tue. se utiliza el mismo mandato agregando sed -e '/^$/d' como subrutina del siguiente modo.---------..feb. SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root Ejecute lo siguiente: tail -3 /etc/crontab El mandato tail devolverá la siguiente salida..23) | | .day of week (0 .mon.31) | | | .------------. mostrando las 3 últimas líneas del archivo /etc/crontab.59) | .Joel Barrios Dueñas SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin HOME=/ # For details see man 4 crontabs # # # # # # # # Configuración de Servidores con GNU/Linux Example of job definition: . ejecutando (-e) /^$/d que se refiere a líneas vacías: cat /etc/crontab | grep -v "root" | sed -e '/^$/d' Lo anterior devolverá una salida similar a la siguiente: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin HOME=/ # For details see man 4 crontabs # Example of job definition: # ..apr .fri.hour (0 .mon.hour (0 .wed.12) OR jan.feb.6) (Sunday=0 or 7) OR sun. Para mostrar el mismo resultado sin líneas vacías. # | | | | .mar.wed.tue.month (1 .---.sat | | | | | * * * * * command to be executed Lo anterior incluye también las lineas vacías.59) # | ..------------.thu.---------.month (1 . donde sed es un editor para filtrado y transformación de texto.23) # | | .

ordenando las líneas por nombre. y mostrando sólo la primera columna de datos del archivo. definiendo el caracter : (dos puntos) como delimitador entre las columnas.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Ejecute lo siguiente: sort /etc/passwd |grep 0 Lo anterior devolverá como la salida el contenido del archivo /etc/passwd. avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahiautoipd:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin fulano:x:500:500:Fulano de Tal:/home/fulano:/bin/bash games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin halt:x:7:0:halt:/sbin:/sbin/halt operator:x:11:0:operator:/root:/sbin/nologin root:x:0:0:root:/root:/bin/bash shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown sync:x:5:0:sync:/sbin:/bin/sync uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin Ejecute lo siguiente: sort -r /etc/passwd |grep 0 Lo anterior devolverá como la salida el contenido del archivo /etc/passwd. ordenando las líneas por nombre. pero sólo las líneas que incluyen el caracter 0. observe que los datos de cada línea son delimitados por el caracter : (dos puntos). 174 . en orden inverso. pero sólo mostrando aquellas líneas que incluyen el caracter 0. uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin halt:x:7:0:halt:/sbin:/sbin/halt gopher:x:13:30:gopher:/var/gopher:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin fulano:x:500:500:Fulano de Tal:/home/fulano:/bin/bash ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahiautoipd:/sbin/nologin De los dos mandatos anteriores. pero sólo las líneas que incluyen el caracter 0. Ejecute lo siguiente: cat /etc/passwd |grep 0 | cut -d ":" -f1 El contenido del archivo /etc/passwd es mostrado.

pero sólo aquellas que contienen el caracter 0. 0 5 6 7 10 11 12 13 14 70 170 500 Ejecute lo siguiente: sort /etc/passwd | grep 0 | cut -d ":" -f1 Lo anterior muestra el contenido del archivo /etc/passwd. peor sólo las líneas que incluyen el caracter 0. y sólo mostrando la primera columna de datos. ordenando las líneas por nombre. avahi-autoipd avahi ftp fulano games gopher halt operator root shutdown sync uucp 175 . considerando que se utilizó el caracter : (dos puntos) como delimitador entre las columnas. definiendo el caracter : (dos puntos) como delimitador entre las columnas. y sólo mostrando la tercera columna de datos del archivo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux root sync shutdown halt uucp operator games gopher ftp avahi avahi-autoipd fulano Ejecute lo siguiente: cat /etc/passwd | grep 0 | cut -d ":" -f3 Se muestra el contenido del archivo /etc/passwd.

txt: 176 .$i++){print "Número $i\n".2.$i++){print "Número $i\n".}' Lo anterior devolverá una salida similar a la siguiente: Número Número Número Número Número Número Número Número Número 1 2 3 4 5 6 7 8 9 Para la salida en un archivo.$i<10. lo cual redirigirá la salida hacia el archivo ~/texto.$i<10. Bucles.txt Lo anterior sólo devolverá el símbolo de sistema.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 16. donde se utiliza el mandato perl ejecutando (-e) el guión for($i=1. Utilice el mandato cat para visualizar el contenido del archivo ~/texto. en el cual se genera la variable i que es igual a 1 y menor a 10 y a la cual se va sumando y devuelve una salida con el valor de i con retorno de carro. Ejecute lo siguiente.txt: perl -e 'for($i=1.}' >> ~/texto. y que corresponde al contenido del archivo ~/texto.$i+ +){print "$in".}.txt: cat ~/texto.$i<10. perl -e 'for($i=1.txt Lo anterior devolverá una salida similar a la siguiente. añada al mandato anterior >> ~/texto.$i++){print "$i\n".2.}' Lo anterior devolverá una salida similar a la siguiente: 1 2 3 4 5 6 7 8 9 Modifique el guión del mandato anterior y reemplace "$in" por "Número $in" del siguiente modo: perl -e 'for($i=1.txt.$i<10.

Primero creará un nuevo directorio: mkdir ~/respaldos Ejecute los siguientes mandatos: cd /usr/share/pixmaps/ for f in *. ejecute lo siguiente: 177 .txt done Lo anterior sólo regresa el símbolo de sistema.txt: Número Número Número Número Número Número Número Número Número 1 2 3 4 5 6 7 8 9 A continuación aprenderá a utilizar funciones más avanzadas. ejecute lo siguiente: for i in {1. y que corresponde al contenido del archivo ~/texto-con-bash. asignando a cada uno un nombre distinto al que tenían en su directorio de origen.txtejecute lo siguiente: cat ~/texto-con-bash.txt Lo anterior devolverá una salida similar a la siguiente.9} do echo -e "Número $i" >> ~/texto-con-bash.. pero con el mandato bash.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Número Número Número Número Número Número Número Número Número 1 2 3 4 5 6 7 8 9 Para hacer lo mismo que hizo con el mandato perl.png do cp $f ~/respaldos/copia-$f done cd Lo anterior hará la copia en serie de los archivos dentro de /usr/share/pixmaps/ dentro de ~/respaldos/ anteponiendo en el nombre de las copias la palabra «copia». Para ver el contenido del directorio ~/respaldos/. Utilice el mandato cat para visualizar el contenido del archivo ~/texto-con-bash. En el siguiente caso usted creará respaldos de un conjunto de archivos de imágenes.

txt.txt Lo anterior creó un alias denominado cp. y usando los datos de éste.txt Lo anterior creo los archivos algo-nuevo. lo cual hace que se muestre un diálogo de confirmación antes de sobre-escribir un archivo. sobre escribiendo.txt 16. y se creó una copia de algonuevo. el cual corresponde en realidad al mandato cp con la opción -i.txt echo "Pedro Eva" >> parejas.txt y otro-nuevo.txt cp algo-nuevo. Ejecute lo siguiente: touch algo-nuevo. Ejecute mandatopersonal. Para deshacer este alias. y se ejecutará una rutina por cada conjunto de variables. ejecute lo siguiente: unalias cp Ejecute lo siguiente para crear alias personalizado.txt while read hombre mujer do echo "$hombre es pareja de $mujer" echo "----------------------------------------" done < parejas. Aliases.txt echo "Pepe Sara" >> parejas. y que además ejecutará como subrutina al mandato less. Ejecute lo siguiente: alias cp="cp -i" cp algo-nuevo.txt echo "Jorge Bety" >> parejas. es decir.2. denominado mandatopersonal: alias mandatopersonal="ls -l |less" Lo anterior crea un alias que consiste en ejecutar el mandato ls con la opción -l.txt. cd echo "Juan Ana" >> parejas.txt echo "Pablo Gaby" >> parejas.txt touch otro-nuevo.txt. mandatopersonal /etc 178 .txt otro-nuevo. al archivo otro-nuevo. el mandato cp en modo interactivo.txt.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux ls ~/respaldos/ Se definirán dos variables ($hombre y $mujer).3.txt otro-nuevo. creando el archivo parejas. sin diálogo para confirmar.

tar Extraiga el contenido del archivo foo.zip -d ~/ejemplos1/ Extraiga el contenido del archivo foo. pero sólo extrayendo los archivos del primer nivel con extensión .tar. tar.tar (sin compresión) ejecutando lo siguiente: tar -cf foo. Para que cualquier alias sea permanente para un usuario en particular.zip pixmaps/ Para mostrar la lista del contenido del archivo foo.png Genere un archivo . cp -a /usr/share/pixmaps ~/ Genere un archivo .png.zip Extraiga el contenido del archivo foo.tar pixmaps/ Para mostrar la lista del contenido del archivo foo.zip dentro del directorio ~/ejemplos1/. ejecutando lo siguiente: 179 . ejecute: unzip -l foo. Para salir de less.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior debe haber mostrado el contenido del directorio /etc. Gestión de archivos zip.tar dentro del directorio ~/ejemplos1/.zip ejecutando lo siguiente: zip -r foo.zip. Ejecute el mandato alias para ver la lista de aliases predeterminados del sistema.bz2. ejecutando lo siguiente: unzip foo. ejecutando lo siguiente: unzip foo.zip dentro del directorio ~/ejemplos1/. pero sólo extrayendo los archivos del segundo nivel con extensión .zip -d ~/ejemplos1/ */*. utilizando less para poder desplazar la pantalla. hay que especificar éstos dentro del archivo ~/. pulse la tecla q. ejecute: tar -tvf foo. ejecutando lo siguiente: unzip foo. tar. alias 16. Copie el directorio /usr/share/pixmaps dentro del directorio de inicio.zip dentro del directorio ~/ejemplos1/. Los aliases creados perduran hasta que es cerrada la sesión del usuario.gz y tar.png.bashrc.4.png Extraiga el contenido del archivo foo.2.zip -d ~/ejemplos1/ *.

tar. ejecutando lo siguiente: tar -jxvf foo.tar.bz2.tar.tar.tar. Apagado y reinicio de sistema. o bien poweroff.gz dentro del directorio ~/ejemplos1/. guarde en disco las consignaciones pendientes.tar.bz2 -C ~/ejemplos1/ --wildcards '*.gz -C ~/ejemplos1/ --wildcards '*.tar.png'' Genere un archivo .tar.tar -C ~/ejemplos1/ Extraiga el contenido del archivo foo. Para que el sistema finalice apropiadamente todos los servicios en ejecución.gz dentro del directorio ~/ejemplos1/ ejecutando lo siguiente: tar -zxvf foo.2.bz2 pixmaps/ Para mostrar la lista del contenido del archivo foo.tar -C ~/ejemplos1/ --wildcards '*.png. pero sólo extrayendo los archivos con extensión .tar. ejecutando lo siguiente: tar -jxvf foo.bz2 dentro del directorio ~/ejemplos1/.bz2 dentro del directorio ~/ejemplos1/. pero sólo extrayendo los archivos con extensión .tar.gz. utilice los mandatos reboot. 180 .png.tar.png' 16.tar. y desmonte de forma segura todos los sistemas de archivos.gz Extraiga el contenido del archivo foo.gz -C ~/ejemplos1/ Extraiga el contenido del archivo foo.5.bz2 Extraiga el contenido del archivo foo.gz (con compresión GZIP) ejecutando lo siguiente: tar -zcf foo.tar. pero sólo extrayendo los archivos con extensión .bz2 (con compresión BZip2) ejecutando lo siguiente: tar -jcf foo.tar.gz pixmaps/ Para mostrar la lista del contenido del archivo foo.tar dentro del directorio ~/ejemplos1/. ejecutando lo siguiente: tar -xvf foo. ejecute: tar -ztvf foo.tar. ejecutando lo siguiente: tar -zxvf foo.png' Genere un archivo . ejecute: tar -jtvf foo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux tar -xvf foo.tar.bz2 -C ~/ejemplos1/ Extraiga el contenido del archivo foo.png.

ejecute el mandato reboot: reboot Para cerrar y apagar el sistema.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para cerrar y reiniciar el sistema. ejecute el mandato poweroff: poweroff 181 .

17. Introducción vi es uno de los editores de texto más poderosos y añejos que hay en el mundo de la informática. Conociendo vi Acceda al sistema autenticando como usuario (fulano) y realice lo siguiente: vi holamundo. Resulta sumamente útil conocer la funcionalidad básica de vi a fin de facilitar la edición de archivos de texto simple. Usted es libre de copiar. Al reutilizar o distribuir la obra. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.2. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.1 © 1999-2011 Joel Barrios Dueñas. puede proceder a instalar vi y el resto de los paquetes relacionados realizando lo siguiente: yum -y install vim vim-enhanced vim-common vim-minimal 17.alcancelibre.1.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.txt Lo anterior mostrará una interfaz como la siguiente: 182 . distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Instalación y paquetes adicionales Por lo general. principalmente archivos de configuración. 17. Versión de vi para modo gráfico que resulta más fácil de utilizar gracias a los menús y barra de herramientas. b) No puede utilizar esta obra para fines comerciales.3. c) Si altera o transforma esta obra. Puede añadirse funcionalidad adicional a través de los siguientes paquetes: • • vim-enhanced: vim-X11: Una versión mejorada de vi que añade color a la sintaxis y otras mejoras en la interfaz. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.1. vi se instala de modo predefinido en la mayoría de las distribuciones de GNU/Linux a través del paquete vim-minimal. o genera una obra derivada.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 17. Si lo desea. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Procedimientos 17.2. Funciones básicas de vi Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. tiene que dejar bien claro los términos de la licencia de esta obra.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "holamundo. puede comenzar a insertar texto en el archivo.txt" [Archivo nuevo] 0. al igual que cualquier otro editor de texto conocido.0-1 Todo Pulse una vez el botón <INSERT> de su teclado y observe los cambios en la pantalla ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -. pulse la tecla <ENTER> y escriba de forma propositiva la frase «un vuen citio donde empesa»: 183 . Esto significa que.INSERTAR -- 0-1 Todo Note que en la parte inferior de la pantalla aparece la palabra «INSERTAR». Escriba la frase «Alcance Libre».

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un vuen citio donde empesar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -.INSERTAR -- 0-1 Todo Posicione el cursor del teclado justo por debajo de la «v» de la palabra «vuen» y pulse de nuevo la tecla <INSERT> del teclado.REEMPLAZAR -- 0-1 Todo Pulse la tecla «b» y observe como se reemplaza la letra «v» dando como resultado que la palabra quede ortográficamente correcta como «buen»: 184 . Notará que ahora aparece la palabra «REEMPLAZAR»: Alcance Libre un vuen citio donde empesar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un buen citio donde empesar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -.REEMPLAZAR -- 0-1 Todo Pulse la tecla <ESC> para salir del modo de reemplazo e inmediatamente pulse la tecla : (dos puntos) seguido de la letra «w» a fin de proceder a guardar el archivo en el disco duro: 185 .REEMPLAZAR -- 0-1 Todo Mueva el cursor con las flechas del teclado y repita el procedimiento reemplazando la letra «c» por una «s» en la palabra «citio» de modo que quede como «sitio» y de igual modo reemplace la letra «s» por una «z» en la palabra «reemplasar» de modo que quede como «empezar»: Alcance Libre un buen sitio donde empezar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -.

txt" [Nuevo] 2L.3 Todo Vuelva a pulsar la tecla : (dos puntos) e inmediatamente escriba «saveas adiosmundo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un buen sitio donde empezar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w Pulse la tecla <ENTER> y notará que aparece un mensaje en la parte inferior de la pantalla que indicará que el archivo ha sido guardado: Alcance Libre un buen sitio donde empezar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "holamundo. 44C escritos 2.txt»: 186 .

3 Todo Vuelva a pulsar la tecla «INSERT» para regresar al modo de inserción y escriba lo siguiente: 187 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un buen sitio donde empezar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :saveas adiosmunto. 44C escritos 2.txt" [Nuevo] 2L.txt Pulse nuevamente la tecla <ENTER> y observe el mensaje en la parte inferior de la pantalla que indica que el archivo acaba de ser guardado como adiosmundo.txt: Alcance Libre un buen sitio donde empezar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "adiosmundo.

24 Todo A continuación pulse la tecla <ESC> e inmediatamente pulse la tecla : (dos puntos) seguido de la combinación de teclas %s/mal/buen/g del siguiente modo: Alcance Libre un buen sitio donde empezar Creo que el mundo es un lugar muy malo La gente que conozco es mala Mi vida ha sido muy mala ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :%s/mal/buen/g Pulse de nuevo la tecla <ENTER> y observe como ha sido reemplazada la cadena de caracteres «mal» por la cadena de caracteres «buen» en todo el archivo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un buen sitio donde empezar Creo que el mundo es un lugar muy malo La gente que conozco es mala Mi vida ha sido muy mala ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -. quedando del siguiente modo: 188 .INSERTAR -- 5.

es decir.1 Todo En el procedimiento anterior. no solo en la misma línea. Observe como desaparece la primera línea: 189 . pulsará «dd». posicione el cursor del teclado utilizando las flechas del teclado hasta el primer carácter de la primera línea: Alcance Libre un buen sitio donde empezar Creo que el mundo es un lugar muy bueno La gente que conozco es buena Mi vida ha sido muy buena ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 3 sustituciones en 3 líneas 5. la letra «s» indicaba que se realizaría la búsqueda de la cadena de caracteres «mal» definida después de la diagonal (/) por la cadena de caracteres «buen» en toda la línea.1 Todo Ahora pulse dos veces consecutivas la tecla «d». el símbolo «%» indicaba que se aplicaría un procedimiento a todo el archivo. indicado por la letra «g». A continuación.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un buen sitio donde empezar Creo que el mundo es un lugar muy bueno La gente que conozco es buena Mi vida ha sido muy buena ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 3 sustituciones en 3 líneas 5.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux un buen sitio donde empezar Creo que el mundo es un lugar muy bueno La gente que conozco es buena Mi vida ha sido muy buena ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Pulse ahora la tecla «p» para volver a pegar la línea: un buen sitio donde empezar Alcance Libre Creo que el mundo es un lugar muy bueno La gente que conozco es buena Mi vida ha sido muy buena ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Observe que la línea «Alcance Libre» reapareció debajo de la línea «un buen sitio donde empezar». Utilizando las flechas del teclado. sobre la letra «u» de la línea «un buen sitio donde empezar»: 190 . es decir. coloque el cursor del teclado nuevamente sobre el primer carácter de la primera linea del archivo.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux un buen sitio donde empezar Alcance Libre Creo que el mundo es un lugar muy bueno La gente que conozco es buena Mi vida ha sido muy buena ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 1.1 Todo Coloque ahora el cursor sobre la letra «C» de la linea «Creo que el mundo es un lugar muy bueno» y pulse la tecla «3» seguido de «dd» y observe como son cortadas las tres siguientes lineas: 191 .1 Todo Vuelva a pulsar «dd» para cortar la línea «un buen sitio donde empezar» e inmediatamente pulse la tecla «p» para pegar la línea en el lugar correcto: Alcance Libre un buen sitio donde empezar Creo que el mundo es un lugar muy bueno La gente que conozco es buena Mi vida ha sido muy buena ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 2.

txt con vi y pulse la combinación de teclas :/buen. Vuelva a pulsar la tecla «p» y observe el resultado. observe el resultado. de modo que se realice una búsqueda de la cadena de caracteres «buen» y además se resalten las coincidencias: 192 . Las dos acciones anteriores añadieron ahora 6 líneas restaurando las eliminadas anteriormente y agregando tres líneas más con el mismo contenido: Alcance Libre un buen sitio donde empezar Creo que el mundo es un lugar muy bueno Creo que el mundo es un lugar muy bueno La gente que conozco es buena Mi vida ha sido muy buena La gente que conozco es buena Mi vida ha sido muy buena ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 3 líneas más 2.1 Todo Pulse ahora la tecla : (dos puntos) seguido de la tecla «x» y la tecla <ENTER> a fin de salir guardando el archivo.1 Todo Pulse la tecla «p» una vez. Abra nuevamente el archivo adiosmundo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un buen sitio donde empezar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 3 líneas menos 2.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un buen sitio donde empezar Creo que el mundo es un lugar muy bueno Creo que el mundo es un lugar muy bueno La gente que conozco es buena Mi vida ha sido muy buena La gente que conozco es buena Mi vida ha sido muy buena ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ /buen 2.1 Todo Pulse A (combinación de las teclas SHIFT+a) mientras el cursor permanece en la segunda línea y observe que iniciará el modo INSERTAR colocando el cursor al final de la línea donde se encontraba: 193 .1 Todo Para cancelar lo que se encuentra resaltado de los resultados. pulse la combinación de teclas :nohl: Alcance Libre un buen sitio donde empezar Creo que el mundo es un lugar muy bueno Creo que el mundo es un lugar muy bueno La gente que conozco es buena Mi vida ha sido muy buena La gente que conozco es buena Mi vida ha sido muy buena ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 2.

Notará que iniciará el modo INSERTAR abriendo una nueva línea: Alcance Libre un buen sitio donde empezar Creo que el mundo es un lugar muy bueno Creo que el mundo es un lugar muy bueno La gente que conozco es buena Mi vida ha sido muy buena La gente que conozco es buena Mi vida ha sido muy buena ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -. Notará que se elimina todo el contenido del texto desde la posición del cursor hasta el final del archivo: 194 . luego SHIFT+G).1 Todo Pulse la tecla <ESC> y enseguida o.INSERTAR -- 2.1 Todo Pulse nuevamente la tecla <ESC> y en seguida la combinación dG (d.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un buen sitio donde empezar Creo que el mundo es un lugar muy bueno Creo que el mundo es un lugar muy bueno La gente que conozco es buena Mi vida ha sido muy buena La gente que conozco es buena Mi vida ha sido muy buena ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -.INSERTAR -- 3.

195 . Otras combinaciones de teclas Combinación i [o bien la tecla insert] a I (i + SHIFT) A (a + SHIFT) o Resultado Inicia insertar texto antes del cursor Inicia insertar texto después del cursor Inicia insertar texto al inicio de la línea donde se encuentra el cursor Inicia insertar texto al final de la línea donde se encuentra el cursor. regresando las 7 líneas que habían sido eliminadas: Alcance Libre un buen sitio donde empezar Creo que el mundo es un lugar muy bueno Creo que el mundo es un lugar muy bueno La gente que conozco es buena Mi vida ha sido muy buena La gente que conozco es buena Mi vida ha sido muy buena ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 7 líneas más 3.1 Todo Pulse la combinación :u y notará que el cambio se ha descartado. Abre una nueva línea e inicia insertar texto en la nueva línea.4.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un buen sitio donde empezar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 7 líneas menos 2.0-1 Todo 17.

Más allá de las funciones básicas Instale el paquete vim-enhanced: yum -y install vim-enhanced Utilice vimtutor y complete el tutor interactivo oficial de vi a fin de que conozca el resto de las funcionalidades más importantes.5. Elimina desde la posición actual del cursor hasta el final de la misma línea donde se encuentra el cursor. Elimina todo hasta el final del archivo. Guarda el archivo y sale de vi.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Combinación x dd D dG :q :q! :w :wq :x :saveas /lo/que/sea :wq! ++enc=utf8 :u :red :/cadena de caracteres :nohl Resultado Elimina el carácter que esté sobre el cursor. Guarda el archivo sin salir. Aparece si no hubo cambios en el archivos. 196 . Codifica el archivo en UTF-8. Cancelar el resaltado de resultados de Búsqueda. Búsqueda de cadenas de caracteres. Lo mismo que :wq Guarda el archivo como otro archivo donde sea necesario. Deshacer cambios Rehacer cambios. Aparece descartando los cambios en el archivo. 17. Elimina la línea actual donde se encuentre el cursor.

txt: vi usuario. Utiliza un lenguaje de programación para realizar transformaciones en una emisión datos leyendo línea por línea de estos. a través de cualquier medio. 18. por entidades con fines de lucro). Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Fue desarrollado entre 1973 y 1974 por Lee E. Introducción a sed Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.txt Ingrese el siguiente contenido y salga de vi: Fulano Algo Calle Mengana 123 Colonia Perengana Ciudad de Zutano. o genera una obra derivada.2. Está incluido en las instalaciones básicas de prácticamente todas las distribuciones GNU/Linux. Utilice vi para crear el archivo usuario.alcancelibre.P. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. cat usuario. Acerca de sed. c) Si altera o transforma esta obra.txt como fue ingresado en vi.1.1. tiene que dejar bien claro los términos de la licencia de esta obra.txt. 123456 Si utiliza el mandato cat sobre el archivo. visualizará tal cual el contenido de usuario. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.txt La salida devolverá lo siguiente: Fulano Algo 197 . 18. Usted es libre de copiar.1. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Sed es un editor de emisiones (stream editor) utilizado para el procesamiento de texto archivos. Procedimientos. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. en de de de 18. McMahon Bell Labs. C. Licencia completa en castellano.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 18.txt Si se quiere convertir a doble espacio la salida del archivo usuario. utilice el siguiente mandato: sed G usuario. Introducción. A continuación se mostrarán ejemplos del uso de sed. Al reutilizar o distribuir la obra. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.1 © 1999-2011 Joel Barrios Dueñas.

txt La salida devolverá lo siguiente: Fulano Algo Calle Mengana 123 Colonia Perengana Ciudad de Zutano. Si se desea convertir un archivo a doble espacio.txt. se utiliza lo siguiente: sed '/^$/d.txt. 123456 Si se desea eliminar el doble espacio del archivo usuario2.G' usuario3.P.P.d' usuario2.P.txt > usuario3. 123456 Si se quiere agregar una línea en blanco arriba de toda línea que contenga la expresión regular enga.txt La salida devolverá lo siguiente: Fulano Algo Calle Mengana 123 Colonia Perengana Ciudad de Zutano. C.txt El contenido de usuario3.txt. 123456 Para guardar esta salida en el archivo usuario2. utilice lo siguiente: sed G usuario. 123456 Para guardar esta salida en el archivo usuario2.txt Si se quiere convertir a doble espacio la salida del archivo usuario.P.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Calle Mengana 123 Colonia Perengana Ciudad de Zutano. pero que no haya más de una línea vacía entre cada lñíena con datos.txt La salida devolverá lo siguiente: Fulano Algo Calle Mengana 123 Colonia Perengana Ciudad de Zutano. C. utilice el siguiente mandato: sed 'G. C. se utiliza lo siguiente: 198 .txt > usuario2.txt tendrá triple espacio de separación. C.txt.G' usuario.G' usuario. se utiliza lo siguiente: sed 'n. utilice lo siguiente: sed 'G.

P. 123456 Si se quiere agregar una línea en blanco arriba y debajo de toda línea que contenga la expresión regular 3.}' usuario.P. 123456 Si se quiere agregar una línea en blanco debajo de toda línea que contenga la expresión regular 3. se utiliza lo siguiente: sed '/3/G' usuario.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux sed '/enga/{x. C.}' usuario. C.p. C.p. C. se utiliza lo siguiente: sed '/3/{x.P.txt La salida devolverá lo siguiente: Fulano Algo Calle Mengana 123 Colonia Perengana Ciudad de Zutano. 129456 En el siguiente ejemplo se reemplazan los espacios por tabuladores a todo lo largo de todas las líneas: sed 's/\ /\t/g' usuario.G.txt La salida devolverá lo siguiente: Fulano Algo Calle Mengana 123 Colonia Perengana Ciudad de Zutano.txt 199 . En el siguiente ejemplo se reemplazarán las incidencias del número por el número 9: sed 's/3/9/g' usuario.P. 123456 Para reemplazar texto se utiliza el modelo 's/texto/nuevo-texto/' donde texto puede ser también una expresión regular.x.x.txt La salida devolverá lo siguiente: Fulano Algo Calle Mengana 129 Colonia Perengana Ciudad de Zutano.txt La salida devolverá lo siguiente: Fulano Algo Calle Mengana 123 Colonia Perengana Ciudad de Zutano.

txt 200 .txt La salida devolverá lo siguiente: Fulano Algo Calle Mengana 123 Colonia Perengana Ciudad de Zutano.txt La salida devolverá lo siguiente: Fulano Algo Calle Mengana 123 El siguiente mandato solo muestra las últimas tres líneas del archivo usuario.txt: sed -e :a -e '$q.txt: sed q usuario.P. C.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux La salida devolverá lo siguiente: Fulano Calle Colonia Ciudad Algo Mengana 123 Perengana de Zutano. 123456 En el siguiente ejemplo se reemplazan solo el primer espacio de cada línea por un tabulador: sed 's/\ /\t/' usuario.P.$D. 123456 El siguiente mandato solo imprime la primera línea del archivo usuario.txt La salida devolverá lo siguiente: Fulano Calle Colonia Ciudad Algo Mengana 123 Perengana de Zutano. 123456 La siguiente línea añade 5 espacios al inicio de cada línea: sed 's/^/ /' usuario.txt La salida devolverá lo siguiente: Fulano Algo El siguiente mandato solo imprime las primeras dos líneas del archivo usuario.4.txt: sed 2q usuario.N. C. C.P.ba' usuario.

p. • • Eric Pement: http://student.3.org/wiki/Sed 201 .txt La salida devolverá lo siguiente: Calle Mengana 123 Ciudad de Zutano. pero no la línea en si que incluye Fulano: sed -n '/Fulano/{n.txt Wikipedia: http://en.1!p. C.P.}' usuario.txt La salida devolverá lo siguiente: Fulano Algo 18. 123456 El siguiente mandato solo mostrará las líneas que incluyen 3: sed '/3/!d' usuario.h' usuario.P.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux La salida devolverá lo siguiente: Calle Mengana 123 Colonia Perengana Ciudad de Zutano.txt La salida devolverá lo siguiente: Calle Mengana 123 El siguiente mandato pide mostrar la linea que está inmediatamente antes de la expresión Calle.txt La salida devolverá lo siguiente: Fulano Algo Colonia Perengana El siguiente mandato pide mostrar la linea que está inmediatamente después de la expresión Fulano.wikipedia.edu/pemente/sed/sed1line. pero no la línea en si que incluye Calle: sed -n '/Calle/{g. Bibliografía. 123456 El siguiente mandato solo mostrará las líneas que no incluyen 3: sed '/3/d' usuario.}. C.northpark.

La sintaxis general utilizada para el mandato awk sigue el siguiente patrón: awk 'expresión-regular { orden }' Cuando se utiliza el mandato awk. Acerca de AWK. El siguiente modelo ejecutaría la orden al inicio del programa y antes de que sean procesados los datos del archivo de entrada: awk 'BEGIN { orden }' El siguiente modelo ejecutaría la orden al final del programa y después de que sean procesados los datos del archivo de entrada: awk 'BEGIN { orden }' El siguiente modelo ejecutaría la orden por cada una de las líneas del archivo de entrada: 202 . 19. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. 19. éste examina el archivo de entrada y ejecuta la orden cuando encuentra la expresión regular especificada. Utiliza listas en un índice ordenado por cadenas clave (listas asociativas) y expresiones regulares. por entidades con fines de lucro).2. a través de cualquier medio.1 © 1999-2011 Joel Barrios Dueñas. Estructura de los programas escritos en AWK.1. Licencia completa en castellano. El mandato awk utiliza un archivo o emisión de ordenes y un archivo o emisión de entrada. es un lenguaje de programación que fue diseñado con el objetivo de procesar datos basados sobre texto y una de las primeras herramientas en aparecer en Unix. Está incluido en las instalaciones básicas de prácticamente todas las distribuciones de GNU/Linux. El archivo de entrada es por lo general texto con algún formato que puede ser un archivo o bien la salida de otro mandato.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 19.1. El primero indica como procesar al segundo. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. 19. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Es un lenguaje ampliamente utilizado para la programación de guiones ejecutables pues añade funcionalidad a las tuberías en los sistemas operativos tipo POSIX. Introducción a AWK Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Al reutilizar o distribuir la obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.1. cuyo nombre deriva de la primera letra de los apellidos de sus autores Alfred Aho. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. c) Si altera o transforma esta obra. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.alcancelibre. Introducción. Peter Weinberger y Brian Kernighan. AWK. o genera una obra derivada.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1. Usted es libre de copiar. tiene que dejar bien claro los términos de la licencia de esta obra.

txt La salida devolverá lo siguiente: Columna1 Columna3 Si se utiliza el mandato awk para que solo muestre la columna 3 y la columna 1.txt del siguiente modo: echo -e "Dato1\tDato2\tDato3\tDato4\n" >> ejemplo. awk 'BEGIN { print "Hola mundo". exit }' Lo anterior deberá devolver una salida como la siguiente: Hola mundo Si se genera el archivo prueba. A continuación se mostrarán ejemplos del uso de AWK. del siguiente modo: awk '{ print $3.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux awk '{ orden }' 19. El siguiente mandato específica que al inicio se imprima en la salida la frase "Hola mundo" y terminar el procesamiento.txt del siguiente modo: echo -e "Columna1\tColumna2\tColumna3\tColumna4\n" > ejemplo. Procedimientos.txt 203 . en ese orden.txt La salida devolverá lo siguiente: Columna3 Columna1 Si se añaden datos al archivo ejemplo. $1}' ejemplo. $3}' ejemplo.txt Y se visualiza con el mandato cat: cat ejemplo.2.txt Devolverá el siguiente contenido: Columna1 Columna2 Columna3 Columna4 Si se utiliza el mandato awk para que solo muestre la columna 1 y la columna 3 del siguiente modo: awk '{ print $1.

txt echo -e "Dato9\tDato10\tDato11\tDato4\12" >> ejemplo.txt La salida devolverá lo siguiente: Columna1 Columna3 Dato1 Dato3 Dato5 Dato7 Dato9 Dato11 Si se utiliza el mandato awk del siguiente modo para que solo muestre solo la línea cuya columna contenga la expresión regular Dato5: awk '/Dato5/ { print }' ejemplo.txt Y se visualiza con el mandato cat: cat ejemplo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux echo -e "Dato5\tDato6\tDato7\tDato8\n" >> ejemplo. $4}' ejemplo.txt Devolverá el siguiente contenido: Columna1 Dato1 Dato2 Dato5 Dato6 Dato9 Dato10 Columna2 Dato3 Dato4 Dato7 Dato8 Dato11 Dato4 Columna3 Columna4 Si se utiliza nuevamente el mandato awk para que solo muestre la columna 1 y la columna 3 del siguiente modo: awk '{ print $1.txt La salida devolverá lo siguiente: Dato5 Dato8 Si se utiliza el mandato awk del siguiente modo para que muestre solo las líneas con más de 35 caracteres en el archivo /etc/crontab: awk 'length > 35' /etc/crontab 204 . y además solo las columnas 1 y 4: awk '/Dato5/ { print $1.txt La salida devolverá lo siguiente: Dato5 Dato6 Dato7 Dato8 Si se utiliza el mandato awk del siguiente modo para que solo muestre solo la línea cuya columna contenga la expresión regular Dato5. $3}' ejemplo.

txt La salida devolverá lo siguiente: Fulano Algo. Colonia Perengana. el valor de w y el valor de c: awk '{ w += NF.txt Ingrese el siguiente contenido: Fulano Algo Calle Mengana 123 Colonia Perengana Ciudad de Zutano. "\nPalabras: " w. RS="" } { print $1 ".daily /etc/cron. RS=""}'. donde el valor de FS (Field Separator o separador de campo) se establece como un retorno de carro y el valor de RS (Record Separator o separador de registro) se establece como una línea vacía. se utiliza 'BEGIN { FS="\n" . C. 123456 El mandato awk puede realizar conteo de líneas.monthly Si se utiliza el mandato awk del siguiente modo para que muestre solo las líneas con menos de 35 caracteres en el archivo /etc/crontab: awk 'length < 35' /etc/crontab La salida devolverá lo siguiente: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts Utiliza vi para crear el archivo usuario.txt: vi usuario. Si utiliza el siguiente mandato donde se establecen los valores mencionados para FS y RS y se pide se impriman los valores de cada registro (cada línea) separados por una coma y un espacio: awk 'BEGIN { FS="\n".Joel Barrios Dueñas Configuración de Servidores con GNU/Linux La salida devolverá lo siguiente: 01 02 22 42 * 4 4 4 * * * 1 * * * * * * 0 * root root root root run-parts run-parts run-parts run-parts /etc/cron.txt 205 . 123456 Para que el mandato awk reconozca cada línea como un registro completo. Calle Mengana 123. C. El el siguiente mandato se establece que el valor de w sea igual al número de campos (New Field o NF). " $2 ". " $3 ".P. " $4 }' usuario. palabras y caracteres. en lugar de considerar cada palabra como una columna.weekly /etc/cron. c sea igual la longitud de cada campo. Ciudad de Zutano.P.hourly /etc/cron. y que se imprima el número de campos. c += length} \ END { print \ "Campos: " NR . "\nCaracteres: " c }' \ usuario.

pero con los valores de la columna 2: awk '{ s += $2 } END { print s }' numeros. donde las columnas serán separadas por un tabulador: 1 2 3 4 5 6 7 8 9 10 11 12 El mandato awk puede realizar operaciones matemáticas.txt con el siguiente contenido. Se establece que el valor para FS (Field Separator o separador de línea) sea igual a expresiones regulares que van desde la a a la z y desde la A a la Z.txt La salida devolverá lo siguiente (resultado de la suma de 2+6+10): 18 Para hacer conteo de frecuencia de palabras. words[i] }' /etc/crontab La salida devolverá lo siguiente: 7 bin 3 run 5 etc 4 sbin 3 bash 1 weekly 1 daily 1 cron 4 usr 2 path 1 206 . e imprime el valor de s: awk '{ s += $1 } END { print s }' numeros.txt. i++) words[tolower($i)]++ } \ END { for (i in words) print i.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux La salida devolverá lo siguiente: Campos: 4 Palabras: 12 Caracteres: 74 Genere el archivo numeros. awk 'BEGIN { FS="[^a-zA-Z]+"} \ { for (i=1.txt La salida devolverá lo siguiente (resultado de la suma de 1+5+9): 15 Si se hace lo mismo. i<=NF. se establece que el valor de la variable i es igual a 1 y menor al número de campos. el siguiente mandato establece que s es igual a la suma del valor de los campos de la primera columna del archivo numeros.

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

shell 1 parts 5 home 1 mailto 1 monthly 1 hourly 1 root 6

207

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

20. Permisos del Sistema de Archivos
Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

20.1. Introducción
La asignación de permisos de acceso (de lectura, escritura y ejecución) pueden asignarse a través de modos, que son combinaciones de números de tres dígitos (usuario, grupo y resto del mundo) y el mandato chmod.

20.2. Notación simbólica
El esquema de notación simbólica se compone de 10 caracteres, donde el primer carácter indica el tipo de archivo:
Valor Descripción

d b c l p s

Denota un archivo regular. Denota un directorio. Denota un archivo especial de dispositivos de bloque. Denota un archivo de carácter especial Denota un enlace simbólico. Denota una tubería nombrada (FIFO) Denota un zócalo de dominio (socket)

Cada clase de permisos es representada por un conjunto de tres caracteres. El primer conjunto de caracteres representa la clase del usuario, el segundo conjunto de tres caracteres representa la clase del grupo y el tercer conjunto representa la clase de «otros» (resto del mundo). Cada uno de los tres caracteres representa permisos de lectura, escritura y ejecución, respectivamente y en ese orden. Ejemplos:
Permisos Descripción Directorio con permiso 755. Archivo de carácter especial con permiso 664. Zócalo con permiso 775. Tubería (FIFO) con permiso 664.

drwxr-xr-x crw-rw-r-srwxrwxr-x prw-rw-r--

208

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Permisos

Descripción Archivo regular con permiso 644.

-rw-r--r--

20.3. Notación octal
La notación octal consiste de valores de tres a cuatro dígitos en base-8. Con la notación octal de tres dígitos cada número representa un componente diferente de permisos a establecer: clase de usuario, clase de grupo y clase de «otros» (resto del mundo), respectivamente. Cada uno de estos dígitos es la suma de sus bits que lo componen (en el sistema numeral binario). Como resultado, bits específicos se añaden a la suma conforme son representados por un numeral:
• • •

El Bit de ejecución añade 1 a la suma. El bit de escritura añade 2 a la suma. El bit de lectura añade 4 a la suma.

Estos valores nunca producen combinaciones ambiguas y cada una representa un conjunto de permisos específicos. De modo tal puede considerarse la siguiente tabla:
Valor Permiso Decripción

0 1 2 3 4 5 6 7

x w wx r rx rw rwx

Nada Ejecución Escritura Escritura y ejecución Lectura Lectura y Ejecución Lectura y Escritura Lectura, Escritura y Ejecución

Nota: 3 (wx) es el resultado de 1+2 (w+x). 5 (rx) es el resultado de 4+1 (r+x). 6 (rw) es el resultado de 4+2 (r+w). 7 (rwx) es el resultado de 4+3 (r+xw).

20.3.1. Permisos adicionales
Hay una forma de cuatro dígitos. Bajo este esquema el estándar de tres dígitos descrito arriba se convierte en los últimos tres dígitos del conjunto. El primer dígito representa permisos adicionales. En sistemas y equipamiento lógico donde no puede ser omitido este primer dígito del conjunto de cuatro, se establece cero como valor de éste. El primer dígito del conjunto de cuatro es también la suma de sus bits que le componen: 1. El bit pegajoso (sticky bit) añade 1 al total de la suma. 2. El bit setgid añade 2 al total de la suma. 3. El bit setuid añade 4 al total de la suma.
209

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Lo que hace el permiso SUID o bit setuid es que cuando se ha establecido la ejecución, el proceso resultante asumirá la identidad del usuario dado en la clase de usuario (propietario del elemento). De la misma manera que el anterior, lo que hace el permiso SGID o bit setgid es que cuando se ha establecido la ejecución, el proceso resultante asumirá la identidad del grupo dado en la clase de grupo (propietario del elemento). Cuando setgid ha sido aplicado a un directorio, todos los nuevos archivos creados debajo de este directorio heredarán el grupo propietario de este mismo directorio. Cuando no se ha establecido setgid, el comportamiento predefinido es asignar el grupo del usuario al crear nuevos elementos. El bit pegajoso (sticky bit) significa que un usuario sólo podrá modificar y eliminar archivos y directorios subordinados dentro de un directorio que le pertenezca. En ausencia del bit pegajoso (sticky bit) se aplican las reglas generales y el derecho de acceso de escritura por si solo permite al usuario crear, modificar y eliminar archivos y directorios subordinados dentro de un directorio. Los directorios a los cuales se les ha establecido bit pegajoso restringen las modificaciones de los usuarios a sólo adjuntar contenido, manteniendo control total sobre sus propios archivos y pueden crear nuevos archivos; sin embargo, sólo pueden adjuntar o añadir contenido a los archivos de otros usuarios. El bit pegajoso (sticky bit) es utilizado en directorios como /tmp y /var/spool/mail. De modo tal puede considerarse la siguiente tabla:
Valor Permiso Descripción

1 2 3 4 5 6 7

--- --- --t --- --s ----- --s --t --s --- ----s --- --t --s --s ----s --s --t

bit pegajoso bit setgid bit pegajoso + bit setgid bit setuid bit setuid + bit pegajoso bit setuid + bit setgid bit setuid + bit setgid + bit pegajoso

Cuando un archivo no tiene permisos de ejecución en alguna de las clases y le es asignado un permiso especial, éste se representa con una letra mayúscula.
Permiso Clase Ejecuta No ejecuta

setuid setgid pegajoso (sticky)

Usuario Grupo Otros

s s t

S S T

20.4. Ejemplos
20.4.1. Ejemplos de permisos regulares
Permiso Clase de Usuario Clase de Grupo Clase de Otros

0400 0440 0444

r-r-r--

--r-r--

----r--

210

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Permiso

Clase de Usuario

Clase de Grupo

Clase de Otros

0500 0550 0555 0644 0664 0666 0700 0711 0707 0750 0755 0777

r-x r-x r-x rwrwrwrwx rwx rwx rwx rwx rwx

--r-x r-x r-rwrw----x --r-x r-x rwx

----r-x r-r-rw----x rwx --r-x rwx

20.4.2. Ejemplos de permisos especiales
Permiso Clase de Usuario Clase de Grupo Clase de Otros

1644 2644 3644 4644 5644 6644 7644 1777 2755 3755 4755 5755 6755 7755

rwrwrwrwS rwS rwS rwS rwx rwx rwx rws rws rws rws

r-r-S r-S r-r-r-S r-S rwx r-s r-s r-x r-x r-s r-s

r-T r-r-T r-r-T r-r-T rwt r-x r-t r-x r-t r-x r-t

20.5. Uso de chmod
chmod [opciones] modo archivo

Ejemplo:
mkdir -p ~/tmp/ touch ~/tmp/algo.txt

211

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

ls -l ~/tmp/algo.txt chmod 755 ~/tmp/algo.txt ls -l ~/tmp/algo.txt

Lo anterior debe arrojar una salida similar a la siguiente:
[fulano@localhost ~]$ mkdir -p ~/tmp/ [fulano@localhost ~]$ touch ~/tmp/algo.txt [fulano@localhost ~]$ ls -l ~/tmp/algo.txt -rw-rw-r-- 1 fulano fulano 0 mar 2 15:09 /home/fulano/tmp/algo.txt [fulano@localhost ~]$ chmod 755 ~/tmp/algo.txt [fulano@localhost ~]$ ls -l ~/tmp/algo.txt -rwxr-xr-x 1 fulano fulano 0 mar 2 15:09 /home/fulano/tmp/algo.txt [fulano@localhost ~]$

20.5.1. Opciones de chmod
Opción -R -c -f -v Descripción Cambia permisos de forma descendente en un directorio dado. Es la única opción de los estándares POSIX Muestra que archivos han cambiado recientemente en una ubicación dada No muestra errores de archivos o directorios que no se hayan podido cambiar Descripción detallada de los mensajes generados por el proceso

20.5.2. El mandato chmod y los enlaces simbólicos
El mandato chmod jamás cambia los permisos de enlaces simbólicos; sin embargo no representa un problema en virtud de que jamás se utilizan los permisos de los enlaces simbólicos. Si se aplica el mandato chmod sobre un enlace simbólico, se cambiará el permiso del archivo o directorio hacia el cual apunta. Cuando se aplica chmod de forma descendente en un directorio, éste ignora los enlaces simbólicos que pudiera encontrar en el recorrido.

212

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

21. Cómo utilizar el mandato chattr.
Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org/

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

21.1. Introducción.
21.1.1. Acerca del mandato chattr.
El mandato chattr se utiliza para cambiar los atributos de los sistemas de archivos ext2 y ext3. Desde cierto punto de vista, es análogo al mandato chmod, pero con diferente sintaxis y opciones. Utilizado adecuadamente, dificulta las acciones en el sistema de archivos por parte de un intruso que haya logrado suficientes privilegios en un sistema. En la mayoría de los casos, cuando un intruso consigue suficientes privilegios en un sistema, lo primero que hará será eliminar los registros de sus actividades modificando estructuras de los archivos de bitácoras del sistema y otros componentes. Utilizar el mandato chattr ciertamente no es obstáculo para un usuario experto, pero, afortunadamente, la gran mayoría de los intrusos potenciales no suelen ser expertos en GNU/Linux o Unix, dependiendo enormemente de diversos programas o guiones (los denominados rootkits y zappers) para eliminar aquello que permita descubrir sus actividades. Utilizar el mandato chattr, incluido en el paquete e2fsprogs, que se instala de forma predeterminada en todas las distribuciones de GNU/Linux por, tratarse de un componente esencial, hace más difícil borrar o alterar bitácoras, archivos de configuración y componentes del sistema. Theodore Ts'o es el desarrollador y quien se encarga de mantener e2fsprogs, mismo que se distribuye bajo los términos de la licencia GNU/GPL, e incluye otras herramientas como e2fsck, e2label, fsck.ext2, fsck.ext3, mkfs.ext2, mkfs.ext3, tune2fs y dumpe2fs, entre otras. URL: http://e2fsprogs.sourceforge.net/

21.2. Opciones.
-R Cambia recursivamente los atributos de directorios y sus contenidos. Los enlaces simbólicos que se encuentren, son ignorado Salida de charttr más descriptiva, mostrando además la versión del programa. Ver el número de versión del programa.

-V

-v

213

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

21.3. Operadores.
+ Hace que se añadan los atributos especificados a los atributos existentes de un archivo. Hace que se eliminen los atributos especificados de los atributos existentes de un archivo Hace que solamente haya los atributos especificados.

-

=

21.4. Atributos.
A a Establece que la fecha del último acceso (atime) no se modifica. Establece que el archivo solo se puede abrir en modo de adjuntar para escritura. Establece que el archivo es comprimido automáticamente en el disco por el núcleo del sistema operativo. Al realizar lectura de este archivo, se descomprimen los datos. La escritura de dicho archivo comprime los datos antes de almacenarlos en el disco. Cuando se trata de un directorio, establece que los datos se escriben de forma sincrónica en el disco. Es decir, los datos se escriben inmediatamente en lugar de esperar la operación correspondiente del sistema operativo. Es equivalente a la opción dirsync del mandato mount, pero aplicada a un subconjunto de archivos. Establece que el archivo no sea candidato para respaldo al utilizar la herramienta dump. Establece que el archivo será inmutable. Es decir, no puede ser eliminado, ni renombrado, no se pueden apuntar enlaces simbólicos, ni escribir datos en el archivo. En los sistemas de archivos ext3, cuando se montan con las opciones data=ordered o data=writeback, se establece que el archivo será escrito en el registro por diario (Journal). Si el sistema de archivos se monta con la opción data=journal (opción predeterminada), todo el sistema de archivos se escribe en el registro por diario y por lo tanto el atributo no tiene efecto. Cuando un archivo tiene este atributo, los bloques utilizados en el disco duro son escritos con ceros, de modo que los datos no se puedan recuperar por medio alguno. Es la forma más segura de eliminar datos. Cuando el archivo tiene este atributo, sus cambios son escritos de forma sincrónica en el disco duro. Es decir, los datos se escriben inmediatamente en lugar de esperar la operación correspondiente del sistema operativo. Es equivalente a la opción sync del mandato mount. Cuando un archivo con este atributo es eliminado, sus contenidos son guardados permitiendo recuperar el archivo con herramientas para tal fin.

c

D

d

i

j

s

S

u

214

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

21.5. Utilización.
chattr [-RV] +-=[AacDdijsSu] [-v versión] archivos

21.5.1. Ejemplos.
el siguiente mandato agrega el atributo inmutable al archivo algo.txt..
chattr +i algo.txt

El siguiente mandato elimina el atributo inmutable al archivo algo.txt.
chattr -i algo.txt

El siguiente mandato agrega el modo de solo adjuntar para escritura al archivo algo.txt.
chattr +a algo.txt

El siguiente mandato elimina el modo de solo adjuntar para escritura al archivo algo.txt.
chattr -a algo.txt

El siguiente mandato establece que el archivo algo.txt solo tendrá los atributos a, A, s y S.
chattr =aAsS algo.txt

El siguiente mandato lista los atributos del archivo algo.txt.
lsattr algo.txt

215

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

22. Creando depósitos yum
Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org/

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

22.1. Introducción.
Yum es una herramienta sumamente útil para el manejo de paquetería RPM. Aprender a crear en el disco duro las bases de datos para los depósitos yum resulta práctico puesto que no habrá necesidad de recurrir hacia los depósitos localizados en servidores en Internet y consumir innecesariamente ancho de banda en el proceso.

22.2. Procedimientos
Primero se deben generar los directorios que alojarán los depósitos. Uno para la paquetería incluida en los discos de instalación y otro para las actualizaciones:
mkdir -p /var/ftp/pub/os mkdir -p /var/ftp/pub/updates

Tome todos los discos de instalación y copie íntegramente su contenido hacia el interior del directorio localizado en la ruta /var/ftp/pub/os/ con el siguiente procedimiento:
mount /media/cdrom cp -Rf /media/cdrom/* /var/ftp/pub/os/ eject

Del mismo modo, si dispone del CD correspondiente, copie (o bien descargue) todas las actualizaciones dentro del directorio localizado en la ruta /var/ftp/pub/updates/ con el siguiente procedimiento:
mount /media/cdrom cp -Rf /media/cdrom/* /var/ftp/pub/updates/ eject

Una vez copiado todo al disco duro, hay que instalar el paquete createrepo, incluido en los discos de instalación de CentOS y White Box Enterprise Linux.
yum -y install createrepo

Una vez instalado, sólo basta ejecutar createrepo sobre cada directorio a fin de generar los depósitos yum:

216

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

createrepo /var/ftp/pub/os/ createrepo /var/ftp/pub/updates/

Se puede acceder localmente a los depósitos generados utilizando las siguientes líneas como contenido del archivo *.repo localizado dentro de /etc/yum.repos.d/, en lugar de las líneas que apuntan hacia servidores en Internet:
[base] name=Enterprise Linux $releasever - $basearch - base baseurl=file:///var/ftp/pub/os/ gpgcheck=1 enabled=1 [updates-released] name=Enterprise Linux $releasever - $basearch - Updates Released baseurl=file:///var/ftp/pub/updates/ gpgcheck=1 enabled=1

Si se desea acceder a estos mismo depósitos utilizando el servicio FTP, y suponiendo que el servidor utilizaría 192.168.1.1 como dirección IP, las máquinas cliente deben utilizar lo siguiente:
[base] name=Enterprise Linux $releasever - $basearch - base baseurl=ftp://192.168.1.1/pub/os/ gpgcheck=1 enabled=1 [updates-released] name=Enterprise Linux $releasever - $basearch - Updates Released baseurl=ftp://192.168.1.1/pub/updates/ gpgcheck=1 enabled=1

Antes de utilizar la opción gpgcheck=1, se deberán importar las llaves públicas GPG que están en el disco 1 de instalación del sistema.
mount /media/cdrom rpm --import /media/cdrom/*KEY*

Si creó un depósito con el disco de extras de curso, la llave pública de Alcance Libre se encuentra en el directorio raíz del CD. Si utiliza Red Hat™ Enterprise Linux 3, CentOS 3.0 o White Box Enterprise Linux 3, se utiliza yumarch en lugar de createrepo, y /mnt/cdrom en lugar de /media/cdrom. White Box Enterprise Linux 4 no incluye yum por defecto, por lo que hay que instalarlo manualmente desde los discos de instalación.

217

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

23. Uso de yum para instalar y desinstalar paquetería y actualizar sistema
Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org/

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

23.1. Introducción
Actualizar el sistema aplicando los más recientes parches de seguridad y correctivos al sistema operativo no es tan difícil como muchos suponen, ni tampoco tiene que ser un infierno de dependencias entre paquetes RPM como algunos argumentan. La realidad de las cosas es que es mucho muy simple y sólo requiere de un buen ancho de banda, o bien, de muchísima paciencia. A continuación presentamos los procedimientos para utilizar yum y realizar fácilmente lo que algunos denominan como «horrible, difícil y complicado». Los procedimientos son tan simples que realmente no hay muchas excusas para no aplicar los parches de seguridad y correctivos al sistema.

23.2. Procedimientos
23.2.1. Actualizar sistema
Actualización del sistema con todas las dependencias que sean necesarias:
yum update

23.2.2. Búsquedas
Realizar una búsqueda de algún paquete o término en la base de datos en alguno de los depósitos yum

configurados en el sistema:
yum search cualquier-paquete

Ejemplo:
yum search httpd

23.2.3. Consulta de información
Consultar la información contenida en un paquete en particular:

218

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

yum info cualquier-paquete

Ejemplo:
yum info httpd

23.2.4. Instalación de paquetes
Instalación de paquetería con resolución automática de dependencias:
yum install cualquier-paquete

Ejemplo:
yum install httpd

23.2.5. Desinstalación de paquetes
Desinstalación de paquetes junto con todo aquello que dependa de los mismos:
yum remove cualquier-paquete

Ejemplo:
yum remove httpd

23.2.5.1. Algunos paquetes que se pueden desinstalar del sistema.
Los siguientes paquetes pueden ser desinstalados del sistema de manera segura junto con todo aquello que dependa de éstos: 1. pcmcia-cs (kernel-pcmcia-cs): requerido sólo en computadoras portátiles para el soporte de PCMCIA. 2. mdadm: requerido sólo para arreglos RAID. 3. autofs: servicio de auto-montado de unidades de disco. 4. ypserv: servidor NIS, utilizado principalmente como servidor de autenticación. 5. ypbind, yp-tools: herramientas necesarias para autenticar contra un servidor NIS (ypserv) 6. hwcrypto: bibliotecas y herramientas para interactuar con aceleradores criptográficos de sustento físico (hardware). 7. vnc-server: servidor VNC 8. irda-utils: herramientas y soporte para dispositivos infrarrojos. Ejecute lo siguiente para desinstalar los paquetes anteriormente mencionados:
yum -y remove pcmcia-cs mdadm autofs ypserv ypbind yp-tools hwcrypto vncserver irda-utils

219

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

23.2.6. Listado de paquetes
Lo siguiente listará todos los paquetes disponibles en la base de datos yum y que pueden instalarse:
yum list available | less

Lo siguiente listará todos los paquetes instalados en el sistema:
yum list installed |less

Lo siguiente listará todos los paquetes instalados en el sistema y que pueden (y deben) actualizarse:
yum list updates | less

23.2.7. Limpieza del sistema
Yum proporciona como resultado de su uso cabeceras y paquetes RPM almacenados en el interior del directorio localizado en la ruta /var/cache/yum/. Particularmente los paquetes RPM que se han instalado pueden ocupar mucho espacio y, es por tal motivo, que conviene eliminarlos una vez que ya no tienen utilidad. Igualmente conviene hacer lo mismo con las cabeceras viejas de paquetes que ya no se encuentran en la base de datos. A fin de realizar la limpieza correspondiente, puede ejecutarse lo siguiente:
yum clean all

220

2. RPM viene instalado de modo predeterminado en Red Hat Enterprise Linux. que es un proyecto cuyo objetivo es desarrollar y promover estándares para mejorar la compatibilidad entre las distribuciones de GNU/Linux para permitir a las aplicaciones ser utilizadas en cualquier distribución. Mandriva y distribuciones derivadas de estas. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación.alcancelibre. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.1. Ésta se puede reconstruir fácilmente utilizando el siguiente mandato: rpm --rebuilddb 221 . es un sistema de gestión de paquetería para distribuciones de GNU/Linux y que está considerado en la Base Estándar para Linux (Linux Standard Base o LSB). RPM Package Manager. Introducción. Hay ciertos escenarios en donde se puede corromper la base de datos de RPM. RPM fue originalmente desarrollado por Red Hat para su distribución de GNU/Linux. Esto permite instalar y desinstalar limpiamente todo tipo de aplicaciones. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. OpenSuSE. la cual contiene toda la metainformación de todos los paquetes que son instalados en el sistema y que es utilizada para dar seguimiento a todos los componentes que son instalados. tiene que dejar bien claro los términos de la licencia de esta obra. 24. por entidades con fines de lucro). c) Si altera o transforma esta obra.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 24. o genera una obra derivada. 24.1. SuSE Linux. Al reutilizar o distribuir la obra.1.2. CentOS. bibliotecas. RPM utiliza una base de datos que se almacena en /var/lib/rpm. a través de cualquier medio. herramientas y programas y gestionar sus dependencias exactas.1. anteriormente conocido como Red Hat Package Manager y que es más conocido por su nombre abreviado RPM. Usted es libre de copiar. White Box Enterprise Linux. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Fedora. Licencia completa en castellano. Acerca de RPM. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Reconstrucción de la base de datos de RPM. 24.1 © 1999-2011 Joel Barrios Dueñas. y ha sido llevado hacia otra distribuciones de Linux y sistemas operativos. Procedimientos. Cómo utilizar RPM Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. 24.

Key ID a8a447dce8562897 URL : http://dmitry. Consulta de paquetería instalada en el sistema.el5. Traceroute is used as a network debugging tool. se utiliza el mandato rpm con las opciones -qi. utilice el siguiente mandato: rpm -ql traceroute Lo anterior debe devolver una salida similar a la siguiente: /bin/traceroute /bin/traceroute /bin/traceroute6 /bin/tracert /usr/share/doc/traceroute-2. que realiza una consulta (query) en la base de datos por un nombre de paquete en particular. If you're having network connectivity problems.1-2.1/CREDITS 222 . Traceroute displays the IP number and host name (if possible) of the machines along the route taken by the packets.1 /usr/share/doc/traceroute-2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 24.2.0.name/traceroute Summary : Traces the route taken by packets over an IPv4/IPv6 network Description : The traceroute utility displays the route used by IP packets on their way to a specified network (or Internet) host. Si se desea conocer que componentes instaló el paquete traceroute.1 Vendor: CentOS Release : 2.0.1/COPYING /usr/share/doc/traceroute-2.el5 Build Date: sáb 06 ene 2007 04:02:13 CST Install Date: mié 30 abr 2008 11:46:09 CDT Build Host: builder5. En el siguiente mandato.2. Si se desea conocer si está instalado un paquete en particular.rpm Size : 59726 License: GPL Signature : DSA/SHA1. mar 03 abr 2007 19:28:12 CDT.0.0.1-2.0.butskoy. En el siguiente ejemplo se consulta al mandato rpm por la información del paquete traceroute: rpm -qi traceroute Lo anterior debe devolver una salida similar a la siguiente: Name : traceroute Relocations: (not relocatable) Version : 2. para hacer la consulta y solicitar información del paquete (query info). Install traceroute if you need a tool for diagnosing network connectivity problems. traceroute will show you where the trouble is coming from along the route.0. se utiliza el mandato rpm con la opción -q. donde se realiza una consulta listando los componentes que lo integran (query list). Puede consultarse qué componentes forman parte del paquete utilizando el mandato rpm con las opciones -ql.centos. donde como ejemplo se preguntará a RPM si está instalado el paquete traceroute: rpm -q traceroute Lo anterior debe devolver una salida similar a la siguiente: traceroute-2.org Group : Applications/Internet Source RPM: traceroute-2.src.el5 Si se desea conocer que es lo que información incluye el paquete traceroute.

el5 php-odbc-5.6-15.el5 php-mbstring-5. se puede utilizar el mandato rpm con las opciones -qa y utilizar grep como subrutina.4.6-15.10-8 Si desea consultar la lista completa de paquetes instalados en el sistema.1. rpm -qa |grep php Lo anterior pudiera devolver una salida similar a la siguiente: php-5.6-15.9-4 php-ldap-5. que realizan una consulta por un archivo en el sistema de archivos (query file).1.1/README /usr/share/doc/traceroute-2.el5 php-common-5. donde -qa significa consultar todo (query all): rpm -qa Debido a que lo anterior devuelve una lista demasiado grande para poderla visualizar con comodidad.el5 php-mysql-5.1.el5 php-pdo-5. se puede agregar a -qa la opción --last.gz Si se desea consultar a cual paquete pertenece un elemento instalado en el sistema. En el siguiente ejemplo se hace una consulta donde se quiere conocer que paquetes están instalado en el sistema y que incluyan la cadena php en el nombre.1.1.1. En el siguiente ejemplo se consultará a la mandato rpm a que paquete pertenece el archivo /etc/crontab: rpm -qf /etc/crontab Lo anterior debe devolver una salida similar a la siguiente: crontabs-1. y less o more como subrutina para visualizar con comodidad la salida.6-15.el5 php-cli-5. rpm -qa --last|less 223 .6-15. de más nuevos a más antiguos.0.8. utilice el siguiente mandato.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux /usr/share/doc/traceroute-2.6-15.1. que paquetes están instalados.el5 php-pear-1.0.6-15. se utiliza el mandato rpm con las opciones -qf.el5 Si se quiere revisar en orden cronológico.6-15. puede utilizarse less o more como subrutina: rpm -qa |less Si se quiere localizar un paquete o paquetes en particular.1/TODO /usr/share/man/man8/traceroute.

mc 24. realice el siguiente procedimiento: rpm --import http://www... Para ejemplificar.T S. Pulse la teclas de arriba (↑) y abajo (↓) o Av. Pup.alcancelibre.5.... Para importar una firma digital.T ..2.T ... En el siguiente ejemplo se verificara si el paquete crontabs ha sido alterado: rpm -V crontabs Si algún componente fue modificado.. pero sin duda alguna mostrará todos los componentes que fueron modificados o alterados o eliminados tras la instalación del paquete al que pertenecen.T S. que hace una consulta.db /etc/crontab /etc/inittab /etc/rc. Un ejemplo de una salida común sería: . Las firmas digitales de los responsables de la distribución siempre incluyen firmas digitales en el disco de instalación o bien en alguna parte del sistema de archivos....d/rc. se puede utilizar el mandato rpm con las opciones -Va.cf /etc/mail/sendmail.. puede devolverse una salida similar a la siguiente..5. las firmas digitales están en /usr/share/doc/rpm-*/ o bien /usr/share/rhn/.5. y Reg. Algunos distribuidores pueden tener estas firmas en algún servidor HTTP o FTP. etc..T c c c c c c c c c c /etc/pki/nssdb/cert8.T S.local /etc/mail/access /etc/mail/local-host-names /etc/mail/sendmail. se utiliza el mandato rpm con la opción --import... y solicita se verifique si hubo cambios (query all Verify).db /etc/pki/nssdb/secmod.5. Pág..T S.3. Pág.T S..Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior devuelve una salida extensa dentro con less como visor... especifica todos los paquetes.. Yast..... Pulse la tecla q para salir....5.. para desplazarse en la lista.5. Si se quiere verificar si los componentes instalados por un paquete RPM han sido modificados o alterados o eliminados.. se puede utilizar el mandato rpm con la opción -V.db /etc/pki/nssdb/key3..T c /etc/crontab Si se desea realizar una verificación de todos los componentes del sistema. La mayoría de los distribuidores serios de equipamiento lógico en formato RPM siempre utilizan una firma digital PG/GnuPG para garantizar que éstos son confiables y como un método de evitar que paquetes alterados pasen por el usuario administrador del sistema y sistemas de gestión de paquetes como yum.. rpm -Va Lo anterior puede devolver una salida muy extensa..T .. sin ser detectados. up2date. Instalación de paquetes. donde el archivo /etc/crontab fue modificado tras su instalación: S.....5.5..org/al/AL-RPM-KEY 224 . la cual realiza una verificación de la integridad de los componentes de acuerdo a las firmas digitales de cada componente (MD5SUM o suma MD5).T S.. En el caso de CentOS y Red Hat Enterprise....

para realizar la consulta.3. Si se utiliza yum para gestionar la paquetería.el5.2.el5.rpm Lo anterior debe devolver una salida similar a la siguiente: /usr/bin/tnef /usr/man/man1/tnef.1/README /usr/share/doc/tnef-1.rpm Lo anterior debe devolver una salida similar a la siguiente: Name : tnef Relocations: /usr Version : 1.2. se puede utilizar el mandato rpm con las opciones -qpl.1-1.1.rpm: rpm -qpl tnef-1.alcancelibre. Key ID 91004df87c080b33 Packager : Joel Barrios <http://joel-barrios. se puede verificar la información de dicho paquete utilizando el mandato rpm con las opciones -qp.el5.3.3.net Summary : Decodes MS-TNEF attachments.com/> URL : http://tnef. ingrese hacia http://www.i386.2.3.1/ChangeLog /usr/share/doc/tnef-1.2.1.3.3.localdomain Group : Mail/Encoders Source RPM: tnef-1. Para fines demostrativos.3. Description : TNEF is a program for unpacking MIME attachments of type "application/ms-tnef".1.1/TODO 225 .1.1/COPYING /usr/share/doc/tnef-1.3.2. Thus alleviating the need to use Microsoft Outlook to view the attachment.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior importa la firma digital de Alcance Libre y permitirá detectar si un paquete de Alcance Libre fue alterado o está corrupto o si fue dañado. para solicitar información.el5.2. rpm -qpi tnef-1.al Build Date: mié 02 may 2007 14:06:59 CDT Install Date: (not installed) Build Host: localhost.1/BUGS /usr/share/doc/tnef-1.1.org/al/webapps/ y descarge el paquete tnef. mié 02 may 2007 14:07:00 CDT. Cuando se desee instalar un paquete con extensión *.3. Hay varias formas de verificar su contenido antes de proceder a instalado.al.1-1. siempre es conveniente revisar dicho paquete. Inc.3.i386.3.1-1. especificar que se trata de un paquete RPM y para solicitar la lista de componentes (query package list).3. éste de modo predeterminado impide instalar paquetes que si estos carecen de una firma digital que esté instalada en la base de datos de RPM.al.2. This is a Microsoft only attachment.el5.3.1/AUTHORS /usr/share/doc/tnef-1.al.blogspot.2.src.2.1 Vendor: Alcance Libre.2. Si se desea conocer que componentes va a instalar un paquete RPM en particular. more and more mail is encapsulated into this format.rpm.al. The TNEF program allows one to unpack the attachments which were encapsulated into the TNEF attachment.gz /usr/share/doc/tnef-1. y la opción -i.2. Due to the proliferation of Microsoft Outlook and Exchange mail servers.2. Release : 1.i386. Una vez descargado el paquete tnef.1-1. para realizar la consulta especificando que se trata de un paquete RPM (query package).sourceforge. En el siguiente ejemplo se realiza esta consulta contra el paquete tnef-1.rpm Size : 134695 License: GPL Signature : DSA/SHA1.1/NEWS /usr/share/doc/tnef-1.1.2.1 /usr/share/doc/tnef-1.

2. que solicita verificar firmas digitales de un paquete RPM (Keys): rpm -K tnef-1.1-1.rpm Si el paquete está integro.i386.1-1. Si el paquete no hace conflicto con otro y/o no sobreescribe componentes de otro paquete.1-1.rpm: (sha1) dsa sha1 md5 gpg OK Si el paquete RPM fue dañado.3.el5.el5.1..1-1. se utiliza el mandato rpm con las opciones -ivh.3.1.2.el5.1. 1:tnef ########################################### [100%] ########################################### [100%] Si hubiera una versión de éste paquete instalada en el sistema.el5.3.i386.el5.i386.2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para verificar si las firmas digitales de un paquete RPM son las mismas y el paquete no ha sido alterado.rpm: rpm -ivh --force tnef-1.al.3.1.1.1. el sistema deberá devolver una salida similar a la siguiente: Preparing. se puede utilizar el mandato rpm con las opción -K. puede devolver una salida similar a la siguiente: tnef-1. ########################################### [100%] package tnef-1.i386. En el siguiente ejemplo se solicita al mandato rpm forzar la reinstalación de el paquete tnef-1.11.3.3.2.2.2. Para lograr esto se agrega la opción --force para forzar la reinstalación de un paquete.2.i386.al. rpm -ivh no realizará la instalación y devolverá un mensaje respecto a que la está instalado dicho paquete.al. se procederá a instalar el mismo. En el siguiente ejemplo se instalará el paquete tnef-1...al is already installed Hay circunstancias y escenarios donde se requiere reinstalar de nuevo el paquete.al. 1:tnef ########################################### [100%] ########################################### [100%] 226 .1-1..1-1.i386.i386.al.al.1-1.rpm: rpm -ivh tnef-1.el5.i386.1-1..rpm: (sha1) dsa sha1 MD5 GPG NOT OK Para instalar un paquete.el5. que significa instalar.1. alterado o está corrupto.1. devolver una salida descriptiva y mostrar una barra de progreso (install verbose hash).rpm Lo anterior debe devolver una salida similar a la siguiente: Preparing.al.2.1.al.3. Repita el siguiente mandato: rpm -ivh tnef-1.rpm Lo anterior debe devolver una salida similar a la siguiente: Preparing.el5.3.el5. debe devolver una salida similar a la siguiente: tnef-1.3..rpm Al ya haber sido instalado el paquete tnef.2.

noarch.6-15.alcancelibre.4.0-1 Pueden hacerse consultas a la inversa de lo anterior.1.1.el5 gnupg-1.3-19.0.0.centos.org/al/webapps/.1-1.0.3-3 bzip2-1.15-2.3.el5 squirrelmail-1.9.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.1. rpm -q --whatrequires httpd Lo anterior puede devolver una salida similar a la siguiente: system-config-httpd-1.9.15-2.el5.al httpd php >= 5 php-mysql php-xml rpmlib(CompressedFileNames) <= 3. En el siguiente ejemplo se consulta al mandato rpm que paquetes requieren al paquete httpd.el5.0.2 gnome-user-share-0.8-4.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para verificar las dependencias de un paquete descargado. En el siguiente ejemplo.0. es decir.3.9.4. y que consiste en una lista de paquetes RPM instalados en el sistema: bzip2-libs-1. y se procede a consultar sus dependencias: rpm -qp --requires joomla-1.3-3 python-2.al.4.0.1 Lo anterior debe devolver una salida similar a la siguiente.so.1: rpm -q --whatrequires libbz2.al.15-2. En el siguiente ejemplo se solicitará al mandato rpm que paquete provee la dependencia php.rpm Lo anterior debe devolver una salida similar a la siguiente: config(joomla) = 1. consultar al mandato rpm que paquete provee alguna dependencia en particular. se puede incluso hacer consultas respecto a archivos (como bibliotecas compartidas) para conocer que paquetes dependen de éstos.el5.2 squirrelmail-1.0. se ha descargado el paquete joomla-1.4. se utiliza el mandato rpm con las opciones -qp y --requires.so.el5. rpm -q --whatprovides php Lo anterior debe devolver una salida similar a la siguiente: php-5. la cual consulta las dependencias del paquete.noarch.5-13 227 .8-4.rpm desde http://www.el5 También puede consultarse qué requiere de un paquete o componente en particular.el5.el5 De ser necesario.centos. En el siguiente ejemplo se consulta la mandato rpm que paquetes requieren a la biblioteca libbz2.0.10-6.

al.15-2. que significa instalar o actualizar.al.el5 rpm-python-4.noarch.14.0.4-13.noarch.6-15.1 php-cli-5.el5.4. este era el talón de Aquiles de RPM.rpm Si falta alguna de las dependencias.2-47.rpm..6-15. Este puede estar incluido en el disco de instalación o bien estar incluido entre las actualizaciones del sistema.al. La forma más práctica de instalar paquetería RPM resolviendo dependencias automáticamente es a través de yum.rpm to be installed Setting up repositories Loading mirror speeds from cached hostfile Reading repository metadata in from local files Resolving Dependencies --> Populating transaction set with selected packages.152.noarch.11.0.1.noarch Evidentemente se debe instalar el paquete php-xml para poder instalar el paquete joomla1. el sistema devolverá una salida similar a la siguiente: error: Failed dependencies: php-xml is needed by joomla-1.9.al.9.9.2-47.16.152.rpm Lo anterior debe devolver una salida similar a la siguiente: Loading "fastestmirror" plugin Loading "skip-broken" plugin Loading "installonlyn" plugin Setting up Local Package Process Examining joomla-1. devolver una salida descriptiva y mostrar una barra de progreso (update verbose hash).el5 rpm-4. Si el paquete php-xml hubiera estado instalado (yum -y install php-xml).al.el5 php-5. 1:joomla ########################################### [100%] ########################################### [100%] Antes de la aparición de yum.rpm utilizando yum: yum -y localinstall joomla-1.el5.noarch.al.el5.2-4. 228 .noarch.2-47.el5.1.el5.0-4.el5.0.noarch Marking joomla-1.noarch.el5.1.el5.rpm: joomla .1-6. la salida hubiera sido similar a la siguiente: Preparing.0.15-2.1-5.0.0.15-2.al.1 Para instalar o actualizar un paquete.15-2.el5_1. y se procede a instalar y/o actualizar el mismo: rpm -Uvh joomla-1.el5 kdelibs-3.0.centos ImageMagick-6.15-2.el5 rpm-libs-4.9.9. Please wait.8.el5 libgsf-1. En el siguiente ejemplo se realiza el procedimiento de instalación del paquete joomla-1.15-2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux elinks-0.4.el5 gnome-vfs2-2. se utiliza el mandato rpm con las opciones -Uvh.4..9.9.5.1. Actualmente estos problemas se pueden resolver utilizando yum en los sistemas que lo incluyen.0.1.9.2.al.0.el5.

noarch.1.al joomla-1.i386 0:5.0.9.15-2.el5. En circunstancias en las cuales ser realizaron cambios en los permisos en el sistema de archivos.15-2.el5 Complete! Algunos paquetes incluyen guiones que ejecutan procesos que pueden ser requeridos previo o posterior a la instalación. se instalará el paquete joomla-1.0.9.rpm 6.noarch 0:1.0.4 M Downloading Packages: Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: php-xml ######################### [1/2] Installing: joomla ######################### [2/2] Installed: joomla.0. En el siguiente ejemplo.noarch.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux ---> Package joomla.9.noarch. es posible volver a dejarlos de acuerdo a los especificados en el paquete RPM original utilizando el mandato rpm con la opción --setperms del siguiente modo: rpm --setperms paquete Vea el permiso de /usr/bin/passwd del siguiente modo: ls -l /usr/bin/passwd Lo anterior puede devolver una salida similar a la siguiente: -rwsr-xr-x 1 root root 22984 ene 6 2007 /usr/bin/passwd 229 .2.el5.el5.3.rpm 24.el5 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: joomla noarch 1.0.i386 0:5. Si no se desea que se ejecuten estos guiones.9. ---> Package php-xml. se añade a rpm -ivh o rpm -Uvh la opción --noscripts.al.1. Please wait.1.6-15.1.el5. --> Populating transaction set with selected packages. Recuperación de permisos originales a partir de rpm.9.al Dependency Installed: php-xml.6-15.3 M Installing for dependencies: php-xml i386 5.15-2.el5.9.0.el5.al.el5 base 93 k Transaction Summary ============================================================================= Install 2 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 6.al.al set to be updated --> Running transaction check --> Processing Dependency: php-xml for package: joomla --> Restarting Dependency Resolution with new changes.152.rpm sin la ejecución de los guiones que pudieran estar definidos en el paquete RPM: rpm -Uvh --noscripts joomla-1.152.6-15.15-2.noarch 0:1.

seguida del nombre del paquete. En el siguiente ejemplo se tratará de desinstalar el paquete crontabs: rpm -q crontabs 230 .1 root root 22984 ene 6 2007 /usr/bin/passwd El archivo /usr/bin/passwd pertence al paquete passwd. En el siguiente ejemplo.4. Para desinstalar paquetería. confirmelo del siguiente modo: rpm -qf /usr/bin/passwd Lo anterior debe devolver una salida similar a la siguiente: passwd-0. Desinstalación de paquetes.2. el sistema solo devolverá el símbolo de sistema. el sistema informará que no es posible desinstalar y devolverá la lista de paquetes que lo requieren.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Cambie el permiso del siguiente modo: chmod 700 /usr/bin/passwd Vuelva a ver el permiso de /usr/bin/passwd del siguiente modo: ls -l /usr/bin/passwd Lo anterior debe devolver una salida similar a la siguiente: -rwx-----. se solicita al mandato rpm desinstalar los paquetes joomla y php-xml: rpm -e joomla php-xml Si no hay dependencias que lo impidan. que se utiliza para eliminar. utilice lo siguiente: rpm --setperms passwd Vuelva a ver el permiso de /usr/bin/passwd del siguiente modo: ls -l /usr/bin/passwd Lo anterior debe devolver una salida similar a la siguiente y que corresponde al permiso original del archivo /usr/bin/passwd: -rwsr-xr-x 1 root root 22984 ene 6 2007 /usr/bin/passwd 24. se utiliza el mandato rpm con la opción -e. Si el paquete o alguno de sus componentes fuera dependencia de otro u otros paquetes.73-1 Para recuperar de nuevo el permiso original de /usr/bin/passwd.

3-45. 231 . Evite siempre desinstalar paquetes que sean dependencia de otros en el sistema a menos que vaya a reinstalar inmediatamente un paquete que los sustituya. se puede utilizar agregar la opción --nodeps.el5. el sistema devolverá una salida similar a la siguiente: error: Failed dependencies: crontabs is needed by (installed) anacron-2.i386 Si se desea des instalar cualquier paquete sin importar que otros dependan de este.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Como el paquete crontabs es requerido por anacron. Esto es contraindicado.centos. y solo debe ser utilizado es situaciones muy particulares o escenarios donde así se requiere.

Si se pretende crear paquetería a partir de códigos fuente es necesario estar familiarizado con las bibliotecas compartidas necesarias. con todo lo que dependa de éste: qt-devel.1. Este documento mostrará los procedimientos para: ● ● ● ● Generar una clave GnuPG para firmar digitalmente los paquetes creados. o genera una obra derivada. rpmbuild es una herramienta que forma parte del paquete rpm-build y que se incluye en la mayoría de las distribuciones actuales que utilizan paquetería en formato RPM. 25.alcancelibre. necesitará correr lo siguiente para instalar el mínimo de paquetería: 232 . atk-devel. Cómo crear paquetería con rpmbuild Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. gnome-panel-devel. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. libwnck-devel. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. ● Si va a crear paquetería para KDE.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 25. Lamentablemente no hay recetas mágicas. 25. kdegraphics-devel y kdemultimedia-devel. automake: generador de archivos Makefile. rpm-build y rpm-devel. autoconf: herramienta para configuración de códigos fuente y archivos Makefile. Creación de archivos *. pango-devel. kdenetworkdevel. White Box Enterprise Linux o bien Red Hat™ Enterprise Linux. gnupg Gpgme y seahorse: herramientas incluidas en LPT Desktop que se utilizarán en los procedimientos de este documento para generar la clave utilizada para firmar digitalmente los paquetes rpm resultantes. Instalación del equipamiento lógico necesario Es indispensable contar con la paquetería de desarrollo mínima necesaria instalada en el sistema. tiene que dejar bien claro los términos de la licencia de esta obra. kdebase-devel. c) Si altera o transforma esta obra. necesitará al menos lo siguiente. Un conjunto mínimo sería el siguiente: Gcc: compilador. cabeceras de desarrollo. b) No puede utilizar esta obra para fines comerciales.spec. libbonobouidevel. gnome-desktop-devel. Aunque no se instala de modo predeterminado. con todo lo que dependa de éste: glib2-devel. kdelibs-devel. Al reutilizar o distribuir la obra. ● ● ● ● ● ● ● Si utiliza Cent OS.2. Introducción Crear paquetería a través de rpmbuild no es tan complicado como algunos suponen. necesitará por lo menos lo siguiente. Usted es libre de copiar. compiladores y otras herramientas de desarrollo relacionadas o requeridas por un equipamiento lógico en particular. glibc-devel: bibliotecas de desarrollo para C. ● Si va a crear paquetería para GNOME. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. libgnomeui-devel. Uso del mandato rpmbuild. nautilus-devel. gnome-vfs2-devel. Configuración y creación de una jaula para rpmbuild. gstreamer-devel y gstreamer-plugins-devel. arts-devel.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1 © 1999-2011 Joel Barrios Dueñas. gtk2-devel.

2. lo cual dará como resultado diversas consecuencias de seguridad y de estabilidad para el sistema. Especifique su nombre completo. 25. 7. incluyendo paréntesis. 3.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux yum -y install gcc* automake* autoconf* rpm-build rpm-devel gnupg Si desea generar paquetería para GNOME. salvo que específicamente requiera lo contrario. necesitará también instalar el mínimo de paquetería de desarrollo de KDE: yum -y install qt-devel arts-devel kdelibs-devel kdebase-devel kdenetwork-devel kdegraphics-devel kdemultimedia-devel Si además tiene instalado LPT Desktop. Lo anterior iniciará un asistente de creación de claves. Creación de la clave GnuPG 1.3. Tome nota de como aparece exactamente el nombre de la llave. espacios y otros símbolos. 233 .1. En la pantalla de «Fecha de caducidad».3. necesitará también instalar el mínimo de paquetería de desarrollo de GNOME: yum -y install glib2-devel atk-devel pango-devel gtk2-devel libbonoboui-devel libgnomeui-devel gnome-vfs2-devel libwnck-devel gnome-panel-devel gnome-desktop-devel nautilus-devel gstreamer-devel gstreamer-plugins-devel Si va a generar paquetería para KDE. Procedimientos 25. para crear o reconstruir paquetería en formato RPM. puede instalar también el equipamiento lógico restante: yum -y install seahorse gpgme 25. Desde una sesión gráfica. ya que se utilizarán en el siguiente procedimiento. 4. Elija el nivel de seguridad como «Seguridad extra alta».3. inicie seahorse y de clic en en botón de «Nuevo» en el panel de «Opciones de primera vez». 5. 2. Se recomienda utilizar espacios y signos de puntuación. especifique «Sin caducidad». un breve comentario opcional y su cuenta de correo electrónico permanente que se relacionará exclusivamente con la nueva clave. 6. Configuración y creación de una jaula para rpmbuild Jamás utilice la cuenta de root sin importar la circunstancia. Esto puede resultar peligroso debido a que la configuración de algunos programas pueden tratar de instalar componentes en el sistema en lugar del directorio especificado para rpmbuild. Especifique una frase de paso que sólo usted pueda recordar.

El formato utilizado es el mismo como aparece el nombre de su clave GnuPG en seahorse: Su Nombre (Breve comentario) <su cuenta de correo electrónico>. %distribution: nombre del producto o bien para especificar para que distribución de GNU/Linux se utilizará la paquetería. normalmente en /usr/bin/gpg.2.2.SOURCES.spec. ¿Qué valor se recomienda?.rpmmacros. %_gpg_path: ruta del directorio .SPECS. 25. %_tmppath: directorio de elementos temporales que será utilizado para simular instalaciones. en el cual se definirán valores para algunas variables utilizadas por rpmbuild: ● %debug_package: sirve para especificar si se anula o no la generación de paquetería ● ● ● ● ● ● ● ● ● ● ● de depuración. Para la mayoría de los casos se especifica el valor %{nil} a fin de impedir que se genere paquetería de depuración.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux La jaula será creada de modo seguro dentro de una cuenta de usuario normal sin privilegios.RPMS.3.1. así que se especificará 1. %_unpackaged_files_terminate_build: sirve para especificar si la construcción de un paquete se deberá interrumpir si hay componentes ignorados por el archivo *.SRPMS. genere el archivo ~/.com> %_gpgbin /usr/bin/gpg %_topdir %(echo "$HOME")/rpmbuild %_tmppath %(echo "$HOME")/rpmbuild/TMP %packager Fulano de Perengano <su cuenta de correo o bien http://su-sitio-de-red.rpmmacros. %_signature: se utilizará gpg para firmar los paquetes resultantes. %vendor: nombre de su empresa u organización.rpmmacros Utilizando cualquier editor de texto. %_gpgbin: ruta del binario gpg. %desktop_vendor: variable opcional (y no oficial) para definir el nombre de la empresa en el nombre algunos archivos. la respuesta es obvia: no es deseable un paquete al cual le faltan componentes. Especifique el nombre corto de su empresa sin espacios. %_gpg_name: identidad a utilizar para firmar los paquetes resultantes. A continuación un ejemplo del contenido del archivo ~/. Estará localizado dentro de la carpeta de inicio del usuario utilizado. La paquetería de depuración solo es útil para los programadores a fin de localizar fallas en los programas empaquetados.gnupg %_gpg_name Fulano de Perengano (Una empresa ficticia) <fulano@algún-dominio. Componentes del archivo ~/. genere la estructura de directorios necesaria utilizando lo siguiente: mkdir -p ~/rpmbuild/{BUILD. %packager: su nombre completo y dirección de correo electrónico o bien el URL de su sitio de red.TMP} 234 . 1 habilita. 0 deshabilita. a fin de poder detectar e impedir que algunos procedimientos durante la creación de paquetes intenten instalar componentes no deseados en el sistema. Creación de la estructura de la jaula para rpmbuild Desde una terminal. %_topdir: ruta donde se localiza la jaula para rpmbuild.com> %distribution nombre de su producto aquí %vendor su nombre o nombre de su empresa aquí %desktop_vendor nombre-de-su-empresa-sin-espacios 25.gpg a utilizar.2. utilizando valores ficticios: %debug_package %{nil} %_unpackaged_files_terminate_build 1 %_signature gpg %_gpg_path %(echo "$HOME")/. principalmente entradas de menú.3.

compilar. License: Licencia o licencias utilizadas por el paquete. Version: Se refiere al número de versión del paquete Release: Número de lanzamiento o entrega URL: URL original del sitio de red del equipamiento lógico que se va a empaquetar. Summary: Resumen o descripción corta del paquete. No puede llevar espacios. Group: Grupo o categoría de equipamiento lógico al cual pertenece el paquete.Joel Barrios Dueñas mkdir -p ~/rpmbuild/RPMS/{athlon.noarch} Configuración de Servidores con GNU/Linux 25. Creación de los archivos*.3. Regularmente es el mismo nombre utilizado para el paquete del código fuente. instalar virtualmente y empaquetar un equipamiento lógico en particular a partir de un código fuente. Name: Se refiere nombre del paquete. Del contenido de éstos dependerá que sea posible descomprimir.spec Los archivos *.i686.i586.spec contienen la información que utilizará rpmbuild para construir un paquete.3. Lista de grupos válidos: Amusements/Games Amusements/Graphics Applications/Archiving Applications/Communications Applications/Databases Applications/Editors Applications/Emulators Applications/Engineering Applications/File Applications/Internet Applications/Multimedia Applications/Productivity Applications/Publishing Applications/System Applications/Text Development/Debuggers Development/Languages Development/Libraries Development/System Development/Tools Documentation System Environment/Base System Environment/Daemons System Environment/Kernel System Environment/Libraries System Environment/Shells User Interface/Desktops User Interface/X User Interface/X Hardware Support Buildroot: 235 . configurar.i386.

Por lo general es suficiente %__make DESTDIR=%{buildroot} install. BuildPreReq: Lista de componentes o paquetes que deben estar previamente instalados en el sistema antes de iniciar la compilación del equipamiento lógico involucrado. pero se recomienda leer a detalle el instructivo de instalación de cada programa en particular a fin de asegurar los procedimientos correctos para compilar el equipamiento lógico. aunque por norma se sugiere especificar el URL exacto hacia el código fuente. si los hubiere.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Ruta donde se realizará la instalación virtual.. %clean Procedimientos para limpiar aquello que ya no se necesita después de haber creado exitosamente el paquete RPM. %build Procedimientos necesarios para poder compilar desde el código fuente de un equipamiento lógico en particular. Por lo general basta con un %configure y %__make. Específicamente se refiere a la instalación virtual que se realizó dentro de ~/rpmbuild/TMP/. La instalación será virtual y se realizará dentro de ~/rpmbuild/TMP/ que es establecido por la variable %{buildroot}. sin embargo algunos programas pudieran requerir instalación individual de algunos o todos sus componentes. requeridos antes de desempaquetar el código fuente. Se recomienda limpiar cualquier instalación previa utilizando %__rm -fr %{buildroot}. %setup Procedimientos. Regularmente no los hay. requeridos al desempaquetar o después de desempaquetar el código fuente. PreReq: Lista de componentes o paquetes que deben estar previamente instalados en el sistema antes de iniciar la instalación de el equipamiento lógico involucrado. Regularmente aquí es donde se aplican parches y otros correctivos. Para la mayoría de los casos es suficiente utilizar %__rm -fr %{buildroot}. Requires: Lista de paquetes de los cuales depende el equipamiento lógico empaquetado para poder funcionar. %description Descripción detallada acerca del paquete %prep Procedimientos. . BuildRequires: Lista separada por comas o espacios de componentes o paquetes requeridos para poder construir el equipamiento lógico involucrado. si los hubiere. %install Procedimiento de instalación requerido para un paquete en particular. es decir: %{_tmppath}/%{name}-%{version}-root Source: Se puede especificar solamente el nombre del paquete utilizado para el código fuente. 236 .

Archivo *. License: GPL Group: Applications/File Buildroot: %{_tmppath}/%{name}-%{version}-root Source: http://un-sitio-güeb.3. Si un paquete incluye un esquema para GConf.spec. %prep %setup -q %build %configure %__make 237 .1. %postun Procedimientos que se deben correr justo después de proceder a desinstalar un paquete. Se utiliza principalmente con paquetes que necesitan correr tareas administrativas. Se utiliza principalmente con paquetes que necesitan crear cuentas de sistema u otros preparativos.algo/algo-0.Más cambios . %post Procedimientos que se deben correr justo después de proceder a instalar un paquete.Joel Barrios Dueñas %preun Configuración de Servidores con GNU/Linux Procedimientos que se deben correr justo antes de proceder a instalar un paquete.Algunos cambios .Se puso un guión para algo 25.algo/> .Se añadieron cosas . se ejecuta ldconfig. . se debe correr lo necesario para registrar el esquema. %files Lista de todos los componentes de el equipamiento lógico empaquetado en sus rutas definitivas. %changelog Bitácora de cambios del archivo *.spec.3. como detener y/o dar de baja un servicio.Otros cambios Ejemplo: * Sun Sep 25 2005 Fulano de Perengano <http://mi-sitio-güeb. Name: algo Version: 0.1 Release: 1 URL: http://sitio-de-red-del-sustento-lógico-a-utilizar/ Summary: Paquete imaginario que hace algo.spec inicial. Ejemplo de archivo *.bz2 BuildRequires: gtk2-devel BuildPreReq: /usr/bin/desktop-file-install Requires: gtk2 PreReq: /usr/bin/update-desktop-database %description Programa imaginario escrito en un lenguaje abstracto e inexistente que hace cosas imaginarias e imposibles sólo para fines demostrativos. Requiere un formato especial: * [Dia de la semana en abreviado y en inglés] [Mes abreviado en inglés] día año Nombre empaquetador <correo electrónico o URL de sitio de red> .1.tar. Ejemplos: Cuando los paquetes incluyen bibliotecas compartidas.

athlon.spec.4.spec inicial.algo/> . Se utiliza principalmente para verificar y depurar estos procedimientos antes de comenzar la compilación e instalación. --clean Solicita a rpmbuild corra los procesos especificados en la sección %clean para dejar limpio el directorio de temporales utilizado para realizar instalaciones virtuales.Joel Barrios Dueñas %install %__make DESTDIR=%{buildroot} install %clean %__rm -fr %{buildroot} %preun %post /sbin/ldconfig %postun %files defattr(-.Se puso un guión para algo * Sat Sep 24 2005 Fulano de Perengano <http://mi-sitio-güeb. -bp Solicita a rpmbuild corra todos los procedimientos necesarios en la sección %prep y aplicación de parches en %setup. i686.desktop Configuración de Servidores con GNU/Linux %changelog * Sun Sep 25 2005 Fulano de Perengano <http://mi-sitio-güeb.rpm) a partir de un archivo *.root) /usr/bin/algo /usr/lib/libalgo. De modo predefinido rpmbuild crea los paquetes para la arquitectura predeterminada del sistema.root. 25.so.src.algo/> . -bb Solicita a rpmbuild corra todos los procedimientos necesarios para generar solamente un paquete RPM binario a partir de un archivo *. Puede especificarse i386.spec. etc. Uso del mandato rpmbuild Lista y descripción de opciones principales: --sign Especifica que se debe firmar un paquete con clave digital predeterminada. -ba Solicita a rpmbuild corra todos los procedimientos necesarios para generar un paquete RPM binario y el paquete RPM fuente (*.Se añadieron cosas . -bc 238 . --target=[arquitectura] Se utiliza para indicar a rpmbuild para que arquitectura será construido el paquete.. i585.Archivo *. noarch.3.0 /usr/share/applications/algo. de acuerdo a lo que sea requerido.

limpieza de directorio de instalaciones virtuales y eliminación de *.rpm a partir de un archivo *.spec y fuentes tras terminar exitosamente: rpmbuild -bb *. compilación en %build e instalación virtual en %install.spec 239 . en el caso de ser combinado con -bi. --rmspec Solicita a rpmbuild elimine el archivo *.src.1.rpm. --rebuild Solicita a rpmbuild reconstruya un paquete a partir de un *.spec: rpmbuild -ba --clean --sign --rmspec --rmsource algo. Solicita a rpmbuild saltar todos los pasos previos y correr únicamente la compilación.spec Construir sólo un paquete RPM junto con el correspondiente *.spec: rpmbuild -bb algo. Se utiliza principalmente para verificar y depurar estos procedimientos. con firma digital. aplicación de parches en %setup y compilación en %build. No crea paquetes RPM. en el caso de ser combinado con -bc. con firma digital.4.src. No realiza instalación virtual ni crea paquetes RPM.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Solicita a rpmbuild corra todos los procedimientos necesarios en la sección %prep. sin generar *.src.spec Construir sólo un paquete RPM y el correspondiente *. 25. Se utiliza para mantener limpia la jaula de rpmbuild.spec.rpm a partir de un archivo *. -bi Solicita a rpmbuild corra todos los procedimientos necesarios en la sección %prep. --rmsource Solicita a rpmbuild elimine todo lo que corresponda a las fuentes. Se utiliza para mantener limpia la jaula de rpmbuild. es decir. parches y otros elementos. o bien saltar todos los pasos previos y correr únicamente los procedimientos para realizar la instalación virtual. Ejemplos de uso del mandato rpmbuild Construir sólo un paquete RPM.src. aplicación de parches en %setup.spec después de crear exitosamente los paquetes RPM correspondientes. Se utiliza principalmente para verificar y depurar estos procedimientos.rpm. --short-circuit Se utiliza en combinación con -bc y bi.spec. Se utiliza principalmente para verificar y depurar estos procedimientos.src. a partir de un archivo *. códigos fuentes. después de crear exitosamente los paquetes RPM correspondientes.spec Construir solo un paquete RPM sin *.3.rpm a partir de un archivo *. limpieza de directorio de instalaciones virtuales y eliminación de *.spec y fuentes tras terminar exitosamente: rpmbuild -ba --clean --sign --rmspec --rmsource *.

License: GPL Group: Applications/Editors Buildroot: %{_tmppath}/%{name}-%{version}-root Source: http://www.nano-editor.nano-editor.spec con el siguiente contenido (al terminar.2.4.tar.rpm. Coloque el *.2/nano-1. con firma digital.src. %prep %setup -q %build %configure %__make %install %__make DESTDIR=%{buildroot} install %clean %__rm -fr %{buildroot} 240 .2.5.5 Release: 1 URL: http://www. Con cualquier editor de texto simple.src. Ejercicios 25.tar.rpm: rpmbuild --rebuild cualquier-paquete.2. línea por línea): Name: nano Version: 1. 2.src.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Reconstruir sólo un paquete RPM a partir de un *.rpm correspondiente creando el archivo *.gz del código fuente dentro del directorio ~/rpmbuild/SOURCES/ mv nano-1.1.nano-editor. por favor verifique la sintaxis.4. genere el archivo ~/rpmbuild/SPECS/nano.tar.src.spec y fuentes tras terminar exitosamente: rpmbuild --rebuild --clean --sign --rmspec --rmsource cualquier-paquete.org/ Summary: Un pequeño editor de texto.spec necesario 1.rpm 25.5.src.gz BuildRequires: ncurses-devel.org/dist/v1.gz ~/rpmbuild/SOURCES/ 3.rpm Reconstruir sólo un paquete RPM a partir de un *. glibc-devel. Cambie hacia el directorio ~/rpmbuild/SPECS/ cd ~/rpmbuild/SPECS/ 4.org y descargue el código fuente de la más reciente versión estable del editor de texto Nano. limpieza de directorio de instalaciones virtuales y eliminación de *. gcc Requires: ncurses %description GNU nano es un pequeño y fácil de utilizar editor de texto. Paquete RPM binario y el paquete *. Acceda hacia http://www.

Utilizará el mismo archivo *. al terminar el proceso.algo/> . Para poder construir nano.cpec 3.src. ingresando la clave de acceso para GnuPG cuando le sea requerida: rpmbuild -ba --clean --sign nano. 5.gz /usr/share/locale/*/LC_MESSAGES/nano.org).spec del ejercicio pasado.cpec 7. De ser necesario. al concluir el proceso. encontrará el paquete binario RPM dentro del directorio ~/rpmbuild/RPMS/i386/ y el paquete *. Paquete RPM binario y el paquete *.Archivo *.src.src.4.rpm dentro del directorio ~/rpmbuild/SRPMS/. necesitará tener instalados los paquetes ncurses-devel (cabeceras de desarrollo para ncurses).1. 2. 25.info.2. proceda a instalar éstos: yum -y install ncurses-devel glibc-devel gcc 6. firma digital 1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux %files %defattr(-. Suponiendo que utiliza una computadora con microprocesador compatible con Intel. 241 .mo %changelog * Sun Sep 25 2005 Fulano de Perengano <http://mi-sitio-güeb.5.root) %doc AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README THANKS TODO %doc nanorc.gz /usr/share/man/man1/nano. Suponiendo que utiliza una computadora con microprocesador compatible con Intel.gz /usr/share/man/man5/nanorc.root. encontrará el paquete binario RPM dentro del directorio ~/rpmbuild/RPMS/i386/ y el paquete *. Utilice lo siguiente para generar los paquetes binario y fuente correspondientes: rpmbuild -ba nano.spec inicial. glibc-devel (cabeceras de desarrollo para C) y gcc (compilador de GNU. Utilice lo siguiente para generar los paquetes correspondientes.rpm dentro del directorio ~/rpmbuild/SRPMS/.sample /usr/bin/nano /usr/share/info/nano.rpm correspondiente realizando limpieza de directorio.

que tiene las siguiente características: • • • • • • • Distribuido bajo los términos de la Licencia Publica General GNU versión 2. se recomienda crear previamente al grupo y usuario correspondientes para ClamAV: groupadd -r clamavupdate useradd -r -s /sbin/nologin -d /var/lib/clamav -M -c 'Clamav database update user' \ -g clamavupdate clamavupdate 242 . • • clamav clamav-update 26. Tar. o genera una obra derivada.clamav. Exploración rápida. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. De modo predeterminado. MS Cabinet. MS OLE2. Equipamiento lógico necesario. Cumple con las especificaciones de familia de estándares POSIX (Portable Operating System Interface for UNIX o interfaz portable de sistema operativo para Unix).alcancelibre. ClamAV es un conjunto de herramientas antivirus.2. Soporte para explorar archivos comprimidos con UPX. MS CHM y MS SZDD.1.1. Avanzada herramienta de actualización con soporte para firmas digitales y consultas basadas sobre DNS. 26. Acerca de ClamAV. Capacidad para examinar contenido de archivos ZIP. gusanos. el usuario para ClamAV asigna a través de los mandatos fedoragroupadd y fedora-useradd el UID y GID 4 en el sistema.2. Creación del usuario para ClamAV. RAR. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.net/ 26. FSG y Petite. URL: http://www. Bzip2.1. A fin de prevenir un conflicto de UID/GID con otros usuarios y grupos de sistema.1 © 1999-2011 Joel Barrios Dueñas. troyanos y otros programas maliciosos.1. 26. Al reutilizar o distribuir la obra. Usted es libre de copiar. Cómo instalar y utilizar ClamAV en CentOS Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. b) No puede utilizar esta obra para fines comerciales. Gzip. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 26. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Introducción. tiene que dejar bien claro los términos de la licencia de esta obra. c) Si altera o transforma esta obra. libre y de código fuente abierto. Detecta más de 720 mil virus. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.

Instalación a través de yum. Red Hat™ Enterprise Linux 4 y 5 o White Box Enterprise Linux 4 y 5. es necesario editar este archivo y comentar o eliminar la línea 9. 26.alcancelibre. puede utilizar el el depósito yum de Alcance Libre para servidores en producción.alcancelibre. si se utilizan paquetes para Fedora.1.conf(5) manual before editing this file.2.3.repos.3. ## # Comment or remove the line below. SELinux y el servicio clamav-milter.3./p> 26.org/al/el$releasever/al-server gpgcheck=1 gpgkey=http://www. Configuración de Freshclam. Para que SELinux permita utilizar normalmente clamscan.org/al/AL-RPM-KEY La instalación solo requiere utilizar lo siguiente: yum -y install clamav clamav-update La instalación de los paquetes anteriores crea automáticamente el usuario y directorios necesarios para un funcionamiento normal. utilice el siguiente mandato: setsebool -P freshclam_disable_trans 1 26.2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 26. Procedimientos. El archivo /etc/freshclam.2. Sin embargo.repo con el siguiente contenido: [AL-Server] name=AL Server para Enterprise Linux $releasever mirrorlist=http://www. Si dispone de un servidor con CentOS 4 y 5. # Example 243 . que incluye simplemente la palabra inglesa Example y que de otro mod impediría utilizar el mandato freshclam: ## ## Example config file for freshclam ## Please read the freshclam.d/AL-Server.conf de los paquetes distribuidos por Alcance Libre ya incluye las modificaciones necesarias para permitir el funcionamiento del mandato freshclam. creando el archivo /etc/yum. utilice el siguiente mandato: setsebool -P clamscan_disable_trans 1 Para que SELinux permita al mandato freshclam funcionar normalmente y que permita actualizar la base de datos de firmas digitales. Freshclam es el programa utilizado para descargar y mantener actualizada la base de datos de virus y otros programas malignos.

3. Esta opción debe ser utilizada con precaución. y que consiste en el archivo /etc/cron. puede actualizar manualmente. se ejecuta cada tres horas para verificar si hubo cambios en la base de datos. y de manera inmediata. se utiliza el mandato clamscan con la opción --infected. Uso básico del mandato clamscan. se utiliza el mandato clamscan con la opción -r. clamscan --remove=yes -r /cualquier/directorio la salida del mandato clamscan puede llegar a ser muy extensa. de manera recursiva. para revisar un archivo sospechoso de estar infectado. clamscan --move=/directorio/de/cuarentena -r /cualquier/directorio Para especificar que los archivos infectados sean eliminados. es decir. El directorio de cuarentena debe de existir previamente. the freshclam update is disabled to avoid ### REMOVE ME: network access without prior activation # FRESHCLAM_DELAY=disabled-warn # REMOVE ME De ser necesario. se utiliza el mandato clamscan sin más parámetros: clamscan /cualquier/archivo Para realizar al revisión de un directorio y todo su contenido. y a fin de mantener actualizada la base de datos de firmas digitales. Si se utilizan paquetes de Fedora. es necesario editar el archivo /etc/sysconfig/freshclam con el objeto de permitir las actualizaciones automáticas: ### !!!!! REMOVE ME !!!!!! ### REMOVE ME: By default. se utiliza el mandato clamscan con la opción --move especificando un directorio que servirá como cuarentena. 26. a través del servicio crond. desde cualquier terminal como root. se utiliza la opción --remove con el valor yes. la base de datos de firmas utilizando el mandato freshclam. Si se desea que solo se muestre la información de los archivos infectados. clamscan -r /cualquier/directorio Para especificar que los archivos infectados solo sean movidos a un directorio de cuarentena.d/clamav-update. el cual.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux El archivo /etc/sysconfig/freshclam de los paquetes distribuidos por Alcance Libre ya incluye las modificaciones necesarias para permitir la actualización automática de la base de datos de ClamAV. freshclam El paquete de clamav-update distribuido por Alcance Libre y el proyecto Fedora incluye un guión de actualización automática de la base de datos de ClamAV. clamscan --infected --remove=yes -r /cualquier/directorio 244 .3.

» 245 . se puede utilizar éste con la opción --log especificando la ruta de un archivo donde se almacenará la bitácora de actividad.log --infected --remove=yes -r /cualquier/directorio Para configurar ClamAV para ser utilizado con un servidor de correo electrónico con Sendmail.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para que el mandato clamscan guarde la información de su actividad en una bitácora en particular. a fin de poder examinar posteriormente ésta a detalle. clamscan --log=/home/usuario/clamscan. consultar el documento titulado «Cómo configurar clamav-milter.

De acuerdo a Wikipedia. y sus dispositivos periféricos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 27. b) No puede utilizar esta obra para fines comerciales. Una cuota de disco es un límite establecido por un administrador. Introducción. Cada inodo queda identificado en el sistema de archivos por un número entero único.1. tiene que dejar bien claro los términos de la licencia de esta obra.3.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. o viceversa. Acerca de Inodos. y son únicas para usuarios o grupos. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. c) Si altera o transforma esta obra. Las cuotas restringen la capacidad de los usuarios para acceder hacia los recursos de sistema. La utilización de cuotas de disco permite a los administradores de sistemas realizar la gestión eficiente del espacio compartido en disco por múltiples usuarios. y ubicación) de un archivo regular. un bloque es la cantidad más pequeña de datos que pueden transferirse en una operación de entrada/salida entre la memoria principal de una computadora.alcancelibre.1 © 1999-2011 Joel Barrios Dueñas. un inodo. El objetivo de las cuotas de disco es limitar. De acuerdo a Wikipedia. o cualquier otro elemento que pueda contener el sistema de archivos. Las cuotas se administran por sistema de archivos individuales. 27. Acerca de las cuotas de disco. o genera una obra derivada. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Acerca de Bloques. de forma razonable. pero puede tener más de un nombre en distintos lugares. Al reutilizar o distribuir la obra. tales como bloques (asignación de unidades). Un inodo contiene las características (permisos. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. el cual restringe ciertos aspectos del uso del sistema de archivos. Cómo asignar cuotas de disco en GNU/Linux. directorio. o también nodo índice. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. 27. Usted es libre de copiar.1. Cuando una cuota es excedida se aplica una política determinada por el administrador. 246 . 27. para facilitar su localización. es una estructura de datos propia de los sistemas de archivos en sistemas operativos tipo POSIX (Portable Operating System Interface for Unix). Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. el espacio utilizado en el sistema de archivos.1. nodo-i. 27.2. como GNU/Linux. e inodos (entradas del sistema de archivos). o incluso en el mismo directorio. Cada archivo tiene un único inodo. y un nombre identificativo que permite acceder a un archivo en particular. fechas.1.1. y los directorios recogen una lista de parejas formadas por un número de inodo.

usrjquota=aquota.group.3. Edite el archivo /etc/fstab: Añada a las opciones de las particiones /var. y /home.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 27. lo cual hace más complicado que se dañen los archivos que corresponden a las cuotas de disco en caso de un apagado incorrecto. y jqfmt=vfsv0: /dev/mapper/LogVol03 /var ext4 defaults . Equipamiento lógico necesario. ya sea reiniciando el sistema. Si se utiliza de CentOS 5. Edite el archivo /etc/fstab. 27. o Red Hat™ Enterprise Linux 5.jqfmt=vfs v0 1 2 Nota. debió asignarse una partición dedicada para. y /home: LABEL=/var LABEL=/home /var /home ext3 ext3 defaults.user.user.user. grpjquota=aquota.usrquota.grpquota 1 2 1 2 Deben aplicarse los cambios a las particiones. puede utilizar cuotas con registro por diario (journaled quotas).1. similar al registro por diario de los sistemas de archivos Ext3/Ext4. Instalación a través de yum. vim /etc/fstab Si utiliza CentOS 6 o Red Hat Enterprise Linux 6.2.group. Durante la instalación. y /home. Si utiliza CentOS 5 o Red Hat Enterprise Linux 5.usrquota.grpjquota=aquota.grpjquota=aquota.grpquota defaults.2. se puede instalar lo necesario ejecutando lo siguiente: yum -y install quota 27. Procedimientos.jqfmt=vfsv0 1 2 /dev/mapper/LogVol04 /home ext4 defaults. y aplicá los cambios inmediatamente. los parámetros usrjquota=aquota. los directorios /var.usrjquota=aquota. y grpquota a las líneas que definen la configuración de las particiones /var. 247 . por mencionar un ejemplo.group. o bien ejecutando los siguientes mandatos: mount -o remount /var mount -o remount /home Lo anterior vuelve a leer las opciones de montado de cada una de las particiones. o bien versiones posteriores de éstos. debe añadir en el archivo /etc/fstab los parámetros usrquota.

y m significa que se evite re-montar en modo de sólo lectura los sistemas de archivos. Limite de bloques de 1 KB o inodos que el usuario tiene permitido utilizar. Para activar las cuotas de disco recién configuradas.group. la primera vez que se ejecuta el mandato anterior es normal que devuelva advertencias. sin información. especificando como argumento el nombre del usuario: edquota fulano Lo anterior deberá devolver algo similar a lo siguiente a través de vi u otro editor de texto simple: 248 . aquota. Para asignar cuotas de disco a cualquier usuario o grupo.group quota.user. y estado de las cuotas. Inodes: Inodos.user aquota. se ejecuta el mandato edquota.1. Corresponde a la cantidad de bloques de 1 Kb que está utilizando el usuario.group cd /home touch aquota. que idealmente se utiliza cuando se tiene procesos trabajando en las particiones: quotacheck -avugm Nota. Hard: Limite absoluto. ejecute los siguientes dos mandatos: quotaon /var quotaon /home 27. en cada partición. Blocks: Bloques. que en realidad son debido a que se trataba archivos vacíos. u significa que se verifiquen cuotas de usuario. Ejecutar el mandato quotacheck con las opciones -avugm. Limite que no puede ser rebasado por el usuario bajo circunstancia alguna. Contiene además la información acerca de permisos de acceso así como los usuarios.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. Un inodo (también conocido como Index Node) es un apuntador hacia sectores específicos de disco duro en los cuales se encuentra la información de un archivo.group Este paso es innecesario en CentOS 6 y Red Hat Enterprise Linux 6. generados por el mandato touch. g significa que se verifiquen cuotas de grupo. Soft: Limite de gracia.user aquota. refiriéndose a posibles archivos truncados. v significa que se devuelvan mensajes descriptivos.user quota. Corresponde al número de archivos que está utilizando el usuario. Si se ejecuta de nuevo quotacheck -avugm. cd /var touch aquota. donde a significa que se verifican todos los sistemas de archivos con soporte para cuotas de disco.3.user quota. y que puede rebasar hasta que sea excedido el periodo de gracia (de modo predeterminado son 7 días).group. quota. los cuales se utilizarán en adelante para almacenar la información. y grupos a los cuales pertenece el archivo. y quota.user. Edquota. En CentOS 5 y Red Hat Enterprise Linux 5. En CentOS 5 y Red Hat Enterprise Linux 5. deberá mostrar una salida sin advertencia alguna.group quota. Es importante conocer que significa cada columna mostrada por el mandato edquota. se deben crear además los archivos aquota.

Suponiendo que quiere asignar una cuota de gracia de 25 MiB en /dev/sda7. minutos. hours. tras el cual al usuario se le impide continuar escribiendo sobre la partición. suponiendo que utilizará la cuota de disco del usuario «pepito» como plantilla (note por favor los dos acentos graves en el mandato. un periodo de gracia de 7 días. de modo predeterminado.2.1.1. Suponiendo que se quiere asignar una cuota de disco de 50 MiB para el usuario «fulano» en en /dev/sda7. or seconds Filesystem Block grace period Inode grace period /dev/hdb7 7days 7days /dev/hdb5 7days 7days La cuota de gracia establece los límites de bloques o inodos que un usuario tiene en una partición.3.3. minutes. justo antes de awk. pues se trata de un carácter diferente al apostrofe). se utilizaría lo siguiente: Disk quotas for user fulano (uid 501): Filesystem blocks soft hard /dev/sda7 0 25600 0 /dev/sda5 24 25600 0 inodes 0 10 soft 0 0 hard 0 0 27. ejecute lo siguiente: 249 . el cual se puede modificar con el mandato edquota -t: edquota -t Donde se puede establecer un nuevo periodo de gracia. El sistema tiene.3. o segundos.1. el sistema advierte al usuario que se ha excedido la cuota del disco sin embargo permite al usuario continuar escribiendo hasta que trascurre el tiempo establecido por el periodo de gracia. a partir de UID 510. ya sea por días. por ejemplo. 27. la cual podrá ser excedida hasta por 7 días. Cuando el usuario excede el límite establecido por la cuota de gracia. se utilizaría lo siguiente: Disk quotas for user fulano (uid 501): Filesystem blocks soft hard /dev/sda7 0 0 51200 /dev/sda5 24 0 51200 inodes 0 10 soft 0 0 hard 0 0 El usuario siempre podrá rebasar una cuota de gracia pero nunca una cuota absoluta. Grace period before enforcing soft limits for users: Time units may be: days. Si se quiere que todo aplique para los usuarios existentes. y /dev/sda5.1.3. Cuota de gracia.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Disk quotas for user fulano (uid 501): Filesystem blocks soft hard /dev/sda7 0 0 0 /dev/sda5 24 0 0 inodes 0 10 soft 0 0 hard 0 0 27. y al final del mandato. Aplicando cuotas de forma masiva. horas. y /dev/sda5. Cuota absoluta.

y ejecute el mandato quota: quota Observe con detenimiento la salida: Disk quotas for user fulano (uid 501): Filesystem blocks quota limit grace /dev/sda7 0 0 51200 25600 /dev/sda5 24 0 51200 25600 files 1 10 quota 0 0 limit 1500 1500 grace 1000 1000 Realice una copia del directorio /usr/lib como el sub-directorio ~/prueba-cuotas dentro de su directorio de inicio: cp -r /usr/lib ~/prueba-cuotas Notará que llegará un momento en el que el sistema indicará que ya no es posible continuar copiando contenido dentro de ~/prueba-cuotas debido a que se ha agotado el espacio en la partición. o ejecutando su -l fulano.4. Utilice de nuevo el mandato quota. edquota fulano Asigne al usuario «fulano» una cuota de gracia de 25 MiB.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux edquota -p pepito `awk -F: '$3 > 510 {print $1}' /etc/passwd` 27. cambie primero los permisos del contenido del directorio. es necesario liberar espacio. un límite de gracia de 1000 archivos. Debido a que muy probablemente parte del contenido de /usr/lib se copió en modo de sólo lectura. en donde aparecerá un asterisco justo junto a la cantidad en la columna de bloques bloques. Utilice el mandato edquota con el usuario fulano. acceda hacia el sistema como el usuario fulano. una cuota absoluta de 50 MiB. en todas las particiones con cuota de disco habilitada: Disk quotas for user fulano (uid 501): Filesystem blocks soft hard /dev/sda7 0 25600 51200 /dev/sda5 24 25600 51200 inodes 0 10 soft 1000 1000 hard 1500 1500 Desde otra terminal. a fin de disponer de permisos de lectura y escritura: 250 . y observe con detenimiento la salida. y un límite absoluto de 1500 archivos. Comprobaciones. el cual indica que se ha excedido la cuota del disco: Disk quotas for user fulano (uid 501): Filesystem blocks quota limit grace /dev/sda7 0 0 51200 25600 /dev/sda5 51200* 0 51200 25600 files 1 1500* quota 0 0 limit 1500 1500 grace 1000 1000 Para poder volver a escribir sobre la partición.

vuelva a ejecutar el mandato quota: rm -fr ~/prueba-cuotas Y.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux chmod -R u+w ~/prueba-cuotas Elimine por completo el directorio ~/prueba-cuotas: Y. vuelva a ejecutar el mandato quota: quota 251 . finalmente. finalmente.

etc. Introducción a TCP/IP Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Los dos protocolos más importantes.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. 28. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.UU. ARP. tiene que dejar bien claro los términos de la licencia de esta obra. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. que era la red de área extensa del Departamento de Defensa como medio de comunicación para los diferentes organismos de EE.1 © 1999-2011 Joel Barrios Dueñas. TCP/IP es la plataforma que sostiene Internet y que permite la comunicación entre diferentes sistemas operativos en diferentes computadoras. ente los cuales podemos mencionar como los más conocidos a HTTP. Aplicación Presentación Sesión Transporte Red Enlace de datos Físico Niveles OSI 252 . Usted es libre de copiar. b) No puede utilizar esta obra para fines comerciales. de ahí que se denomine también como Conjunto de Protocolos TCP/IP. Se conoce como familia de protocolos de Internet al conjunto de protocolos de red que son implementados por la pila de protocolos sobre los cuales se fundamenta Internet y que permiten la transmisión de datos entre las redes de computadoras. Modelo TCP/IP 5 4 3 2 1 7 6 5 4 3 2 1 Aplicación Transporte Red Enlace Físico.2. Introducción TCP/IP fue desarrollado y presentado por el Departamento de Defensa de EE. ya sea sobre redes de área local (LAN) o redes de área extensa (WAN).alcancelibre. o genera una obra derivada.1. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 28. Los tipos de protocolos existentes superan los cien. SMTP. en 1972 y fue aplicado en ARPANET (Advanced Research Projects Agency Network). Niveles de pila En la actualidad continúa la discusión respecto a si el modelo TCP/IP de cinco niveles encaja dentro del modelo OSI (Interconexión de Sistemas Abiertos u OpenSystems Interconnection) de siete niveles. La transición hacia TCP/IP en ARPANET se concretó en 1983. 28. FTP. Al reutilizar o distribuir la obra. son TCP (Protocolo de Control de Transmisión o Transmission Control Protocol) e IP (Protocolo de Internet o Internet Protocol).UU. POP. c) Si altera o transforma esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. y que fueron también los primeros en definirse y también los más utilizados.

1. Modelo TCP/IP Utiliza encapsulamiento para proveer la abstracción de protocolos y servicios hacia diferentes capas en la pila. 4 Transporte Se compone de diversos protocolos de servicios como: • • • TCP (Transmision Control Protocol) UDP (User Datagram Protocol).2. DCCP (Datagram Congestion Control Protocol) 253 . La pila consiste de cinco niveles: Nivel 5 Nombre Aplicación Descripción Se compone de diversos protocolos de servicios como: • • • • • • • • • • • • • • • • • • DNS (Domain Name System) TLS/SSL (Transport Layer Security) TFTP (Trivial File Transfer Protocol) FTP (File Transfer Protocol) HTTP (Hyper Text Transfer Protocol) IMAP (Internet Messsage Access Protocol) IRC (Internet Relay Chat) NNTP (Network News Transfer Protocol) POP3 (Post Office Protocol) SIP (Session Iniciation Protocol) SMTP (Simple Mail Transfer Protocol) SNMP (Simple Network Management Protcol) SSH (Secure Shell) TELNET BitTorrent RTP (Real-time Transport Protocol) rlogin ENRP (Endpoint Handlespace Redundancy Protocol) Los protocolos de encaminamiento como BGP (Border Gateway Protocol) y RIP (Routing Information Protocol) que utilizan transporte por TCP y UDP respectivamente pueden ser considerados como parte de este nivel.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 28.

254 . pero arriba del Nivel de enlace. cada nivel tiene un nivel superior y un nivel inferior que. ICMP (Internet Control Message Protocol) e IGMP (Internet Group Management Protocol) que también utilizan IP. que corren sobre IP. pueden ser también considerados como parte de esta capa. mientras que los que están más hacia abajo se encuentran más cercanos a la transmisión física de los datos. Un método de abstracción para entender esto es mirar los niveles como proveedores o consumidores de servicios. Protocolos como ARP (Address Resolution Protocol) y RARP (Reverse Address Resolution Protocol) que operan por debajo de IP. respectivamente. Los niveles más cercanos altos son los más cercanos al usuario. similar a TCP pero más simple) RUDP (Reliable User Datagram Protocol). Compuesto de protocolos como: 2 Enlace • • • • • • • • • 1 Físico Ethernet Wi-Fi Token ring PPP (Point-to-Point Protocol) SLIP (Serial Line Internet Protocol) FDDI (Fiber Distributed Data Interface) ATM (Asynchronous Transfer Protocol) Frame Relay SMDS (Switched Multi-megabit Data Services) Medio físico. pueden ser considerados parte del Nivel de Red. Ejemplo: TCP en el nivel de transporte requiere un protocolo del nivel de Red. de modo que pertenecen a un punto intermedio entre el Nivel de Red y el Nivel de Enlace. siendo TCP un proveedor de servicio para los protocolos del nivel de aplicación. o bien utilizan un servicio del nivel o proveen un servicio. como sería IPv4. Los protocolos como OSPF (Open Shortest Path First). 3 Red Se compone de diversos protocolos de servicios como IP (incluyendo IPv4 e IPv6).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nivel Nombre Descripción • • • SCTP (Stream Control Transmision Protococol) IL (Internet Link Protocol. el cual a su vez requiere de un protocolo del nivel de enlace. etc. Salvo por evidentes razones en el primer y último niveles.

Los protocolos del Nivel de Transporte más comúnmente utilizados son TCP y UDP. Finalmente el cliente envía un paquete ACK (confirmación) de regreso hacia el servidor. es decir. el servidor responde con un paquete SYN-ACK (conformación de sincronización).2. De entre todos los protocolos de este nivel. Transferencia de datos Hay tres funciones clave que diferencian a TCP de UDP: 255 .1. el cliente puede iniciar la apertura activa. Establecimiento de la conexión Antes de que el cliente intente conectarse con el servidor.1. Una vez establecida. Las aplicaciones en cualquier nivel se distinguen a través de los puertos TCP o UDP que utilicen. La conexiones a través de TCP tienen tres fases: I. 3. las aplicaciones que controlan el ancho de banda si lo utilizan.1. se vuelvan a enviar los paquetes perdidos o descartados e incluya control de congestión de tráfico.2. Nivel de aplicación Es el nivel que utilizan los programas de red más comunes a fin de comunicarse a través de una red. II. 28. 2. TCP. La comunicación que se presenta en este nivel es especifica de las aplicaciones y los datos transportados desde el programa que están en el formato utilizado por la aplicación y van encapsulados en un protocolo del Nivel de Transporte. Mientras que IP (Internet Protocol). El mejor ejemplo de este nivel es TCP. provee solamente la mejor forma de entrega. Se requiere de un saludo de tres etapas: 1. Nivel de Transporte Este nivel principalmente provee lo necesario para conectar aplicaciones entre si a través de puertos. ya que se encarga de que los datos lleguen en orden.del Nivel de Red. el nivel de transporte es el primer nivel que se encarga de la fiabilidad. tanto TCP como UDP son utilizados para transportar un gran número de aplicaciones de alto nivel. En este punto tanto cliente como servidor han recibido una conformación de la conexión. una apertura pasiva. La apertura activa se realiza enviando un paquete SYN (sincroniza) hacia el servidor. éste último debe primero ligarse hacia el puerto para abrirlo para las conexiones. En respuesta. Aunque los encaminadores (routers) e interruptores (switches) no utilizan este nivel. que es un protocolo orientado hacia conexión que resuelve numerosos problemas de fiabilidad para proveer una transmisión de bytes fiable. Siendo que el modelo TCP/IP no tiene niveles intermedios. tenga un mínimo de correcciones de errores. el nivel de Aplicación debe incluir cualquier protocolo que actúe del mismo modo que los protocolos del Nivel de Presentación y Nivel de Sesión del Modelo OSI. se descarten datos duplicados.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 28. mismos que requieren un puerto disponible y específico para el servicio para los servidores y puertos efímeros.2.

a veces referido sarcásticamente como Unreliable Datagram Protocol (Protcolo no fiable de datagrama). Transferencia de datos ordenada. UDP. LAST-ACK 10. 2. SYN-RECIVED representa la espera para el TCP remoto para enviar de regreso la confirmación después de haber enviado de regreso otra confirmación de conexión al TCP remoto (establecido por el servidor TCP). envía un paquete FIN. Como consecuencia de lo anterior es que UDP es un protocolo más rápido y eficiente para tareas ligeras o sensibles al tiempo una interfaz muy simple entre el Nivel de Red y Nivel de Aplicación.TIME-WAIT 11. FIN-WAIT-1 6. pero el el otro extremo sí. Transferencia de datos libre de errores. CLOSING 9. ESTABLISHED representa que el puerto está listo para recibir/enviar datos desde/hacia el TCP remoto (lo hacen tanto clientes como servidores TCP). SYN-RECEIVED 4. que la otra parte confirma con un paquete ACK. 256 . CLOSE-WAIT 8. Por tanto. El método más común es un saludo de tres etapas donde un anfitrión A envía un paquete FIN y el anfitrión B responde con un paquete FIN y un ACK (en el mismo paso) y el anfitrión A responde con un paquete ACK. 4. Si se requiere algún tipo de fiabilidad para los datos transmitidos. es un protocolo de datagrama sin corrección. con cada extremo de la conexión terminando independientemente. no provee las garantía de fiabilidad y ordenamiento de TCP a los protocolos del Nivel de Aplicación y los datagramas pueden llegar en desorden o perderse sin notificación. III. Terminación de la conexión.CLOSED LISTEN representa la conexión en espera de peticiones desde cualquier puerto TCP remoto.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 1. UDP. LISTEN 2. una interrupción de la conexión requiere un par de paquetes FIN y ACK desde cada lado de la conexión TCP. SYN-SENT representa la espera del TCP remoto para enviar de regreso el paquete TCP estableciendo banderas SYN y ACK. El extremo que terminó la conexión ya no puede enviar datos en la conexión. ésta debe ser implementada en los niveles superiores de la pila. Esta etapa utiliza un saludo de tres vías. TCP realiza las siguientes etapas en su zócalo: 1. Una conexión puede quedar abierta a medias cuando uno de los extremos ha terminado la conexión desde su lado pero el otro extremo no. Retransmisión de paquetes perdidos. Descartado de paquetes duplicados. 5. SYN-SENT 3. Ajuste en la congestión de la transmisión de datos. Cuando uno de los extremos desea detener su parte de la conexión. TIME-WAIT representa el tiempo de espera necesario para asegurar que el TCP remoto ha recibido la confirmación de su solicitud de terminación de la conexión. ESTABLISHED 5. FIN-WAIT-2 7. 3.

2. Suma de verificación.3. es un protocolo de mejor esfuerzo o no-fiable. Es obligatorio. RTP es un protocolo de datagrama que fue diseñado para datos en tiempo real como la transmisión de audio y vídeo. La estructura de paquetes UDP consiste de 4 campos. Las aplicaciones más comunes que hacen uso de este tipo de protocolo son DNS.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Al igual que IP. • • • • Puerto de origen. Este campo es opcional: si no se utiliza.1. 257 . RTP. Es un nivel de sesión que utiliza el formato de paquetes de UDP como base. voz sobre IP (VoIP). TFTP y juegos en línea. Sin embargo se considera que este protocolo pudiera acomodar debajo del nivel de transporte del modelo TCP/IP. Puerto de destino. y a diferencia de TCP. SCTP. la conexión no se interrumpe. IP (Internet Protocol) realiza la tarea básica de capturar los paquetes de datos desde una fuente hacia un destino. Provee múltiples transmisiones distribuidos sobre una misma conexión. Está orientado también hacia transmisión de datos pero no está orientado hacia bytes como TCP. Longitud. Se desarrolló inicialmente para aplicaciones de telefonía pero se puede utilizar en otras aplicaciones. El único problema de fiabilidad que resuelve es la corrección de errores en la cabecera y datos transmitidos a través de un campo de 16 bits para suma de verificación (checksum). SCTP es un mecanismo de transporte fiable orientado hacia conexión. IP puede transportar datos para una gran cantidad de protocolos del nivel superior (Nivel de Transporte). aplicaciones de transmisión de medios. Un campo de 16 bits que especifica la longitud del datagrama completo: cabecera y datos. el valor del campo debe ser 0. La longitud mínima es de 8 bytes ya que es la longitud misma de la cabecera. 28. Identifica el puerto de destino. que es un conjunto de protocolos para redes WAN utilizando líneas telefónicas o sistema ISDN. DCCP se encuentra en fase de desarrollo y bajo la tutela de la IETF (Internet Engineering Task Force) que pretende proveer la semántica de control de flujo de TCP y el modelo de servicio de datagrama de UDP a la vista del usuario. DCCP. Puede además representar una conexión con múltiples direcciones IP de modo que si una IP falla. una forma de control de redundancia con la finalidad de proteger la integridad de datos verificando que no hayan sido corrompidos. Un campo de 16 bits que se utiliza para verificar errores en cabecera y datos. Otro ejemplo de protocolo de este nivel es X. Nivel de Red Este nivel resuelve el problema de capturar los datos a través de una red única. Encargado de identificar el puerto que envía y que se asume será el puerto hacia donde se envía la respuesta si se necesita.25.

Cuando esto se lleva a acabo. ATP. 28. NCP (NetWare Core Protocol) ASAP (Aggregate Server Access Protocol). XMPP (Extensible Messaging and Presence Protocol). XDR (External Data Representation). ASN. RPC (Remote Procedure Call). Estos procesos realizarán funciones de enlace de datos tales como añadir una cabecera de paquete para preparar la transmisión.2. UDP. FTP. El modelo OSI utiliza siete niveles.5. Del mismo modo que la pila del modelo TCP/IP. voltajes. y entonces transmitir el todo a través de un medio físico. repetidores. los datos suben por la pila del modelo TCP/IP dos veces.11 WiFi. como son disposición de pines. Whois. detalles de conectores.AFP (Apple Filing Protocol). no es realmente parte del Conjunto de Protocolos TCP/IP. FDDI.4. ISDN. SIP. RTP.2. Contempla todas las características físicas de la comunicación como la naturaleza del medio. SSH.1. sino que es el método utilizado para pasar paquetes desde el Nivel de Red sobre dos diferentes anfitriones. y otro nivel intermedio entre el Nivel de Red y el Nivel de Transporte para determinar donde corresponden los protocolos ARP y RARP. SMTP.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 28. Los dos niveles que hacen la diferencia en el Modelo OSI son el Nivel de Presentación y el Nivel de Sesión. Un claro ejemplo es que falta un nivel intermedio para acomodar entre el Nivel de Red y el Nivel de Transporte para poder determinar donde corresponden los protocolos ICMP e IGMP. potencias de señal. especificaciones de cableado. SMB (Server Message Block). concentradores. ISO 8327 / CCITT X. Este proceso puede ser controlado a través del equipamiento lógico utilizado como controlador del dispositivo para una tarjeta de red así como también sobre la Programación en firme (Firmware) o circuitos integrados auxiliares (chipsets). Nivel de Enlace Este nivel no es realmente parte del Conjunto de Protocolos TCP/IP. SCTP. ATM. sincronización y tiempo de vida así como distancias máximas. Nivel 7 6 5 Nombre Aplicación Presentación Sesión Descripción HTTP. HDLC. mismos que podrían ser equivalentes al Nivel de Aplicación del modelo TCP/IP. TLS. 802. 28. Este nivel es donde los paquetes son interceptados y enviados hacia una Red Privada Virtual (VPN). Modelo OSI El Conjunto de Protocolos TCP/IP (y su correspondiente pila) han sido utilizados antes de que se estableciera el modelo OSI (Interconexión de Sistemas Abiertos u Open Systems Interconnection) y desde entonces el modelo TCP/IP ha sido comparado con el modelo OSI tanto en libros como en instituciones educativas. SSH. ENRP Telnet.2. código de canales y modulación. SNMP. PPP Define todas las especificaciones físicas y eléctricas de los dispositivos. Token ring. 4 2 1 Transporte Enlace de datos Físico 258 . En el extremo receptor. una para la VPN y otra para el encaminamiento (routing). BSD sockets TCP.2. IL Ethernet. mientras que el modelo TCP/IP utiliza cinco. Frame relay. Ambas se relacionan pero no son equiparables. NFS. Nivel Físico Al igual que el Nivel de Enlace. el modelo OSI no es lo suficientemente diverso en los niveles inferiores para abarcar las verdaderas capacidades del Conjunto de Protocolos TCP/IP. NetBIOS. SPX. RTSP. los datos del Nivel de Enlace se consideran como los datos de la aplicación y procede descendiendo por la pila del modelo TCP/IP para realizar la verdadera transmisión. longitudes de onda.1 (Abstract Syntax Notation 1). ASP (Appletalk Session Protocol).1. Winsock. Telnet.225.

fibra óptica. mientras que los niveles inferiores del 1 al 3 se clasifican como niveles de medios.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nivel Nombre Descripción adaptadores de red. Cable. Radio. 259 . Los niveles 7 al 4 se clasifican como niveles de anfitrión. etc. Red por palomas.

161. Sin embargo. a través de TCP o UDP. Utilizando como ejemplo: www. IPv4 es un protocolo orientado hacia datos que se utiliza para comunicación entre redes a través de interrupciones (switches) de paquetes (por ejemplo a través de Ethernet). 29. b) No puede utilizar esta obra para fines comerciales. El propósito principal de IP es proveer una dirección única a cada sistema para asegurar que una computadora en Internet pueda identificar a otra. Introducción a IP versión 4 Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. la notación más común es la decimal con puntos. Puede resultar en paquetes duplicado o en desorden. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Multidifusión (Multicast). Direcciones. Hay otras notaciones basadas sobre los valores de los octetos de la dirección IP. es esto mismo lo que ha impulsado la creación de IPv6 (actualmente en desarrollo) como reemplazo eventual dentro de algunos años para IPv4. documento que dejó obsoleto al RFC 760 de Enero de 1980. IPv4 es el principal protocolo utilizado en el Nivel de Red del Modelo TCP/IP para Internet.2.org que tiene como dirección IP 201.1. muchas de estas están reservadas para propósitos especiales como redes privadas. Debido a esto se reduce el número de direcciones IP que realmente se pueden utilizar. No proporciona ni garantías sobre la corrección de los datos. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Al reutilizar o distribuir la obra.295 direcciones únicas.alcancelibre. 29.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 29.1. tiene que dejar bien claro los términos de la licencia de esta obra. Todos los problemas mencionados se resuelven en el nivel superior en el modelo TCP/IP. c) Si altera o transforma esta obra. por ejemplo.967. Representación de las direcciones. IPv4 utiliza direcciones de 32 bits (4 bytes) que limita el número de direcciones posibles a utilizar a 4.1. IPv4 es la versión 4 del Protocolo de Internet (IP o Inernet Protocol) y constituye la primera versión de IP que es implementada de forma extensiva. 29.294.alcancelibre. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. No proporciona garantía en la entrega de datos.2. Tiene las siguientes características: • • • • Es un protocolo de un servicio de datagramas no fiable (también referido como de mejor esfuerzo). Usted es libre de copiar. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. o genera una obra derivada. etc. Introducción.1 © 1999-2011 Joel Barrios Dueñas.226 en la notación decimal con puntos: 260 . Fue descrito inicial mente en el RFC 791 elaborado por la Fuerza de Trabajo en Ingeniería de Internet (IETF o Internet Engineering Task Force) en Septiembre de 1981. Cuando se escribe una dirección IPv4 en cadenas. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.

La forma hexadecimal convertida a octal. Teóricamente. La forma hexadecimal convertida a decimal.0241.1.1. Asignación Desde 1993 rige el esquema CIDR (Classless Inter-Domain Routing o Encaminamiento InterDominios sin Clases) cuya principal ventaja es permitir la subdivisión de redes y permite las entidades sub-asignar direcciones IP.0.0.10100001.0/16 Descripción Red actual (solo válido como dirección de origen) Red Privada Red de datos públicos Reservado Anfitrión local (localhost) Reservado Referencia RFC 1700 RFC 1918 RFC 1700 RFC 1797 RFC 1700 261 . Cada octeto es convertido individualmente a octal. y hasta 1998 fue supervisada por la IANA (Internet Assigned Numbers Authority o Agencia de Asignación de Números Internet) y sus RIR (Regional Internet Registries o Registros Regionales de Internet).0.11100010 0xC9A101E2 3382772194 31150200742 11001001101000010000000111100010 Conversión desde decimal con puntos Cada octeto de la dirección es convertido individualmente a hexadecimal.0x01.0. cada octeto puede ser representado en combinación de diferentes bases. Cada octeto es convertido individualmente a binario Concatenación de los octetos de hexadecimal con puntos.0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Notación Decimal con puntos Hexadecimal con puntos Octal con puntos Binario con puntos Hexadecimal Decimal Octal Binario Valor 201.0xA1. Además.0342 11001001. Ejemplo: 201.0xE2 0311. El principio fundamental del encaminamiento (routing) es que la dirección codifica información acerca de localización de un dispositivo dentro de una red. todos estos formatos mencionados deberían ser reconocidos por los navegadores (sin combinar).0.161.0x01.0.0. Esto implica que una dirección asignada a una parte de una red no funcionará en otra parte de la red. Desde el 18 de Septiembre de 1998 la supervisión está a cargo de la ICANN (Internet Corporation for Assigned Names and Numbers o Corporación de Internet para los Nombres y Números Asignados).00000001. en las formas con puntos.0. 29.226 0xC9. Existe una estructura jerárquica que se encarga de la asignación de direcciones de Internet alrededor del mundo.0/8 10.0/8 14.0/8 127.0241. Esta estructura fue creada para el CIDR.0/8 39.0.226.0. 29. La información obtenida a partir de estas búsquedas juega un papel central en numerosas herramientas las cuales se utilizan para localizar direcciones IP geográficamente. Cada RIR mantiene una base de datos WHOIS disponible al publico y que permite hacer búsquedas que proveen información acerca de las asignaciones de direcciones IP. Bloques de direcciones reservadas Bloque de direcciones CIDR 0. Bloques reservados. como haría un ISP con un cliente.3.3.0. La forma hexadecimal convertida a binario.0/8 128.0001.

0.3.0. sea pública o privada.255.168.99.777. sin embargo. el rango 127.576 65.0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Bloque de direcciones CIDR 169.168.0.0.0/24 192.0 – 10.0/24 192.255 172.0 – 127. Bloques reservados para redes privadas Nombre Bloque de 24bits Bloque de 20bits Bloque de 16bits Rango de direcciones IP 10.048.255.0/4 255.0/12 191.0.215 1.255. Estos rangos no tienen encaminamiento fuera de una red privada y las máquinas dentro de estas redes privadas no pueden comunicarse directamente con las redes públicas.16.255.0.254.255.0 – 192. De los más de cuatro mil millones de direcciones permitidas por IPv4. o 127.0/12 192.255.0/16 198.535 Tipo de clase Única clase A 16 clases B contiguas 256 clases C contiguas Bloque CIDR mayor 10.255 192.0.16.255.18.0. tres rangos están especialmente reservados para utilizarse solamente en redes privadas.0.0.255.0/24 192.0 – 172.0.16.1.1.255. comunicarse hacia redes públicas a través de la Traducción de Direcciones de Red o NAT (Network Address Translation).0/15 223. Pueden. y cualquier paquete enviado hacia cualquier dirección de este rango deberá regresar como un paquete entrante hacia la misma máquina.255.0/8 172.168.2.0.0/24 224.3.168. Redes privadas.0. antes red Clase D) Reservado (Antes red Clase E) Difusiones (Broadcast) 29.0/4 240.255 Red de pruebas Descripción Red Privada (Zeroconf) Red Privada Referencia RFC 3927 RFC 1918 RFC 3330 RFC 3068 RFC 1918 RFC 2544 RFC 3330 RFC 3171 RFC 1700 Retransmisión desde IPv6 hacia IPv4 Red Privada Pruebas de desempeño de red Reservado Multidifusión (Multicast.1.2.0.0.88.255. Ninguna dirección de este rango deberá aparecer en una red.0.0.255 Numero de direcciones IP 16.0. 262 .0.0. está reservado para la comunicación del anfitrión local (localhost).0/16 29.0. Anfitrión local (Localhost) Además de las redes privadas.255.0/8 en la notación CIDR.31.0.0/16 192.0/16 172.0.

La máscara de sub-red es utilizada para separar los bits de un identificados de una red a partir de los bits del identificados del anfitrión.252 /31 255.255.0. Algunos segmentos del espacio de direcciones de IP.0 /18 255.0.255.0.0 /15 255.128. o Solicitud De Comentarios).254.0.0.0 /10 255.255.128.255. sugerida para enlaces punto a punto (RFC 3021) Ruta del anfitrión Clase C LAN grande LAN grande LAN pequeña LAN pequeña LAN pequeña Clase B ISP / negocios grandes ISP / negocios grandes ISP / negocios grandes ISP pequeños / negocios grandes ISP pequeños / negocios grandes Nombre de la clase Clase A Uso típico Bloque más grande definido por la IANA /8 255.224.0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 29.255.255.0 /25 255. RFC 1643).192. antes ARPANET.254 /32 255.255.0 /12 255.240. CIDR Máscara de sub-red Anfitriones 16777216 8388608 4194304 2097152 1048576 524288 262144 131072 65536 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 Redes de unión (enlaces punto a punto) Red no utilizable.0.192.4.0 /20 255.254.0 /16 255.255. Se escribe utilizando el mismo tipo de notación para escribir direcciones IP.255.248.224 /28 255.240 /29 255.0 /13 255.0 /14 255.0.255.255.0 /21 255.255.0 /17 255. Ejemplos de esto son los usos del Retorno del sistema (loopback. que son conjuntos de notas técnicas y de organización que se elaboran desde 1969 donde se describen los estándares o recomendaciones de Internet.0 /22 255.255.255.248.0 /9 255.0.255.248 /30 255.255. disponibles para la versión 4.255.255.224.255.255.252. se especifican y asignan a través de documentos RFC (Request For Comments.128 /26 255.255. las redes privadas (RFC 1918) y Zeroconf (RFC 3927) que no están bajo el control de los RIR (Regional Internet Registries o Registros Regionales de Internet). Referencia de sub-redes de IP versión 4.255.252.255.0 /23 255.240.255 263 .0 /19 255.255.255.0.0 /24 255.0 /11 255.192 /27 255.255.

org/rfc/rfc3330.org/rfc/rfc3171.txt http://www.org/rfc/rfc3021.ietf.ietf.txt http://www.org/rfc/rfc1700.txt http://www.ietf.ietf.org/rfc/rfc1643.ietf.org/rfc/rfc760.txt http://www.txt http://www. Referencias.txt http://www.ietf.txt http://www.txt 264 .ietf.org/rfc/rfc3068.org/rfc/rfc791.txt http://www.ietf.ietf.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 29.org/rfc/rfc3927.txt http://www.txt http://www.5. • • • • • • • • • • • • http://www.ietf.org/rfc/rfc2544.org/rfc/rfc1797.txt http://www.ietf.ietf.org/rfc/rfc1918.

visite hardware.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. y saber cómo utilizar cualquier editor de texto simple.2. Usted es libre de copiar. 30. es innecesario configurar parámetro alguno mientras los dispositivos de red sean compatibles y exista un controlador para la versión del núcleo (kernel) ejecutado.1. Si acaso no fuese detectado el dispositivo de red debido a la ausencia de kudzu.2. Puede verificarse el módulo correspondiente a la tarjeta de red consultando el archivo anteriormente mencionado: 265 . Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. c) Si altera o transforma esta obra. Esto puede determinarse examinando físicamente la tarjeta de red o bien examinando a detalle la salida en pantalla que se obtiene al ejecutar el siguiente mandato: lspci | grep Ethernet Lo anterior devuelve una salida similar a la siguiente (en el caso de una tarjeta 3Com 905 C) Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] (rev 120). En CentOS 6 y Red Hat Enterprise Linux 6. mientras se trate de tarjetas de red soportadas. puede modificarse.32.1 © 1999-2011 Joel Barrios Dueñas. Emacs. que utiliza núcleo de Linux versión 2. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Al reutilizar o distribuir la obra. De ser necesario. Introducción Configurar los parámetros de red en una estación de trabajo GNU/Linux o un servidor es realmente simple. o gEdit. la detección de las tarjetas de red es realizada o bien por el programa de instalación.com. En términos generales.1. b) No puede utilizar esta obra para fines comerciales. como Vi. IP versión 4. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. o bien a través de kudzu. lo que es importante es que se determine con exactitud que circuito integrado auxiliar (chipset) utiliza la tarjeta de red.alcancelibre.6. o genera una obra derivada.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 30. la detección de las tarjetas de red es automática. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. un servicio que inicia junto con el sistema y que se encarga de detectar y configurar los dispositivos de sustento físico (hardware) instalados. La marca de la tarjeta de red es lo que menos interesa. Cómo configurar los parámetros de red en Linux. 30. tiene que dejar bien claro los términos de la licencia de esta obra. el archivo /etc/modprobe. con un editor de textos. En CentOS 5 y Red Hat Enterprise Linux 5. Solamente requerirá de algunos conocimientos básicos acerca de TCP/IP. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Para consultar la lista de tarjetas de red compatibles. Detección y configuración del sustento físico (hardware).conf.redhat. es posible configurar todo manualmente. Procedimientos 30.

o bien un escritorio.2.16. o bien se llevarán a cabo cambios poco frecuentes de la configuración de los dispositivos de red del sistema. solo basta con modificar el parámetro NM_CONTROLLED del archivo de configuración de la interfaz deseada.255. chkconfig NetworkManager off service NetworkManager stop 266 . NetworkManager ignorará ésta por completo. salvo que se haga la instalación mínima o la instalación básica de servidor.255.1 DOMAIN=dominio. también se puede desactivar por completo el servicio NetworkManager. Ejemplo: DEVICE=eth0 ONBOOT=yes BOOTPROTO=static HWADDR=44:87:FC:AA:DD:2D NM_CONTROLLED=no IPADDR=172.8. y establecer no como valor de éste. Ejemplo: ls /lib/modules/2.6.16.6.18-274.192 GATEWAY=172. y que se pueda iniciar junto con el servicio network. se incluye una implementación alternativa para la gestión de parámetros de red desde la interfaz de usuario. y ahorrar alrededor de un de MB de RAM.4. En CentOS y Red Hat Enterprise Linux 5 viene desactivada de modo predeterminado. Sin embargo en CentOS 6 y Red Hat Enterprise Linux 6.el5PAE/kernel/drivers/net/ 30. la lista de módulos existentes en el sistema que se pueden utilizar para distintos circuitos integrados auxiliares de distintos modelos de tarjetas de red se puede obtener listando el contenido del directorio /lib/modules/[versión del núcleo]/kernel/drivers/net/.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux alias eth0 3c59x Si se realizó alguna edición de este archivo. El uso de NetworkManager solo tiene sentido en una computadora portátil que se conecta a múltiples redes inalámbricas. a fin de actualizar dependencias: depmod -a Si utiliza un núcleo de la serie 2. Si se desea impedir que NetworkManager gestione alguna interfaz de red en particular. NetworkManager. este servicio viene activo. dentro del directorio /etc/sysconfig/network-scripts/.1. Desde CentOS 5 y Red Hat Enterprise Linux 5.x o 2.8.4.2.1.tld DNS1=8.4 Mientras esté establecido NM_CONTROLLED=no en la configuración de la interfaz de red.8.8 DNS2=8. por lo que permite trabajar normalmente. Si va a prescindir del uso del modo gráfico. deberá de ejecutarse el siguiente mandato.50 NETMASK=255.

y verificar que sus parámetros de red sean los correctos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 30.2. Ejemplo: DEVICE=eth0 ONBOOT=yes BOOTPROTO=static NM_CONTROLLED=no IPADDR=172. DNS2 y DNS3. y debe verificarse que este diferenciado el eco o retorno del sistema del nombre del sistema.1.1 172.1 Los parámetros anteriores son proporcionados por el administrador de la red local en donde se localice la máquina que está siendo configurada.2.tld localhost nombre Se debe establecer un nombre para el sistema.3.3. Ejemplo: 267 . Ejemplo: 127. se pueden establecer añadiendo al archivo ifcfg-eth0. En el caso de sistemas sin conexión a red o sistemas caseros. 30.3.50 localhost. o bien definidos de acuerdo a una planificación previamente establecida. 30.16. el parámetro DOMAIN y los parámetro DNS1.1. Hay dos parámetros a configurar: dominio de búsqueda predeterminado y al menos un servidor de nombres.tld 30. específicamente la que esté asociado a dicho nombre en el servidor del sistema de nombres de dominio (DNS) si se cuenta con uno en la red local. el cual deberá estar asociado a una de las direcciones IP.1.16. Servidores de nombres.dominio.localdomain nombre.255.192 GATEWAY=172. que se encontrará del directorio /etc/sysconfig/network-scripts/. Nombre del anfitrión (HOSTNAME).255.50 NETMASK=255. el nombre del anfitrión (hostname) del sistema se definirá dentro del archivo /etc/sysconfig/network del siguiente modo: NETWORKING=yes HOSTNAME=nombre. Debe modificarse con un editor de textos el archivo /etc/hosts. Asignación de parámetros de red.2. Dirección IP. el archivo localizado en la ruta /etc/sysconfig/network-scripts/ifcfg-eth0.2.1. De tal modo.3.16.0.3.0. Debe modificarse con cualquier editor de textos. El administrador de la red deberá proporcionar una dirección IP disponible (IPADDR) y una máscara de la subred (NETMASK). máscara de subred y puerta de enlace. Este deberá ser un FQDN (acrónimo de Fully Qualified Domain Name o Nombre de Dominio Plenamente Calificado) resuelto por un servidor de nombres de domino (DNS) o bien. En CentOS 6 y Red Hat Enterprise Linux 6.dominio.2. sea resuelto de manera local en el archivo /etc/hosts.

conf. Si se requiere establecer las rutas estáticas adicionales para obtener conectividad con otras redes y que los cambios sean permanentes.36 eth1 Es un requisito que la puerta de enlace de destino sea alcanzable desde el dispositivo utilizado.xxx NETMASK0=xxx.xxx.4.tld nameserver 8.xxx. los cambios se perderán.3. donde se establecerán los servidores del sistema de resolución de nombres de dominio (DNS). Las rutas estáticas se pueden añadir utilizando el mandato route.255. puerta de enlace a través de la dirección IP 172.16.1.16.4.255.8.255.8 DNS2=8.36 y a través del dispositivo de red eth1: route add -net 192.255.4.1.4 Lo anterior actualizará automáticamente el archivo /etc/resolv. debe modificarse con un editor de textos al archivo /etc/resolv.xxx. red a la que se quiere acceder y la máscara de subred correspondiente.xxx.192 gw 172. Ejemplo: search dominio.1.8.xxx.50 NETMASK=255.xxx ADDRESS0=xxx.16. en donde se establecen los valores para puerta de enlace.8.0 con máscara 255.0 netmask 255. siguiendo la siguiente sintaxis: route add -net [red-destino] netmask [máscara] gw [puerta-de-enlace] dispositivo En el siguiente ejemplo se definirá la ruta estática hacia la red 192.255.tld DNS1=8.xxx 268 . se pueden generar archivos para cada interfaz que sea necesario.3.192 GATEWAY=172.conf con el contenido que corresponda. En CentOS 5 y Red Hat Enterprise Linux 5 (y versiones anteriores de éstos).1 DOMAIN=dominio.255.168.1. Una ruta estática no puede ser establecida si no es posible alcanzar la puerta de enlace necesaria.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux DEVICE=eth0 ONBOOT=yes BOOTPROTO=static NM_CONTROLLED=no IPADDR=172.xxx.4 30.8.8.8. Agregar rutas estáticos.16.168. Los archivos se deben generar dentro del directorio /etc/sysconfig/network-scripts/ como route-[interfaz] y deben llevar el siguiente formato: GATEWAY0=xxx.2.192. Si se reinicia el servicio de red.8 nameserver 8.

ip_forward = 1: net. sin reiniciar el sistema.conf.0 NETMASK0=255.168.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Por citar un ejemplo.ip_forward=1 30.0 y 192.168.ip_forward = 1 Para aplicar el cambio.16. y estableciendo 1 para activar.168.255. imaginemos que nos encontramos dentro de la red 172.ipv4.168.2. Si dispone de al menos 2 dispositivos de red y se tiene planeado implementar un NAT o DNAT.2.1 y 192. Después de hacer configurado todos los parámetros de red deseados.168. solo deberá de ser reiniciado el servicio de red.255. a través de las puertas de enlace o enrutadores o encaminadores con dirección IP 192. solo es necesario ejecutar lo siguiente: sysctl -w net.ipv4.2.255.168.1 ADDRESS1=192.3. La configuración de /etc/sysconfig/network-scripts/route-eth0 sería la siguiente: GATEWAY0=192. ping -c3 172. Función de Reenvío de paquetes para IP versión 4.255.168.ip_forward = 0 por net.168.ipv4.3.2.16. a través de la primera interfaz Ethernet del sistema (eth0).conf Y cambiando net.3. ejecutando lo siguiente: service network restart Basta solamente comprobar si hay realmente conectividad.2.3.255. Puede ejecutarse el mandato ping hacia cualquier dirección de la red local para tal fin. con máscaras 255.1. se debe habilitar el reenvío de paquetes para IP versión 4.1 ADDRESS0=192.1. Esto se realiza editando el archivo /etc/sysctl.0 y se requiere establecer conectividad con las redes 192.5.192 30.192 GATEWAY1=192.0 NETMASK1=255.192.255.ipv4.1 Las interfaces y la información de las mismas se puede examinar utilizando: ifconfig Las rutas estáticas se pueden comprobar utilizando el siguiente mandato: route -n 269 . o bien dejar 0 para mantener inactivo: vim /etc/sysctl.6.2. correspondientemente para cada red citada.0.1. Comprobaciones.

por ejemplo).255.16.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:264830 errors:0 dropped:0 overruns:0 frame:0 TX packets:255396 errors:0 dropped:0 overruns:0 carrier:0 collisions:348 txqueuelen:1000 RX bytes:42375618 (40. 270 . también conocido como Zero Configuration Networking o Automatic Private IP Addressing (APIPA).1 Mask:255. Es un conjunto de técnicas que automáticamente crean una dirección IP utilizable sin necesidad de configuración de servidores especiales. deberá regresar algo como lo siguiente eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:172. por ejemplo). al ejecutar el mandato ifconfig.192 La comprobación. el sistema tiene habilitado Zeroconf.8.63 Mask:255.16. y otro conjunto de equipos lo hagan con una dirección IP distinta (una DMZ. El archivo se genera igualmente con el nombre del dispositivo con el prefijo ifcfg-.63 Mask:255.1 Bcast:172.1. dentro del directorio /etc/sysconfig/network-scripts/.254 NETMASK=255. De modo predeterminado.16.2 Bcast:172. máscara de subred y el nombre del dispositivo. También son útiles en los muros cortafuegos donde se quiere que un conjunto de equipos salgan hacia Internet enmascarados con una IP (una LAN. Basta definir solamente la dirección IP.255. Ejemplo del contenido del archivo /etc/sysconfig/networkscripts/ifcfg-eth0:0 que corresponde al primer dispositivo virtual del primer dispositivo ethernet: DEVICE=eth0:0 IPADDR=192.1. Son útiles en los casos en los cuales se tiene un servicio de hospedaje de páginas de Internet.2. y se desea que cada sitio tenga su propia dirección IP.3 MiB) Interrupt:11 Base address:0xd000 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:172.tld 30.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2590 errors:0 dropped:0 overruns:0 frame:0 TX packets:2590 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3327899 (3.255.255. Alta de direcciones IP virtuales Las direcciones IP virtuales sirven para que el sistema responda para más de una dirección IP a través del mismo dispositivo de red. utilizando: host dominio.1. se puede realizar una consulta hacia los servidores DNS definidos para el sistema.1.16.1 MiB) eth0:0 lo 30.0.7.255.1 MiB) TX bytes:3327899 (3.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:11 Base address:0xd000 Link encap:Local Loopback inet addr:127.2. Permite a usuarios sin conocimientos de redes conectar computadoras.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para comprobar si hay resolución de nombres. impresoras en red y otros artículos entre sí.4 MiB) TX bytes:20306080 (19.0.255.0.168.0. La función Zeroconf. y a fin de permitir la comunicación entre dos diferentes sistemas a través de un cable RJ45 cruzado (crossover).2.

0.0.255. no es conveniente desactivar este soporte si se va a hacer uso del modo gráfico. Por tanto. estos son avahi-daemon y avahi-dnsconfd.255.16.255.0 0.16.tld NOZEROCONF=yes Al terminar. puede consultarla información disponible en: • • http://www.0 0.0 0.0.255.0 al utilizar el mandato route -n.org/wiki/Zeroconf Ejercicios.255.0 172.255 0.192 255.0. Estando habilitado Zeroconf se mostrará un registro en la tabla de rutas estáticas para la red 169.0.2.org/ http://en.0.1.0.255.0.0 172.0.0 169.0. devolviendo una salida similar a la siguiente: 172.0.0 127.zeroconf.1 255.9. Para más detalles acerca de Zeroconf.255. existen dos servicios en el sistema en CentOS y Red Hat™ Enterprise Linux 5 y versiones posteriores.0.255 0.dominio.0 U U U UG 0 0 0 0 0 0 0 0 0 0 0 0 eth0 eth0 lo eth0 Si se desea desactivar Zeroconf. Rutas estáticas.1.0 0. Desactivar estos dos servicios ahorrará tiempo en el arranque y se consumirán algunos pocos menos recursos de sistema.1.0.0.255.0 127.0.255.1 255.0.16.0 0. solo hay que reiniciar el servicio de red para que surtan efecto los cambios y comprobar de nuevo con el mandato route -n que la ruta para Zeroconf ha desaparecido: 172.0 0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Sin Zeroconf los usuarios sin conocimientos tendrían que configurar servidores especiales como DHCP y DNS para poder establecer conectividad entre dos equipos.0 255. chkconfig avahi-dnsconfd off chkconfig avahi-daemon off service avahi-dnsconfd stop service avahi-daemon stop Muchas aplicaciones y componentes para el modo gráfico dependen de Zeroconf para su correcto funcionamiento.0 0.16.0 U U UG 0 0 0 0 0 0 0 0 0 eth0 lo eth0 Una vez hecho lo anterior.254.0. solo bastará añadir en el archivo /etc/sysconfig/network el parámetro NOZEROCONF con el valor yes: NETWORKING=yes HOSTNAME=nombre.wikipedia.0. que se pueden desactivar puesto que sirven para establecer la comunicación a través de Zeroconf.0.254.0. Este ejercicio considera lo siguiente: 271 .0.0.1. 30.0.0.0.192 255.

255.0.dominio los registros de la tabla de rutas estáticas.1 Genmask 255.16.0.0.0 255.0.240 Flags U UG UG Metric 0 0 0 Ref 0 0 0 Use 0 0 0 Iface eth0 eth0 eth0 272 .1) 56(84) bytes of data.255.16. --. route -n Obtendrá una salida similar a la siguiente: Kernel IP routing table Destination Gateway 172.16.255.2.255.255.0 \ netmask 255.1.3.0.192 en el dispositivo eth0.3.3.255.0.61 \ eth0 Visualice de nuevo los registros de la tabla de rutas estáticas.3.10.1 10.2.2.255.dominio.3.2. mascará de subred y puerta de enlace necesarios para llegar hacia 10. Carece de otros dispositivos de red activos.192 0.1.0 172.1 El resultado esperado es que ping devuelva que hay 100% de pérdida de paquetes.3.tld tiene una dirección IP 172.16.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 1.dominio.0 172.0.0 172. pc2.1 con máscara de subred 255. Una dirección IP 10.240 en el dispositivo eth1.16.0 Flags Metric Ref U 0 0 UG 0 0 Use Iface 0 eth0 0 eth0 Intente ejecutar ping hacia la dirección recién añadida en pc1.1. time 1999ms Proceda a añadir la ruta estática que corresponde especificando la red.0 0.1.61 con máscara de subred 255.2.0 0. pc1. Se tiene dos equipos de cómputo con GNU/Linux instalado en ambos.1. route -n Obtendrá una salida similar a la siguiente: Kernel IP routing table Destination Gateway 172.0.tld tiene una dirección IP 172. PING 10.240 \ gw 172.1 (10.192 en el dispositivo eth0. 100% packet loss.16.2.0 0.0.255.192 0.1.0.102 (o cualquiera otra en el mismo segmento) con máscara de subred 255. 2.255.0.255.255. route add \ -net 10.16.255.255.0.1 Genmask 255.0 0.2.1.1.3. Visualice desde pc2.1.2.dominio.3.1 ping statistics --3 packets transmitted. ping -c 3 10.16. 3. 0 received.255.

61 Al terminar reinicie el servicio de red.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Intente ejecutar ping hacia la dirección recién añadida en pc1.1 273 .1.1 64 bytes from 64 bytes from 64 bytes from (10.0.0.453/0.0. time 1999ms rtt min/avg/max/mdev = 0.368 ms 10.dominio. service network restart Visualice nuevamente los registros de la tabla de rutas estáticas.2.3. 3 received.2.1 Para hacer permanente el registro en la tabla de rutas estáticas utilice un editor de texto el archivo /etc/sysconfig/network-scripts/route-eth0.240 GATEWAY0=172.3.16.255.255.453 ms 10. service network restart route -n ping -c 3 10.048 ms.0.240 Flags U UG UG Metric 0 0 0 Ref 0 0 0 Use 0 0 0 Iface eth0 eth0 eth0 Intente ejecutar ping hacia la dirección recién añadida en pc1.1.3. pipe 2 Reinicie el servicio de red.2.2.3.2.1 Genmask 255.1.255.16.dominio.1: icmp_seq=1 ttl=64 time=0.389/0.10. 0% packet loss.0 NETMASK0=255.2.0 0. y ponga el siguiente contenido: ADDRESS0=10. route -n Lo anterior debe devolver una salida similar a la siguiente: Kernel IP routing table Destination Gateway 172.3.1) 56(84) bytes of data. ping -c 3 10.0 255. 10.2.1 El resultado esperado es que ping responda al ping.1 porque el registro en la tabla de rutas estáticas fue eliminado al reiniciar el servicio de red.1.1 10.255.0 0.255.192 0.3.0 172.0 172. visualice de nuevo los registros de la tabla de rutas estáticas y compruebe que ya no hay respuesta al hacer ping hacia 10.16. ping -c 3 10.3.1 ping statistics --3 packets transmitted.347 ms --.2.0.2.1: icmp_seq=2 ttl=64 time=0.3.0.3.2.2.16.2.347/0.3.255.1: icmp_seq=0 ttl=64 time=0.3.3. obteniéndose una salida similar a la siguiente: PING 10.

192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24784 errors:0 dropped:0 overruns:0 frame:0 TX packets:23366 errors:0 dropped:0 overruns:0 carrier:0 collisions:112 txqueuelen:1000 RX bytes:15323317 (14.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1337 errors:0 dropped:0 overruns:0 frame:0 TX packets:1337 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:125102 (122.192. con máscara de subred 255.2.255.16.16.16.tld tiene una dirección IP 172.0.1 Mask:255. 100% packet loss.1. --. ifconfig Lo anterior debe devolver una salida similar a la siguiente.1.51) 56(84) bytes of data. Visualice las interfaces de red activas en el sistema.5 MiB) Interrupt:11 Base address:0xd000 Link encap:Local Loopback inet addr:127.16. Ejercicio: Direcciones IP virtuales.0.dominio.1 KiB) lo Utilice ping para comprobar si acaso hay alguna respuesta desde la interfaz virtual eth0:0. ping -c3 172.1 30.3.1.1.63 Mask:255. Se añadirá como interfaz virtual (eth0:0) la dirección IP 172. 2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Reinicie el servicio de red.255. pc1. service network restart route -n ping -c3 10. time 1999ms 274 . 0 received.0.255.50. Carece de otros dispositivos de red activos.2.255.192 en el dispositivo eth0.1.16.16.1.255.1 KiB) TX bytes:125102 (122. Se tiene dos (o más) equipos de cómputo con GNU/Linux instalado en éstos.51.16. donde se mostrará que solo están activas la interfaz eth0 y la correspondiente al dispositivo del retorno del sistema (loopback): eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:172. 3. Este ejercicio considera lo siguiente: 1. con máscara de subred 255.255.51 Lo anterior debe devolver una salida similar a la siguiente: PING 172.50 Bcast:172.6 MiB) TX bytes:5794288 (5.2.0.1.3.16.10. visualice de nuevo los registros de la tabla de rutas estáticas y compruebe de nuevo que hay respuesta al hacer ping hacia 10.1.172.1.51 (172.51 ping statistics --3 packets transmitted.

1.0.16. service network restart 275 .51 (172.1 KiB) eth0:0 lo Reinicie el servicio network.16.51 Bcast:172.389/0.1 KiB) TX bytes:125102 (122. time 1999ms rtt min/avg/max/mdev = 0.51: icmp_seq=0 64 bytes from 172.63 Mask:255.63 Mask:255.255.255.0.255.1.1.0. ttl=64 time=0.255.16.347/0.048 ms.1.51: icmp_seq=2 bytes of data.1.347 ms --.255.453 ms ttl=64 time=0. ifconfig Lo anterior debe devolver una salida similar a la siguiente.50 Bcast:172. Si la sintaxis fue correcta.16.51) 56(84) 64 bytes from 172.1.1.51 Lo anterior debe devolver una salida similar a la siguiente: PING 172.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Configure a través de ifconfig los parámetros de la interfaz virtual eth0:0. el sistema no deberá devolver mensaje alguno.1.16.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:11 Base address:0xd000 Link encap:Local Loopback inet addr:127.16.1 Mask:255. donde se mostrará que está activa la interfaz eth0:0 junto con la interfaz eth0 y la correspondiente al dispositivo del retorno del sistema (loopback): eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:172.0.192 Utilice ping para comprobar que haya respuesta desde la interfaz virtual eth0:0.51 netmask 255. ifconfig eth0:0 172.51: icmp_seq=1 64 bytes from 172.51 ping statistics --3 packets transmitted.16.1.1.1. pipe 2 Visualice las interfaces de red activas en el sistema.16.1.368 ms ttl=64 time=0.5 MiB) Interrupt:11 Base address:0xd000 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:172.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1337 errors:0 dropped:0 overruns:0 frame:0 TX packets:1337 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:125102 (122.255. 0% packet loss. 3 received.16.16. ping -c3 172.172.16.453/0.16.6 MiB) TX bytes:5794288 (5.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24784 errors:0 dropped:0 overruns:0 frame:0 TX packets:23366 errors:0 dropped:0 overruns:0 carrier:0 collisions:112 txqueuelen:1000 RX bytes:15323317 (14.

time 1999ms Visualice las interfaces de red activas en el sistema.255. 100% packet loss.0.63 Mask:255.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1337 errors:0 dropped:0 overruns:0 frame:0 TX packets:1337 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:125102 (122.16.255.192 Reinicie el servicio de red.1.16.1.1 KiB) lo Para hacer permanente la interfaz de red virtual en eth0:0 utilice un editor de texto el archivo /etc/sysconfig/network-scripts/ifcfg-eth0:0 y ponga el siguiente contenido (¡Respete mayúsculas y minúsculas!): DEVICE=eth0:0 IPADDR=172.51 ping statistics --3 packets transmitted.51) 56(84) bytes of data. --.172. ifconfig 276 .1.6 MiB) TX bytes:5794288 (5.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Utilice el mandato ping para comprobar si aún hay respuesta desde la interfaz virtual eth0:0. service network restart Visualice las interfaces de red activas en el sistema.51 Lo anterior debe devolver una salida similar a la siguiente: PING 172. y solo se muestran activas la interfaz eth0 y la correspondiente al dispositivo del retorno del sistema (loopback): eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:172. ifconfig Lo anterior debe devolver una salida similar a la siguiente.16.16.0.50 Bcast:172.1. ping -c3 172.1.0.1.16.255.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24784 errors:0 dropped:0 overruns:0 frame:0 TX packets:23366 errors:0 dropped:0 overruns:0 carrier:0 collisions:112 txqueuelen:1000 RX bytes:15323317 (14.255.0. 0 received.51 NETMASK=255.1 Mask:255.16.16.1 KiB) TX bytes:125102 (122. donde se mostrará que ya no está activa la interfaz eth0:0.51 (172.5 MiB) Interrupt:11 Base address:0xd000 Link encap:Local Loopback inet addr:127.1.

0.51) 56(84) 64 bytes from 172.51: icmp_seq=1 64 bytes from 172. donde nuevamente se mostrará que está activa la interfaz eth0:0 junto con la interfaz eth0 y la correspondiente al dispositivo del retorno del sistema (loopback): eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:172.51 Lo anterior debe devolver una salida similar a la siguiente: PING 172.16.16. 0% packet loss.0. time 1999ms rtt min/avg/max/mdev = 0.1.51: icmp_seq=0 64 bytes from 172.50 Bcast:172.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior debe devolver una salida similar a la siguiente.168.453 ms ttl=64 time=0.048 ms.16.0.1.51 Bcast:192.51 ping statistics --3 packets transmitted.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24784 errors:0 dropped:0 overruns:0 frame:0 TX packets:23366 errors:0 dropped:0 overruns:0 carrier:0 collisions:112 txqueuelen:1000 RX bytes:15323317 (14.347 ms --.16.255.1 KiB) TX bytes:125102 (122.16.1 Mask:255.51: icmp_seq=2 bytes of data.255. pipe 2 La interfaz eth0:0 estará activa la siguiente vez que inicie el sistema operativo con la dirección IP y máscara de subred asignados.63 Mask:255. 277 .16.1.16.347/0.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:11 Base address:0xd000 Link encap:Local Loopback inet addr:127.453/0.1.1. ttl=64 time=0.368 ms ttl=64 time=0.1.1.1.16.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1337 errors:0 dropped:0 overruns:0 frame:0 TX packets:1337 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:125102 (122.255.0.6 MiB) TX bytes:5794288 (5.1 KiB) eth0:0 lo Utilice el mandato ping para comprobar que haya respuesta desde la interfaz virtual eth0:0.5 MiB) Interrupt:11 Base address:0xd000 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:172. ping -c3 172.255.16.16.1.172.255 Mask:255.51 (172.1.389/0. 3 received.1.

Introducción.1q).. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. tiene que dejar bien claro los términos de la licencia de esta obra. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación.alcancelibre. Cómo configurar VLANs en GNU/Linux. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 31.1. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. o Red de Área Local Virtual) es un método para crear redes lógicamente independientes dentro de una misma red física. y entender perfectamente IP versión 4. Licencia completa en castellano. Usted es libre de copiar. por entidades con fines de lucro). impidiendo que puedan intercambiar datos usando la red local.2. Varias VLANs pueden coexistir en un único conmutador físico o en una única red física. Equipamiento lógico necesario. los cuales deberán estar previamente configurados para gestionar algunas VLANs (y saber cómo hacerlo). Procedimientos. 31. Al reutilizar o distribuir la obra. c) Si altera o transforma esta obra. o genera una obra derivada. mismo que permitirá que posteriormente cargue automáticamente el módulo 8021q del núcleo de Linux: VLAN=yes Asumiendo que se utiliza la interfaz eth1 para acceder a la red local.3.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. a través de cualquier medio. Son útiles para reducir el tamaño del dominio de difusión y ayudan en la administración de la red. editar el archivo de configuración: vim /etc/sysconfig/network-scripts/ifcfg-eth1 278 . separando segmentos lógicos de una red de área local. «una VLAN (acrónimo de Virtual LAN. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.» Su implementación requiere de disponer de conmutadores (switches) con capacidad para VLAN (protocolo 802. El soporte necesario para configurar VLANs se incluye junto con el paquete vconfig. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. mismo que puede instalarse del siguiente modo en CentOS 5 y Red Hat Enterprise Linux 5 y versiones posteriores de éstos: yum -y install vconfig 31. De acuerdo a Wikipedia. Editar el archivo /etc/sysconfig/network: vim /etc/sysconfig/network Añadir el siguiente parámetro para activar el soporte para VLAN.1 © 1999-2011 Joel Barrios Dueñas. 31.

0.0/26. se utiliza nuevamente el mandato vconfig.3 172.192 En caso de que sea necesario.1 o eth0.16. Se debe evitar usar la VLAN 1 (eth1.1 como IP para el servidor. dentro del directorio /etc/sysconfig/network-scripts.0. seguido del nombre del dispositivo VLAN.4 172. así como también evitar utilizar la red 172.255.255. los archivos de configuración de interfaz.16.número-vlan El número de VLAN. es necesario crear. y segmento de red que regularmente utilizan los conmutadores. 279 .192 ifconfig eth1.255.16.0. para eliminar los dispositivos de VLAN. con la opción rem.2 172.0.16.2 vconfig rem eth1. porque suelen corresponder al número de VLAN.129 netmask 255. Ejemplo de contenido de /etc/sysconfig/network-scripts/ifcfg-eth1. preferentemente debe corresponder son el mimos utilizado en el conmutador principal.1).255. y solo dejar lo siguiente: DEVICE=eth1 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes HWADDR=xx:xx:xx:xx:xx:xx NM_CONTROLED=no Reiniciar el servicio de red a fin de que aplique el cambio y para que cargue de manera automática el módulo 8021q del núcleo de Linux.4 Para que los dispositivos de VLANs sean permanentes.255.3 vconfig rem eth1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Quitar todos los parámetros de red. 172.65 netmask 255. service network restart Pueden crearse manera temporal (se perderán luego de reiniciar el sistema) los dispositivos de VLAN del siguiente modo: vconfig add eth1 2 vconfig add eth1 3 vconfig add eth1 4 ifconfig eth1.192 ifconfig eth1.2.16.193 netmask 255. Siguiendo el ejemplo utilizado en este documento.255.0. solo habría que ejecutar lo siguiente: vconfig rem eth1. siguiendo el siguiente formato: icfg-eth1. dirección IP.

2 TYPE=Ethernet BOOTPROTO=static ONBOOT=yes NM_CONTROLED=no IPADDR=172.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux DEVICE=eth1.255.255.0.16.0.3 TYPE=Ethernet BOOTPROTO=static ONBOOT=yes NM_CONTROLED=no IPADDR=172.16.0.192 BROADCAST=172.64 Ejemplo de contenido de /etc/sysconfig/network-scripts/ifcfg-eth1.16. service network restart Verificar con el mandato ifconfig que todas las VLAN estén presentes.0.16.191 NETWORK=172.16.255.255.16.16.255.65 NETMASK=255.128 Ejemplo de contenido de /etc/sysconfig/network-scripts/ifcfg-eth1.193 NETMASK=255.0. ifconfig La salida debe ser algo similar a lo siguiente: 280 .127 NETWORK=172.0.16.0.192 BROADCAST=172.0.255 NETWORK=172.3 DEVICE=eth1.0.192 Reiniciar nuevamente el servicio de red a fin de que inicien las interfaces de VLAN.16.129 NETMASK=255.255.4 DEVICE=eth1.4 TYPE=Ethernet BOOTPROTO=static ONBOOT=yes NM_CONTROLED=no IPADDR=172.192 BROADCAST=172.

2 KiB) Link encap:Ethernet HWaddr 44:87:FC:AA:DD:2D inet addr:172.3 eth1.0 b) TX bytes:4235 (4.127 Mask:255.16.192 inet6 addr: fe80::4687:fcff:feaa:dd2d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:18 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.255.0. o bien /etc/dhcp/dhcpd.1 GiB) TX bytes:12134964357 (11.255 Mask:255.2 eth0. Para alivio de los administradores de sistemas.3. Administrando direcciones IP de las VLANs a través de un servidor DHCP.8 KiB) eth0.0.0.65 Bcast:172.3 GiB) Interrupt:122 Memory:da000000-da012800 Link encap:Ethernet HWaddr 44:87:FC:AA:DD:2D inet addr:172.16.0.0.16.191 Mask:255.0.1.4".129 Bcast:172. es posible utilizar el servicio de DHCP para gestionar la administración de direcciones IP a través de un servidor DHCP.conf (CentOS 6 y Red Hat Enterprise Linux 6).0.193 Bcast:172. Editar el archivo /etc/sysconfig/dhcpd.255.0 b) TX bytes:3405 (3.4 lo 31.255.0. Editar el archivo /etc/dhcpd.3 eth0.16.1 KiB) Link encap:Ethernet HWaddr 44:87:FC:AA:DD:2D inet addr:172. DHCPDARGS="eth1.conf (CentOS 5 y Red Hat Enterprise Linux 5).1 Mask:255.255.192 inet6 addr: fe80::4687:fcff:feaa:dd2d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.192 inet6 addr: fe80::4687:fcff:feaa:dd2d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:13 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:183 errors:0 dropped:0 overruns:0 frame:0 TX packets:183 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:21398 (20.3 KiB) Link encap:Local Loopback inet addr:127.16. y definir las interfaces de VLAN a utilizar junto con el servidor DHCP.255.Joel Barrios Dueñas eth0 Configuración de Servidores con GNU/Linux Link encap:Ethernet HWaddr 44:87:FC:AA:DD:2D inet6 addr: fe80::226:b9ff:fe38:36bc/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:13512148 errors:0 dropped:0 overruns:0 frame:0 TX packets:15358606 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4445028488 (4.8 KiB) TX bytes:21398 (20.16.255.2 eth1.0.0 b) TX bytes:4333 (4.0. definir una sección por cada red: 281 .

16. option domain-name-servers 172.192.net.0.0. option netbios-name-servers 172. } } Reiniciar (o iniciar.255.192 netmask 255.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux server-identifier servidor.16. option domain-name-servers 172.0.0. option netbios-name-servers 172. option domain-name-servers 172.126. authoritative.192 { option routers 172.255.255.0.16.194 172. option broadcast-address 172.127. ignore client-updates.255. } } shared-network vlan4 { subnet 172.16.128 netmask 255.51.0.234.net". y comprobar que funcione correctamente el servicio.191.192. service dhcpd restart 282 .66 172.16.0.0.16. range 172.81. según sea el caso) el servicio dhcpd. option broadcast-address 172.0.16.0.65.192. option ntp-servers 200.16.255.16. max-lease-time 7200.255.0.16.248.16.205.193.64 netmask 255.16. } } shared-network vlan3 { subnet 172.190. option subnet-mask 255.16.16. ddns-update-style interim.130 172. 132.0.65.red-local.0.0.0.16.7. option broadcast-address 172.65. range 172.0.23.193.29.16.0.16.16.0.193.16.254.255.0.255.30. option netbios-name-servers 172.255. option subnet-mask 255.255. shared-network vlan2 { subnet 172.255.255.0.192.129. option subnet-mask 255.255.16. conectando algunos equipos a los conmutadores involucrados.192.192 { option routers 172.192 { option routers 172.0. option domain-name "red-local. default-lease-time 900. range 172. 148.16. option ip-forwarding off.

dep y los archivos mapa de los controladores. o genera una obra derivada. Se establece el controlador bonding para crear la interfaz bond0 del siguiente modo: alias bonding bond0 El controlador puede llevar parámetros que permiten modificar su funcionamiento. Archivo de configuración /etc/modprobe. originalmente creado por Donald Becker. c) Si altera o transforma esta obra. está incluido en prácticamente todas las distribuciones de GNU/Linux y permite sumar las capacidades de varias interfaces físicas de red con objeto de crear una interfaz lógica. Licencia completa en castellano. es importante configurar al menos éstos dos parámetros. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.2. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. depmod Lo anterior solo debe devolver el símbolo de sistemas después de unos segundos. se puede simplemente configurar del siguiente modo: alias bond0 bonding options bonding mode=0 miimon=0 Lo anterior establece en el parámetro mode la política de balanceo de carga y tolerancia a fallos y desactiva en el parámetro miimon la supervisión de MII. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. es importante utilizar el mandato depmod para regenerar el archivo modules. Procedimientos. Al reutilizar o distribuir la obra. que corresponde la configuración más común. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. por entidades con fines de lucro). Introducción. El controlador bonding.2.alcancelibre. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. a través de cualquier medio. Al terminar con el archivo /etc/modprobe.1. A fin de obtener un buen funcionamiento confiable.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 32. 32. de entre los cuales los más importantes son mode y miimon. Cómo configurar acoplamiento de tarjetas de red (bonding).1. 32. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. 32.conf. tiene que dejar bien claro los términos de la licencia de esta obra. Usted es libre de copiar.1 © 1999-2011 Joel Barrios Dueñas. Esto se lleva a cabo con el objeto de contar con redundancia o bien balanceo de carga. 283 . Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.conf. Para fines generales.

para proporcionar tolerancia a fallos y balanceo de carga. donde la salida debe devolver el parámetro Link Detected con el valor yes. Es la política predeterminada del controlador y la que funciona para la mayoría de los casos. Parámetro miimon.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 32. 3 (tres): Establece una política de Round-Robin. Parámetro mode.2. Una vez que se establece el enlace. Todas las transmisiones de datos son enviadas y recibidas de forma secuencial en cada interfaz esclava del arreglo empezando con la primera que esté disponible. Este algoritmo compara las solicitudes entrantes de las direcciones MAC hasta que coinciden para la dirección MAC (Media Access Control) de una de las tarjetas esclavas. En el siguiente ejemplo se establece la política 0 (cero): options bonding mode=0 32. Ejemplo: ethtool eth0 Lo anterior debe devolver algo similar a lo siguiente: Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supports auto-negotiation: Yes 284 . En el siguiente ejemplo se establecen 100 milisegundos: options bonding mode=0 miimon=100 Se requiere que todos los controladores del arreglo de tarjetas tengan soporte para MII. Los posibles valores son: 0 (cero): Establece una política de Round-Robin. Todo el tráfico se transmite a través de una tarjeta y solo se utilizará la otra en caso de que falle la primera. las transmisiones de datos de datos son enviadas en forma secuencial empezando con la primera interfaz disponible. 2 (dos): Establece una política XOR (exclusive-or.1. exclusiva-o) para proporcionar tolerancia a fallos y balanceo de carga.1. se utiliza el mandato ethtool. Todas las transmisiones de datos son enviadas de forma secuencial en cada interfaz esclava del arreglo empezando con la primera que esté disponible. que es un algoritmo que asigna una carga equitativa y ordenada a cada proceso.2.1. Para verificar si el controlador de la tarjeta tiene soporte para MII.2. para proporcionar tolerancia a fallos y balanceo de carga entre los miembros del arreglo de dispositivos. Se utiliza cuando se necesita alta disponibilidad para verificar si la interfaz está activa y verificar si hay un cable de red conectado. Se utiliza para establecer la política baja la cual se hará trabajar las tarjetas en conjunto. Se utiliza para especificar cada cuantos milisegundos se debe supervisar el enlace MII (Media Independent Interface). 1 (uno): Establece una política de respaldo activo que proporciona tolerancia a fallos.

BOOTPROTO. se utiliza el valor 0 (cero). el contenido del archivo /etc/sysconfig/network-scripts/ifcfg-eth0 sería: DEVICE=eth0 BOOTPROTO=none ONBOOT=no SLAVE=yes MASTER=bond0 Y el contenido del archivo /etc/sysconfig/network-scripts/ifcfg-eth1 sería: DEVICE=eth1 BOOTPROTO=none ONBOOT=no SLAVE=yes MASTER=bond0 285 . IPADDR.255.1 NETMASK=255.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Half Port: MII PHYAD: 32 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: d Current message level: 0x00000007 (7) Link detected: yes Para desactivar esta función. Este se configura con los mismo parámetros que una tarjeta normal. Archivo de configuración /etc/sysconfig/network-scripts/bond0.2.255.255. Requiere los parámetros ONBOOT.168.0 GATEWAY=192. Ejemplo: options bonding mode=0 miimon=0 32.254 Las interfaces de red a utilizar como esclavas se configuran de la siguiente forma.0. DEVICE.255. considerando que se tiene eth0 y eth1.168.1. máscara de subred 255. En el siguiente ejemplo se configura la interfaz bond0 con la dirección IP estática 192.2.0.168.254 y la interfaz inicia junto con el sistema creando el archivo /etc/sysconfig/network-scripts/ifcfg-bond0 con el siguiente contenido: DEVICE=bond0 ONBOOT=yes BOOTPROTO=static IPADDR=192-168. puerta de enlace 192.0.0. NETMASK y GATEWAY.0.

3.3 MiB) TX bytes:495025 (483.2 KiB) Interrupt:10 Link encap:Local Loopback inet addr:127. utilice: service network restart Para detener el servicio network utilice: service network stop 32.1. en el caso de haber utilizado las interfaces eth0 y eth1.0.0. Iniciar.1 Mask:255. Para verificar que la interfaz lógica quedó configurada.255 Mask:255.4 KiB) Link encap:Ethernet HWaddr 00:01:80:41:9C:8A inet6 addr: fe80::201:80ff:fe41:9c8a/64 Scope:Link UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:5056 errors:0 dropped:0 overruns:0 frame:0 TX packets:3781 errors:0 dropped:0 overruns:0 carrier:0 collisions:3 txqueuelen:1000 RX bytes:3474685 (3. utilice: ifconfig Lo anterior debe devolver algo similar a lo siguiente: bond0 Link encap:Ethernet HWaddr 00:01:80:41:9C:8A inet addr:192.0 inet6 addr: fe80::201:80ff:fe41:9c8a/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:5128 errors:0 dropped:0 overruns:0 frame:0 TX packets:3817 errors:7 dropped:0 overruns:0 carrier:0 collisions:3 txqueuelen:0 RX bytes:3493139 (3.0.3. detener y reiniciar el servicio network. Comprobaciones.255.2.64 Bcast:192. utilice: service network start Para hacer que los cambios hechos tras modificar la configuración surtan efecto.255.168.3 MiB) TX bytes:488632 (477.0 KiB) TX bytes:6393 (6.168. Para ejecutar por primera vez el servicio network tras configurar el acoplamiento de tarjetas.1 KiB) Interrupt:11 Base address:0xc000 Link encap:Ethernet HWaddr 00:01:80:41:9C:8A inet6 addr: fe80::201:80ff:fe41:9c8a/64 Scope:Link UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:72 errors:0 dropped:0 overruns:0 frame:0 TX packets:36 errors:7 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:18454 (18.0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 32.0 inet6 addr: ::1/128 Scope:Host eth0 eth1 lo 286 .1.

se utiliza el mandato ethtool del siguiente modo: ethtool eth0 |grep "Link detected" ethtool eth1 |grep "Link detected" Si ambas tarjetas tiene soporte para MII.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:6138 errors:0 dropped:0 overruns:0 frame:0 TX packets:6138 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:8364864 (7. lo anterior debe devolver lo siguiente: Link detected: yes Link detected: yes 32. • • Thomas Davis: http://www.org/en/Net:Bonding Thomas Davis: http://www.9 MiB) TX bytes:8364864 (7.linuxfoundation.4/Documentation/networking/bonding.9 MiB) Para verificar que las interfaces de red están funcionando correctamente. y que hay un cable de red conectado a éstas.kernel.4. Bibliografía.txt 287 .org/pub/linux/kernel/people/marcelo/linux2.

¿Que es WPA? ¿Por qué debería usarlo en lugar de WEP? WPA (Wi-Fi Protected Access). y fue diseñado para funcionar con todas los dispositivos para redes inalámbricas. a través de cualquier medio. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. dejando que todos los procedimientos los realicen NetworkManager o Connman. y WPA2 es una clase de sistemas para el aseguramiento de redes inalámbricas. como ocurre con WEP. y ciframiento. WEP. A continuación describiré los procedimientos para conectarse a los dos tipos de redes Wifi más utilizados. Cuando se combina con Vectores de Inicialización mayores. y WPA. Usted es libre de copiar. WEP. Además de proporcionar autenticación.1. Introducción. Al reutilizar o distribuir la obra. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. WPA fue creado por el grupo industrial. Licencia completa en castellano. con configuraciones básicas utilizadas en dispositivos como serían los puntos de acceso de los modem ADSL de Prodigy Infinitum. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los datos utilizan el algoritmo RC4 con una clave de 128 bits. pero no funciona con muchos dispositivos viejos. WPA fue creado en respuesta a las serias debilidades de otros protocolos como WEP (Wired Equivalent Privacy).alcancelibre. Cómo conectarse a una red Wifi desde la terminal. Sin embargo ha circunstancias en las cuales puede ser necesario conectarse a una red Wifi desde una terminal. es TKIP (Temporal Key Integrity Protocol. 33. que fue el más fuerte que se pudo utilizar con dispositivos antiguos para redes inalámbricas a fin de no dejar obsoletos a éstos. WPA2 implementa todo el estándar IEEE 802. Implementa la mayoría de lo que conforma el estándar IEEE 802. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. 288 . La verificación de redundancia cíclica (CRC o Cyclic Redundancy Check) utilizada en WEP es insegura porque permite alterar la carga útil. y conectarse a una red Wifi desde la interfaz gráfica es un procedimiento relativamente trivial. c) Si altera o transforma esta obra. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. y actualizar el mensaje de verificación de redundancia cíclica sin necesidad de conocer la clave WEP. tiene que dejar bien claro los términos de la licencia de esta obra. En cambio WPA utiliza un Código de Integridad de Mensaje (MIC o Message Integrity Code) que es en realidad un algoritmo denominado «Michael». el cual consiste en el cambio dinámico mientras se utiliza el sistema.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 33. y certificadores de los dispositivos que ostenten dicho nombre. y un vector de inicialización de 48 bits. por entidades con fines de lucro). dueños de la marca registrada Wi-Fi. Configurar. o Protocolo de integridad de clave temporal). excepto los puntos de acceso de primera generación. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. 33. Una de las mejoras más sobresalientes sobre su predecesor.1. y comercial Alianza Wi-Fi.11i. WPA proporciona mejor integridad de la carga útil.11i. y bloques temporales. El Código de Integridad de Mensaje de WPA incluye un un mecanismo que contrarresta los intentos de ataque para vulnerar TKIP. hace considerablemente más difícil realizar ataques para la obtención de llaves. o genera una obra derivada.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1 © 1999-2011 Joel Barrios Dueñas.

. lo cual suple la complejidad de implementación de un servidor de autenticación 802. En sistemas operativos basados sobre Fedora. y wpa_supplicant. y versiones posteriores.1. y 6 o Red Hat™ Enterprise Linux 5 o 6. y oficinas pequeñas.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En resumen. solo se necesita ejecutar como root lo siguiente: yum -y install wireless-tools wpa_supplicant Si utiliza Debian o Ubuntu. y versiones posteriores de éstos. CentOS. el primer paso consiste en cambiarse al usuario root: su -l En sistemas operativos basados sobre Ubuntu Linux. 289 . se puede utilizar el mandato sudo para todos los procedimientos.2. Se requieren los paquetes wireless-tools.2.1X en hogares. reduciendo el número de paquetes enviados con claves relacionadas. Equipamiento lógico necesario.. Instalación a través de yum. precediendo todos los mandatos utilizados con sudo.. WPA puede utilizar Protocolos Extensibles de Autenticación (EAP o (Extensible Authentication Protocol). 33. está FreeRADIUS. Además de poder utilizar una clave compartida (PSK o Pre-Shared Key). y añadiendo un sistema de verificación de mensajes. y Vectores de Inicialización. Alcance Libre cuenta con un modesto documento para la configuración de esta implementación. 33. solo se necesita realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario: sudo apt-get install wireless-tools wpa_supplicant 33. CentOS 5. como los siguientes: • • • • • • EAP-TLS EAP-TTLS/MSCHAPv2 PEAPv0/EAP-MSCHAPv2 PEAPv1/EAP-GTC EAP-SIM EAP-LEAP Entre los diversos servidores que pueden utilizarse para este tipo de implementaciones.2. Preparativos. WPA hace más difícil vulnerar las redes inalámbricas al incrementar los tamaños de las claves. Para instalar o actualizar el equipamiento lógico necesario en Fedora. y Red Hat Enterprise Linux..2.

33.3. por lo que es importante iniciar ésta: ifup lo Para poder comenzar a utilizar la interfaz Wifi. iwconfig wlan0 key clave-de-acceso Si se utiliza una clave WEP tipo ASCII. Solo basta utilizar dos mandatos. se debe detener este servicio: service NetworkMananger stop Muchos componentes del sistema requieren que esté activa la interfaz de retorno del sistema (loopback). Autenticando en el punto de acceso.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux sudo cualquier mandato utilizado Ejemplos: sudo ifup lo sudo iwconfig wlan0 sudo iwlist wlan0 scan Debido a que el servicio NetworkManager hará conflicto con los procedimientos.2.1. Para redes WEP. El primero define el nombre del punto de acceso a utilizar: iwconfig wlan0 essid punto-de-acceso El segundo mandato se utiliza para definir la clave de acceso a utilizar. que se caracterizan por tener una seguridad muy pobre.3. A través de redes WEP. sea de 64 o 128 bit.2.. se define de la siguiente manera: iwconfig wlan0 key s:clave-de-acceso 290 . y para determinar el protocolo a utilizar: iwlist wlan0 scan 33. solo basta ejecutar el mandato iwconfig sobre dicha interfaz: iwconfig wlan0 Es buena idea realizar un escaneado de las redes Wifi disponibles para asegurarse se puede acceder a la red Wifi deseada. es muy simple.

Se procede a determinar el nombre de la red Wifi a utilizar.0 gw 192.168.255. Si se conocen los datos para la configuración de red.168. Para iniciar la autenticación con la red Wifi. se utiliza el mandato dhclient de la siguiente manera: dhclient wlan0 33. Utilizando dhclient.2. Asignando manualmente los parámetros de red. se define 192. y deberá utilizarse entonces el siguiente: sudo bash -c "wpa_passphrase punto-de-acceso clave-de-acceso > /root/wpa.. Es buena idea indicar a dhclient que libere el préstamo que estuviera asignado en el servidor DHCP: dhclient -r Para obtener una nueva dirección IP.2.70.conf dentro del directorio de inicio del usuario root.4.70. y -c. y la clave de acceso.2.2.0. Lo más común es utilizar el mandato dhclient para dejar que el servidor DHCP del punto de acceso o la LAN se encargue de asignar los parámetros de red para la interfaz. A través de redes WPA.168. y puerta de enlace 192. se asigna a la interfaz wlan0 la dirección IP 192..Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 33.128 route add -net 0.50 netmask 255.0.conf Si se realiza el procedimiento desde Ubuntu Linux. el mandato anterior fallará si se utiliza sudo debido a limitaciones de seguridad de sudo.70.70.1 como servidor DNS: echo "nameserver 192.70.168.conf.128.2.0 netmask 0.conf 33. wpa_supplicant -B -Dwext -iwlan0 -c/root/wpa.168. para especificar el archivo de configuración creado en el paso anterior. -D.1" > /etc/resolv.4. y se define la dirección IP del servidor DNS a utilizar.70.2. Asignando parámetros de red a la interfaz. se edita el archivo /etc/resolv.168. para enviar el procesos a segundo plano.1. como el usuario root.0.4.3.conf 291 .255.conf" Lo anterior generará el archivo wpa. se utiliza el mandato wpa_supplicant con las opciones -B.50. para especificar el controlador a utilizar.0.1 wlan0 Para definir el servidor DNS. 33.255. En el siguiente ejemplo.1: ifconfig wlan0 192.255. En el siguiente ejemplo. con máscara de subred 255. también es posible asignarlos manualmente. El mandato wpa_passphrase se utilizará para generar un archivo de configuración a utilizar posteriormente: wpa_passphrase punto-de-acceso clave-de-acceso > /root/wpa.

y deberá utilizarse entonces el siguiente: sudo bash -c "echo 'nameserver 192. poner el siguiente contenido: 292 ... y utilizar WEP. y utilizar WPA.3.. CentOS.70.4. dentro de /etc/sysconfi/network-scrips/ siguiendo el siguiente formato: ifcfg-Auto_punto-de-acceso Como ejemplo. poner el siguiente contenido: NAME="Auto alcance2" ONBOOT=yes TYPE=Wireless BOOTPROTO=dhcp ESSID=alcance2 MODE=Managed KEY_MGMT=WPA-PSK PEERDNS=yes PEERROUTES=yes DHCP_CLIENT_ID=nombre-equipo DHCP_HOSTNAME=nombre-equipo Para la clave de acceso del punto de acceso. si se desea conectar el sistema a un punto de acceso denominado alcance2. se debe crear el archivo /etc/sysconfi/network-scrips/ifcfg-Auto_alcance2: vim /etc/sysconfi/network-scrips/ifcfg-Auto_alcance2 Si se va a conectar a través de DHCP. el mandato anterior fallará si se utiliza sudo debido a limitaciones de seguridad de sudo. y Red Hat Enterprise Linux. es necesario crear el archivo /etc/sysconfi/networkscrips/keys-Auto_alcance2: vim /etc/sysconfi/network-scrips/keys-Auto_alcance2 Si se va a conectar por WEP.2.conf" 33. Solo es necesario crear el archivo de interfaz.168. Asignación permanente de parámetros de red en Fedora.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si se realiza el procedimiento desde Ubuntu Linux.1' > /etc/resolv. poner el siguiente contenido: NAME="Auto alcance2" ONBOOT=yes TYPE=Wireless BOOTPROTO=dhcp ESSID=alcance2 MODE=Managed SECURITY_MODE=open DEFAULTKEY=1 PEERDNS=yes PEERROUTES=yes DHCP_CLIENT_ID=nombre-equipo DHCP_HOSTNAME=nombre-equipo Si se va a conectar a través de DHCP.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux KEY_PASSPHRASE1=clave-de-acceso Si se va a conectar por WPA.php/20070403184255131 293 . será posible iniciar o detener la interfaz utilizando los mandatos ifup e ifdown. • • • http://en. 33.alcancelibre.alcancelibre.org/wiki/Wi-Fi_Protected_Access http://www. Bibliografía. poner el siguiente contenido: WPA_PSK=clave-de-acceso Hecho todo lo anterior.3.org/article.wikipedia.org/article.php/20070404112747533 http://www.

1 init 1 root mem /lib/libsepol.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Ejemplo: lsof | less Puede especificarse que se muestren todos los procesos desde un directorio en particular.5. Es utilizado ampliamente en sistemas operativos tipo POSIX para hacer reportes de archivos y los procesos que están utilizando a éstos. 294 . distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.1. quien alguna vez fue director del Centro de Cómputo de la Universidad de Purdue. Al reutilizar o distribuir la obra. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.3 9. Cómo utilizar lsof Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. o genera una obra derivada. Se puede utilizar para revisar que procesos están haciendo uso de directorios. En ausencia de parámetros.so init 1 root mem /lib/i686/nosegneg/libc-2.3 0. tiene que dejar bien claro los términos de la licencia de esta obra.3 9. En el siguiente ejemplo se solicita a lsof mostrar todos los procesos que estén haciendo uso de algo dentro de /var. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.1 init 1 root 10u TYPE DIR DIR REG REG REG REG REG REG FIFO DEVICE 9. Lsof es un mandato que significa «listar archivos abiertos» (list open files).3 9.so init 1 root mem 2. Usted es libre de copiar. 34.5.so. c) Si altera o transforma esta obra.5. Procedimientos.so.3 9.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 34.2.1 © 1999-2011 Joel Barrios Dueñas.15 SIZE 4096 4096 38620 125736 1602164 16428 93508 242880 NODE 2 2 146434 175507 175514 175518 /lib/libdl175677 175573 1543 /dev/initctl NAME / / /sbin/init /lib/ld- Para visualizar más cómodamente esta salida. Licencia completa en castellano.3 9. por entidades con fines de lucro).3 9.1. archivos ordinarios. tuberías (pipes). Acerca de lsof. zócalos de red (sockets) y dispositivos.1. a través de cualquier medio. se puede utilizar el mandato less o el mandato more como subrutinas.so init 1 root mem /lib/libselinux. En ejemplo de la salida típica sería como la siguiente: COMMAND PID USER FD init 1 root cwd init 1 root rtd init 1 root txt init 1 root mem 2. Uno de los principales usos de determinar que procesos están haciendo uso de archivos en una partición cuando esta no se puede desmontar.3 9. Lsof fue desarrollado por Vic Abell. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. lsof mostrará todos los procesos haciendo uso de archivos. solamente especificando este luego de lsof. 34.alcancelibre. Introducción. 34.

Joel Barrios Dueñas lsof /var Configuración de Servidores con GNU/Linux La salida de la anterior puede ser similar a la siguiente: COMMAND auditd syslogd syslogd syslogd syslogd syslogd syslogd named named named rpc.log La opción -i hará que se muestren todos los archivos de red (Internet y x.3 1602164 175514 /lib/i686/nosegneg/libc-2. En el siguiente ejemplo se pide a lsof mostrar solamente los archivos de red utilizados por los procesos de red derivados de named: lsof -i | grep named Lo anterior puede devolver una salida similar a la siguiente.redlocal.localdomain:domain localhost.1 REG 9.so unix 0xc0acfc80 6909 /dev/log REG 9.3 4096 2 / DIR 9.1 SIZE 408058 1134708 12461 9925 3339 0 916 4096 4096 NODE 5341208 17006593 17006594 17006595 17006598 17006596 17006597 16351240 16351236 16351246 4096 15433729 5 25591831 NAME /var/log/audit/audit.1 916 17006597 /var/log/boot.log /var/log/messages /var/log/secure /var/log/maillog /var/log/cron /var/log/spooler /var/log/boot.5.1 REG 9.1 REG 9.log /var/named/chroot/var/named /var/named/chroot /var/named/chroot/dev/random /var/lib/nfs/statd /var/run/rpc.localdomain:rndc (LISTEN) localhost6.1 REG 9.statd.statd rpc.localdomain:domain (LISTEN) servidor. En el siguiente ejemplose solicita a lsof mostrar los archivos utilizados por el proceso 2281 que arbitrariamente se ejecuta en un sistema: lsof -p 2281 Si hubiera un proceso 2281.so REG 9.3 35800 146392 /sbin/syslogd REG 9.net:domain (LISTEN) *:filenet-tms *:filenet-rpc localhost.1 12461 17006594 /var/log/secure REG 9.1 CHR 1.1 0 17006596 /var/log/spooler REG 9.3 4096 2 / REG 9. named named named named named named named named 2350 2350 2350 2350 2350 2350 2350 2350 named named named named named named named named 20u 21u 22u 23u 24u 25u 26u 27u IPv4 IPv4 IPv4 IPv4 IPv4 IPv6 IPv4 IPv6 7091 7092 7093 7094 7095 7096 7097 7098 UDP TCP UDP TCP UDP UDP TCP TCP localhost.1 DIR 9. la salida podría verse como la siguiente: COMMAND syslogd syslogd syslogd syslogd syslogd syslogd syslogd syslogd syslogd syslogd syslogd syslogd syslogd PID 2281 2281 2281 2281 2281 2281 2281 2281 2281 2281 2281 2281 2281 USER root root root root root root root root root root root root root FD cwd rtd txt mem mem mem 0u 1w 2w 3w 4w 5w 6w TYPE DEVICE SIZE NODE NAME DIR 9.1 REG 9.so REG 9.1 REG 9.5.1 DIR 9.net:domain servidor.1 9925 17006595 /var/log/maillog REG 9. se utilizan las opciones -i seguido de una subrutina con grep y el nombre de algún servicio.8 DIR 9.25) utilizados por procesos de red.3 46680 175529 /lib/libnss_files-2. Si se quiere mostrar los archivos de red en uso por algún proceso de red en particular.1 3339 17006598 /var/log/cron REG 9.pid Si se quiere mostrar solamente el archivo utilizado por un procesos en particular.3 125736 175507 /lib/ld-2.5. se utiliza la opción -p seguida del número de proceso.localdomain6:rndc (LISTEN) 295 .1 1134708 17006593 /var/log/messages REG 9.1 REG 9.redlocal.statd PID 2247 2281 2281 2281 2281 2281 2281 2350 2350 2350 2407 2407 USER root root root root root root root named named named root root FD 5w 1w 2w 3w 4w 5w 6w cwd rtd 9r cwd 8w TYPE DEVICE REG 9.

168.1:domain 296 .Joel Barrios Dueñas named 2350 named 28u IPv4 1153790 Configuración de Servidores con GNU/Linux UDP 192.122.

Licencia completa en castellano.3.1.3. Usted es libre de copiar. o versiones posteriores. Si se utiliza de CentOS 5. Al reutilizar o distribuir la obra. se puede instalar lo necesario utilizando lo siguiente: yum -y install nc 35.0. En el siguiente ejemplo se realizará una conexión hacia el puerto 25 (SMTP) de 127. tiene que dejar bien claro los términos de la licencia de esta obra. o versiones posteriores. por entidades con fines de lucro). escuchar sobre puertos arbitrarios tanto TCP como UDP.1: nc 127. 35.0. Para iniciar una conexión hacia algún puerto en algún sistema. o nc que es la forma en que se utiliza en el intérprete de mandatos. Acerca de Netcat. Procedimientos. Instalación a través de Up2date Si se utiliza de Red Hat™ Enterprise Linux 4. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.2.1. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. Cómo utilizar Netcat (nc) Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Introducción. se puede instalar utilizando lo siguiente: up2date -i nc 35. Conexiones simples. a través de cualquier medio. Puede abrir conexiones TCP. Instalación a través de yum.2. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.1 25 297 .alcancelibre.1. 35.0.1. Equipamiento lógico necesario. supervisión de puertos y más. Netcat. tanto para IPv4 como IPv6. se utiliza el mandato nc seguido de una dirección IP y un puerto al cual conectarse. o genera una obra derivada. 35. 35.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 35. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. c) Si altera o transforma esta obra. es una herramienta utilizada para supervisar y escribir sobre conexiones tanto por TCP como por UDP.1 © 1999-2011 Joel Barrios Dueñas. enviar paquetes UDP.2.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Es una de las herramientas de diagnóstico y seguridad más populares y también una de las mejor calificadas por la comunidad. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.2. 35.1. Red Hat™ Enterprise Linux 5 o White Box Enterprise Linux 5.0.

que puertos están cerrados.1 68 port [udp/bootpc] succeeded! Si se quiere obtener una salida más descriptiva. -z para solicitar se trate de escuchar por puertos abiertos.0.0. nc: connect to 127. se utiliza nc con la opción .0.1 67 port [udp/bootps] succeeded! Connection to 127.0.0.1 25 port [tcp/smtp] succeeded! 298 . Revisión de puertos. nc -vz 127.1 21-80 Lo anterior puede devolver una salida como la siguiente si se encuentran abiertos los puertos UDP 53. En el siguiente ejemplo se pide al mandato nc revisar los puertos TCP abiertos entre el puerto 20 al 25.localdomain ESMTP .0. nc -vz 127.1 22 port [tcp/ssh] succeeded! nc: connect to 127.0.1 25 port [tcp/smtp] succeeded! Opcionalmente se pueden revisar si están abiertos los puertos abiertos por UDP añadiendo la opción -u. Para revisar los puertos abiertos.0.localdomain closing connection 35.0.0.0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si hay un servidor de correo funcionado. En el siguiente ejemplo.1 22 port [tcp/ssh] succeeded! Connection to 127.0. 28 May 2008 10:24:52 -0500 quit 221 2.0. 22 y 25. o bien nc -vzu para puertos UDP abiertos.1 port 20 (tcp) failed: Connection refused Connection to 127.0.0.0.0.1 53 port [udp/domain] succeeded! Connection to 127.0.0. si se encontrasen abiertos los puertos 21.1 port 24 (tcp) failed: Connection refused Connection to 127.2. solo es necesario especificar nc -vz y la dirección IP si se quiere revisar puertos TCP abiertos. Connection to 127. En el siguiente ejemplo se solicita al mandato nc revisar que puertos UDP abiertos que se encuentran entre el rango del puerto 21 al 80.0.0. nc -zu 127. a diferencia de utilizar solo -z.0. donde -v define se devuelva una salida más descriptiva. 67 y 68: Connection to 127.0.0.1 21 port [tcp/ftp] succeeded! Connection to 127.0.0.1 21-25 Lo anterior puede devolver una salida como la siguiente.0.0. lo anterior puede devolver una salida similar a la siguiente: 220 localhost. Wed.3.0.1 La salida de lo anterior devolverá.1 21 port [tcp/ftp] succeeded! Connection to 127.0 localhost. se pide al mandato nc revisar la presencia de puertos abiertos TCP (modo predeterminado) entre el rango del puerto 21 al 25. y un puerto o rango de puertos.1 port 23 (tcp) failed: Connection refused nc: connect to 127.0.0.

desde el proceso como cliente. se utiliza el mandato nc con la opción -l (listen o escuchar) seguida de un puerto que esté desocupado. Creando un modelo cliente servidor. Esto hará que nc se comporte como servidor escuchando peticiones en un puerto arbitrario. se hace a partir de un archivo con contenido de la siguiente forma: nc 127.1 22222 < algo.out. es posible realizar transferencia de datos desde una terminal como cliente hacia una terminal como servidor.in.0.0. hacia el archivo algo. Transferencia de datos.3.3. Desde una terminal que será utilizada para iniciar un modelo de servidor. Es relativamente simple crear un modelo cliente/servidor. nc -l 22222 Para establecer la conexión como cliente.4. En el siguiente ejemplo se realiza la conexión al puerto 22222 de 127. en el proceso como servidor.1 22222 Todo lo que se escriba desde la terminal como cliente podrá ser visto en la terminal como servidor. desde otra terminal se inicia el mandato nc especificando a continuación una IP local para el sistema y el numero de puerto al que se quiera conectar. La única diferencia es que en el servidor se cambia las salida estándar de la terminal hacia un archivo del siguiente modo: nc -l 22222 > algo. Tomando el ejemplo anterior.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 35. En lugar de ingresar datos desde la conexión.0. 35. En el siguiente ejemplo se hará que mandato nc funcione como servidor escuchando peticiones en el puerto 22222.out En el cliente se realiza algo similar.0.0. 299 .1 nc 127.in En el ejemplo descrito se realiza la transferencia de datos del archivo algo.0.3.

distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. tanto TCP como UDP. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. 36. estadísticas de interfaces y asignaturas de multidifusión. Licencia completa en castellano. c) Si altera o transforma esta obra. o genera una obra derivada.c:netbios-ns *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 17530 @/tmp/fam-rootunix 2 [ ACC ] STREAM LISTENING 7944 /dev/gpmctl unix 2 [ ACC ] STREAM LISTENING 6991 /var/run/audit_events unix 2 [ ACC ] STREAM LISTENING 7409 /var/run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING 7506 /var/run/pcscd. Para visualizar todas las conexiones activas en el sistema. tablas de encaminamiento. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.sock 300 . Procedimientos.1. se utiliza la opción -a.1. a través de cualquier medio.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.comm unix 2 [ ACC ] STREAM LISTENING 7647 /var/run/acpid.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 36. Al reutilizar o distribuir la obra. netstat -a | less A continuación se muestra un ejemplo de la salida: Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:netbios-ssn *:* LISTEN tcp 0 0 *:submission *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:x11 *:* LISTEN tcp 0 0 *:5904 *:* LISTEN tcp 0 0 *:webcache *:* LISTEN udp 0 0 *:filenet-tms *:* udp 0 0 *:filenet-nch *:* udp 0 0 *:filenet-rmi *:* udp 0 0 *:filenet-pa *:* udp 0 0 192. por entidades con fines de lucro). Acerca de Netstat Netstat es una herramienta utilizada para supervisar las conexiones de red. tiene que dejar bien claro los términos de la licencia de esta obra.122. Se utiliza principalmente para encontrar problemas en una red y para medir el tráfico de red como una forma de calcular el desempeño de ésta. Introducción.alcancelibre. se puede utilizar el mandato less como subrutina. 36. 36.socket unix 2 [ ACC ] STREAM LISTENING 7737 /var/run/cups/cups.1:netbios-ns *:* udp 0 0 servidor00.1. netstat -a Debido a que la cantidad de datos puede ser mucha para ser visualizada con comodidad en la pantalla del monitor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.2.168.1 © 1999-2011 Joel Barrios Dueñas. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. Usted es libre de copiar. Como utilizar Netstat.

18364064 packets directly received from backlog 301 . 0 packet receive errors 279 packets sent TcpExt: 7 TCP sockets finished time wait in fast timer 135 delayed acks sent Quick ack mode was activated 26 times 61 packets directly queued to recvmsg prequeue. se utiliza: netstat -s Lo anterior puede devolver una salida similar a la siguiente: Ip:x 2 [ ] DGRAM 8015 8005 total packets received 7929 2 with invalid addressesAM 7896 0 forwarded] DGRAM 7866 0 incoming packets discarded 7505 7928 incoming packets delivered CONNECTED 7412 7905 requests sent outTREAM CONNECTED 7411 Icmp: 3 [ ] STREAM CONNECTED 7349 19 ICMP messages receivedAM CONNECTED 7348 0 input ICMP message failed.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux unix 2 [ ACC ] STREAM LISTENING 16795 @/tmp/dbus-4Uato6eJUH Para mostrar solo las conexiones activas por TCP. 7199 ICMP input histogram:DGRAM 7071 destination unreachable: 18 6947 echo requests: 1 DGRAM 6917 19 ICMP messages sentSTREAM CONNECTED 6845 0 ICMP messages failedTREAM CONNECTED 6844 ICMP output histogram:a | less destination unreachable: 18 echo replies: 1 Tcp: 114 active connections openings 2 passive connection openings 0 failed connection attempts 12 connection resets received 0 connections established 7622 segments received 7533 segments send out 68 segments retransmited 0 bad segments received. se utiliza: netstat -t Para mostrar solo las conexiones activas por UDP. se utiliza: netstat -u Para mostrar las estadísticas de uso para todos los tipos de conexiones. 17 resets sent Udp: 287 packets received 0 packets to unknown port received.

se utiliza: netstat -s -t Lo anterior puede devolver una salida similar a la siguiente: Tcp: 114 active connections openings 2 passive connection openings 0 failed connection attempts 12 connection resets received 0 connections established 7622 segments received 7533 segments send out 68 segments retransmited 0 bad segments received.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 3912320 packets directly received from prequeue 2081 packets header predicted 1525 packets header predicted and directly queued to user 475 acknowledgments not containing data received 1311 predicted acknowledgments 1 times recovered from packet loss due to SACK data 1 congestion windows fully recovered 4 congestion windows partially recovered using Hoe heuristic 13 congestion windows recovered after partial ack 0 TCP data loss events 4 timeouts after SACK recovery 1 fast retransmits 47 other TCP timeouts 22 DSACKs sent for old packets 1 DSACKs received 9 connections reset due to early user close Para mostrar solamente las estadísticas originadas por conexiones TCP. se utiliza: 302 . 18364064 packets directly received from backlog 3912320 packets directly received from prequeue 2081 packets header predicted 1525 packets header predicted and directly queued to user 475 acknowledgments not containing data received 1311 predicted acknowledgments 1 times recovered from packet loss due to SACK data 1 congestion windows fully recovered 4 congestion windows partially recovered using Hoe heuristic 13 congestion windows recovered after partial ack 0 TCP data loss events 4 timeouts after SACK recovery 1 fast retransmits 47 other TCP timeouts 22 DSACKs sent for old packets 1 DSACKs received 9 connections reset due to early user close Para mostrar solamente las estadísticas originadas por conexiones UDP. 17 resets sent TcpExt: 7 TCP sockets finished time wait in fast timer 135 delayed acks sent Quick ack mode was activated 26 times 61 packets directly queued to recvmsg prequeue.

0 packet receive errors 279 packets sent Para mostrar la tabla de encaminamientos.0.0 * 192.0.0 255.168.122.0 eth0 eth0 xenbr0 vif1. se utiliza: netstat -r Lo anterior puede devolver una salida similar a la siguiente: Kernel IP routing table Destination Gateway 192.0.NET 1 224.--------------------1 ALL-SYSTEMS.0.255.0 * default 192.0 * 169.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux netstat -s -u Lo anterior puede devolver una salida similar a la siguiente: Udp: 287 packets received 0 packets to unknown port received.251 1 ALL-SYSTEMS.255.254.255.168.NET 1 224.0 Memberships RefCnt Group -----.255.MCAST.MCAST.0.NET 1 ff02::1 1 ff02::1 1 ff02::1:ff00:0 1 ff02::1 1 ff02::1 1 ff02::1:ff56:18b9 1 ff02::1 1 ff02::1 1 ff02::1 Para mostrar la tabla de interfaces activas en el sistema.0 255.251 1 ALL-SYSTEMS.0.0.255.0.168.0.MCAST.0.0 Flags U U U UG MSS 0 0 0 0 Window 0 0 0 0 irtt 0 0 0 0 Iface eth0 virbr0 eth0 eth0 Para mostrar las asignaciones grupos de multidifusión.0 0. se utiliza: netstat -i Lo anterior puede devolver una salida similar a la siguiente: 303 .254 Genmask 255. se utiliza: netstat -g Lo anterior puede devolver una salida similar a la siguiente: IPv6/IPv4 Group Interface --------------lo virbr0 virbr0 eth0 eth0 lo peth0 virbr0 virbr0 vif0.

0 vif1.0 virbr0 xenbr0 MTU Met 1500 0 16436 0 1500 0 1500 0 1500 0 1500 0 1500 0 RX-OK RX-ERR RX-DRP RX-OVR 2397 0 0 0 5780 0 0 0 3294 0 0 0 2079 0 0 0 45 0 0 0 0 0 0 0 216 0 0 0 TX-OK TX-ERR TX-DRP TX-OVR Flg 2079 0 0 0 BMRU 5780 0 0 0 LRU 2584 0 0 0 BORU 2397 0 0 0 BORU 384 0 0 0 BORU 72 0 0 0 BMRU 0 0 0 0 BORU 304 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Kernel Interface table Iface eth0 lo peth0 vif0.

1.1.net m040. Si se desea visualizar la información en estilo Linux.36) (10. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. o protocolo de resolución de direcciones. ARP significa Address Resolution Protocol.1.redlocal.redlocal.2.org (192.net m011. se utiliza el parámetro -e.net m073. o genera una obra derivada.alcancelibre. cada sistema operativo que implementa el protocolo ARP mantiene una cache en la memoria RAM de todas las recientes asignaciones.1. ejemplo: arp -e 305 . Usted es libre de copiar.40) (10.1. El nivel de enlace de datos se encarga de gestionar las direcciones MAC y el nivel de red de las direcciones IP. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.redlocal. Procedimientos.redlocal. 37.1. Licencia completa en castellano. Para reducir el número de peticiones ARP. ARP utiliza un cache que consiste en una tabla que almacena las asignaciones entre nivel de enlace de datos y las direcciones IP del nivel de red. Visualizar el cache ARP actual. Al reutilizar o distribuir la obra. ARP asocia direcciones IP a las direcciones MAC. ARP se utiliza para supervisar y modificar la tabla de asignaciones de direcciones IP y direcciones MAC (Media Access Control). tiene que dejar bien claro los términos de la licencia de esta obra. la tabla puede verse de este modo: m051.70) (10.net m070.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 37.1.1.net (10.1.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.1. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. 37.redlocal.1.redlocal.net m036. en el caso de tratarse de un solo sistema: m254.1 © 1999-2011 Joel Barrios Dueñas.1.alcancelibre.168.51) (10. por entidades con fines de lucro). Acerca de ARP.254) at 00:14:95:97:27:E9 [ether] on eth0 Cuando se trata de un servidor intermediario (proxy).1.11) at at at at at at at 00:13:20:D0:09:1E 00:0F:1F:B1:71:14 00:11:25:F6:93:F1 00:11:25:F6:A2:52 00:0D:60:6E:27:34 00:0D:60:6E:25:FB 00:11:2F:C7:D0:D7 [ether] [ether] [ether] [ether] [ether] [ether] [ether] on on on on on on on eth1 eth1 eth1 eth1 eth1 eth1 eth1 El mandato arp acepta varias opciones más. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.1.1.redlocal. justo a la inversa del protocolo RARP que asigna direcciones MAC a las direcciones IP.1. a través de cualquier medio.73) (10. Cómo utilizar ARP. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. c) Si altera o transforma esta obra.1.net m046.1. Introducción 37. arp -a Debe devolver algo similar a lo siguiente.46) (10. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

net 00:08:A1:84:18:AD Si se quiere eliminar un registro de la tabla.73 10.1.1.redlocal.redlocal.redlocal. se puede hacer utilizando el parámetro -s seguido del nombre de un anfitrión y la dirección MAC correspondiente.1.46 10. solo se utiliza el parámetro -d seguido del nombre del anfitrión a eliminar.net m040. se utiliza el parámetro -i seguido del nombre de la interfaz. se utiliza el parámetro -n.redlocal.redlocal.1. Ejemplo: arp -s m200.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior debe devolver una salida similar a la siguiente: Address m051. ejemplo: arp -n Lo anterior debe devolver algo similar a lo siguiente: Address 10. Ejemplo: arp -d m200.net m046.1.1.net m036.70 10.redlocal. Ejemplo: arp -i eth0 Lo anterior debe regresar algo similar a lo siguiente.1.alcancelibre.1.redlocal. se puede utilizar un bucle como el siguiente: for i in `arp -n | awk '{print $1}' | grep -v Address` do arp -d $i done 306 .net m073.org HWtype ether HWaddress 00:14:95:97:27:E9 Flags Mask C Iface eth0 Si se desea añadir un registro manualmente. en el caso de tratarse de un solo sistema: Address m254.net m070.net HWtype ether ether ether ether ether ether HWaddress 00:13:20:D0:09:1E 00:0F:1F:B1:71:14 00:11:25:F6:A2:52 00:11:25:F6:95:8E 00:0D:60:6E:26:6F 00:11:25:F6:5F:81 Flags Mask C C C C C C Iface eth1 eth1 eth1 eth1 eth1 eth1 Si se desea observar lo anterior en formato numérico.34 HWtype ether ether ether ether ether HWaddress 00:0F:1F:B1:71:14 00:11:25:F6:A2:52 00:11:25:F6:93:F1 00:0D:60:6E:27:34 00:0D:60:6E:26:6F Flags Mask C C C C C Iface eth1 eth1 eth1 eth1 eth1 Si se desea especificar una interfaz en particular.40 10.redlocal.1.net Para limpiar todo el cache.

un servidor o estación de trabajo fue encendido con una dirección IP que ya está uso. Esto genera una lista de direcciones IP que se asignan como valores de la variable i en el bucle. mostrando a través de awk solo la primera columna de la tabla generada. por ejemplo. 307 . y eliminando la cadena de caracteres Address. donde se elimina cada una de estas direcciones IP utilizando arp -d.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En el guión anterior se pide crear la variable i a partir de arp con la opción -n para devolver las direcciones numéricas. El objeto de limpiar el cache de ARP es permitir corregir los registros de la tabla en ciertos escenarios donde.

en modo de usuario. Los ganchos son también utilizados por un componente que se encarga del NAT (acrónimo de Network Address Translation o Traducción de dirección de red). pueden ser intercambiadas hacia memoria virtual cuando sea necesario) a través de la cual los administradores crean reglas para cada filtrado de paquetes y módulos de NAT. Cadenas.netfilter. es decir. área de memoria donde todas las aplicaciones. Netfilter es un conjunto de ganchos (Hooks. tráfico saliente (OUTPUT) o tráfico reenviado (FORWARD). URL: http://www. o genera una obra derivada. 38. es decir. el cual realiza procesos de filtración de paquetes. Iptables es el nombre de la herramienta de espacio de usuario (User Space. 38. Introducción.2. Iptables es la herramienta estándar de todas las distribuciones modernas de GNU/Linux. Al reutilizar o distribuir la obra.3.1. 38. por entidades con fines de lucro).1. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.org/ 38.1. 308 .1.1.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.alcancelibre. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. c) Si altera o transforma esta obra.2. Si utiliza CentOS 5 y 6. El componente mejor conocido es el cortafuegos. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 38. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación.3. Estos componentes son cargados como módulos del núcleo. Licencia completa en castellano. solo se necesita realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario: yum -y install iptables 38. a través de cualquier medio. Introducción a IPTABLES Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Usted es libre de copiar.1 © 1999-2011 Joel Barrios Dueñas. Acerca de Iptables y Netfilter. Instalación a través de yum. Red Hat Enterprise Linux 5 o 6. Las cadenas pueden ser para tráfico entrante (INPUT). tiene que dejar bien claro los términos de la licencia de esta obra. Procedimientos. 38. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Equipamiento lógico necesario. técnicas de programación que se emplean para crear cadenas de procedimientos como manejador) dentro del núcleo de GNU/Linux y que son utilizados para interceptar y manipular paquetes de red.

NAT. todas las conexiones que se reenvíen (FORWARD) y todas las conexiones que salgan (OUTPUT).2. descartar conexiones (DROP). iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT 38. RELATED).3. SNAT.3. ESTABLISHED. DROP o REJECT. Reglas de destino. NEW. En el siguiente ejemplo se descartan (DROP) todas las conexiones que ingresen (INPUT).5. Las reglas de destino pueden ser aceptar conexiones (ACCEPT).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 38. iptables iptables iptables iptables -F -F -F -F INPUT FORWARD OUTPUT -t nat 38. Reglas específicas. encaminamiento previo (PREROUTING).4. Las opciones más comunes son: • • • • • -A añade una cadena. se descarta todo el tráfico que entre desde una red pública y el que trate de salir desde la red local. 38.3. tráfico reenviado y tráfico saliente así como el NAT. la opción -i define una interfaz de tráfico entrante -o define una interfaz para trafico saliente -j establece una regla de destino del tráfico. --to-source define que IP reportar al tráfico externo -s define trafico de origen -d define tráfico de destino --source-port define el puerto desde el que se origina la conexión --destination-port define el puerto hacia el que se dirige la conexión 309 • • • • • . Establecen cual es la acción a tomar por defecto ante cualquier tipo de conexión. A fin de poder crear nuevas reglas. Limpieza de reglas específicas. es decir. entre otras. Políticas por defecto. rechazar conexiones (REJECT). se deben borrar las existentes. encaminamiento posterior (POSTROUTING). La opción -P cambia una política para una cadena. para el tráfico entrante. La -m define que se aplica la regla si hay una coincidencia específica --state define una lista separada por comas de distinto tipos de estados de las conexiones (INVALID.3. que puede ser ACCEPT.3.

168.z/32 --destination-port 25 --syn -j ACCEPT 310 . HTTPS (443) y SSH (22): iptables iptables iptables iptables -A -A -A -A INPUT INPUT INPUT INPUT -p -p -p -p tcp tcp tcp tcp -s -s -s -s 0/0 0/0 0/0 0/0 -d -d -d -d 0/0 0/0 0/0 0/0 --destination-port --destination-port --destination-port --destination-port 25 --syn -j ACCEPT 80 --syn -j ACCEPT 443 --syn -j ACCEPT 22 --syn -j ACCEPT Aceptar (ACCEPT) todos los paquetes SYN (--syn) del protocolo TCP (-tcp) para los puertos (-destination-port) del protocolos SMTP (25) en el servidor (w.0.0.x.0.x. pueden ser nat.0/24) o la dirección IP del retorno del sistema (127. mangle o raw. Reenvío de paquetes desde una interfaz de red local (eth1) hacia una interfaz de red pública (eth0): iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT Aceptar reenviar los paquetes que son parte de conexiones existentes (ESTABLISHED) o relacionadas de tráfico entrante desde la interfaz eth1 para tráfico saliente por la interfaz eth0: iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED.x.y.z.c Descartar (DROP) todo el tráfico entrante (-i) desde la interfaz eth0 que trate de utilizar la dirección IP pública del servidor (w.z/32).0.x/32 -j DROP iptables -A INPUT -i eth0 -s 192.RELATED -j ACCEPT Permitir paquetes en el propio muro cortafuegos para tráfico saliente a través de la interfaz eth0 que son parte de conexiones existentes o relacionadas: iptables -A INPUT -i eth0 -m state --state ESTABLISHED.168.0/8 -j DROP Aceptar (ACCEPT) todos los paquetes SYN (--syn) del protocolo TCP (-p tcp) para los puertos (-destination-port) de los protocolos SMTP (25).0/24 -o eth0 -j SNAT --to-source x. iptables -A POSTROUTING -t nat -s 192.0.0.168.RELATED -j ACCEPT Permitir (ACCEPT) todo el tráfico entrante (INPUT) desde (-s) cualquier dirección (0/0) la red local (eth1) y desde el retorno del sistema (lo) hacia (-d) cualquier destino (0/0): iptables -A INPUT -i eth1 -s 0/0 -d 0/0 -j ACCEPT iptables -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT Hacer (-j) SNAT para el tráfico saliente (-o) a tráves de la interfaz eth0 proveniente desde (-s) la red local (192.z).y.x.168. iptables -A INPUT -p tcp -s 0/0 -d w. desde (-s) cualquier lugar (0/0) hacia (-d) cualquier lugar (0/0).01) iptables -A INPUT -i eth0 -s w. Ejemplos de reglas.y.x.y. filter.y.y.0/24 -j DROP iptables -A INPUT -i eth0 -s 127. HTTP(80).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux • -t tabla a utilizar. alguna dirección IP de la red local (192.0/24) utilizando (--to-source) la dirección IP w.z.0.

para ver las listas en formato numérico.c. Cerrar accesos.d: iptables -D INPUT -s a.c. Eliminar la regla que descarta (DROP) todo tipo de conexiones de tráfico entrante (INPUT) desde (s) la dirección IP a.0. 311 . IMAP (143) y IMAPS (993): iptables iptables iptables iptables -A -A -A -A INPUT INPUT INPUT INPUT -p -p -p -p tcp tcp tcp tcp -s -s -s -s 0/0 0/0 0/0 0/0 -d -d -d -d 0/0 0/0 0/0 0/0 --destination-port --destination-port --destination-port --destination-port 110 995 143 993 --syn --syn --syn --syn -j -j -j -j ACCEPT ACCEPT ACCEPT ACCEPT Aceptar (ACCEPT) el tráfico entrante (-i) proveniente desde la interfaz eth1 cuando las conexiones se establezcan desde el puerto (--sport) 67 por protocolos (-p) TCP y UDP.3.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Aceptar (ACCEPT) todos los paquetes SYN (--syn) del protocolo TCP (-p tcp) para los puertos (-destination-port) de los protocolos POP3 (110). Mostrar la lista de cadenas y reglas.b. Una vez cargadas todas las cadenas y reglas de iptables es posible visualizar éstas utilizando el mandato iptables con las opciones -n.217 desde el puerto (--source-port) 53 hacia (d) cualquier destino (0/0): iptables -A INPUT -p udp -s 200.33.b.1.b.3.d: iptables -A INPUT -s a.d -s 192. y -L.33.217/32 --source-port 53 -d 0/0 -j ACCEPT 38.d -j DROP Rechazar (REJECT) conexiones hacia (OUTPUT) la dirección IP a.c. En general se utiliza la misma regla.c. para solicitar la lista de éstas cadenas.b.5.6.b.c.0/24 -j REJECT 38.146. Descartar (DROP) el tráfico entrante (INPUT) para el protocolo (-p) TCP hacia los puerto (-destination-port) de SSH (22) y Telnet (23): iptables -A INPUT -p tcp --destination-port 22 -j DROP iptables -A INPUT -p tcp --destination-port 23 -j DROP Descartar (DROP) todo tipo de conexiones de tráfico entrante (INPUT) desde (-s) la dirección IP a. iptables -A INPUT -i eth1 -p tcp --sport 68 --dport 67 -j ACCEPT iptables -A INPUT -i eth1 -p udp --sport 68 --dport 67 -j ACCEPT Aceptar (ACCEPT) conexiones de tráfico entrante (INPUT) por protocolo (-p) UDP cuando se establezcan desde (-s) el servidor DNS 200.168. POP3S (995). se utiliza -D (delete).3. pero en lugar de utilizar -A (append).b.c.d desde la red local: iptables -A OUTPUT -d a.7.145.d -j DROP 38. Eliminar reglas.

217 destination 0.0.64 172.0.0/24 DROP all -.0.0.0.0.0.0/0 ACCEPT all -.0/0 200.0.0/0 0.ESTABLISHED tcp tcp tcp tcp tcp tcp tcp tcp tcp tcp udp udp dpt:25 flags:0x17/0x02 dpt:80 flags:0x17/0x02 dpt:443 flags:0x17/0x02 dpt:22 flags:0x17/0x02 dpt:25 flags:0x17/0x02 dpt:110 flags:0x17/0x02 dpt:995 flags:0x17/0x02 dpt:143 flags:0x17/0x02 dpt:993 flags:0x17/0x02 spt:68 dpt:67 spt:68 dpt:67 spt:53 Chain FORWARD (policy DROP) target prot opt source ACCEPT all -.0/0 192.33.0.200.0.0.0.0/0 0.0.0.0.0.0.0/0 ACCEPT tcp -.0.146.0/0 destination 0.0.0.0/0 0.0.0.0.0.0/0 0.0.0.0.0.0.168.0/0 ACCEPT tcp -.192.0.0.0.0.ESTABLISHED 312 .0/0 0.0.0.0.0/0 state RELATED.0.0.0.0.0/0 0.0/0 0.0.0/0 0.0.0/0 Chain OUTPUT (policy ACCEPT) target prot opt source [root@m064 ~]# iptables -nL Chain INPUT (policy DROP) target prot opt source ACCEPT all -.0/0 0.0.0.146.0.0/0 DROP all -.ESTABLISHED destination destination 0.0.0/0 192.0.0.0.0.0.0.0/0 0.217 Chain FORWARD (policy DROP) target prot opt source ACCEPT all -.0/0 0.0.0.0.0/0 0.0/0 0.0.0.0.0.0.0/0 ACCEPT tcp -.0.0.0/0 ACCEPT tcp -.16.0.64 0.0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux iptables -nL Cuando no hay reglas ni cadenas cargadas.0.0.0.0.0.0.0.0/0 0.1.0/0 ACCEPT all -.0.0.0.0.0.0.0/0 0.0/0 0.0/0 0.0.0/0 0.0.0/0 ACCEPT tcp -.0.0.0.0/0 state RELATED.1.0/24 127.0.0/0 0.0.0.0/0 0.0/0 0.0.0/0 ACCEPT udp -.0/0 0.0.0/0 0.0.1.0.0/0 0.0.64 0.0/0 0.0. debe devolver algo similar a lo siguiente: Chain INPUT (policy target prot opt ACCEPT all -ACCEPT all -ACCEPT all -DROP all -DROP all -DROP all -ACCEPT tcp -ACCEPT tcp -ACCEPT tcp -ACCEPT tcp -ACCEPT tcp -ACCEPT tcp -ACCEPT tcp -ACCEPT tcp -ACCEPT tcp -ACCEPT tcp -ACCEPT udp -ACCEPT udp -DROP) source 0.0.0.0/0 0.0.0.0.0/0 0.0.0.33.0.0/0 0.0/0 ACCEPT all -.0.0.0/0 0.0.0/0 0.0.0.0.0.0.0/0 0.0.0.0.0.0.0/0 0.0/0 0.0.0/0 ACCEPT all -.0/0 0.0.0.0/0 state RELATED.0.0.0.172.64 DROP all -.0/0 0.1.168.0.127.0.0.0.0.0.0.0/0 ACCEPT tcp -.0.0.0.0.0.0/0 ACCEPT tcp -.0.0/0 0.16.0.0.0.0.0/0 192.0.0.0.0.0.0.0/0 state RELATED.0.0/0 0.0.0.0/0 ACCEPT udp -.0.0/8 0.0.0/0 0.0.0/0 0. la salida debe devolver lo siguiente: Chain INPUT (policy ACCEPT) target prot opt source Chain FORWARD (policy ACCEPT) target prot opt source Chain OUTPUT (policy ACCEPT) target prot opt source destination destination destination Cuando hay cadenas presentes.0.ESTABLISHED tcp tcp tcp tcp tcp tcp tcp tcp tcp tcp udp udp dpt:25 flags:0x17/0x02 dpt:80 flags:0x17/0x02 dpt:443 flags:0x17/0x02 dpt:22 flags:0x17/0x02 dpt:25 flags:0x17/0x02 dpt:110 flags:0x17/0x02 dpt:995 flags:0x17/0x02 dpt:143 flags:0x17/0x02 dpt:993 flags:0x17/0x02 spt:68 dpt:67 spt:68 dpt:67 spt:53 destination 0.0/0 0.0/0 0.0.0.0.0/0 0. suponiendo que se utilizarón los ejemplos de este documento.0.0.0.0/0 0.0/8 ACCEPT tcp -.168.0. la salida.0.0.0/0 ACCEPT tcp -.0.168.0/0 ACCEPT tcp -.0.0.0.0/0 0.0.0.0.

y 5).4. Allard y Don Cohen http://oceanpark.Joel Barrios Dueñas Chain OUTPUT (policy ACCEPT) target prot opt source Configuración de Servidores con GNU/Linux destination 38. utilice el siguiente mandato para guardar éstas: service iptables save Las reglas quedarán almacenadas en el archivo /etc/sysconfig/iptables.9.html 313 . utilice: service iptables restart Para detener el servicio iptables y borrar todas las reglas utilice: service iptables stop 38. • • Wikipedia: http://en. en todos los niveles de ejecución (2.org/wiki/Iptables Dennis G.wikipedia. 4. Si está de acuerdo con las reglas generadas de iptables. se utiliza lo siguiente: chkconfig iptables on 38.8. Para hacer que el servicio de iptables esté activo con el siguiente inicio del sistema. utilice: service iptables start Para hacer que los cambios hechos tras modificar la configuración surtan efecto. 3. Para ejecutar por primera vez el servicio iptables.3. detener y reiniciar el servicio iptables. Iniciar.com/notes/firewall_example. Bibliografía.3. Agregar el servicio iptables al arranque del sistema.

De acuerdo al Sistema Internacional de Unidades. Acerca de cbq. kilobit/s) Mbit/s o Mbps(Mb/s. Megabit/s) Gbit/s o Gbps (Gb/s. kbit/s o kbps (kb/s. Usted es libre de copiar.1. Comprendiendo la velocidad binaria (bit rate). tasa de bits o flujo de bits. 39. Cómo utilizar CBQ. En otras palabras. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 39. donde la b siempre debe escribirse en minúscula para impedir confusión con la unidad byte por segundo (B/s).1 © 1999-2011 Joel Barrios Dueñas.1. Gigabit/s) byte/s (B/s) kilobyte/s (kB/s. CBQ (Class Based Queueing o Encolamiento Basado sobre Clases). y a partir de esto se puede utilizar la siguiente tabla: Tabla de equivalencias. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. mil bytes) megabyte/s (MB/s. Fue originalmente creado en 1999 por Pavel Golubev y posteriormente mantenido de 2001 a 2004 por Lubomir Bulej.2.1. es decir bit/s. a través de cualquier medio. Introducción. mil millones de bytes) 1000 bits de por segundo 1 millón de bits por segundo Mil millones de bits por segundo 8 bits por segundo 8 mil bits por segundo 8 millones de bit por segundo 8 mil millones de bits 314 . Al reutilizar o distribuir la obra. el cual se incluye en las instalaciones básica de la mayor parte de las distribuciones de GNU/Linux. b/s o bps. es un guión escrito en BASH utilizado para la gestión y control del uso de ancho de banda en GNU/Linux. La unidad byte es igual a 8 bits. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. Utiliza de una forma simplificada los mandatos ip y tc para su funcionamiento. 39. Los múltiplos para byte aplican de diferente modo que para bit. es la velocidad de transferencia de datos. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. El término bit rate se traduce al español como velocidad binaria. y forma parte del paquete iproute. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. c) Si altera o transforma esta obra.alcancelibre. 39. o genera una obra derivada. la unidad con la que se expresa la velocidad binaria (bit rate) es el bit por segundo. por entidades con fines de lucro). Corresponde al numero de bits que se transmiten por segundo a través de un sistema de transmisión digital o entre dos dispositivos digitales.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. un millón de bytes) gigabyte/s (GB/s. Licencia completa en castellano. tiene que dejar bien claro los términos de la licencia de esta obra.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 39. solo bastará realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario: up2date -i iproute 39. que es opcional en este parámetro. el peso será de 204 kbps. Se determina los valores con el nombre de la interfaz. quedarían de la siguiente forma: 315 . Instalación a través de up2date. CBQ forma parte de la instalación del paquete iproute.3.1. Si se utiliza Red Hat™ Enterprise Linux 4.10Mbit Si se dispone de una interfaz eth0 conectada a un modem ADSL de 2048 kbps de tráfico entrante o de bajada. Es un parámetro obligatorio.4. solo se necesita realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario: yum -y install iproute 39. WEIGHT. Instalación a través de yum. se deben determinarse los valores para los siguientes parámetros. quedarían de la siguiente forma: DEVICE=eth0.2. Red Hat Enterprise Linux 5 o White Box Enterprise Linux 4 y 5. Parámetro DEVICE. Las reglas pueden ser tan complejas como la imaginación del administrador lo permita.smtp-in 39. Por ejemplo.[nombre] Donde número-ID-Clase corresponde a un número headecimal de 2 bits dentro del rango 0002FFFF.3. de tal modo los valores del parámetro DEVICE.100Mbit. ancho de banda y peso de esta interfaz. RATE y RULE. mismo que a su vez se instala de modo predeterminado en casi todas las distribuciones de GNU/Linux. se calcula dividiendo el ancho de banda de la interfaz entre diez. Si utiliza CentOS 4 y 5. Equipamiento lógico necesario. sí se dispone de una interfaz denominada eth0 de 100 Mbit/s. el peso será 10 Mbit/s. Antes de iniciar cualquier configuración. Preparativos. se requiere al menos comprender y especificar los valores para los parámetros DEVICE.3.4. de tal modo los valores del parámetro DEVICE. Para construir una regla. Los archivos con las configuraciones se guardan dentro del directorio /etc/sysconfig/cbq/ y deben llevar sl siguiente nomenclatura: /etc/sysconfig/cbq/cbq-[número-ID-Clase]. 39. Este último valor. Ejemplo: archivo que contiene una clase que controla el tráfico entrante de correo electrónico: /etc/sysconfig/cbq/cbq-0002.1.

Parámetro de clase PARENT.4. correspondería un valor de 204Kbit: WEIGHT=204Kbit 39. RATE=1024Kbit Sí se quiere limitar el ancho de banda utilizado a 512 kbit/s. quedarían de la siguiente forma: DEVICE=eth0. Cuando se utilizan reglas que se requiere estén jerarquizadas. Es un parámetro opcional que se utiliza para especificar que prioridad tendrá sobre otras reglas de control de ancho de banda.3. RATE=10Mbit Sí se quiere limitar el ancho de banda utilizado a 1024 kbit/s.256Kbit. de tal modo los valores del parámetro DEVICE. Es un parámetro obligatorio.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux DEVICE=eth0. Se refiere al ancho de banda a asignar a la clase. Parámetro de clase PRIO. el valor de RATE sería 512Kbit. En el siguiente ejemplo se establece la identidad 100 en una clase padre. como se muestra a continuación. se define junto con el parámetro LEAF con el valor none.2048Kbit.1. menos prioridad tendrá sobre otras reglas.2.1. Mientras más alto sea el valor. Éste es proporcional al ancho de banda total de la interfaz. el peso será de 25 kbps. Se recomienda utilizar el valor 5 que funcionará para la mayoría de los casos. Parámetro de clase WEIGHT. Parámetro de clase RATE. como se muestra a continuación.4.4.4. Como regla se se calcula dividiendo entre diez el ancho de banda total. Para una interfaz de 2048 kbps. 316 . RATE=512Kbit 39. como se muestra a continuación. El tráfico que pase a través de esta clase será modificado para ajustarse a la proporción definida. Ejemplo: PRIO=5 39. Puede llevar cualquier valor.204Kbit Si se dispone de una interfaz eth0 conectada a un modem ADSL de 256 kbps de tráfico saliente o de subida. Por ejemplo. el valor de RATE sería 1024Kbit. sí se quiere limitar el ancho de banda utilizado a 10 Mbit/s.25Kbit 39. el valor de RATE sería 10Mbit. Es un parámetro obligatorio. Cuando se trata de una clase padre. se utiliza para establecer la identidad de clase padre a la que pertenecen.4.

En el siguiente ejemplo se establece el el pico máximo para ráfagas de 1024 Kbit: PEAK LEAF=tbf PEAK=1024Kbit Determina la máxima cantidad de datos que se pueden enviar al mismo tiempo en un medio físico. es decir. siempre que el valor del parámetro BOUDED sea igual a no. El valor predeterminado es 15kb.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux PARENT=100 LEAF=none 39. Es un parámetro opcional y se utiliza para determinar que política se utilizará para utilizar el ancho de banda de una clase padre. LEAF=sfq El valor none permite utilizar libremente el ancho de banda disponible. LIMIT LEAF=tbf LIMIT=15kb Determina el pico máximo para una ráfaga de tráfico de corto plazo que una clase puede enviar.25 segundos. hace que sea compartido el ancho de banda de la clase padre aproximadamente en la misma proporción de ancho de banda entre anfitriones dentro de la misma clase.5. LEAF=tbf Parámetros adicionales para algoritmo TBF. Determina el tamaño máximo de ráfaga (maximal burst size) que la clase puede enviar. o 1 Mbit en 0. en un momento dado se puede dar el caso de el envío de 512 Kbit en 0. En el siguiente ejemplo se especifica utilizar libremente el ancho de banda disponible: LEAF=no 317 . MTU LEAF=tbf PEAK=1024Kbit MTU=1500 El valor sfq. La longitud de las reservas determina la latencia (tiempo de recuperación de datos) de la cola en caso de presentarse una congestión.50 segundos. Parámetro de clase LEAF. Es un parámetro obligatorio si se utiliza el parámetro PEAK.4. ráfagas de 10Kb en intervalos de 8 bytes. BUFFER LEAF=tbf BUFFER=10Kb/8 Determina el tamaño máximo de las reservas (backlog). que es el valor predeterminado. El valor predeterminado es 10Kb/8. Si se utiliza el valor tbf. el valor predeterminado es igual al MTU de la propia interfaz (1500). Considerando que un ancho de banda de 256 kbps envía 256 Kbit por segundo. En el caso de una interfaz Ethernet. y puede llevar como parámetro opcional la longitud de los intervalos en bytes. se utilizará el algoritmo TBF (Token Bucket Filter). el cual impide que la clase tome ancho de banda de la clase padre. los siguientes paquetes que lleguen serán descartados. que corresponde al algoritmo SFQ (Stochastic Fairness Queueing). Si la cola de datos por procesar contiene más de los especificados por LIMIT.

7. 3. donde todos los valores son opcionales.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 39.4. Si se establece con valor no.IP-destino:puerto-destino En general la interpretación sigue cuatro simples principios: 1. Es un parámetro opcional. Cualquier dirección IP o red que se coloque antes de la coma se considera dirección IP o red de origen. pero se debe especificar al menos uno: RULE=IP-origen:puerto-origen. PARENT=100 LEAF=sfq BOUNDED=no 39. la clase podrá hacer uso del ancho de banda disponible en la clase padre. Selección de todo el tráfico desde cualquier puerto en cualquier red hacia los puertos 25 (SMTP). 465 (SMTPS) y 587 (SMTP Submission) en cualquier red (es decir. Es un parámetro opcional. Ejemplos. Cualquier puerto especificado después de la coma se considera puerto de destino.6. Son las reglas de filtración que se utilizan para seleccionar tráfico en cada una de las clases. Si el valor es no. Si el valor es yes. Parámetro de clase BOUNDED.4. la clase no tendrá permitido utilizar ancho de banda de la clase padre. Cualquier dirección IP o red que se coloque después de la coma se considera dirección IP o red de destino. la clase no prestará ancho de banda a las clases hijas. La sintaxis completa es la siguiente: RULE=[[saddr[/prefijo]][:puerto[/máscara]]. ISOLATED=no 39. La sintaxis simplificada es la siguiente. Si se utiliza el valor no.4. Parámetro de clase ISOLETED. controla ancho de banda de correo saliente): 318 . daddr se refiere a la dirección de destino. saddr se refiere a la dirección de origen. es necesario utilizar none o bien sfq en el parámetro LEAF. Cualquier puerto antes de la coma se considera el puerto de origen. 4. Parámetros de filtración. que es el valor predeterminado. Si se establece con el valor yes. 2. se permitirá prestar el ancho de banda disponible a las clases hijas.8. que es el valor predeterminado.][daddr[/prefijo]][:puerto[/máscara]] En lo anterior.

168.0.0/24: RULE=:25.0/24.0/24 hacia cualquier puerto en cualquier red: RULE=192.0.192.0/24:25.168.:465 RULE=. RULE=:587.0.168. 465 (SMTPS) y 587 (SMTP Submission) en cualquier red hacia cualquier puerto en cualquier red (es decir.0/24 Selección de todo el tráfico desde cualquier puerto en la red 192.0/24 hacia el puerto 25 (SMTP) en cualquier red: RULE=192.192.0/24.0/24 hacia cualquier puerto en cualquier red: RULE=192. Selección de todo el tráfico desde el puerto 25 (SMTP) en la red 192. Selección de todo el tráfico desde cualquier puerto en cualquier red hacia cualquier puerto en la red 192.0.168.0/24: RULE=:25.0/24 Selección de todo el tráfico desde el puerto 25 (SMTP) en cualquier red hacia el puerto 25 (SMTP) en la red 192.:25 Selección de todo el tráfico desde el puerto 25 (SMTP) en cualquier red hacia cualquier puerto en la red 192.0.168.0.168.0/24:25 Selección de todo el tráfico desde el puerto 80 en cualquier red hacia cualquier puerto de cualquier red: 319 . Selección de todo el tráfico desde la red 192.168.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux RULE=.0.168.0.168.0.0.0.0. RULE=:465. controla ancho de banda de correo entrante): RULE=:25.168.:25 RULE=.168.192.168.:587 Selección de todo el tráfico desde los puertos 25 (SMTP).0.0.0/24: RULE=.168.:25 Selección de todo el tráfico desde el puerto 25 (SMTP) en la red 192.0/24:25.0/24 hacia el puerto 25 (SMTP) en cualquier red: RULE=192.168.

Enlace ADSL de 2048 kbps de tráfico entrante y 256 kbps de tráfico saliente.168.0. a través de la interfaz eth0.168.0.161.1.0/24 RULE=201.0/24 Selección de todo el tráfico desde los puerto 20 (FTP-DATA).192.1.226:80.0/24: RULE=201.0.192.0.192.1.226 hacia cualquier puerto en cualquier red: RULE=201. 21 (FTP) y 80 (HTTP) en cualquier red hacia la red 192.161.226.168. Para poder configurar el uso de ancho de banda se requiere determinar primero lo siguiente: • • • • ¿Cual es el ancho de banda de tráfico entrante (de bajada) de la interfaz pública? ¿Cual es el ancho de banda de tráfico saliente (de subida) de la interfaz pública? ¿Qué servicios se van a controlar? ¿Cuanto ancho de banda para tráfico entrante y saliente se va a destinar a cada servicio? Considerando el siguiente escenario: • • Servidor con un cortafuegos y un NAT compartiendo el acceso hacia Internet.168.168.226:20.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux RULE=:80.192. 320 .0/24 39.0. Selección de todo el tráfico desde puerto 80 en el anfitrión 201.5.161.161.1.1.1.0/24: RULE=:20.168.192.1.161.0/24 Selección de todo el tráfico desde de los puertos 20 (FTP-DATA).161.192.0/24 RULE=201.0/24 RULE=:21.161.0/24 RULE=:80.0/24: RULE=:80.168. Selección de todo el tráfico desde cualquier puerto en el anfitrión 201. 21 (FTP) y 80 (HTTP) en el anfitrión 201.0.168. Procedimientos.0.226:80.161.1.226 hacia cualquier puerto en cualquier red: RULE=201.168.0.226:21.0.192.0.226 hacia la red 192.168. Selección de todo el tráfico desde el puerto 80 (HTTP) en cualquier red hacia la red 192.

168.2048Kbit RATE=64Kbit WEIGHT=204Kbit PRIO=5 RULE=192. 22 Tráfico entrante 512Kbit 1024Kbit 256Kbit Tráfico saliente 128Kbit 64Kbit 64Kbit 39.0/24 RULE=:21.192. 143.168. se asignarán los siguientes anchos de banda para cada servicio específicado.:143 DEVICE=eth0.0. se recomienda crear archivos independientes para cada política.192.0/24. sin prestar ancho de banda de una clase a otra.192. POP3. 465.0/24 RULE=:22.192.168. CBQ sin compartir ancho de banda entre clases.2048Kbit RATE=1024Kbit WEIGHT=204Kbit PRIO=5 RULE=:80.0.smtp-out: Contenido de archivo /etc/sysconfig/cbq/cbq-0003.2048Kbit RATE=512Kbit WEIGHT=204Kbit PRIO=5 RULE=:25. POP3 e IMAP HTTP y HTTPS FTP y SSH/SFTP Puertos 25.web-out: Contenido de archivo /etc/sysconfig/cbq/cbq-0006.0/24.168.0.0.0/24.:443 DEVICE=eth0.0.:465 RULE=192.192.:110 RULE=192.0/24 RULE=:143.0/24 RULE=:110.192.0/24 RULE=:587.0/24 RULE=:443.168.0/24.168. Se quiere gestionar el uso de ancho de banda para SMTP.168.168.168.0.:25 RULE=192.:22 321 .1.:80 RULE=192.0/24.:21 RULE=192.0.0.0/24.0/24.168.0/24 accede desde la interfaz eth1.0/24 RULE=:995.192.0/24.smtp-in: DEVICE=eth0.0/24 Contenido de archivo /etc/sysconfig/cbq/cbq-0004.0/24 Contenido de archivo /etc/sysconfig/cbq/cbq-0002.192.0. destinar un archivo para todo lo relacionado con correo. es decir.168.0/24.192. 443 20. Servicios Correo electrónico: SMTP.0/24.192.168. FTP y SSH/SFTP.168.2048Kbit RATE=265Kbit WEIGHT=204Kbit PRIO=5 RULE=:20.0.0.0.0.:587 RULE=192.0.192. 995 80.168.168. se el 50% del ancho de banda de entrada a HTTP y HTTPS. 110.0. 21. HTTP.0.168.0/24 RULE=:465. Es decir.168. Contenido de archivo /etc/sysconfig/cbq/cbq-0002.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux • • Red local 192.168.ftp-in: DEVICE=eth0.0/24 RULE=:993.0/24 DEVICE=eth0.:20 RULE=192. otro para lo relacionado con HTTP/HTTPS y otro relacionado con FTP. IMAP.0.2048Kbit RATE=128Kbit WEIGHT=204Kbit PRIO=5 RULE=192.168. Al repartir el ancho de banda.5.0.0.ftp-out: DEVICE=eth0. y se dará el 50% del ancho de banda de subida a los servicios relacionados con el correo electrónico.192. Con la finalidad de facilitar la organización. HTTPS.0.168.0.web-in: Contenido de archivo /etc/sysconfig/cbq/cbq-0005.0.2048Kbit RATE=64Kbit WEIGHT=204Kbit PRIO=5 RULE=192.168.0. En el ejemplo los anchos de banda se están asignando pensando en que se hará uso de todos los servicios de forma simultánea y que se quiere que cada servicio respete el ancho de banda de los otros. 587.168.168. • Como ejemplo. 993.

0/24.:995 Contenido de archivo /etc/sysconfig/cbq/cbq-0004.2048Kbit RATE=1024Kbit WEIGHT=204Kbit PRIO=5 PARENT=100 LEAF=no BOUNDED=no ISOLATED=no RULE=:80.d/ y tratarlo igual que cualquier otro servicio del sistema.0/24 RULE=:143.0.192.0/24 RULE=:995.0.0.0/24 DEVICE=eth0.2048Kbit RATE=128Kbit WEIGHT=204Kbit PRIO=5 PARENT=200 LEAF=no BOUNDED=no ISOLATED=no RULE=192.0/24.192.0/24 RULE=:443.168.168.:995 39.0/24.192. CBQ compartiendo ancho de banda entre clases.168. Iniciar.0.0/24 RULE=:22.0/24 RULE=:21.168.:80 RULE=192.:22 39.192.168.0/24 RULE=:587. Con la finalidad de facilitar la organización.192.192. Es decir.168.168.:20 RULE=192. Contenido de archivo /etc/sysconfig/cbq/cbq-0002.:993 RULE=192.2048Kbit RATE=64Kbit WEIGHT=204Kbit PRIO=5 PARENT=200 LEAF=sfq RULE=192.smtp-out: Contenido de archivo /etc/sysconfig/cbq/cbq-0003.168.2048Kbit RATE=512Kbit WEIGHT=204Kbit PRIO=5 PARENT=100 LEAF=sfq RULE=:25.168.ftp-in: DEVICE=eth0.0.192.168.0/24.:443 DEVICE=eth0.0.:25 RULE=192.0.192.0/24.168.2048Kbit RATE=64Kbit WEIGHT=204Kbit PRIO=5 PARENT=200 LEAF=sfq RULE=192.0/24.:110 RULE=192.168.168.:587 RULE=192. Es necesario copiar este archivo dentro de /etc/init.5.5. Se utilizará a las clases con mayor ancho de banda disponible como las clases padre.192.0. En el ejemplo los anchos de banda se están asignando pensando en que se hará uso de todos los servicios de forma simultánea y que se quiere que cada servicio preste ancho de banda sin utilizar desde una clase hacia otra.web-in: Contenido de archivo /etc/sysconfig/cbq/cbq-0005.0/24 DEVICE=eth0.0.0/24 RULE=:465. destinar un archivo para todo lo relacionado con correo.:21 RULE=192.168.168. cp -a /sbin/cbq /etc/init.192.0.:143 RULE=192.0.0/24.0.0/24 RULE=:110.0/24.168.0/24. otro para lo relacionado con HTTP/HTTPS y otro relacionado con FTP.:465 RULE=192. El guión de inicio de cbq está instalado como /sbin/cbq.0/24.168.168. detener y reiniciar el servicio cbq.ftp-out: DEVICE=eth0.168.0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux RULE=192.0.3.0/24 RULE=:993.192.168.168.0.0/24.0.0.0.168.0.0/24.0/24.:993 RULE=192. se recomienda crear archivos independientes para cada política.168.192.0.2.168.2048Kbit RATE=265Kbit WEIGHT=204Kbit PRIO=5 PARENT=100 LEAF=sfq RULE=:20.0.168.0.0.0.0.d 322 .smtp-in: DEVICE=eth0.168.0/24 Contenido de archivo /etc/sysconfig/cbq/cbq-0002.0/24.web-out: Contenido de archivo /etc/sysconfig/cbq/cbq-0006.0.

puede recurrir a: service cbq compile Para ejecutar por primera vez el servicio cbq. y 5).5.4. Agregar el servicio cbq al arranque del sistema. se utiliza lo siguiente: chkconfig cbq on 323 . en todos los niveles de ejecución (2. Para hacer que el servicio de cbq esté activo con el siguiente inicio del sistema. utilice: service cbq start Para hacer que los cambios hechos tras modificar la configuración surtan efecto.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para probar que las clases están correctas antes de utilizar éstas. 3. utilice: service cbq restart Para detener el servicio cbq y eliminar de memoria todas las reglas utilice: service cbq stop Para supervisar las estadísticas de tráfico gestionado a través de cbq utilice: service cbq stats 39. 4.

Ciertamente consume bastantes recursos. muchas personas suelen desactivarlo editando /etc/sysconfig/selinux. b) No puede utilizar esta obra para fines comerciales.3. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.. ¿Qué es SELinux? SELinux (del inglés Security-Enhanced Linux.alcancelibre. 40. Suele ocurrir que al intentar mejorar el rendimiento de un sistema se recurra a la práctica de desactivar SELinux. Usted es libre de copiar. El objetivo de este artículo es servir como una breve introducción a los conceptos básicos de administración de SELinux. Introducción. de forma breve.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 40. Mandato getsebool Este mandato permite listar políticas en SELinux. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Autor: Joel Barrios Dueñas Correo electrónico: darkshram@gmail. 40. a través del uso de módulos de Seguridad en el núcleo de Linux. lo cual eventualmente también significará que irá surgiendo equipamiento lógico malicioso (malware) específicamente diseñado para GNU/Linux.1. Básicamente se utiliza de la siguiente forma: getsebool -a |grep cadena 324 .org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. podría ser de gran utilidad para impedir ataques dirigidos específicamente hacia GNU/Linux. tiene que dejar bien claro los términos de la licencia de esta obra. como utilizar de manera básica getsebool y setsebool (y un poco de chcon) en CentOS 5 (aplicable a Red Hat Enterprise Linux 5) y Fedora 10 (y versiones posteriores) desde la terminal. ejemplificando políticas para algunos servicios. 40. La gran popularidad que están teniendo las computadoras ultra-portátiles está incrementando el número de usuarios de GNU/Linux. c) Si altera o transforma esta obra. A continuación explico. incluyendo el estilo de acceso a los controles del Departamento de Defensa de EE. Al reutilizar o distribuir la obra. fortaleciendo sus mecanismos de control de acceso y forzando la ejecución de los procesos dentro de un entorno con los mínimos privilegios necesarios. pero brinda un nivel de seguridad superior que en un futuro. y determinar si están activos o inactivos. Es una implementación compleja y robusta que suele ser muy oscura para la mayoría de los usuarios. o genera una obra derivada. que esperemos sea muy lejano. En si es una colección de parches que fueron integrados hace algunos años al núcleo de Linux.2. falta de documentación amistosa y que muchos servicios simplemente son imposibles de operar sin una política correspondiente.com sitio de Red: http://www.UU. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Introducción a SELinux en CentOS 5 y Fedora. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.1 © 1999-2011 Joel Barrios Dueñas. Utiliza un modelo de seguridad de control de acceso obligatorio. que se traduce como Seguridad Mejorada de Linux) es una implementación de seguridad para GNU/Linux que provee una variedad de políticas de seguridad. Debido a ésto.

• • • Para activar estas. se utiliza el mandato setsebool con el nombre de la política y el valor 0 o bien 1 para desactivar o activar. interesan las siguientes políticas: • • allow_ftpd_anon_write: Permite a los usuarios anónimos poder escribir en el servidor.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Donde cadena es una cadena de texto que se puede utilizar para localizar las políticas relacionados con algún servicio en particular. como sería a través de VSFTPD. En el siguiente ejemplo se activa poder acceder a los directorios de inicio de los usuarios: setsebool ftp_home_dir 1 325 . Para el servicio de FTP. las políticas son aplicadas de inmediato y estarán vigentes hasta el siguiente reinicio del sistema. Para hacer permanentes las políticas. como root se puede utilizar lo siguiente: getsebool -a |grep ftp Lo anterior debe regresar algo similar como lo siguiente: allow_ftpd_anon_write --> off allow_ftpd_full_access --> off allow_ftpd_use_cifs --> off allow_ftpd_use_nfs --> off ftp_home_dir --> off httpd_enable_ftp_server --> off tftp_anon_write --> off 40. respectivamente.4. La sintaxis básica es la siguiente: setsebool nombre_politica valor Cuando se ejecuta de la manera anteriormente descrita. allow_ftpd_full_access: Permite lectura y escritura sobre todos los archivos disponibles desde el servidor. se utiliza el mismo mandato con la opción -P: setsebool -P nombre_politica valor A continuación se muestran algunos ejemplos de gestión de políticas para varios servicios. 40. si se desea conocer que políticas que incluyan la cadena ftp están activos. allow_ftpd_use_nfs: Permite transferencias de datos desde NFS ftp_home_dir: Permite a los usuarios locales poder acceder a sus directorios de inicio. allow_ftpd_use_cifs: Permite transferencias de datos desde CIFS. Por ejemplo. mismas que pueden verse a través de el mandato getsebool. Servicios de FTP. Mandato setsebool.4. Setsebool permite cambiar los valores para diferentes políticas de SELinux.1.

Cuando se trabaja con directorios que serán accedidos desde redes públicas. y esta es precisamente la política que lo permite.4. Otro típico ejemplo es del OpenVPN. OpenVPN.3. añadiendo el tipo httpd_sys_content_t. hasta que el sistema sea reiniciado. setsebool -P httpd_enable_homedirs 1 chcon -R -t httpd_sys_content_t ~user/public_html Para permitir la ejecución de programas CGI. Samba. • openvpn_disable_trans: Por omisión. 40. como cliente y servidor. solo se podrían utilizar certificados definidos por el administrador en algún directorio del sistema. se activa la política httpd_enable_homedirs y se utiliza el mandato chcon para permitir el acceso a los directorios ~/public_html. en su totalidad. SELinux impide utilizar OpenVPN como servidor.4. de ls siguiente manera: setsebool -P ftp_home_dir 1 40. se puede utilizar: setsebool -P httpd_disable_trans 1 40.4. pero permite a éste funcionar como servidor. como un directorio virtual o un directorio para dominio virtual en Apache.4. se utiliza setsebool con la opción -P. La política que lo habilita es samba_domain_controller: setsebool -P samba_domain_controller 326 . Apache. se utiliza: setsebool -P httpd_can_sendmail 1 Para desactivar que SELinux controle a Apache. bajo algunas circunstancias se necesita permitir a los usuarios poder conectarse a redes VPN utilizando certificados que el mismo usuario almacena en su directorio de inicio. Para hacer permanente el cambio. Existen dos políticas: • openvpn_enable_homedirs: Permite utilizar certificados almacenados en los directorios de los usuarios. Con el nivel de seguridad por omisión.2. Esta política permite desactiva toda gestión de SELinux sobre OpenVPN. se utiliza: setsebool -P httpd_enable_cgi 1 Para permitir enviar correo desde apache. Para la política de openvpn_enable_homedirs. En Samba es común la necesidad de permitir a este servicio operar como controlador de dominio.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior permitiría que los usuarios puedan acceder a sus propios directorios de inicios a través de VSFTPD.

el manual que contiene las descripciones correspondientes es nfs_selinux. Otros servicios.4.5. se creará un directorio como /var/samba/publico: mkdir -p /var/samba/publico Para visualizar sus contextos en SELinux. Los detalles respecto de qué es lo que hace dada política pueden consultarse a través de las páginas de manual que están instaladas en el sistema. En general. se utiliza el mandato ls con la opción -Z: ls -Z /var/samba/ Lo anterior debe devolver una salida como la siguiente: drwxr-xr-x root root unconfined_u:object_r:var_t:s0 publico Para añadir el tipo samba_share_t.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si se desea permitir el acceso a los directorios de inicio de los usuarios. En el siguiente ejemplo. man httpd_selinux 327 . todos las políticas de todos los servicios pueden ser gestionadas buscando cuales están relacionadas a través del mandato getsebool. hay dos políticas que se pueden utilizar: • samba_export_all_ro: Permite el acceso a directorios compartidos en Samba en modo de solo lectura • samba_export_all_rw: Permite el acceso a directorios compartidos en Samba en modo de lectura y escritura. Ejemplo: setsebool -P samba_export_all_rw 1 40. se utiliza la política los directorios ~/public_html: setsebool -P samba_enable_home_dirs on Para poder utilizar directorios que se compartirán a través de Samba. Por ejemplo. para consultar que políticas hay para el servicio NFS. se utiliza el mandato chcon de la siguiente manera: chcon -t samba_share_t /var/samba/publico Al volver a visualizar el contexto del directorio con ls -Z. se utiliza chcon definiendo el tipo samba_share_t al contexto del directorio. deberá devolver una salida como la siguiente: ls -Z drwxr-xr-x root root unconfined_u:object_r:samba_share_t:s0 publico Para compartir un directorios en Samba.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Otros manuales que pueden consultarse en el sistema para diferentes servicios son: • kerberos_selinux • named_selinux • ftpd_selinux • nis_selinux • rsync_selinux • ypbind_selinux • pam_selinux • httpd_selinux • nfs_selinux • samba_selinux 328 .

alcancelibre. Introducción. 41. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.txt 329 . Cuando. Acerca del protocolo DHCP. y se describe a detalle en el RFC 2131. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Cómo configurar un servidor DHCP en una LAN Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.1 © 1999-2011 Joel Barrios Dueñas.txt. y cada anfitrión conectado a la red está configurada para solicitar su dirección IP al servidor cuando se inicia el dispositivo de red. DHCP existe desde 1993 como protocolo estándar. Sin la ayuda de un servidor DHCP. máscara de sub-red. o genera una obra derivada. se tendrá que configurar otra dirección IP diferente para poder unirse a esta nueva Red de Área Local.) a partir de un servidor DHCP. Al reutilizar o distribuir la obra. puerta de enlace. las direcciones IP de una Red de Área Local asignando una dirección IP a cada anfitrión que se una a la Red de Área Local. Usted es libre de copiar. y max-lease-time). Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. que se traduce Protocolo de configuración dinámica de servidores) es un protocolo que permite a dispositivos individuales en una red de direcciones IP obtener su propia información de configuración de red (dirección IP. tiene que dejar bien claro los términos de la licencia de esta obra. tendrían que configurarse de forma manual cada dirección IP de cada anfitrión que pertenezca a una Red de Área Local. a ésta le será asignada una dirección IP. y http://www. DHCP (acrónimo de Dynamic Host Configuration Protocol. necesarios para unirse a cada Red de Área Local donde se localice. Sólo los anfitriones con una dirección MAC definida en dicha tabla recibirá el IP asignada en la misma tabla. que se traduce como dirección de Control de Acceso al Medio). Asignación dinámica: Se determina arbitrariamente un rango de direcciones IP. Si un anfitrión se traslada hacia otra ubicación donde existe otra Red de Área Local. c) Si altera o transforma esta obra. Un servidor DHCP entonces supervisa. una computadora portátil se configura para utilizar DHCP. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.org/rfc/rfc2131.org/rfc/rfc2132. b) No puede utilizar esta obra para fines comerciales. de modo que la asignación de direcciones IP es de manera temporal.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 41. Asignación automática: Una dirección de IP disponible dentro de un rango determinado se asigna permanentemente al anfitrión que la requiera. 41. por mencionar un ejemplo. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.ietf.1. Su propósito principal es hacer más fáciles de administrar las redes grandes. Existen tres métodos de asignación en el protocolo DHCP: • Asignación manual: La asignación utiliza una tabla con direcciones MAC (acrónimo de Media Access Control Address. Ésto se hace a través del parámetro hardware ethernet combinado con deny unknown-clients. etc.1. utilizando un intervalo de tiempo controlable (parámetros default-lease-time.1. y éstas se reutilizan de forma dinámica. y distribuye. y otros parámetros de red.ietf.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. • • URL: http://www.

Red Hat™ Enterprise Linux 5. edite el archivo /etc/shorewall/interfaces: vim /etc/shorewall/interfaces Y añadir la opción dhcp a las opciones de la interfaz sobre la cual funciona el servicio dhcpd. Si se utiliza un cortafuegos con políticas estrictas. Agente de retransmisión. habilita las comunicaciones de entrada.. Acerca de dhcp por Internet Software Consortium. por UDP (BOOTPS. 330 .DO NOT REMOVE Reinicie el servicio shorewall a fin de que surtan efecto los cambios.2. Por lo general. Inc. distribuye un conjunto de herramientas para el protocolo DHCP.2. Modificaciones necesarias en el muro cortafuegos. o bien versiones posteriores de éstos. 41.ADD YOUR ENTRIES BEFORE THIS ONE -. jamás se abren puertos de DHCP a las redes públicas. Dichas herramientas utilizan un API (Application Programming Interface o Interfaz de Programación de Aplicaciones) modular diseñado para ser lo suficientemente general para ser utilizado con facilidad en los sistemas operativos que cumplen el estándar POSIX (Portable Operating System Interface for UNIX o interfaz portable de sistema operativo para Unix). Equipamiento lógico necesario. como por ejemplo Shorewall. Instalación a través de yum. y 68. y noPOSIX.org/products/DHCP/ 41. Inc. y salida. Internet Software Consortium. y BOOTPC.3.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 41. Si se utiliza Shorewall.1.2. para DHCP. Fundado en 1994. URL: http://isc. es necesario abrir los puerto 67. Cliente DHCP. respectivamente) de modo bidireccional. como Windows. Esta opción. ########################################################################## #ZONE INTERFACE BROADCAST OPTIONS net eth0 detect blacklist loc eth1 detect dhcp. solamente necesita ejecutar lo siguiente: yum -y install dhcp 41.blacklist #LAST LINE -.1. las cuales consisten en: • • • Servidor DHCP. Si utiliza CentOS 5. tras reiniciar el servicio shorewall.

y dejar como están las políticas predeterminadas..2. considerando que eth1 es la interfaz correspondiente a la LAN: # Command line options here DHCPDARGS=eth1 41. se recomienda que el servicio dhcpd solamente funcione a través de la interfaz de red utilizada por la LAN.16. Considerando como ejemplo que se tiene una red local con las siguientes características: • • • • Número de red: 172. Lo siguiente sólo aplica para CentOS 5 y Red Hat Enterprise Linux 5.0 Máscara de sub-red: 255.1. Si se desea eliminar la protección que brinda SELinux al servicio dhcpd.255. Nota. Edite el archivo /etc/sysconfig/dhcpd: vim /etc/sysconfig/dhcpd Para el siguiente ejemplo.conf.16.4. Edite el archivo /etc/sysconfig/dhcpd. como argumento(s) del parámetro DHCPDARGS. eth2. eth1. utilice el siguiente mandato.255. utilice el siguiente mandato. 41.3. Archivo de configuración dhcpd. y agregue el valor eth0.4.1. setsebool -P dhcpd_disable_trans 1 Si se desea eliminar la protección que brinda SELinux al sistema para funcionar como cliente DHCP.1< 331 . SELinux y el servicio dhcpd. En el caso de disponer múltiples dispositivos de red en el servidor. Archivo de configuración /etc/sysconfig/dhcpd.1 Servidor de nombres: 172. o bien lo que corresponda a la interfaz desde la cual accede la red local.192 (26 bit) Puerta de enlace: 172.16.1.4. Se recomienda encarecidamente dejar activo SELinux. 41.4. etc. setsebool -P dhcpc_disable_trans 1 Ninguna de estás políticas existe en CentOS 6 y Red Hat Enterprise Linux 6.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux service shorewall restart 41.1. Procedimientos.

authoritative. server-identifier servidor.red-local. Si se utiliza CentOS 6.255.58.16. vim /etc/dhcpd.16. 132. y entender perfectamente. option domain-name-servers 172.net.16. todo lo anterior para poder continuar con este documento.51. Nota.58. y estudiar. vim /etc/dhcp/dhcpd.16. 200.205.1. Rango de direcciones IP a asignar de modo dinámico: 172.org.4.1.» Puede utilizar el contenido de ejemplo.1.conf. ajustando los datos a una red para un conjunto de sistemas en particular. option ntp-servers 200.16.30.255. max-lease-time 7200. y de acceso gratuito.1. y 148. option broadcast-address 172. utilice la siguiente plantilla y modifique todo lo que esté resaltado.conf Para efectos prácticos.1. un nuevo archivo de configuración para el servicio dhcpd. pueden añadirse también en la configuración de la siguiente forma.0 netmask 255.16.81.1. option netbios-name-servers 172.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux • • Servidor Wins: 172.1.248.248.16. o bien crear desde cero.1.1 Servidores de tiempo (NTP): recomendamos utilizar los de NTP. edite el archivo /etc/dhcpd.234.205. o Red Hat Enterprise Linux 5.192 { option routers 172. y dirección IP: 332 .2 172. edite el archivo /etc/dhcp/dhcpd.234.7.255.1. • Es indispensable conocer. Asignación de direcciones IP estáticas. o Red Hat Enterprise Linux 6. 132.1. option ip-forwarding off.29. } } Lo anterior corresponde a la configuración básica recomendada para un servidor DHCP básico. hasta 172.1.conf Nota.192. para adaptar. que se encuentra más adelante.16.7. ignore client-updates. por favor. shared-network redlocal { subnet 172.conf.3. dirección MAC.81.30.23. default-lease-time 900. option domain-name "red-local.29. 41.16. option subnet-mask 255. definiendo el nombre de anfitrión.2.23.1. el documento titulado «Introducción a IP versión 4.63. primero consultar. Si se tienen equipos con direcciones IP estáticas.16. Si se tienen dudas.1.net". range 172. 148.255. Si se utiliza CentOS 5.51. ddns-update-style interim.1. los cuales son confiables.

2 172. utilice: service dhcpd start Para hacer que los cambios hechos a la configuración del servicio dhcpd surtan efecto. 148.1. option domain-name-servers 172.192.255.4. hardware ethernet 00:24:2B:65:54:84.16. max-lease-time 7200.16.1.255.1. detener. option netbios-name-servers 172.205.1.1.1. shared-network redlocal { subnet 172.16. option subnet-mask 255.red-local. Para iniciar por primera vez el servicio dhcpd.234.255.1.60. option broadcast-address 172. utilice: service dhcpd stop 333 . ddns-update-style interim. } # Equipos con IP fija.16.red-local.red-local.29.58. ignore client-updates.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux host impresora { option host-name "epl5900. range 172.16.248.net".1.23. hardware ethernet 00:50:BF:27:1C:1C.0 netmask 255. fixed-address 172.1.63. utilice: service dhcpd restart Para detener el servicio dhcpd.81.net.51.7. hardware ethernet 00:24:2B:65:54:84. option ip-forwarding off.net".16.16.net".net".59.30. 132. host impresora { option host-name "epl5900. } host pc14 { option host-name "pc14.16.1. y reiniciar. Iniciar.4. el servicio dhcpd.255. option domain-name "red-local.red-local. fixed-address 172.16. authoritative.192 { option routers 172.1.1. } De modo tal que la configuración queda del siguiente modo: server-identifier servidor. option ntp-servers 200.59. fixed-address 172. } } 41.16. default-lease-time 900.1.

192 { option routers 172. definiendo una lista de direcciones MAC.16.205.51.255. deny unknown-clients.1.16. option domain-name-servers 172. ejecute lo siguiente: chkconfig dhcpd on 41.6. } host pc2 { hardware ethernet F4:C7:14:70:FA:AC. De tal modo. 3.1.red-local. } } El ejemplo anterior hace que solamente las direcciones MAC descritas puedan hacer uso del servidor DHCP.255. server-identifier servidor.1. option broadcast-address 172.4. Limitar el acceso por dirección MAC. ddns-update-style interim. # deny unknown-clients impide que equipos fuera de esta lista puedan # utilizar el servicio. authoritative.1. y 5). } host laptop2 { hardware ethernet 70:F1:A1:9F:70:3B.58. Agregar el servicio dhcpd al inicio del sistema.234.1. option ntp-servers 200. shared-network redlocal { subnet 172.29.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 41. 132.5.1.1.23. } host pc1 { hardware ethernet 00:50:BF:27:1C:1C. option ip-forwarding off.1. max-lease-time 7200.81.248. 4.255. } # Lista de direcciones MAC que tendrán permitido utilizar el servidor # DHCP.0 netmask 255. ignore client-updates. Para hacer que el servicio de dhcpd esté activo con el siguiente inicio del sistema. option netbios-name-servers 172. range 172. option domain-name "red-local. default-lease-time 900. a los anfitriones que estén ausentes en dicha lista les será denegado el servicio.16.1.net".1.net.2 172.63. Es posible limitar el acceso al servidor DHCP.7. 148.255.16.30. host impresora { hardware ethernet 00:24:2B:65:54:84.16. } host laptop1 { hardware ethernet 44:87:FC:AA:DD:2D.16.16.192. en todos los niveles de ejecución (2.4. 334 . option subnet-mask 255.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 41. ddnsdomainname. para configurar el servidor DHCP a fin de que actualice automáticamente los registros correspondientes en las zonas del servidor DNS. la misma firma digital de la configuración del DNS. 335 . y funcionando. solamente siendo necesario reemplazar los valores resaltados. con los valores ejemplificados a continuación. ddns-rev-domainname. zona de re-envío.7. y zona de resolución inversa del DNS. y definir las zonas de localhost. Asumiendo que ya se dispone de un servidor DNS previamente configurado. Configuración para funcionar con DNS dinámico. sólo basta añadir los parámetros ddns-updates.4.

1.192.red-local. 132.16.1.1.59.1.81.1. ddns-domainname "red-local. { primary 172.2 172. option ip-forwarding off.red-local.16. } # Equipos con IP fija. max-lease-time 7200.16.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux server-identifier servidor. { primary 172.in-addr. ignore client-updates.16.255. ddns-update-style interim.1. # Jamás utilizar la clave ejemplificada a continuación para producción.net.205. # Es la única configuración cuya llave de cierre pueden llevar punto y coma.30.net.255.net".234.1.1. { primary 127. } host pc14 { option host-name "pc14. } shared-network redlocal { subnet 172.red-local. option ntp-servers 200.1. key "rndc-key" { algorithm hmac-md5. key rndc-key.net. key rndc-key. option domain-name "red-local.58. }.1.0 netmask 255.1. fixed-address 172.248.7.0.23. # y poder gestionar zonas dinámicas desde el servidor DHCP con la misma firma # digital.29.16.60.arpa. } zone 1.255. range 172.51.1.key # Ésto se utilizará para poder comunicar el servidor DHCP con el servidor DNS. option subnet-mask 255.16.net". hardware ethernet 00:50:BF:27:1C:1C.".1. zone localdomain.16. secret "undGpjMq3iWmUh2yvWOnUQ==". hardware ethernet 00:24:2B:65:54:84. default-lease-time 900.1.63. 148. host impresora { option host-name "epl5900.". } zone red-local. key rndc-key.0. authoritative.16. ddns-rev-domainname "in-addr.1.255. ddns-updates on. # Copiar tal cual contenido del archivo # /etc/rndc.16.1. } } 336 .net". option domain-name-servers 172.1. fixed-address 172.192 { option routers 172. option broadcast-address 172. option netbios-name-servers 172.16.16.arpa.172.16.

16.localhost.red-local. 28800. se requiere generar los archivos red-local.conf deberá estar presente lo siguiente: 337 . dentro del directorio /var/named/chroot/dynamic/ del siguiente modo:: touch /var/named/chroot/var/named/dynamic/red-local.16.arpa.net.1.172. PTR pc14. y grupo named.1.localhost. A 172.16.zone.net.in-addr.16.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para que lo anterior funcione con el servidor DNS.in-addr.zone. 7200.zone Ambos archivos deben pertenecer al usuario named.arpa.1.59 A 172. ( 2011101901. y bind-chroot. 28800.zone El archivo /var/named/chroot/var/named/dynamic/red-local. ) NS servidor. donde solamente será necesario añadir los registros de los equipos con IP fija: $TTL 86400 @ IN SOA @ 1 13 14 IN IN IN IN servidor.net. 86400.172. 86400. y 1. 604800.red-local.red-local.net.60 El archivo /var/named/chroot/var/named/dynamic/1.172.red-local.zone deberá tener el siguiente contenido.zone deberá tener el siguiente contenido. 7200.red-local.zone touch /var/named/chroot/var/named/dynamic/1.arpa.in-addr. root.172.net.arpa. En el archivo /var/named/chroot/etc/named.16.16.net.red-local. ) NS servidor.16. ( 2011101901. chown named:named /var/named/chroot/var/named/dynamic/red-local. considerando que ya están instalados los paquetes bind.1 A 172.red-local.net. PTR servidor. root. donde solamente será necesario añadir los registros de los equipos con IP fija: $TTL 86400 @ IN SOA @ servidor epl5900 pc14 IN IN IN IN servidor. PTR impresora.zone chown named:named /var/named/chroot/var/named/dynamic/1.net.in-addr.net.net.net. 604800.

// Comentar la siguiente línea y utilizar en su lugar el contenido // del archivo /etc/rndc.4.8. zone ".172.key".key. }. service named restart 338 . statistics-file "/var/named/data/named_stats.16. allow-update { key "rndc-key".zone".1. }.16. 172. include "/etc/named. controls { inet 127.0. bindkeys-file "/etc/named. dnssec-lookaside auto. file "named. allow-update { key "rndc-key". }.0. // Opciones de DNSSEC.1.net" { type master. 172. dnssec-validation yes. }.zones". file "dynamic/red-local. la cual permitirá al servidor DNS poder realizar modificaciones a los archivos de zona. forward first.0.0/8.txt".iscdlv. forwarders { 8. }.0. dnssec-enable yes.8.db". file "dynamic/1. key "rndc-key" { algorithm hmac-md5.in-addr." IN { type hint.8.0.zone". zone "1.0. // include "/etc/rndc. memstatistics-file "/var/named/data/named_mem_stats. }.net. }. }. zone "red-local.rfc1912. setsebool -P named_write_master_zones 1 Reinicie el servicio named a fin de que surtan efecto los cambios.4.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux options { directory "/var/named".arpa. }. 8.key". recursion yes. }. }.txt".0/26.1.16.ca".1 allow { 127.16. }. dump-file "/var/named/data/cache_dump. Active la política de SELinux.8.arpa" { type master. view "local" { match-clients { 127.1. } keys { "rndc-key".in-addr. secret "undGpjMq3iWmUh2yvWOnUQ==".172.

desde otro equipo. Si se dispone de varios servidores DHCP. ifdown eth0 dhclient -d -I nombre-equipo -H nombre-equipo eth0 Lo anterior deberá devolver el mensaje «Determinando la información IP para eth0. y de resolución inversa correspondientes. de modo que el DNS añadirá automáticamente el registro correspondiente a las zonas de re-envío. 41.conf del servidor correspondiente. y el símbolo de sistema. el cual a su vez comunicará al servidor DNS este mismo nombre asociada a la dirección IP asignada al cliente. service dhcpd restart A partir de este momento.. todo cliente que tenga definido en su configuración local un nombre de anfitrión. y para que el servidor DHCP comience a interactuar con el servidor DNS. las utilizadas en las estaciones de trabajo que sean necesarias.5. Pulse CTRL-C para terminar el programa. como usuario root. y asignar una nueva dirección IP a través del servidor dhcp. Para corroborar.red-local. solicitando los datos para los servidores DNS. sería con el siguiente contenido: 339 . asumiendo que se tiene una interfaz de red denominada eth0. Después concluida la configuración. pueden hacerse comprobaciones desde un cliente GNU/Linux. establecido en el archivo /etc/dhcp/dhcpd. comunicará su nombre de anfitrión al servidor DHCP. sin importar que sistema operativo utilicen.. y. y al cual le sea asignada una dirección IP a través del servidor DHCP recién configurado. correspondiente al archivo /etc/sysconfig/network-scripts/ifcfg-eth0. definiendo como valor para esta opción. y se desea probar la configuración de alguno en particular. Abra una terminal.net eth0 La configuración permanente del dispositivo de red. Hecho lo anterior. es decir.». utilice los siguientes mandatos para desactivar la interfaz eth0. utilice el mandato ifconfig para visualizar los dispositivos de red activos en el sistema. Comprobaciones desde cliente DHCP. ifdown eth0 dhclient -d -I nombre-equipo -H nombre-equipo -V servidor. el mismo valor que fue asignado para el parámetro server-identifier. considerando como ejemplo la interfaz eth0 con dirección MAC 00:01:03:DC:67:23. y que estén funcionando los servicio correspondientes. puede añadir la opción -V al mandato dhclient. solamente se necesitará configurar como interfaces DHCP.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Reinicie también el servicio dhcpd a fin de que surtan efecto los cambios.

net DHCP_CLIENT_ID=nombre-equipo DHCP_HOSTNAME=nombre-equipo 340 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux DEVICE=eth0 ONBOOT=yes USERCTL=yes HWADDR=00:01:03:DC:67:23 TYPE=Ethernet NM_CONTROLLED=no DEFROUTE=yes BOOTPROTO=dhcp PEERDNS=yes PEERROUTES=yes PEERNTP=yes DOMAIN=red-local.

y permitiendo negociar. exclusivamente sobre TCP. y patentado 1983. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Prácticamente todos los sistemas operativos. FTPS (también referido como FTP/SSL) es la forma de designar diferentes formas a través de las cuales se pueden realizar transferencias seguras de archivos a través de FTP utilizando SSL o TLS.org/wiki/RSA 341 .1. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. b) No puede utilizar esta obra para fines comerciales. Acerca del protocolo FTP.. en EE.ietf. sin permitir negociación con el cliente. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. y servidor. por el Instituto Tecnológico de Michigan (MIT). Acerca del protocolo FTPS. el cual fue publicado en 1977.wikipedia. Acerca de RSA. que consiste en cifrar la sesión completa a través de los puertos 990 (FTPS). y Len Adleman. que es el recomendado por el RFC 4217. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Ron Rivest.1. El puerto 20 es utilizado para el flujo de datos entre cliente. de manera opcional. Usted es libre de copiar.1 © 1999-2011 Joel Barrios Dueñas. una conexión TLS. FTP (File Transfer Protocol) o Protocolo de Transferencia de Archivos (o archivos informáticos) es uno de los protocolos estándar más utilizados en Internet siendo el más idóneo para la transferencia de grandes bloques de datos a través de redes que soporten TCP/IP. y plataformas incluyen soporte para FTP.3.1.2. El puerto 21 es utilizando para el envío de órdenes del cliente hacia el servidor. el cual está obligado a conectarse directamente al servidor FTPS con el inicio de sesión SSL/TLS. Existen dos diferentes métodos para realizar una conexión SSL/TLS a través de FTP. RSA. tiene que dejar bien claro los términos de la licencia de esta obra. Introducción. El servicio utiliza los puertos 20. El segundo método. Adi Shamir.alcancelibre.org/html/rfc959 42. c) Si altera o transforma esta obra. donde el cliente realiza la conexión normal a través del puerto 21.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. URL: http://tools.1. La primera y más antigua es a través del FTPS Implícito (Implicit FTPS).1. es un algoritmo para encriptar claves públicas.UU. URL: http://es. Al reutilizar o distribuir la obra. 42. 42. y 21. es FTPS Explícito (Explicit FTPS o FTPES). y el utilizado por Vsftpd. lo que permite que cualquier computadora conectada a una red basada sobre TCP/IP pueda hacer uso de este servicio a través de un cliente FTP. Son mecanismos muy diferentes a los del protocolo SFTP (SSH File Transfer Protocol). o genera una obra derivada. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. y 998 (FTPS Data). RSA es utilizado en todo el mundo para los protocolos destinados para el comercio electrónico. Instalación y configuración vsftpd (Very Secure FTP Daemon) Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. acrónimo de los apellidos de sus autores.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 42. 42.

dependiendo de la configuración.1. hasta que éstos comenzaron a trabajar para la división de seguridad de EMC Corporation. Equipamiento lógico necesario.1. Instalación a través de yum. URL: http://es. o bien Red Hat™ Enterprise Linux 5 o 6.beasts. y por su sencillez en la configuración. de código abierto. pasando por certificados intermedios. o Seguridad para Nivel de Transporte). Está basado sobre el extinto proyecto SSLeay.2.509 es un estándar ITU-T (estandarización de Telecomunicaciones de la International Telecommunication Union ) para infraestructura de claves públicas (PKI.conf Lista que definirá usuarios a enjaular o no a enjaular. de los protocolos SSL (Secure Sockets Layer o Nivel de Zócalo Seguro).509.org/ 42.3. 342 . Es decir. 42. iniciado por Eric Young. Vsftpd (Very Secure FTP Daemon) es un equipamiento lógico utilizado para implementar servidores de archivos a través del protocolo FTP. y Wu-ftpd.wikipedia. y TLS (Transport Layer Security. ejecute lo siguiente desde una terminal: yum -y install vsftpd 42. URL: http://vsftpd. X. establece los estándares para certificados de claves públicas. Archivo de configuración de VSFTPD.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 42. Se distingue principalmente porque sus valores predeterminados son muy seguros.org/ 42. URL: http://www.6. Actualmente se presume que vsftpd podría ser quizá el servidor FTP más seguro del mundo.user_list /etc/vsftpd/vsftpd. Archivos de configuración.2. /etc/vsftpd.org/wiki/X. o Certification Authority). Este último se encarga de verificar que la ruta de un certificado sea válida bajo una infraestructura de clave pública determinada. Acerca de OpenSSL. hasta el certificado de confianza emitido por una Autoridad Certificadora (CA. desde el certificado inicial. OpenSSL es una implementación libre. para validación de ruta de certificación. Entre otras cosas.1. Acerca de vsftpd. y Tim Hudson. y un algoritmo. o Public Key Infrastructure).509 42. Si utiliza CentOS 5 o 6.5.openssl. Acerca de X. comparado con otras alternativas como ProFTPD.1.4.

y el servicio vsftpd. ejecute el siguiente mandato: setsebool -P allow_ftpd_anon_write 1 Si se necesita permitir acceder con las cuentas de usuarios locales a sus directorio de inicio de éstos. Archivo /etc/vsftpd/vsftpd.conf A continuación analizaremos los parámetros a modificar o añadir. y modifique el archivo /etc/vsftpd/vsftpd. ejecute el siguiente mandato: setsebool -P ftpd_disable_trans 1 Esta política es inexistente en CentOS 6 y Red Hat™ Enterprise Linux 6.2. haciendo que todo lo anteriormente descrito en esta sección pierda sentido. Procedimientos.4. y que serán utilizados para compartir a través del servicio. 42. SELinux.4. según se requiera para necesidades particulares.conf. se debe habilitar la política ftp_home_dir: setsebool -P ftp_home_dir 1 Para hacer que SELinux permita acceder a los usuarios locales al resto del sistema de archivos. y que éste funcione normalmente sin esta valiosa protección.1.4. 42.conf. vim /etc/vsftpd/vsftpd. ejecute el siguiente mandato: setsebool -P allow_ftpd_full_access 1 Para permitir que el servicio vsftpd pueda hacer uso de sistemas de archivos remotos a través de CIFS (Samba) o NFS. ejecute cualquiera de los siguientes mandatos: setsebool -P allow_ftpd_use_cifs 1 setsebool -P allow_ftpd_use_nfs 1 Nota. Lo siguiente sólo aplica para CentOS 5 y Red Hat™ Enterprise Linux 5. Para eliminar por completo la protección que brinda SELinux al servicio vsftpd. 343 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 42. Para permitir que los usuarios anónimos puedan realizar procesos de escritura sobre el sistema de archivos. SELinux controla varias funciones de el servicio vsftpd incrementando el nivel de seguridad de éste. Utilice un editor de texto.

write_enable=YES 42. Este parámetro sirve para establecer el banderín de bienvenida que será mostrado cada vez que un usuario acceda al servidor. pero sin signos de puntuación.5. Establece si se permite el mandato write (escritura) en el servidor. Parámetro local_enable. Parámetro ftpd_banner. Establezca como valor YES o NO de acuerdo a lo que se requiera. Por lo general no es una función deseada. por lo general no es una función deseada. anon_upload_enable=NO 42.6. local_enable=YES 42.4.7. Parámetro anonymous_enable.8.3. Puede establecerse cualquier frase breve que considere conveniente. Establezca como valor YES o NO de acuerdo a lo que se requiera. ftpd_banner=Bienvenido al servidor FTP de nuestra empresa 344 . Parámetro write_enable.4. Al igual que la anterior. Parámetro anon_mkdir_write_enable Específica si los usuarios anónimos tendrán permitido crear directorios en el servidor.4. Establezca como valor YES o NO de acuerdo a lo que se requiera.4. por lo que se acostubra desactivar ésta.4. Establece si se van a permitir los accesos autenticados de los usuarios locales del sistema.4. anon_mkdir_write_enable=NO 42. Se utiliza para definir si se permitirán los accesos anónimos al servidor. por lo que se acostumbra desactivar ésta.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 42. anonymous_enable=YES 42. Parámetro anon_upload_enable Específica si los usuarios anónimos tendrán permitido subir contenido al servidor.4.

4.4.10. Establece el número máximo de conexiones que se pueden realizar desde una misma dirección IP.4. cada vez que un usuario local se autentique en el servidor FTP. Hace lo mismo que anon_max_rate.10. Por favor.4. para establecer el archivo con la lista de usuarios que quedarán excluidos de la función chroot(). En el siguiente ejemplo se limita la tasa de transferencia a 500 Kb por segundo para los usuarios anónimos: anon_max_rate=524288 42. y debido a ésto podrían quedar bloqueados innecesariamente algunos accesos. en bytes por segundo.9. Parámetro anon_max_rate. Si se desea recluir a los usuarios a sólo poder utilizar su propio directorio personal. Tome en cuenta que algunas redes acceden a través de un servidor intermediario (Proxy) o puerta de enlace. recuerde crear el archivo /etc/vsftpd/chroot_list. Parámetro local_max_rate. chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list Con lo anterior. y los parámetros chroot_list_enable. touch /etc/vsftpd/chroot_list 42.10.4.10. 42.10. y chroot_list_file.2. En el siguiente ejemplo se limita la tasa de transferencia a 1 MB por segundo para los usuarios locales: local_max_rate=1048576 42. ya que de otro modo será imposible que funcione correctamente el servicio vsftpd. pero aplica para usuarios locales del servidor. puede hacerse fácilmente con el parámetro chroot_local_user que habilitará la función de chroot(). Establece el número máximo de clientes que podrán acceder simultáneamente hacia el servidor FTP. En el siguiente ejemplo se limitará el acceso a 20 clientes simultáneos. y lo que éste contenga.1. Parámetro max_per_ip. Parámetro max_clients. En el siguiente ejemplo se limita el número de conexiones por IP simultáneas a un máximo de 10. Control del ancho de banda. De modo predeterminado los usuarios del sistema que se autentiquen tendrán acceso a otros directorios del sistema fuera de su directorio personal. max_clients=20 42.4. algo sumamente útil en servidores FTP de acceso público. 345 . Estableciendo jaulas para los usuarios: parámetros chroot_local_user.3.4.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 42. Se utiliza para limitar la tasa de transferencia. para los usuarios anónimos. sólo tendrá acceso a su propio directorio personal. y chroot_list_file.

o bien la razón social.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux max_per_ip=10 42.11.509.crt. La salida devuelta sería similar a la siguiente: 346 . y TLS (Transport Layer Security. o bien dominio con comodín. algoritmo de encriptación RSA de 1024 kb. al servicio vsftpd. donde se generará un certificado con estructura X. Estado o provincia. Dirección de correo electrónico de la persona responsable del certificado. o Seguridad para Nivel de Transporte) a través de un certificado RSA. Unidad o sección responsable del certificado.crt Lo anterior solicitará se ingresen los siguientes datos: • • • • • • • Código de dos letras para el país. Nombre del anfitrión (FQDN). cd /etc/pki/tls/ El certificado se puede generar fácilmente utilizando el siguiente mandato. Por favor. ejecute. Soporte SSL/TLS para VFSTPD. sin interacción alguna. Acceda al sistema como el usuario root. desde la terminal. el siguiente mandato: openssl req -x509 -nodes -days 730 -newkey rsa:1024 -keyout private/vsftpd. el cual permita iniciar normalmente.4. Acceda al directorio /etc/pki/tls/. o Nivel de Zócalo Seguro). Nombre de la empresa. sin Triple DES. Ciudad. con una validez por 730 días (dos años) en el archivo /etc/pki/tls/certs/vsftpd.key -out certs/vsftpd. VSFTPD puede ser configurado fácilmente para utilizar los protocolos SSL (Secure Sockets Layer.

4. cd Finalmente se añaden las siguiente líneas al final del archivo /etc/vsftpd/vsftpd. y WinSCP.V. y el de la firma digital (vsftpd. de puertos para # conexiones pasivas.crt rsa_private_key_file=/etc/pki/tls/private/vsftpd.key Regrese al directorio de inicio del usuario root. y Windows XP/Vista/7. force_local_data_ssl=YES force_local_logins_ssl=YES # Se prefiere TLSv1 sobre SSLv2. deben tener permisos de sólo lectura para el usuario root.1. del cual hay versiones para GNU/Linux.crt). hace que sea opcional utilizar TLS/SSL.3.'.11. Los clientes recomendados para acceder a través de FTPES.key).FTP sobre TLS/SSL explícito). What you are about to enter is what is called a Distinguished Name or a DN. Si utiliza Filezilla.dominio. chmod 400 certs/vsftpd. ----Country Name (2 letter code) [GB]:MX State or Province Name (full name) [Berkshire]:Distrito Federal Locality Name (eg.A. por lo que por el momento es preferible evitarlos. There are quite a few fields but you can leave some blank For some fields there will be a default value. Mac OS X. the field will be left blank. son LFTP (compilado con la opción --with-openssl. Filezilla 3. Al momento de redactar este documento. Clientes recomendados para acceder a FTPES.org Email Address []:webmaster@dominio. If you enter '. y ejecutando con la opción -e 'set ftp:ssl-force true'). S. y FTPES). la siguiente imagen ilustra la configuración que se requiere utilizar.org El archivo del certificado (vsftpd. city) [Newbury]:Mexico Organization Name (eg.conf: # Especificar cualquier rango arbitrario.x (configurar conexión como FTPES . y autenticación de usuarios locales. pasv_min_port=30300 pasv_max_port=30309 # Habilita el soporte de TLS/SSL ssl_enable=YES # Deshabilita o habilita utilizar TLS/SSL con usuarios anónimos allow_anon_ssl=NO # Obliga a utilizar TLS/SSL para todas las operaciones. es decir. # transferencia de datos. de C. Organizational Unit Name (eg. tienen roto el soporte para FTP sobre TLS/SSL (FTPS. y firma digital rsa_cert_file=/etc/pki/tls/certs/vsftpd. y estrecho.crt private/vsftpd. y SSLv3 ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO # Rutas del certificado. section) []:Direccion Comercial Common Name (eg. company) [My Company Ltd]:Empresa. # Establecer el valor NO. your name or your server's hostname) []:*. 347 . las versiones mas recientes de clientes como FireFTP o gFTP.key 42.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux You are about to be asked to enter information that will be incorporated into your certificate request.

348 . y solicitará se acepte éste. Luego de iniciada la conexión. mostrará una ventana con la información del certificado.» Dialogo de certificado de FTPES en Filezilla. la primera vez que Filezilla se conecte al servidor.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Configuración de cuenta FTPES en Filezilla. Active la casilla que dice «Siempre confiar en el certificado en futuras sesiones» antes de hacer clic en el botón de «Aceptar.

4.DO NOT REMOVE Sí se va a utilizar FTPES. Si utiliza Shorewall. por TCP (FTP-DATA.30300:30309 #LAST LINE -. en todos los niveles de ejecución (2.conf.13. y 5). #ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT all fw tcp 20. el muro cortafuegos debe estar abierto para todos los puertos especificados en el rango entre el valor del parámetro pasv_min_port. ejecute el siguiente mandato: service vsftpd stop 42. desde cualquier zona del muro cortafuegos: #ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT all fw tcp 20. considerando que se abre el acceso para FTP. o bien hacer que los cambios hechos a la configuración surtan efecto.DO NOT REMOVE 349 . y el valor del parámetro pasv_max_port. 4. es necesario abrir los puerto 20.21 #LAST LINE -. y reiniciar el servicio vsftpd.ADD YOUR ENTRIES BEFORE THIS ONE -.5. debido a que la implementación de TLS/SSL Explícito de VSFTPD utiliza puertos aleatorios en dicho rango para realizar conexiones pasivas. sin TLS/SSL. se utiliza lo siguiente: chkconfig vsftpd on 42. como por ejemplo Shorewall. Si se utiliza un cortafuegos con políticas estrictas.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 42. detener. Iniciar.4. respectivamente). ejecute el siguiente mandato: service vsftpd start Para reiniciar el servicio vsftpd. Agregar el servicio vsftpd al arranque del sistema. ejecute el siguiente mandato: service vsftpd restart Para detener el servicio vsftpd.21. establecidos en el archivo /etc/vsftpd/vsftpd.ADD YOUR ENTRIES BEFORE THIS ONE -. Si. eligió utilizar el rango de puertos del 30300 al 30309. edite el archivo /etc/shorewall/rules: vim /etc/shorewall/rules Las reglas corresponderían a algo similar a lo siguiente. establezca lo siguiente. Para hacer que el servicio de vsftpd esté activo con el siguiente inicio del sistema. Para iniciar por primera vez el servicio vsftpd. y FTP. 3. Modificaciones necesarias en el muro cortafuegos. por ejemplo.12. y 21.

reinicie el muro cortafuegos. ejecutando el siguiente mandato: service shorewall restart 350 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Al terminar de configurar las reglas para Shorewall.

43. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. o Copia Segura) es una protcolo seguro para transferir archivos entre un anfitrión local y otro remoto. SCP (Secure Copy. tiene que dejar bien claro los términos de la licencia de esta obra. c) Si altera o transforma esta obra. Acerca de SSH. b) No puede utilizar esta obra para fines comerciales. a través de SSH.1 © 1999-2011 Joel Barrios Dueñas. SSH provee confidencialidad e integridad en la transferencia de los datos utilizando criptografía y MAC (Message Authentication Codes. Comúnmente se utiliza con SSH para proveer a éste de transferencia segura de archivos. 43. Utiliza una clave pública cifrada para autenticar el servidor remoto y. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.4. o Copia Remota). hacia la implementación propietaria y de código cerrado SSH creada por Tatu Ylönen. SFTP y SCP. Al reutilizar o distribuir la obra.1. Introducción. Acerca de SFTP. 43.1. OpenSSH es un proyecto creado por el equipo de desarrollo de OpenBSD y actualmente dirigido por Theo de Raadt. Se considera es más segura que su contraparte propietaria debido a la constante auditoría que se realiza sobre el código fuente por parte de una gran comunidad de desarrolladores. Usted es libre de copiar. 43. escucha peticiones a través del puerto 22 por TCP.org/. URL: http://www. permitir al servidor remoto autenticar al usuario.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 43. SSH (Secure Shell) es un conjunto de estándares y protocolo de red que permite establecer una comunicación a través de un canal seguro entre un cliente local y un servidor remoto. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. opcionalmente.3. De modo predeterminado. OpenSSH (Open Secure Shell) es una alternativa de código abierto. SCP sólo implementa la transferencia de archivos.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. pues la autenticación requerida es realizada a través de SSH. Acerca de SCP. con la diferencia de que los datos son cifrados durante la transferencia para evitar la extracción potencial de información a través de programas de captura de las tramas de red (packet sniffers). SFTP (SSH File Transfer Protocol) es un protocolo que provee funcionalidad de transferencia y manipulación de archivos a través de un flujo confiable de datos.2. OpenSSH incluye servicio y clientes para los protocolos SSH. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Básicamente. Acerca de OpenSSH. Configuración de OpenSSH.1.1. o Códigos de Autenticación de Mensaje). una ventaja que brinda al tratarse de un proyecto de fuente abierta. 43. 351 .1.openssh.alcancelibre. o genera una obra derivada. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.1. es idéntico a RCP (Remote Copy. con licencia BSD.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 43. o bien que pueden ser aplicados al directorio de inicio de otro usuario con privilegios). la lectura y escritura de archivos a través de SFTP en los directorios de inicio de los usuarios enjaulados.3. Política fenced_can_ssh.3. o deshabilita.3. Esta política habilita. que corresponden a los del directorio de inicio del usuario root. Para habilitar. 43. Equipamiento lógico necesario. o deshabilita. SELinux y el servicio sshd. se ejecuta lo siguiente: yum -y install openssh openssh-server openssh-clients 43. ejecute lo siguiente setsebool -P fenced_can_ssh 1 43. El valor predeterminado es deshabilitado.». ejecute lo siguiente setsebool -P allow_ssh_keysign 1 Para más detalles. el sistema incluye tres políticas para el servicio sshd. Para habilitar. o versiones posteriores de éstos. 352 .3. Política ssh_sysadm_login. o deshabilita. consulte el documento titulado «Cómo utilizar OpenSSH con autenticación a través de firma digital.3. Si se utiliza de CentOS 5. Para habilitar. o Red Hat Enterprise Linux 5. ejecute lo siguiente setsebool -P ssh_sysadm_login 1 43. el acceso a través de ssh como administrador del sistema (contextos sysadm_r:sysadm_t. Instalación a través de yum.3. El valor predeterminado es deshabilitado. Política ssh_chroot_rw_homedirs. Esta política habilita. Esta política habilita. Para habilitar.1. 43. que usuarios enjaulados a través de SFTP puedan ingresar también a través de SSH. El valor predeterminado es deshabilitado.2. o Red Hat Enterprise Linux 6. Esta política habilita.2. el acceso a través de ssh utilizando firmas digitales.2. Política allow_ssh_keysign. ejecute lo siguiente setsebool -P ssh_chroot_rw_homedirs 1 43.4. El valor predeterminado es deshabilitado. o deshabilita.1. Si se utiliza de CentOS 6.

considerando que el servidor a configurar posee la IP 192. La mayoría de los delincuentes informáticos utiliza guiones que buscan servidores que respondan a peticiones a través del puerto 22. Parámetro X11Forwarding. Cambiar de puerto el servicio de SSH disminuye considerablemente la posibilidad de una intrusión a través de este servicio. 353 .168. Establece si se permite o no la ejecución remota de aplicaciones gráficas. es cambiar el número de puerto utilizado por el servicio.168.5. ejemplo: Port 52341 43. Establece si se va a permitir el acceso directo del usuario root al servidor SSH. Si se va a acceder hacia el servidor desde red local. Parámetro Port.2.5.3.1. Edite /etc/ssh/sshd_config.1. este parámetro puede quedarse con el valor yes. De modo predeterminado. Puede elegirse cualquier otro puerto entre el 1025 y 65535.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 43. En algunos casos es posible que no se desee esto y se prefiera limitar el acceso sólo a través de una interfaz a la que sólo se pueda acceder desde la red local. por otro que sólo conozca el administrador del sistema. Para tal fin puede establecerse lo siguiente. vim /etc/ssh/sshd_config 43. /etc/ssh/sshd_config Archivo principal de configuración del servicio SSH.4. Si se va a permitir el acceso hacia el servidor desde redes públicas. el servicio de SSH responderá peticiones a través de todas las interfaces del sistema.5.1.254 43. Una forma de elevar considerablemente la seguridad al servicio de SSH. Procedimientos. PermitRootLogin no 43.5. Parámetro PermitRootLogin. resultará prudente utilizar este parámetro con el valor no. 43. Archivos de configuración.5.4.254: ListenAddress 192. Si se va a permitir el acceso hacia el servidor desde redes públicas. A continuación se analizarán los parámetros a modificar. Parámetro ListenAddress. resultará prudente utilizar este parámetro con el valor no. Port 22 SSH trabaja a través del puerto 22 por TCP. A este tipo de técnicas se les conoce como Seguridad por Oscuridad.

1. ejecute: chkconfig sshd off 43. solamente desde los anfitriones 10.1 mengano@10.2.1 y 10.2.1 mengano@10. Parámetro AllowUsers. Para desactivar el servicio sshd de todos los niveles de ejecución. 43. AllowUsers fulano mengano También se puede restringir el acceso por usuario y anfitrión.1 fulano@10.1. ejecute lo siguiente: service sshd restart Para detener el servicio sshd. anfitrión desde el cual pueden hacerlo. de manera opcional.5.2. detenerse o reiniciar a través de un guión similar a los del resto del sistema. el servicio SSH está incluido en todos los niveles de ejecución con servicio de red.2.1. De tal modo. Acceso a través de intérprete de mandatos. El servicio de SSH puede iniciar. ejecute lo siguiente: service sshd stop De forma predeterminada. detenerse o reiniciar a través del mandato service y añadirse al arranque del sistema en un nivel o niveles de ejecución en particular con el mandato chkconfig.1. Permite restringir el acceso por usuario y.2. desde cualquier anfitrión. el servicio sshd está activo en todos los niveles de ejecución.1. Probando OpenSSH.1 43. basta con ejecutar desde el sistema cliente el mandato ssh definiendo el usuario a utilizar y el servidor al cual conectar: 354 . podrá iniciar. ejecute lo siguiente: service sshd start Para hacer que surtan efecto los cambios hechos a la configuración del servicio sshd.2. El siguiente ejemplo restringe el acceso hacia el servidor SSH para que sólo puedan hacerlo los usuarios fulano y mengano. De modo predeterminado.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux X11Forwarding yes 43.7. Para ejecutar por primera vez el servicio sshd.1.5. AllowUsers fulano@10. Para acceder a través de intérprete de mandatos hacia el servidor.1.7.1. Aplicando los cambios.6. El siguiente ejemplo restringe el acceso hacia el servidor SSH para que sólo puedan hacerlo los usuarios fulano y mengano.

con la opción Port=número de puerto. En el siguiente ejemplo.168.168.99 Si dispone de un escritorio en GNU/Linux.2. el cual tiene un servicio de SSH que responde peticiones a través del puerto 52341. basta con ejecutar desde el sistema cliente el mandato sftp definiendo el usuario a utilizar y el servidor al cual conectar: sftp usuario@servidor El intérprete de mandatos de SFTP es muy similar al utilizado para el protocolo FTP y tiene las mismas funcionalidades. seguido del servidor y la ruta hacia la que se quiere acceder. especificando el URI (Uniform Resource Locator o Localizador Uniforme de Recursos) «sftp:». utilizando la cuanta del usuario juan.168.x.70. se intentará acceder hacia el servidor con dirección IP 192. puede acceder hacia servidores SSH a través del protocolo SFTP utilizando el administrador de archivos (Nautilus) para realizar transferencias y manipulación de archivos.99.7.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux ssh usuario@servidor Para acceder hacia un puerto en particular. en el caso que sea distinto al 22. Para acceder hacia un puerto en particular. el cual tiene trabajando el servicio de SSH en el puerto 52341.99. sftp -o Port=52341 juan@192. En el siguiente ejemplo. seguido del puerto.70.168. en el cual está trabajando el servicio de SSH. se utiliza el parámetro -p. se accederá a través de SFTP hacia el servidor 192. 355 . ssh -p 52341 juan@192.70. Para acceder a través de SFTP hacia el servidor.99 43. Transferencia de archivos a través de SFTP. con GNOME 2. utilizando la cuenta del usuario juan. se hace través de el parámetro -o.70.

Jaulas para los usuarios que acceden a través de SFTP. La función de chroot viene incluida desde la versión 4.2. es necesario editar el archivo /etc/ssh/sshd_config: vim /etc/ssh/sshd_config Casi al final del archivo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nautilus.9p1de OpenSSH.1. groupdadd sftpusers 356 . accediendo hacia un directorio remoto a través de SFTP.7. Para habilitarla. 43. localice la siguiente línea: Subsystem sftp /usr/libexec/openssh/sftp-server Comente la línea con una almohadilla y añada el siguiente contenido: #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no Guarde el archivo y regrese al intérprete de mandatos Reinicie el servicio sshd ejecutando lo siguiente: service sshd Utilice el mandato groupadd para crear el grupo sftpusers.

. tiempos de acceso y los modos del archivo original.99:~/ En el siguiente ejemplo.168. usermod -s /sbin/nologin juanito A partir de este momento.8 juanito@192.169. Especifica el puerto para realizar la conexión.99. los usuarios involucrados podrán ingresar al sistema a través de SFTP. se transferirá la carpeta Mail.70. al grupo sftp. sftp> pwd Remote working directory: / sftp> ls -a . Transferencia de archivos a través de SCP. scp -rp Mail fulano@192. scp -p algo.bash_profile sftp> . gpasswd -a juanito sftpusers Cambie los permisos del directorio de inicio de los usuarios involucrados. junto con todo su contenido.7.txt. .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Añada a los usuarios a los cuales se quiera enjaular. Para realizar transferencias de archivos a través de SCP. pero solo podrán tener acceso a su directivo de inicio.8's password: Connected to 192. chown root:root /home/juanito chmod 755 /home/juanito Finalmente. En el siguiente ejemplo..169. para que pertenezcan a root. y tengan permiso de acceso 755.99:~/ 357 .bash_logout .bashrc 43.3.168. preservando tiempos y modos. [jbarrios@centos6 ~]$ sftp juanito@192. hacia el directorio de inicio del usuario fulano en el servidor 192. hacia el directorio de inicio del usuario fulano en el servidor 192. se transferirá el archivo algo. es necesario conocer las rutas de los directorios objetivo del anfitrión remoto.80.168.0. cambie el intérprete de mandatos de los usuarios involucrados a /sbin/nologin o bien /bin/false. preservando tiempos y modos. Copia recursiva de los directorios especificados.0.80.168. A continuación se describen algunas de las opciones más importantes del mandato scp.70.80.99.168.8.txt fulano@192. -p -P -r Preserva el tiempo de modificación.

8. scp -P 52341 -rp fulano@192./ 43.ADD YOUR ENTRIES BEFORE THIS ONE -.DO NOT REMOVE O bien.ADD YOUR ENTRIES BEFORE THIS ONE -. donde. puede utilizar la siguiente regla. ejecutando el siguiente mandato: 358 .99.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En el siguiente ejemplo. hacer todo lo anterior. edite el archivo /etc/shorewall/rules: vim /etc/shorewall/rules Las reglas corresponderían a algo similar a lo siguiente: #ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT net fw tcp 22 #LAST LINE -.168.ADD YOUR ENTRIES BEFORE THIS ONE -.0. es necesario abrir el puerto 22 por UDP (SSH). #ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT net fw tcp 22 ACCEPT loc fw tcp 22 #LAST LINE -.DO NOT REMOVE Si la red de área local (LAN) va a acceder hacia el servidor recién configurado. desde el directorio de inicio del usuario fulano en el servidor 192.DO NOT REMOVE Al terminar de configurar las reglas para Shorewall. es neceario abrir el puerto correspondiente. preservando tiempos y modos. deberá especificar el puerto que haya elegido: #ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT all fw tcp 52341 #LAST LINE -.70. Si utiliza Shorewall. con una sola regla. como por ejemplo Shorewall. que permita el acceso desde cualquier zona del muro cortafuegos: #ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT all fw tcp 22 #LAST LINE -.ADD YOUR ENTRIES BEFORE THIS ONE -. reinicie el muro cortafuegos. se transferirá la carpeta Mail. hacia el directorio del usuario con el que se está trabajando en el anfitrión local. en lugar de 52341. junto con todo su contenido. cuyo servicio de SSH escucha peticiones a través del puerto 52341.169.99:~/Mail . Si se utiliza un cortafuegos con políticas estrictas.DO NOT REMOVE Si se decidió ofuscar el puerto de SSH. Modificaciones necesarias en el muro cortafuegos.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux service shorewall restart 359 .

Se requiere acceder primero como administrador al servidor remoto. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. 44.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. los cuales tiene como objetivo crear el directorio ~/. 44. ejecutando lo siguiente: setsebool -P allow_ssh_keysign 1 Al terminar.1. acceder con la cuenta de usuario que se utilizará para acceder al servidor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. b) No puede utilizar esta obra para fines comerciales.ssh/authorized_keys chmod 600 ~/. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. resulta una técnica más segura para autenticar dichos servicios. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.ssh/ touch ~/. Usted es libre de copiar. Al reutilizar o distribuir la obra. OpenSSH con autenticación a través de firma digital. c) Si altera o transforma esta obra. ejecutar los siguientes mandatos. o genera una obra derivada. Utilizar claves públicas en lugar de claves de acceso a través de servicios como SSH.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 44. igualmente con permiso de acceso de lectura/escritura sólo para el usuario: mkdir -m 0700 ~/. Introducción. Procedimientos 44. con permiso de acceso de lectura/escritura sólo para el usuario.2.ssh/authorized_keys exit 360 .alcancelibre. SCP o SFTP. ssh usuario@servidor Cómo este usuario. tiene que dejar bien claro los términos de la licencia de esta obra. y habilitar la política para SELinux denominada allow_ssh_keysign. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.1 © 1999-2011 Joel Barrios Dueñas. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Modificaciones en el Servidor remoto.ssh/authorized_keys. facilitando también la operación de guiones y herramientas de respaldo que utilizan dichos protocolos.ssh/. el archivo ~/.1.2.

pub. está será utilizada para autenticar el certificado creado cada vez que se quiera utilizar éste para autenticar remotamente. Your public key has been saved in /home/usuario/. Pueden generarse diferentes firmas digitales para cada usuario que deba ingresar a través de SSH al servidor remoto.2.pub) al ~/. jamás se deberá establecer una clave de acceso durante la generación de la firma digital. los cuales deben tener permiso de acceso 600 (sólo lectura y escritura para el usuario). Pueden agregarse cuantas firmas digitales en este archivo como sean necesarias. basta copiar los archivos id_dsa y id_dsa. chmod 600 ~/.2. Generar firma digital (llave pública). Simplemente se añade el contenido del archivo ~/. ssh-keygen -t dsa El procedimiento devuelve una salida similar a la siguiente: Generating public/private dsa key pair. dicho archivo deberá ser considerado como altamente confidencial.ssh/authorized_keys del usuario a utilizar en servidor en donde se va a autenticar.pub|ssh usuario@servidor "cat >>/home/usuario/.ssh/authorized_keys" archivo Para poder acceder al servidor desde cualquier cliente.ssh/id_dsa.id_dsa. por tanto. Si asigna clave de acceso. Modificaciones en el cliente.ssh/id_dsa. de la cuenta de usuario de cada cliente desde el que se requiera realizar conexión hacia el servidor. Cuando el diálogo de ssh-keygen solicite una clave de acceso con confirmación.ssh/id_dsa.pub de cada usuario al archivo ~/. The key fingerprint is: 2c:73:30:fe:52:21:a5:82:78:49:57:cd:37:af:36:df usuario@cliente Nota: Es importante resaltar que si desea utilizar la firma digital sin clave de acceso. simplemente bastará eliminar ésta del archivo ~/. 44. Si se desea no utilizar clave de acceso para autenticar.pub dentro del directorio ~/. sólo se pulsa la tecla ENTER.1.ssh/.ssh/authorized_keys de la cuenta a utilizar en el servidor remoto.2.ssh/id_dsa y ~/.ssh/authorized_keys del servidor remoto. Si acaso se ve comprometida la seguridad de alguna firma digital.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/usuario/. Tendrá serias implicaciones de seguridad si el archivo id_dsa cae en manos equivocadas.2. Se debe generar una firma digital (llave pública) creada con DSA (Digital Signature Algorithm o Algoritmo de Firma digital). cat ~/. 361 . simplemente pulsar la tecla ENTRAR (ENTER) y continuar el procedimiento. Lo anterior genera los archivos los archivos ~/.ssh/{id_dsa.ssh/id_dsa.pub} Se debe copiar el contenido de la llave pública DSA (id_dsa.pub.ssh/id_dsa.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 44. Enter file in which to save the key (/home/usuario/. o se ve comprometido.

2. Si no fue asignada clave de acceso para la llave DSA. 362 . y sin necesidad de autenticar con clave de acceso del usuario remoto.3. Si fue asignada una clave de acceso a la clave DSA. deberá poderse acceder hacia el servidor remoto sin necesidad de autenticar con clave de acceso del usuario remoto. Comprobaciones.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 44. se podrá acceder hacia el servidor remoto autenticando con la clave de acceso definida a la clave DSA.

1.1. El servicio trabaja a través del puerto 123. 45. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.1. Acerca de NTP. que no están conectados hacia redes sino computadoras. y sigue siendo mantenido.alcancelibre.1. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. y compartiendo datos con sistemas del mismo estrato 2.org/rfc/rfc1305. de entre los más antiguos protocolos de Internet (1985). descartando que parezcan proveer datos erróneos. NTP fue originalmente diseñado. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Estrato 1: Los sistemas se sincronizan con dispositivos del estrato 0. este margen se reduce considerablemente.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 45. por Dave Mills.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. La versión 4 del protocolo puede mantener el tiempo con un margen de 10 milisegundos a través de la red mundial. Estrato 2: Los sistemas envían sus peticiones NTP hacia servidores del estrato 1.1 © 1999-2011 Joel Barrios Dueñas. NTP Utiliza el algoritmo de Marzullo (inventado por Keith Marzullo). 363 . el cual es un utilizado para seleccionar fuentes para la estimación exacta del tiempo a partir de un número de fuentes.1. de la universidad de Delaware. utilizado para la sincronización de relojes de sistemas computacionales a través de redes. 45. Al reutilizar o distribuir la obra. bajo condiciones idóneas. c) Si altera o transforma esta obra. utilizando el algoritmo de Marzullo para recabar la mejores muestra de datos. URL: http://www. utilizando la escala UTC. alcanzado exactitud de 200 microsegundos. como relojes GPS o radio relojes. En redes locales. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Estrato 0: son dispositivos. NTP utiliza el sistema jerárquico de estratos de reloj. Usted es libre de copiar. NTP (Network Time Protocol) es un protocolo. únicamente por UDP.ietf. tiene que dejar bien claro los términos de la licencia de esta obra. o genera una obra derivada.1. haciendo uso de intercambio de paquetes (unidades de información transportadas entre nodos a través de enlaces de datos compartidos) y latencia variable (tiempo de demora entre el momento en que algo inicia y el momento en que su efecto inicia). Cómo configurar NTP. Los sistemas de este estrato actúan como servidores para el estrato 3. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Introducción. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Estratos. Los sistemas de este estrato son referidos como servidores de tiempo. b) No puede utilizar esta obra para fines comerciales.txt 45.

wikipedia. Instalación a través de up2date. El siguiente ejemplo realiza una consulta directa NTP. solo bastará realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario: up2date -i ntp 45. Equipamiento lógico necesario.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Estrato 3: Los sistemas utilizan funciones similares a las del estrato 2.3. de estrato 1 http://www.2.2.pool. 45.1. 45. Estos segundos adicionales permiten a UTC estar casi a la par del Tiempo Universal (UT. Procedimientos.org.org/wiki/UTC 45. UTC (Coordinated Universal Time.org 364 . sirviendo como servidores para el estrato 4.pool. Si se utiliza Red Hat™ Enterprise Linux 4. o International Atomic Time). en lugar de el paso uniforme de los segundos.ntp. solo se necesita realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario: yum -y install ntp 45.2. así como otras discrepancias.2. o Universal Time). Es una herramienta similar a rdate. Tiene segundos uniformes definidos por TAI (Tiempo Atómico Internacional. Instalación a través de yum. ntpdate -u 2. muy útil si hay un cortafuegos que impida la salida) hacia el servidor 2.ntp.udel.com/?q=ntp y 45. Si utiliza CentOS 4 o White Box Enterprise Linux 4. o Tiempo Universal Coordinado) es un estándar de alta precisión de tiempo atómico. con segundos intercalares o adicionales que se anuncian a intervalos irregulares para compensar la desaceleración de la rotación de la Tierra.2.html y 2. utilizando un puerto sin privilegios (opción -u. el cual es otro estándar pero basado sobre el ángulo de rotación de la Tierra. URL: http://es.edu/~mills/ntp/servers. Lista de servidores públicos.3.eecis. en http://kopernix.1. Acerca de UTC. Herramienta ntpdate Una forma muy sencilla de sincronizar el reloj del sistema con cualquier servidor de tiempo es a través de ntpdate. y se utiliza para establecer la fecha y hora del sistema utilizando NTP. Estrato 4: Los sistemas utilizan funciones similares a las del estrato 3.

# Este es un controlador emulado que se utiliza solo como # respaldo cuando ninguna de las fuentes reales están # disponibles.org # Permisos que se asignarán para cada servidor de tiempo. no se permite a las fuente consultar. se incluye un archivo de configuración /etc/ntp.edu/~mills/ntp/servers.udel.ntp.ntp.255.127. fudge 127.255.255.pool.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 45.255.conf.com/?q=ntp # http://www. restrict 192. ni modificar el servicio en el # sistema (nomodify) y declinando proveer mensajes de # registro (notrap).pool.1.3.ntp.conf.008 # Archivo de claves si acaso fuesen necesarias para realizar # consultas keys /etc/ntp/keys # Lista de servidores de tiempo de estrato 1 o 2.0 mask 255. Archivo de configuración /etc/ntp.127. driftfile /var/lib/ntp/drift broadcastdelay 0. restrict 0.pool. mismo que a continuación se describe.255 nomodify notrap noquery restrict 1. # Se establece la política predeterminada para cualquier # servidor de tiempo utilizado: se permite la sincronización # de tiempo con las fuentes.org server 1.org mask 255.org mask 255.ntp.1.0 stratum 10 server 127.pool.html server 0.1. pero sin permitir a la fuente # consultar (noquery).255 nomodify notrap noquery # Se Activ la difusión hacia los clientes broadcastclient 365 .0. ni # modificar el servicio en el sistema ni enviar mensaje de # registro. # Se recomienda tener al menos 3 servidores listados.255. restrict default nomodify notrap noquery # Permitir todo el acceso a la interfaz de retorno del # sistema.pool.2.ntp. y sin usar a éstos como iguales para sincronizar.org mask 255. Los sistemas operativos como Red Hat™ Enterprise Linux 4 y CentOS 4. La recomendación es respaldarlo para futura consulta.255. restrict 127.255.org server 2.1 # Se le permite a la red local sincronizar con el servidor # pero sin permitirles modificar la configuración del # sistema.0 nomodify notrap # Reloj local indisciplinado. # En los ejemplos. # Mas servidores en: # http://kopernix. y comenzar con un archivo con una configuración nuevo.0 # Archivo de variaciones.255 nomodify notrap noquery restrict 2.255.pool.168.0. con fines demostrativo.ntp.eecis.

ADD YOUR ENTRIES BEFORE THIS ONE -. utilice: service ntpd stop 45. es necesario abrir el puerto 123 por UDP (NTP.ADD YOUR ENTRIES BEFORE THIS ONE -. en todos los niveles de ejecución (2. Para ejecutar por primera vez el servicio ntpd.4.DO NOT REMOVE Si la red de área local (LAN) va a acceder hacia el servidor recién configurado. se utiliza lo siguiente: chkconfig ntpd on 45.3. 3. tanto para tráfico entrante como saliente. Agregar el servicio ntpd al arranque del sistema. utilice: service ntpd restart Para detener el servicio ntpd.4. Las reglas para el archivo /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente: #ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT net fw udp 123 ACCEPT fw net udp 123 #LAST LINE -. Modificaciones necesarias en el muro cortafuegos. Si se utiliza un cortafuegos con políticas estrictas. Iniciar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 45.DO NOT REMOVE 366 . tras modificar la configuración. es necesario abrir el puerto correspondiente. detener y reiniciar el servicio ntpd. como por ejemplo Shorewall.3. y 5).3. #ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT net fw udp 123 ACCEPT fw net udp 123 ACCEPT loc fw udp 123 ACCEPT fw loc udp 123 #LAST LINE -. utilice: service ntpd start Para hacer que los cambios hechos. surtan efecto. Para hacer que el servicio de ntpd esté activo con el siguiente inicio del sistema. 4.

más reciente: yum -y install gdm 2.1. Al reutilizar o distribuir la obra. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Lograr esto es muy fácil. Usted es libre de copiar.alcancelibre. una sesión gráfica remota será de gran utilidad. Cuando se tienen distintas máquinas en una LAN y se desea aprovechar el poder y recursos de una de éstas y ahorrar trabajo. El método será de mucha utilidad suponiendo que se tiene un servidor central con buena cantidad de memoria y un buen microprocesador y lo más nuevo en equipamiento lógico. Se puede hacer de dos formas. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. una accediendo vía SSH. o genera una obra derivada. abra una terminal como súperusuario y ejecute el mandato gdmsetup. 46.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. c) Si altera o transforma esta obra.2. El objetivo será entonces que los usuarios puedan utilizar el servidor con mayor poder y recursos para que se ejecuten ahí las sesiones gráficas y así tener un mayor control en toda la red. vaya a la solapa de XDMCP y de allí a la pestaña XDMCP.1. y en la red de área local (LAN) se tienen una o varias máquinas con muy poco espacio en disco y/o poco poder en el microprocesador. Sesión gráfica remota con GDM GDM tiene una característica poco usada. En el servidor. pero muy útil. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. 46. Deben habilitarse las casillas de "Activar XDMCP" y "Honrar peticiones indirectas" como se muestra a continuación: 367 . Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.x o. o resulta mucho trabajo instalarles todo un sistema optimizado y personalizado. Actualice gdm al menos a la versión 2. Introducción.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 46.2.2. b) No puede utilizar esta obra para fines comerciales. y la otra utilizando alguna de las pantallas de acceso gráfico. RHS o Telnet. como GDM. 46. Cómo configurar el sistema para sesiones gráficas remotas Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. de ser posible.1 © 1999-2011 Joel Barrios Dueñas. tiene que dejar bien claro los términos de la licencia de esta obra. Procedimiento 1.

368 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 3. Como medida de seguridad. deshabilite el acceso de root tanto local como remotamente.

considerando que se debe poner la ruta completa de X: #!/bin/sh /usr/X11R6/bin/X -query dirección_IP_del_Servidor Ejemplo: #!/bin/sh /usr/X11R6/bin/X -query 192. En los clientes. Si cuenta con buenos adaptadores de red. debe hacer que el modo de ejecución sea gráfico y con red.168. Puede modificar /etc/inittab y cambiar: id:3:initdefault: Por: id:5:initdefault: 7. Si lo prefiere también puede iniciar el servidor de vídeo remoto simplemente ejecutando lo siguiente desde cualquier terminal: X -query dirección_IP_del_Servidor 369 . Las máquinas clientes verán a GDM ejecutándose como si se estuviese en el mismo servidor. y permitirá iniciar GNOME o KDE o cualquier otro entorno gráfico utilizado.1. es decir que arranque en modo de ejecución 5 (o nivel de ejecución 5). ya sea si se utiliza webmin o linuxconf o alguna otra herramienta. debe respaldarse y editarse el archivo /etc/X11/prefdm y debe hacerse que contenga únicamente lo siguiente. Debe determinarse la localización de X con el mandato which: which X 5. En todas las máquinas. ni siquiera se notará si se está en un cliente o en el servidor. 8.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 4.254 6. Deben reiniciarse los servidores X de las máquinas clientes.

Introducción NFS. Esto se consigue modificando los archivos /etc/hosts. sin embargo no en vano es apodado cariñosamente como "No File Security". Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Debemos especificar qué direcciones IP o rango de direcciones IP pueden acceder a los servicios de portmap y quiénes no pueden hacerlo. Usted es libre de copiar. 47.255.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 47. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.allow y /etc/hosts.1.alcancelibre. Al no contar con un sistema de autenticación por contraseñas.2. Instalación del equipamiento lógico necesario yum -y install nfs-utils portmap 47. más comúnmente utilizado entre sistemas basados sobre UNIX®. recomiendo utilizar NFS dentro de una red local detrás de un corta-fuegos o firewall que permita el acceso sólo a las máquinas que integren la red local. Procedimientos Teniendo en cuenta los aspectos de seguridad mencionados.3. Configurando la seguridad Lo siguiente será configurar un nivel de seguridad para portmap. c) Si altera o transforma esta obra.1 © 1999-2011 Joel Barrios Dueñas. Es útil y fácil de utilizar. tiene que dejar bien claro los términos de la licencia de esta obra. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. b) No puede utilizar esta obra para fines comerciales. Podemos entonces determinar en /etc/hosts. es importante que siga los procedimientos descritos a continuación al pie de la letra. es un servicio susceptible del ataque de algún delincuente infomático. NFS no utiliza un sistema de contraseñas como el que tiene SAMBA.1. Al reutilizar o distribuir la obra. Cómo configurar un servidor NFS Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.1.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. acrónimo de Network File System.0 370 .deny.255. Personalmente. SAMBA es un protocolo mucho mejor y más seguro para compartir sistemas de archivos.168.2. y que posteriormente se comprometa también consultar a detalle la documentación incluida en el paquete nfs-utils. Es por esto que es importante que el administrador de la red local o usuario entienda que un servidor NFS puede ser un verdadero e inmenso agujero de seguridad si éste no es configurado apropiadamente e implementado detrás de un corta-fuegos o firewall.allow como rango de direcciones IP permitidas los siguiente: portmap:192. nunca para compartir sistemas de archivos a través de Internet. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. 47. es un popular protocolo utilizado para compartir volúmenes entre máquinas dentro de una red de manera transparente. o genera una obra derivada. sólo una lista de control de acceso determinada por direcciones IP o nombres. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. ya que ésta le proporcionará información adicional y completa sobre aspectos avanzados de configuración y utilización.0/255. 47.

org algun_nombre otro_nombre.7 localhost. Ejemplo del archivo /etc/hosts: 127.3 192.168. sólo resta determinar quiénes no pueden hacerlo.mi-red-local.168. Ejemplo: portmap:192.168. Puede crear también uno nuevo: mkdir -p /var/nfs/publico Una vez hecho esto.255. de acuerdo al DNS o /etc/hosts se permitirá el acceso.0.mi-red-local. Adicionalmente podemos especificar direcciones IP individuales sin necesidad de establecer una máscara. Éstos deberemos agregarlos en /etc/exports determinado con qué máquinas y el modo en que se compartirá el recurso. y esto se hace agregando la siguiente línea: portmap:ALL Es importante destacar que la línea anterior es INDISPENSABLE y NECESARIA si quiere tener un nivel de seguridad decente.1.1.6 192.168.25 portmap:192. Podemos utilizar el siguiente ejemplo (la separación de espacios se hace con un tabulador): 371 .org como_se_llame como_sea.mi-red-local.168.96 portmap:148.1.168.3. debe reiniciarse el servicio de portmap: service portmap restart Si tiene un DNS.1.1.org otro_nombre otro_nombre_mas. Esto nos servirá como listas de control de accesos.4 192.deny.5 192.1.168.168.255.240.org lo_que_sea 47. o bien un patrón común con comodín para definir qué máquinas pueden acceder.1. Una vez configurado portmap.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Esto corresponde a la dirección IP de la red completa y la máscara de la subred.mi-red-local. Se puede especificar una dirección IP o bien nombrar alguna máquina.0 portmap:192. añada los registros de las direcciones IP asociadas a un nombre o bien modifique /etc/hosts y agregue las direcciones IP asociadas con un nombre.localdomain localhost servidor.28.0.254 192.30.1 192.org otro_nombre_mas como_se_llame.org servidor algun_nombre.mi-red-local.152. o bien a qué máquinas. Esto es de utilidad cuando se desea compartir volúmenes con otras máquinas en otras redes a través de Internet. necesitaremos establecer qué directorios en el sistema serán compartidos con el resto de las máquinas de la red.2 portmap:216.2 192.1.20. Evidentemente nos referimos al resto del mundo.168.168.200. De manera predeterminada las versiones más recientes de nfs-utils no permitirán iniciar el servicio si esta línea no se encuentra presente en /etc/hosts. Compartir un volumen NFS Procederemos a determinar qué directorio se va a compartir.org como_sea lo_que_sea.171 Una vez que se han determinado las direcciones IP que pueden acceder a portmap.mi-red-local.0/255.mi-red-local.1.

lo_que_sea. los puertos tcp y udp 2049. cambiamos (ro) por (rw): /var/nfs/publico *. Se utilizó un asterisco (*) como comodín. Cierre. ya que éstos son utilizados por NFS para escuchar peticiones. en modo de lectura escritura.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux /var/nfs/publico *.org.org. es necesario que las máquinas clientes se encuentren definidas en el DNS o en el archivo /etc/hosts del servidor. Si no hay un DNS configurado en la red. en el equipo cliente. 4 y 5.1.mi-red-local. como_sea.org.168.mi-red-local. si tiene un corta-fuegos o firewall implementado. de deberá ejecutar lo siguiente: chkconfig --level 345 nfs on El mandato anterior hace que se habilite nfs en los niveles de ejecución 3.1.1. Si queremos que el accesos a este directorio sea en modo de lectura y escritura. tiene como patrón común mi-red-local. 47.mi-redlocal.3. Esto permitirá que como_se_llame. sólo resta iniciar o reiniciar el servicio nfs. Utilice cualquiera de las dos líneas dependiendo del caso: service nfs start service nfs restart A fin de asegurar de que el servicio de nfs esté habilitado.0/24 A continuación creamos. para todo aquello que no sea parte de su red local.254: /var/nfs/publico 192.sync) Ya que se definieron los volúmenes a compartir.sync) En el ejemplo anterior se está definiendo que se compartirá /var/nfs/publico/ a todas las máquinas cuyo nombre. como root. seguido de un punto y el nombre del dominio.mi-red-local. ejecute el siguiente mandato para consultar los volúmenes exportados (-e) a través de NFS por un servidor en particular: showmount -e 192.org(rw. podrán acceder al volumen /var/nfs/publico/ en modo de sólo lectura.mi-red-local. Como root.2.org.254 Lo anterior mostrará una lista con los nombres y rutas exactas a utilizar.org(ro. Ejemplo: Export list for 192. deberán definirse los nombres y direcciones IP correspondientes en el archivo /etc/hosts de todas las máquinas que integran la red local..168. desde cualquier otra máquina de la red local un punto de montaje: mkdir /mnt/servidornfs 372 . etc.168. la próxima vez que se encienda el equipo. Configurando las máquinas clientes Para probar la configuración. de acuerdo al DNS o /etc/hosts. Como medida de seguridad adicional.

373 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Por último. decidió no asociar el nombre de la máquina que fungirá como servidor NFS a su correspondiente dirección IP. o el archivo /etc/hosts de la máquina cliente.168.rw.exec.254:/var/nfs/publico /mnt/servidornfs Podremos acceder entonces a dicho volumen remoto cambiando al directorio local definido como punto de montaje. puede especificar ésta en lugar del nombre. permitiéndole a los usuarios poder montarlo.mi-red-local. mismo que auto-detecta cualquier cambio en /etc/fstab.mi-red-local.nosuid. Ejemplo: mount -t nfs 192. Una vez agregada la línea en /etc/fstab de la máquina cliente.mi-redlocal. será necesario agregar la correspondiente línea en /etc/fstab.org:/var/nfs/publico /mnt/servidornfs Si por alguna razón en el DNS de la red local. siendo que si el servidor no está encendido al momento de arrancar la máquina cliente. en modo de lectura y escritura y que este volumen no será montado durante el arranque del sistema.dev. Ejemplo: servidor.noauto 0 0 La línea anterior especifica que el directorio /var/nfs/publico/ de la máquina servidor. utilizaremos la siguiente línea de mandato : mount servidor. éste se colgará durante algunos minutos. éste incorpora Nautilus como administrador de archivos. Debe hacerse clic derecho sobre el escritorio y posteriormente seleccionar el disco que se desee montar. si utiliza GNOME-1. del mismo modo que se haría con un disquete o una unidad de CDROM: cd /mnt/servidornfs Si queremos montar este volumen NFS con una simple línea de mandato o bien haciendo doble clic en un icono sobre el escritorio.org será montado en el directorio local /mnt/servidor/nfs.org:/var/nfs/publico /mnt/servidornfs nfs user.1.4 o superior. para proceder a montar el volumen remoto. Esto último es de importancia.

2 192.img of=/dev/fd0 bs=1440k Añada en /etc/hosts. puede quedar como sigue: 127.6 192. Utilizaremos bootnet. o bien de de alta en el DNS.mi-red-local.3 192.5 192.168.mi-red-local.mi-red-local. Tiene como ventaja que la instalación puede resultar más rápida que si se hiciese con un CDROM.1.1 192. asociadas a un nombre con el dominio que específico como regla de control de acceso en /etc/exports -es decir *. y nos permitirá instalar GNU/Linux en máquinas que no tengan unidad de CDROM.org otro_nombre_mas como_se_llame.img para crear el número de disquetes necesarios para cada máquina en la que realizaremos una instalación y que nos permitirán acceder a la red.1.1.org como_sea lo_que_sea.168. Permite compartir un volumen que contenga una copia del CD de instalación de alguna distribución y realizar inclusive instalaciones simultáneas en varios equipos.org otro_nombre otro_nombre_mas.0.org como_se_llame como_sea.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 47.168.9 localhost. las direcciones IP.mi-red-local.org nueva_maquina otra_nueva_maquina. siendo que la tasa de trasferencia de archivos será determinada por el ancho de banda de la red local.168.168. Instalación de GNU/Linux a través de un servidor NFS Este es quizás el uso más común para un volumen NFS.168. 374 .mi-red-local.1.254 192.mi-red-local.mi-red-local.org otra_nueva_maquina Utilice estos disquetes para arrancar en los equipos. El resto continuará como cualquier otra instalación.org servidor algun_nombre.mi-red-local.1. Una vez creado y configurado un volumen a compartir copiaremos todo el contenido del CD de instalación en éste: cp -r /mnt/cdrom/* /var/nfs/publico/ En el directorio images del CD encontraremos varias imágenes para crear disquetes de arranque. que serán utilizadas por las nuevas máquinas.168.1.4 192.168.mi-red-local. Para /etc/hosts.mi-red-local.org lo_que_sea nueva_maquina.1.8 192.org algun_nombre otro_nombre.1.0.7 192.localdomain localhost servidor. Inserte un disquete y ejecute lo siguiente: cd /var/nfs/publico/images/ dd if=bootnet.1.4.org-.168. ingrese una dirección IP y demás parámetros para esta máquina y cuando se le pregunte ingrese la dirección IP del servidor NFS y el directorio en éste en el que se encuentra la copia del CD de instalación.

Acerca de Samba. 48. SAMBA es un conjunto de programas. Diversos clientes para el protoclo SMB. a través de cualquier medio. Usted es libre de copiar. http://www.alcancelibre. Los procedimientos descritos en este manual han sido probados para poder aplicarse en sistemas con CentOS 5 o Red Hat™ Enterprise Linux 5. y actualmente mantenidos por The SAMBA Team. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Sirve como reemplazo total para Windows™ NT.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 48.1. Warp™. o genera una obra derivada.xml).org/cifs/) tras ser renombrado por Microsoft en 1998. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Archivos necesarios para cliente y servidor. http://samba. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. Por mera coincidencia esto ocurrió por la misma época en que Sun Microsystems hizo el lanzamiento de WebNFS (una versión extendida de NFS.1. Necesitará tener instalados los siguientes paquetes: • • • samba: samba-client: samba-common: Servidor SMB.2.com/software/webnfs/overview. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Algunas veces es referido también como CIFS (Acrónimo de Common Internet File System. y que implementan en sistemas basados sobre UNIX™ el protocolo SMB. Cómo configurar Samba básico. y al menos Samba 3. 48. Microsoft añadió al protocolo soporte para enlaces simbólicos y duros así como también soporte para archivos de gran tamaño. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. creado en 1985 por IBM.1. aunque también puede trabajar directamente sobre TCP/IP. Acerca del protocolo SMB. tiene que dejar bien claro los términos de la licencia de esta obra. originalmente creados por Andrew Tridgell. que se traduce como Interfaz de Usuario Extendida de NetBIOS). el cual a su vez trabaja sobre NetBEUI (acrónimo de NetBIOS Extended User Interface. c) Si altera o transforma esta obra. o equivalentes o versiones posteriores.33 o versiones posteriores. NFS™ o servidores Netware™. 48.0. que se traduce como Intercambio de paquetes interred/Intercambio de paquetes secuenciales) o NBT. Licencia completa en castellano.1 © 1999-2011 Joel Barrios Dueñas. Entre otras cosas. del Nivel de Presentación del modelo OSI de TCP/IP. 375 . por entidades con fines de lucro). Introducción.sun. Equipamiento lógico necesario. bajo la Licencia Publica General GNU.2. 48. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. SMB (acrónimo de Server Message Block) es un protocolo. SMB fue originalmente diseñado para trabajar a través del protocolo NetBIOS. Al reutilizar o distribuir la obra.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. IPX/SPX (acrónimo de Internet Packet Exchange/Sequenced Packet Exchange.

SELinux y el servicio smb.2.1. Instalación a través de yum. y que se debe considerar como contenido tipo Samba.1.5. se utiliza el siguiente mandato: 376 . Primary Domain Controler). y versiones posteriores.33.5. 48. sin embargo hay opción a utilizar en su lugar Samba 3. A fin de que SELinux permita al servicio smb la escritura como usuario anónimo.4.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 48. como por ejemplo /var/samba/publico. Procedimientos. se instalará Samba 3.3. ejecute el siguiente mandato: setsebool -P samba_create_home_dirs 1 Para definir que un directorio será compartido a través del servicio smb. Si utiliza CentOS 5 y 6 o Red Hat™ Enterprise Linux 5 o 6. sólo se necesita ejecutar lo siguiente para instalar o actualizar el equipamiento lógico necesario: yum -y install samba samba-client samba-common En el caso de CentOS 6 y Red Hat™ Enterprise Linux 6.0. se instalará Samba 3.3. ejecute el siguiente mandato: setsebool -P samba_enable_home_dirs 1 A fin de que SELinux desactive la protección para los directorios de inicio de los usuarios a través del servicio smb. yum remove samba samba-client samba-common yum -y install samba3x samba-client3x samba-common3x 48. ejecute el siguiente mandato: setsebool -P samba_domain_controller 1 A fin de que SELinux permita al servicio smb compartir los directorios de inicio de los usuarios locales del sistema.4 instalando los paquetes samba3x. samba3x-client y samba3x-common. En el caso de CentOS 5 y Red Hat™ Enterprise Linux 5. ejecute el siguiente mandato: setsebool -P use_samba_home_dirs 1 A fin de que SELinux permita al servicio smb crear nuevos directorios de inicio para los usuarios a través de PAM (operación común en Controladores Primarios de Dominio). ejecute el siguiente mandato: setsebool -P allow_smbd_anon_write 1 A fin de que SELinux permita al servicio smb funcionar como Controlador Primario de Dominio (PDC.

que se permita acceso al intérprete de mandatos. Si se necesita que las cuentas se puedan utilizar para acceder hacia otros servicios como serían Telnet.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux chcon -t samba_share_t /var/samba/publico Cada nuevo directorio que vaya a ser compartido a través de Samba. si en una máquina con Windows™ ingresamos como el usuario fulano con clave de acceso 123qwe. será necesario especificar /bin/bash como intérprete de mandatos y además se deberá asignar una clave de acceso en el sistema con el mandato passwd: useradd -s /bin/bash usuario-windows passwd usuario-windows smbpasswd -a usuario-windows 48. Asigne una clave de acceso al usuario root. asociándolos con las direcciones IP correspondientes.3. useradd -s /sbin/nologin usuario-windows smbpasswd -a usuario-windows Es opcional asignar clave de acceso con el mandato passwd.3. en el servidor Samba deberá existir también dicha cuenta con ese mismo nombre y la misma clave de acceso. Edite el archivo /etc/samba/lmhosts con cualquier editor de texto simple. vim /etc/samba/lmhosts 377 . Es decir. ejecute el siguiente mandato: setsebool -P samba_export_all_ro 1 A fin de que SELinux permita al servicio smb compartir todos los recursos en modo de lectura y escritura. Alta de cuentas de usuario.2. debe ser configurado como acaba de describirse antes de ser configurado en el archivo /etc/samba/smb. en el archivo /etc/samba/lmhosts (lmhosts es acrónimo de LAN Manager hosts). smbpasswd -a root Es importante sincronizar las cuentas entre el servidor Samba y las estaciones Windows™. es decir. ejecute el siguiente mandato: setsebool -P samba_export_all_rw 1 48. El archivo lmhosts Es necesario empezar resolviendo de manera local los nombres NetBIOS. SSH.3. no es necesario asignar clave de acceso con el mandato passwd y se deberá definir /sbin/nologin o bien /bin/false como intérprete de mandatos para la cuenta de usuario involucrada. A fin de que SELinux permita al servicio smb compartir todos los recursos en modo de sólo lectura.conf. Como la mayoría de las cuentas de usuario que se utilizarán para acceder hacia Samba no requieren acceso al intérprete de mandatos del sistema. Ésta puede ser distinta a la utilizada en el sistema. etc.

Ejemplo: 127. encontrará información que será de utilidad.conf con cualquier editor de texto simple. y que está comentada con almohadillas (símbolo #). pero siempre tomando en cuenta que dicho nombre deberá corresponder con el establecido en el archivo /etc/samba/lmhosts: netbios name = servidor 48.6 192.4.4 192. Si se edita el archivo /etc/samba/lmhosts. Parámetro netbios name.7 192.2. de manera opcional.1 192.4.conf.70.168.conf Dentro de este archivo. De manera opcional.70. el resto de los anfitriones de la red local. 48.1. Parámetro workgroup. siendo estos últimos los que se pueden tomar como referencia para configurar.168.3.168.70. Este parámetro es de carácter descriptivo. y varios ejemplos comentados con punto y coma (símbolo . Como mínimo debe encontrarse el nombre del anfitrión Samba.3.3.2 192. si acaso ésto fuese necesario.70.).70.1 192. Parámetros principales del archivo smb.5 192.4. Se establece el grupo de trabajo definiendo el valor del parámetro workgroup asignando un grupo de trabajo deseado: workgroup = MIGRUPO 48.168.70.3 192. Parámetro server string. junto con su correspondiente dirección IP. La separación de espacios se hace con un tabulador.168.168.3. Normalmente se utiliza el nombre corto del servidor.0.4. vim /etc/samba/smb.1 localhost Se pueden añadir los nombres y direcciones IP de cada uno de los anfitriones de la red local.8 localhost servidor joel blanca alejandro sergio isaac finanzas direccion 48. 378 .0. Puede utilizarse un comentario breve que de una descripción del servidor.70. bien o el nombre corto que se asigno como alias a la interfaz de red.70.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para fines prácticos el nombre NetBIOS debe tener un máximo de doce caracteres alfanuméricos. Edite el archivo /etc/samba/smb.0.168. se encontrará un contenido similar al siguiente: 127.168. se puede establecer con el parámetro netbios name otro nombre distinto para el servidor.3.0. y.

es decir.127/DOMINIO1. y ésta se puede establecer estableciendo la lista de control de acceso. etc.168. expresada en bits.168. 192. Los valores aceptados para este parámetro es una lista. eth1. siendo necesario definir sólo el primer octeto de dicho segmento: hosts allow = 127. El parámetro interfaces permite establecer desde que interfaces de red del sistema se escucharán peticiones. impidiendo se establezcan conexiones hacia este servicio desde Internet. y sea posible la difusión exitosa de paquetes.0/24 y 192. o redes. podrán acceder hacia el servidor. 48.4. El parámetro hosts allow sirve para determinar ésto. de direcciones de la red local. o dirección IP.127 (que corresponde a la dirección IP de difusión de la red 192.168.168. separada por comas.0. y otros grupos de trabajo existentes en la red de área local. remote announce = 192. Ésto es útil cuando Samba se ejecuta en un servidor que sirve además de puerta de enlace para la red local. con los nombres de las interfaces (lo. de modo tal que sólo se permitirá el acceso dichas máquinas. La seguridad es importante.70.2.70. Parámetro remote announce.4.70. La opción remote announce se encarga de que el servicio nmbd se anuncie a si mismo de forma periódica hacia una red en particular y un grupo de trabajo específico.3. Parámetro hosts allow. Esto es particularmente útil si se necesita que el servidor Samba aparezca en su propio grupo de trabajo. el rango de direcciones IP que se definirá en hosts allow será 192.2.. o bien fuera del bloque.5. 192. Si la red consiste en las máquinas con dirección IP desde 192.0.168. con la máscara de sub-red en formato CIDR (Classless Inter-Domain Routing).70. y direcciones IP utilizada en una interfaz en particular.168.70.168.).3. El grupo de trabajo de destino puede estar en donde sea.70. o segmento.168. 192.168. la cual definirá qué máquinas. Los valores que pueden ser utilizados son direcciones IP de difusión (broadcast) de la red utilizada (es decir la última dirección IP del segmento de red) y/o nombres de grupos de trabajo. definiendo los tres primeros octetos de la dirección IP de red..0/25) y 192.3.70. sin especificar. Samba ignorará todas las peticiones provenientes desde cualquier interfaz.168.37. o espacios.4. mientras exista una ruta. 192. En el siguiente ejemplo se define que el servidor Samba se anuncie a través de las direcciones IP de difusión 192.254/25 48.0/24) y hacia los grupos de trabajo DOMINIO1 y DOMINIO2.168. Parámetro interfaces.70.168.0/24.1 hasta 192. En el siguiente ejemplo se definen las redes 192.255/DOMINIO2 379 . eth0.5.37.126.70. Ejemplo: interfaces = lo.168. eth1.2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux server string = Servidor Samba %v en %L 48.0/8 (retorno del sistema o loopback).255 (que corresponde a la dirección IP de difusión de la red 192. así como cualquier dirección IP de la red 127.168.

lo siguiente: net -S servidor -U root rpc rights grant fulano SePrintOperatorPrivilege 48.7. Actualmente se hace igual que en Windows. path = /var/spool/samba printable = Yes browseable = No writable = no printable = yes public = Yes Para la administración de las colas de impresión. así que sólo hay que realizar algunos ajustes. anteriormente se hacía utilizando el parámetro printer admin. Si se desea que se pueda acceder hacia la impresora como usuario invitado sin clave de acceso. Las impresoras se comparten de modo predeterminado. Compartiendo directorios a través de Samba. definiendo una lista de usuarios. En general. ejecutando. utilizando políticas. Para los directorios o volúmenes que se irán a compartir. desde terminal. puede utilizar el siguiente ejemplo que funcionará para la mayoría: [Lo_que_sea] comment = Comentario que se le ocurra path = /cualquier/ruta/que/desee/compartir El volumen puede utilizar cualquiera de las siguientes opciones: 380 .3. en el mismo archivo de configuración encontrará distintos ejemplos para distintas situaciones particulares. o grupos. Impresoras en Samba. basta con añadir public = Yes (que es lo mismo que guest ok = Yes) en la sección de impresoras del siguiente modo: [printers] comment = El comentario que guste.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 48.3.6.

que podrán acceder con permiso de escritura. Es decir. el siguiente contenido: 381 . o bien nombres de grupo antecedidos por una @. o grupos. Es un equivalente del parámetro guest ok. se cambia el contexto de SELinux. a fin de que este directorio sea considerado como contenido Samba. Los valores pueden ser nombres de usuarios separados por comas. el cual está localizado en el directorio /var/samba/datos del disco duro.conf. Define qué permiso en el sistema tendrán los subdirectorios creados dentro del recurso. Ejemplo: fulano. que podrán acceder con permisos administrativos para el recurso.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Opción Descripción Define si se permitirá el acceso como usuario invitado. mengano. se crea el nuevo directorio /var/samba/datos. El valor puede ser Yes o No. Primero. podrán acceder hacia el recurso realizando todas las operaciones como super-usuarios. o grupos. que podrán acceder al recurso compartido. es decir define si se permitirá el acceso como usuario invitado. Es el parámetro contrario de read only. Define si se permitirá la escritura. @administradores Es lo mismo que directory mode. hasta el final de éste. Se permitirá el acceso a cualquiera pero será un recurso de sólo lectura salvo para los usuarios administrador y fulano. El valor puede ser Yes o No. Los valores pueden ser nombres de usuarios separados por comas. Ejemplos: «writable = Yes» es lo mismo que «read only = No». mengano. Ejemplo: fulano. El valor puede ser Yes o No. Todo directorio nuevo que sea creado en su interior tendrá permiso 755 (drwxr-xr-x). o grupos. o bien nombres de grupo antecedidos por una @. mengano. El valor puede ser Yes o No. Ejemplos: 1777 Define que permiso en el sistema tendrán los nuevos archivos creados dentro del recurso. utilizando el siguiente mandato: mkdir -p /var/samba/datos Luego. y se añade. o bien nombres de grupo antecedidos por una @. Ejemplo: fulano. @administradores Define los usuarios. @administradores Define los usuarios. Los valores pueden ser nombres de usuarios separados por comas. Obviamente «writable = No» es lo mismo que «read only = Yes» Define los usuarios. Ejemplo: 0644 guest ok public browseable writable valid users write list admin users directory mask create mask En el siguiente ejemplo se compartirá a través de Samba el recurso denominado datos. Define si se permitirá mostrar este recurso en las listas de recursos compartidos. chcon -t samba_share_t /var/samba/datos Se edita el archivo /etc/samba/smb. y todo archivo que sea puesto en su interior tendrá permisos 644 (-rw-r--r--.

Ocultando archivos que inician con punto. etc.3. sólo es necesario reiniciar el servicio smb: service smb restart Para que los servicios nmb y smb inicien automáticamente junto con el sistema. para mantenerlos ocultos. service nmb restart Si va a aplicar algún cambio en cualquier otro parámetro de la configuración. [homes] comment = Home Directories browseable = no writable = yes hide dot files = Yes 48.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux [datos] comment = Directorio de Datos path = /var/samba/datos guest ok = Yes read only = Yes write list = fulano. es decir archivos cuyo nombre comienza con un punto. administrador directory mask = 0755 create mask = 0644 48. sólo utilice los dos siguientes mandato: chkconfig nmb on chkconfig smb on 382 . y añadirlo al arranque del sistema. hide dot files = Yes Este parámetro es particularmente útil para complementar la configuración de los directorios personales de los usuarios. es necesario reiniciar el servicio nmb. . como es el caso del directorio de inicio del usuario en el servidor Samba (.). . con el valor Yes.7. Puede utilizarse el parámetro hide dot files.bash_profile. notando la presencia de archivos ocultos del sistema.bashrc. Es poco conveniente que los usuarios puedan acceder.4.bash_history. como son los recursos compartidos. el cual es el encargado de proveer el servidor de nombres para los clientes a través de NetBIOS sobre IP.1. Iniciar el servicio. Para iniciar los servicios nmb y smb por primera vez realice lo siguiente: service nmb start service smb start Si realiza algún cambio en la configuración del parámetro netbios name.

1.4-68.5.el6_0.2 en mi-servidor) Created by system-config-printer 1.x hp2550bw Printer Created by system-config-printer 1.el6_0. similar al mandato ftp en modo texto.x Anonymous login successful Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3. 48.4-68.5.4-68. e indudablemente más confiable para pruebas de diagnóstico.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 48.el6_0.2 en mi-servidor) IPC Service (Servidor Samba 3.el6_0. Comprobaciones. Utilice el mandato smbclient del siguiente modo: smbclient -U usuario -L alguna_maquina Lo cual le devolvería más menos lo siguiente: Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.4-68. Modo texto.5. es el mandato smbclient. Indudablemente el método más práctico.1.5. el sistema solicitará se proporcione la clave de acceso del usuario fulano en el equipo denominado LINUX.2.5. Este permite acceder hacía cualquier servidor Samba o Windows™. 383 .el6_0.2. Para acceder al cualquier recurso de alguna máquina Windows™ o servidor Samba.2] Sharename --------homes netlogon datos IPC$ ADMIN$ epl5900 Type ---Disk Disk Disk IPC IPC Printer Comment ------Home Directories Network Logon Service datos IPC Service (Servidor Samba 3.2] Server --------mi-servidor Workgroup --------MI-DOMINIO Comment ------Servidor Samba 3.5.5. 48. Herramienta smbclient.5.1.2 en mi-servidor Master ------MI-SERVIDOR La siguiente corresponde a la sintaxis básica para poder navegar los recursos compartidos por la máquina Windows™ o el servidor SAMBA: smbclient //alguna_maquina/recurso -U usuario Ejemplo: smbclient //LINUX/DATOS -U fulano Después de ejecutar lo anterior. determine primero que volúmenes o recursos compartidos posee ésta.4-68.

2.126 bcast=192.255.5. el cual permite acceder hacia los recursos compartidos a través de Samba. 384 . Desde el escritorio de GNOME.1.2. Desde Windows deberá ser posible acceder sin problemas hacia cualquier servidor Samba. Sólo hay que hacer clic en el menú de GNOME. en Servidores de red. del. 48. como si fuese hacia cualquier otro sistema con Windows.255.168.2. etc.5.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux smbclient //LINUX/DATOS -U fulano added interface ip=192. en CentOS 6). o gvfs-smb. Modo gráfico 48.70.70. éste incluye un módulo para Nautilus (gnome-vfs-smb.168. put.x o superior. Desde Windows. como serían get.2. mget.2. Si utiliza GNOME 2. en CentOS 5.127 nmask=255. 48.5.128 Password: Domain=[fulano] OS=[Unix] Server=[Samba 2.1a] smb: > Pueden utilizarse casi los mismos mandatos que en el intérprete de ftp.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 385 .

b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Al reutilizar o distribuir la obra. 49.tmp/ En el siguiente ejemplo. 49.3. Cómo configurar Samba denegando acceso a ciertos archivos.1.tmp/ 49. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.mpg/*. c) Si altera o transforma esta obra.2. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.avi/*. a detalle y en su totalidad el manual «Cómo configurar Samba básico». Usted es libre de copiar. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. como archivos de sistema y archivos de multimedios como MP3.mp3». Este documento considera que usted ya ha leído previamente. utilice: 386 . se denegará el acceso hacia los archivos cuyos nombres incluyan la palabra «Security» y los que tengan extensión o terminen en «. de aquellas cadenas de texto que denegarán el acceso a los archivos cuyos nombres contengan estas cadenas.mp4/*.mpeg» y «. «. En algunos casos puede ser necesario denegar el acceso a ciertas extensiones de archivos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 49. Licencia completa en castellano.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. El parámetro veto files se utiliza para especificar la lista. Aplicando los cambios.1 © 1999-2011 Joel Barrios Dueñas. y que ha configurado exitosamente Samba como servidor de archivos. se denegará el acceso hacia los archivos que tengan las extensiones o terminen en «. «. o genera una obra derivada. Introducción. MPEG y DivX. Procedimientos. Para hacer que los cambios hechos surtan efecto tras modificar la configuración. a través de cualquier medio.mp4».avi» en todos los directorios personales de todos los usuarios del sistema: [homes] comment = Home Directories browseable = no writable = yes hide dot files = Yes veto files = /*. por entidades con fines de lucro). separada por diagonales. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. En el siguiente ejemplo.alcancelibre.mp3/*.tmp»: [homes] comment = Home Directories browseable = no writable = yes hide dot files = Yes veto files = /*Security*/*. tiene que dejar bien claro los términos de la licencia de esta obra. MP4.

2.mp3 NT_STATUS_OBJECT_NAME_NOT_FOUND opening remote file prueba. Comprobaciones.9.mp3: echo "archivo MP3 de pruebas" > prueba. suba el archivo prueba.1/fulano -Ufulano%123qwe Lo anterior debe devolver una salida similar a la siguiente: Domain=[M064] OS=[Unix] Server=[Samba 3.el5.0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux service smb restart 49.al] smb: > Utilizando el mandato put del intérprete SMB.txt al directorio personal de fulano: smb: > put prueba. Con la finalizad de realizar pruebas.0.0rc1-14.mp3 Si aún no existiera. lo cual indica que no fue permitido subir el archivo prueba.mp3 Lo anterior debe devolver una salida similar a la siguiente indicando el mensaje NT_STATUS_OBJECT_NAME_NOT_FOUND como respuesta.mp3: smb: > put prueba.mp3 smb: > Para salir del intérprete SMB utilice el mandato exit: smb: > exit 387 . genere al usuario fulano: useradd fulano Utilice el mandato smbpasswd y asigne 123qwe como clave de acceso al usuario fulano: smbpasswd -a fulano Acceda con smbclient hacia el servidor Samba con el usuario fulano: smbclient //127.4. genere con el mandato echo del sistema un archivo denominado prueba.

50. Usted es libre de copiar. c) Si altera o transforma esta obra. tiene que dejar bien claro los términos de la licencia de esta obra. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. a través de cualquier medio.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 50. En el caso de directorios compartidos que sean accedidos por distintos usuarios. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Este documento considera que usted ya ha leído previamente. a detalle y en su totalidad el manual «Cómo configurar Samba básico». distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.alcancelibre. y que ha configurado exitosamente Samba como servidor de archivos. 388 . Al reutilizar o distribuir la obra.2.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. tomando en cuenta que de esta forma el contenido conservará los privilegios de cada usuario y los contenidos solo podrán ser eliminados permanentemente por sus propietarios correspondientes. En algunas circunstancias. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. es necesario añadir una Papelera de Reciclaje (Recycle Bin) para evitar la eliminación permanente del contenido de un directorio compartido a través de Samba. Licencia completa en castellano.1. por entidades con fines de lucro). Es particularmente útil para los directorios personales de los usuario. 50. el cual es creado si éste no existiera. se puede cambiar el permiso de acceso del subdirectorio Recycle Bin con el mandato chmod de 0700 a 1777 para permitir a otros usuarios utilizar éste. Si el contenido de Recycle Bin es eliminado. De ser necesario.1 © 1999-2011 Joel Barrios Dueñas. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. que almacenará los contenidos eliminados desde el cliente en un subdirectorio denominado Recycle Bin. Procedimientos La Papelera de Reciclaje se activa añadiendo al recurso a compartir los parámetros vfs objects y recycle:repository del modo ejemplificado a continuación: [homes] comment = Home Directories browseable = no writable = yes vfs objects = recycle recycle:repository = Recycle Bin Lo anterior creara el objeto recycle. Introducción. el subdirectorio Recycle Bin se crea con permisos de acceso solo para el primer usuario que elimine contenido. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. o genera una obra derivada. Lo correcto es solo utilizarlo en directorios compartidos que solo sean utilizados por un solo usuario. éste se hará de forma permanente. Cómo configurar Samba con Papelera de Reciclaje.

Las listas para archivos y directorios son separadas por tuberías (|).tmp.ini 389 . *. *.log.TMP recycle:excludedir = /tmp|/temp|/cache recycle:noversions = *.tmp|*.dat|*. *. *. Copia #x del nombre-archivo).temp|*.ppt|*. *. *.~??.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Se pueden añadir más opciones para lograr un comportamiento más similar al de una Papelera de Reciclaje normal en Windows.o|*. /temp y /cache.dat y *.~??|*.temp. ~$*.o. [homes] comment = Home Directories browseable = no writable = yes vfs objects = recycle recycle:repository = Recycle Bin recycle:versions = Yes recycle:keeptree = Yes recycle:exclude = *.temp|*. [homes] comment = Home Directories browseable = no writable = yes vfs objects = recycle recycle:repository = Recycle Bin recycle:versions = Yes recycle:keeptree = Yes Se puede definir además que se excluyan archivos (recycle:exclude) y directorios (recycle:exclude_dir) de ser enviado a la Papelera de Reciclaje cierto tipo de contenido y sea eliminado de forma permanente de inmediato.tmp|*. El parámetro recycle:keeptree define que si se elimina un directorio con subdirectorios y contenido. para algunas extensiones. y estos son enviados a la Papelera de Reciclaje.doc.trace|*. se mantendrá la estructura de éstos.trace y *.obj.~??|*. *. [homes] comment = Home Directories browseable = no writable = yes vfs objects = recycle recycle:repository = Recycle Bin recycle:versions = Yes recycle:keeptree = Yes recycle:exclude = *.ini.trace|*.log|*.TMP.obj|~$*|*.obj|~$*|*. se indica que no se guarden diferentes versiones de archivos con el mismo nombre que tengan las extensiones *.TMP recycle:excludedir = /tmp|/temp|/cache Si no se quiere que se guarden versiones distintas de archivos con el mismo nombre.doc|*. y los directorios /tmp. y aceptan comodines (* y ?).o|*. El parámetro recycle:versions define que si hay dos o más archivos con el mismo nombre. En el siguiente ejemplo se excluyen los archivos con extensiones *.ppt. En el siguiente ejemplo.log|*. es posible hacerlo definiendo el parámetro recycle:noversions y una lista de extensiones de archivos separados por tuberías (|). se mantendrán todos donde los archivo más recientes tendrán un nombre con el esquema «Copy #x of nombrearchivo» (es decir. *.

Para hacer que los cambios hechos surtan efecto tras modificar la configuración.tmp|*.~??|*.0. Con la finalizad de realizar pruebas. Comprobaciones.txt: echo "archivo de pruebas" > prueba.0rc1-14.temp|*.doc|*.3. que define un tamaño mínimo. que define un tamaño máximo.log|*. Aplicando los cambios.obj|~$*|*. utilice: service smb restart 50. Cualquier archivo que esté fuera de estos límites establecidos.2.trace|*.0.9.txt Si aún no existiera. será eliminado permanentemente de forma inmediata. genere con el mandato echo del sistema un archivo denominado prueba. genere al usuario fulano: useradd fulano Utilice el mandato smbpasswd y asigne 123qwe como clave de acceso al usuario fulano: smbpasswd -a fulano Acceda con smbclient hacia el servidor Samba con el usuario fulano: smbclient //127.1/fulano -Ufulano%123qwe Lo anterior debe devolver una salida similar a la siguiente: Domain=[M064] OS=[Unix] Server=[Samba 3. En el siguiente ejemplo se define que solo podrán ser enviados a la Papelera de Reciclaje los archivos que tengan un tamaño mínimo de 10 bytes y un tamaño máximo de 5120 bytes (5 MB) [homes] comment = Home Directories browseable = no writable = yes hide dot files = Yes vfs objects = recycle recycle:repository = Recycle Bin recycle:versions = Yes recycle:keeptree = Yes recycle:exclude = *. y recycle:maxsize.al] smb: > 390 .o|*.TMP recycle:excludedir = /tmp|/temp|/cache recycle:noversions = *.ini recycle:minsize = 10 recycle:maxsize = 5120 50.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux También es posible definir un mínimo y un máximo de tamaño en bytes a través de los parámetros recycle:minsize.4.dat|*.ppt|*.el5.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Utilizando el mandato put del intérprete SMB.4 kb/s) smb: > Visualice el contenido del directorio actual desde el intérprete SMB utilizando el mandato dirpara verificar que se ha subido el archivo prueba. lo cual debe devolver una salida similar a la siguiente donde ha desaparecido el archivo prueba.txt (0. suba el archivo prueba.txt: smb: > dir Lo anterior debe devolver una salida similar a la siguiente: smb: > dir . .txt as prueba.txt y ahora aparece el directorio Recycle Bin: smb: > dir . .bash_profile .bashrc .txt utilizando el mandato del desde el intérprete SMB: smb: > del prueba.4 kb/s) (average 0.. 12143 blocks available Elimine el archivo prueba.bash_logout prueba.. 12143 blocks available Acceda al directorio Recycle Bin utilizando el mandato cd: 391 .txt Lo anterior debe devolver una salida similar a la siguiente: smb: > put prueba.bashrc .bash_profile .txt smb: > Visualice de nuevo el contenido del directorio con el mandato dir.txt smb: > D D H H H A 0 0 124 176 24 19 Wed Wed Wed Wed Wed Wed Jun Jun Jun Jun Jun Jun 18 18 18 18 18 18 20:44:39 20:04:14 20:04:14 20:04:14 20:04:14 20:44:39 2008 2008 2008 2008 2008 2008 34173 blocks of size 524288. .kde .bash_logout .zshrc . .emacs Recycle Bin smb: > D D H H H H DH H D 0 0 124 176 24 658 0 515 0 Wed Wed Wed Wed Wed Wed Wed Wed Wed Jun Jun Jun Jun Jun Jun Jun Jun Jun 18 18 18 18 18 18 18 18 18 20:52:49 20:04:14 20:04:14 20:04:14 20:04:14 20:04:14 20:04:14 20:04:14 20:52:49 2008 2008 2008 2008 2008 2008 2008 2008 2008 34173 blocks of size 524288.txt putting file prueba.txt al directorio personal de fulano: smb: > put prueba.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux smb: > smb: > cd "Recycle Bin" Visualice el contenido con el mandato dir. ahora está dentro del directorio Recycle Bin. prueba. lo cual debe devolver una salida similar a la siguiente donde se muestra que el archivo prueba. smb: Recycle Bin> dir . que fue eliminado con el mandato del. 12141 blocks available Para salir del intérprete SMB utilice el mandato exit: smb: Recycle Bin> exit 392 .txt D D A 0 0 19 Wed Jun 18 20:52:49 2008 Wed Jun 18 20:52:49 2008 Wed Jun 18 20:44:39 2008 34173 blocks of size 524288. ..txt.

Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Al reutilizar o distribuir la obra.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. pero es lo suficientemente estable para el uso diario.4. Procedimientos. Este último será utilizado para crear la estructura de directorios de rpmbuild y que solo serán necesarios para instalar y preparar los fuentes RPM. como una prueba de concepto de módulo para el sistema de archivos virtual de Samba. Instalación de equipamiento lógico necesario.3. tiene que dejar bien claro los términos de la licencia de esta obra. yum -y install gcc glibc-devel rpm-build clamav-devel pcre-devel 51. 51. Acerca de Samba-Vscan. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.1.2. Licencia completa en castellano. incluye soprote para otros antivirus como H+BEDV AntiVir (versión servidor).6cBeta5 es incompatible con Samba 3. Cómo instalar y configurar Samba-Vscan en CentOS 5. Además de ClamAV. pcre-devel y rpm-build. NAI/McAfee uvscan y F-Secure AntiVirus. 51. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.kernel.1 © 1999-2011 Joel Barrios Dueñas.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 51. glibc-devel. con un mínimo de fallas. 51. Instalar primero los paquetes gcc.el5_2. Usted es libre de copiar.alcancelibre. Symantec AntiVirus. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. por entidades con fines de lucro). pero es incompatible con AL Desktop).28-1. Es importante señalar que samba-vscan 0. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación.src. Este documento describe el procedimiento de instalación y configuración de Samba-Vscan utilizando ClamAV y requiere haber realizado primero los procedimientos descritos en el documento de Alcance Libre titulado «Cómo configurar Clamd».org/centos/5/updates/SRPMS/samba-3. Se debe descargar el paquete de fuentes de Samba de la siguiente forma: wget http://mirrors.rpm Instalar el código fuente: 393 . Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Kaspersky AntiVirus. clamav-devel. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.0. Trend Micro FileScanner/InterScan VirusWall.1. F-Prot Daemon. Su desarrollo aún está en fase experimental.3. c) Si altera o transforma esta obra.6cBeta5 es compatible con AL Server. o genera una obra derivada.2. a través de cualquier medio.3. Introducción. Samba-Vscan es un interesante módulo desarrollado por OpenAntivirus.x y versiones posteriores (Nota usuarios equipamiento lógico de Alcance Libre: samba-vscan 0.

/configure: . rpmbuild -bp samba..28/source/.3./examples/VFS/: cd . Ejecutar el mandato make proto para compilar lo mínimo necesario para posteriormente compilar Samba-Vscan: make proto Cambiarse al directorio ./examples/VFS Descargar la versión 0.rpm Cambiarse al directorio de archivos de especificación: cd /usr/src/redhat/SPECS/ Utilizar rpmbuild con las opciones -bp para descomprimir los fuentes de Samba.tar./configure Ejecutar make clamav: 394 .spec Cambiarse al subdirectorio samba-3.src.gz Cambiarse al directorio samba-vscan-0.6c-beta5/: cd samba-vscan-0.tar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux rpm -ivh samba-3.gz Descomprimir samba-vscan-0.6c-beta5.0.6c-beta5.gz: tar zxvf samba-vscan-0.6c-beta5/ Ejecutar dentro de este directorio . wget http://www./configure Lo anterior demorará algunos minutos en completarse.tar.3.openantivirus.el5_2./configure dentro del directorio /usr/src/redhat/BUILD/samba-3.0.28/source/ Ejecutar .0.6c-beta5.1. .3.28-1.3.3.0..6cBeta5 de Samba-Vscan.28/source/ que se encuentra dentro del directorio de compilación: cd /usr/src/redhat/BUILD/samba-3.3.org/download/samba-vscan-0.

socket name of clamd (default: /var/run/clamd). donde se desee utilizar protección con antivirus: vfs object = vscan-clamav vscan-clamav: config-file = /etc/samba/vscan-clamav. . La recomendación es utilizar cualquier otro directorio distinto de /tmp y que haya sido creado específicamente para este fin.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux make clamav Instalar vscan-clamav.conf en /etc/samba/: install -m 0644 clamav/vscan-clamav.sock como zócalo en el parámetro clamd socket name.conf [publico] comment = Directorio público path = /var/samba/publico writable = no printable = no browseable = yes 395 . .conf y definir /var/run/clamd.you really want to change this! quarantine directory = /tmp . libclamav is used clamd socket name = /var/run/clamd También es importante definir un directorio para cuarentena de archivos infectados a través del parámetro quarantine directory. editar /etc/samba/vscan-clamav. Setting will be ignored if . prefix for files in quarantine quarantine prefix = vir- Para utilizar samba-vscan en la configuración de Samba. de otra manera este servicio dejará de funcionar.conf. where to put infected files . Si se siguió al pie de la letra la configuración de Clamd en el documento de Alcance Libre titulado «Cómo configurar Clamd».so /usr/lib/samba/vfs/ Instalar clamav/vscan-clamav.localhost/clamd.conf Ejemplos: [homes] comment = Home Directories browseable = yes writable = yes hide dot files = Yes vfs object = vscan-clamav vscan-clamav: config-file = /etc/samba/vscan-clamav.conf /etc/samba/ Es importante mencionar que el procedimiento de compilación de samba-vscan debe repetirse cada vez que se actualice Samba. definido en el archivo /etc/samba/smb. se añaden las siguientes dos líneas a cada recurso compartido.so en /usr/lib/samba/vfs/: install vscan-clamav.

396 . puede utilizarse el archivo de prueba Eicarcom2 a través de smbclient o bien interfaz gráfica desde Linux con Nautilus o bien desde Windows con Explorador de Windows. sobre cualquier recurso compartido que haya sido configurado con Samba-Vscan.conf Para probar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux public = yes vfs object = vscan-clamav vscan-clamav: config-file = /etc/samba/vscan-clamav.

Parámetros wins server. No es posible ser cliente. Al reutilizar o distribuir la obra. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.conf 52.2. por entidades con fines de lucro). o bien utilizar un servidor WINS ya existente. WINS (Windows Internet Name Service) es un servidor de nombres de para NetBIOS. 3.2.conf. La resolución de nombres em Sambase lleva a cabo realizando consultas en el siguiente orden: 1. 2. Procedimientos.1. se definen en la sección [global] del archivo /etc/samba/smb. Usted es libre de copiar.1. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. Licencia completa en castellano. son mutuamente excluyentes. Introducción. y que ha configurado exitosamente Samba como servidor de archivos. y wins support. Cómo configurar Samba como cliente o servidor WINS. Servidor WINS Información del archivo /etc/samba/lmhosts Información del archivo /etc/hosts Difusión (broadcast) Este documento considera que usted ya ha leído previamente. debe habilitarse el parámetro wins support con el valor yes: wins support = Yes 397 . Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. a detalle. el manual «Cómo configurar Samba básico». y en su totalidad. y wins support. tiene que dejar bien claro los términos de la licencia de esta obra. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. 52. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Todos los parámetros descritos a continuación.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. 52. vim /etc/samba/smb. Al utilizar un servidor WINS se evita el realizar búsquedas innecesarias a través de difusión (broadcast) reduciendo sustancialmente el tráfico de red.alcancelibre. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red:http://www.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 52. c) Si altera o transforma esta obra. y nombres NetBIOS. Se puede definir que el servidor Samba recién configurado se convierta en un servidor WINS. Esta lista permite localizar rápidamente a otro equipo dentro de la red. que se encarga de mantener una tabla con la correspondencia entre direcciones IP. que se definen en la sección [global] del archivo /etc/samba/smb. Los parámetros wins server.conf. o genera una obra derivada. Si el sistema va ser utilizado como servidor WINS. de los equipos que conforman la red local. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. y servidor al mismo tiempo.1 © 1999-2011 Joel Barrios Dueñas. 4. a través de cualquier medio.

5.2. En el siguiente ejemplo se define al sistema con dirección IP 192. En el siguiente ejemplo. y como valor se especifica la dirección IP que utilice el servidor WINS. Cuando su valor es yes. name resolve order = wins lmhosts hosts bcast 52. Pueden definirse hasta hasta cuatro valores: wins.168. Parámetro max ttl.2. Si las direcciones IP de los equipos que integran la red local cambian demasiado frecuentemente. su valor predeterminado es 259200. El parámetro max ttl define el máximo tiempo de vida en segundos para los nombres NetBIOS que han sido consultados como cliente WINS en un servidor WINS.168.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si el sistema va a utilizar un servidor WINS existente. permite a Samba realizar búsquedas en un servidor DNS si le es imposible determinar un nombre a través de un servidor WINS.1.1.1 52.2. Parámetro wins proxy. se definen 48 horas como tiempo máximo de vida para los nombres NetBIOS: max ttl = 86400 398 . puede reducirse este tiempo. como se muestra en el siguiente ejemplo. debe habilitarse el parámetro wins server. Por lo general no es necesario modificar este parámetro. Cuando su valor es yes. lmhosts. Parámetro dns proxy. 52. hosts. wins proxy = yes El valor predeterminado de este parámetro es no.2. que corresponde a tres días.1 como servidor WINS: wins server = 192. Parámetro name resolve order Define en Samba el orden de los métodos a través de los cuales se intentará resolver los nombres NetBIOS. y bcast. 52.3. permite a Samba como servidor intermediario (proxy) para otro servidor WINS.2. dns proxy = yes El valor predeterminado de este parámetro es no.4.

que tendrán de vida los nombres NetBIOS que han sido asignados por el servidor Samba. 6 días. corresponden a los tiempos máximo. y el valor predeterminado de min wins ttl.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 52. Los parámetros max wins ttl. es 21600.3. Aplicando los cambios. 6 horas. es decir.2. Para hacer que los cambios hechos surtan efecto tras modificar la configuración. Por lo general no es necesario modificar estos parámetros. Si las direcciones IP de los equipos que integran la red local cambian muy frecuentemente. es 518400.6. en escala de segundos. Parámetros max wins ttl y min wins ttl. pueden modificarse estos tiempos. es decir. reincie los servicios smb y nmb: service smb restart service nmb restart 399 . El valor predeterminado de max wins ttl. respectivamente. y min wins ttl. En el siguiente ejemplo se redundan los valores predeterminados: max wins ttl = 518400 min wins ttl = 21600 52. y mínimo.

número de tarjeta de crédito y otra información. 400 . Otro tipo de ataque de ingeniería social. Clásicos ejemplos de ataques exitosos aprovechando la ingeniería social es el envío de los adjuntos en el correo electrónico (virus. troyanos y gusanos) que pueden ejecutar código malicioso en una estación de trabajo o computadora personal. antes que aprovechar agujeros de seguridad en los sistemas informáticos. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. El talón de Aquiles de cualquier red lo componen los usuarios que la integran. Buena parte del correo electrónico que llega al buzón del usuario consiste de engaños solicitando claves de acceso. o genera una obra derivada. Ingeniería Social es la práctica de obtener información confidencial a través de la manipulación de usuarios legítimos. por lo que es necesario que el usuario active esta funcionalidad de modo explícito a fin de volver a ser vulnerable. Con este método. El más célebre personaje que utilizó ésta tan exitosamente que durante algún tiempo se convirtió en el hombre más buscado por el FBI fue Kevin Mitnick. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Lamentablemente muchos estudios muestran que los usuarios tienen una pobre conciencia acerca de la importancia de la seguridad. La mejor tecnología y seguridad del mundo es inservible cuando un usuario es incapaz de mantener en secreto una clave de acceso o información confidencial. b) No puede utilizar esta obra para fines comerciales.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Al reutilizar o distribuir la obra. e increíblemente el más fácil de realizar.1. la mayoría de los usuarios simplemente hacen clic con el ratón a cualquier cosa que llegue en el correo electrónico.alcancelibre. los ingenieros sociales aprovechan la tendencia natural de la gente a confiar en su palabra. éste es el principio por el que se rige la ingeniería social. Una encuesta de InfoSecurity arrojó como resultados que 90% de los oficinistas revelaría una clave de acceso a cambio de un bolígrafo.1 © 1999-2011 Joel Barrios Dueñas. la enciclopedia libre. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Es por tal motivo que tiene particular relevancia el impulsar una cultura de concienciar a los usuarios acerca de los peligros de la Ingeniería Social en la seguridad informática. haciendo pensar que es con una finalidad legítima. c) Si altera o transforma esta obra. 53. Este tipo de ataque se conoce actualmente como phising (pesca). Usted es libre de copiar. Wikipedia. Generalmente se está de acuerdo en que “los usuarios son el eslabón débil” en seguridad. o bien a violar las políticas de seguridad típicas. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. tiene que dejar bien claro los términos de la licencia de esta obra. Sin embargo. Introducción.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 53. La ingeniería social y los [incorrectos] hábitos del usuario Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. consiste en engañar a un usuario haciéndole pensar que se trata de un administrador de la red donde se labora solicitando claves de acceso u otro tipo de información confidencial. haciendo que éste método de ingeniería social sea exitoso. como sería el caso de reactivar o crear una cuenta o configuración. Un ingeniero social usará comúnmente el teléfono o Internet para engañar a la gente y llevarla a revelar información sensible. Lo anterior fue lo que obligó a los proveedores de equipamiento lógico a desactivar le ejecución automática de los adjuntos al abrir el mensaje de correo electrónico.

incluyendo administradores. En Latino América este problema es aún mayor debido al vergonzoso y pobre índice de lectura (menos de un libro por año). • • • • • • • • • 401 . La gran mayoría de los usuarios. 53. Evitar publicar direcciones de correo electrónico en formularios destinados a recabar datos de los clientes utilizando formularios que oculten la dirección de correo electrónico. No utilizar cuentas de correo electrónico destinadas para uso laboral para asuntos personales. Adiestrar al usuario a utilizar claves de acceso más complejas. Adiestrar al usuario para evitar proporcionar cuentas de correo electrónico y otros datos personales a personas u entidades que puedan utilizar estos con otros fines. empezando por los propios administradores de redes. Adiestrar a los usuarios para jamas publicar cuentas de correo en áreas públicas que permitan sean cosechadas por software para este fin. utilizar una cuenta destinada y dedicada para ser mostrada a través de HTTP. Si es inevitable.2. Adiestrar al usuario a no hacer clic en los enlaces en los mensajes de spam y que pueden ser utilizados para confirmar al spammer que se trata de una cuenta de correo activa. • • No utilizar cuentas de correo electrónico para uso personal para asuntos laborales. Recomendaciones para evitar ser víctimas de la ingeniería social a través del correo electrónico. La mejor forma de combatir la ingeniería social es la prevención. Adiestrar al usuario para no publicar cuentas de correo electrónico en lugares públicos. Esto regularmente es aprovechado por Adware (equipamiento lógico que despliega anuncios comerciales) y Spyware (equipamiento lógico que espía la actividad del usuario). La principal defensa contra la ingeniería social es la educación del usuario. Adiestrar al usuario a no abrir y dar clic a todo lo que llegue por correo. rara vez leen siquiera una palabra contenida en dicho texto y sencillamente dan clic en la aceptación de licenciamientos y acuerdos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Un tipo de ingeniería social muy efectivo es incluir grandes cantidades de texto a un acuerdo de licenciamiento. Adiestrar al usuario para jamás responder a un mensaje de spam.

2. configuración y optimización de Spamassassin. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Procmail puede ser utilizado indistintamente con Sendmail. SpamAssassin es una implementación que utiliza un sistema de puntuación.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 54. 54. o bien Postfix. o Agente de Entrega de Correo) que se utiliza para gestionar la entrega de correo local en el sistema. Si dispone de un servidor con CentOS 5 o 6 o bien Red Hat™ Enterprise Linux 5 o 6. c) Si altera o transforma esta obra.cf y añadir o descomentar mailbox_command = /usr/bin/procmail.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. URL: http://spamassassin. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.1. o bien simplemente ejecutar los siguientes dos mandatos. pues es dependencia del paquete sendmail.1 © 1999-2011 Joel Barrios Dueñas. Si se utiliza Postfix como servidor de correo electrónico. 54.2. es necesario editar el archivo /etc/postfix/main.procmail.1. Usted es libre de copiar. Instalación. permite también realizar filtración automática del correo electrónico. añadiendo cabeceras a los mensajes de modo que pueda ser filtrados por el cliente de correo electrónico o MUA (Mail User Agent).org 54. Al reutilizar o distribuir la obra.apache. Instalación a través de yum. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Acerca de SpamAssassin. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.1. para identificar mensajes que pudieran ser sospechosos de ser correo masivo no solicitado. pre-ordenamiento y otras tareas. 402 . Además de lo anterior. URL: http://www. Equipamiento lógico necesario. Procmail es un programa que funciona como MDA (Mail Delivery Agent.1. puede utilizar el siguiente mandato: yum -y install spamassassin procmail Si se utiliza Sendmail como servidor de correo electrónico.org/ 54.alcancelibre. o genera una obra derivada.2. tiene que dejar bien claro los términos de la licencia de esta obra. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Introducción.1. procmail ya debe estar instalado. basado sobre algoritmos de tipo genético. b) No puede utilizar esta obra para fines comerciales. Acerca de Procmail. 54.

Si dispone de un servidor con CentOS 5 o 6.repo.alcancelibre.3.d/AL-Server.alcancelibre.alcancelibre.d/: cd /etc/yum.alcancelibre.repos.d/AL-Server.org/al/AL-RPM-KEY Hecho lo anterior. utilice el siguiente mandato: setsebool -P spamd_enable_home_dirs 1 403 .repo dentro del directorio /etc/yum. debe tener el siguiente contenido: [AL-Server] name=AL Server para Enterprise Linux $releasever mirrorlist=http://www. será posible instalar los paquetes perl-Mail-SPF. descargando el archivo http://www. popler-utils y re2c: yum -y install perl-Mail-SPF perl-Razor-Agent pyzor yum -y install spamassassin-FuzzyOcr poppler-utils re2c 54.repos. como Razor o Pyzor.1. utilice el siguiente mandado: setsebool -P spamassassin_can_network 1 A fin de que SELinux permita a los usuarios del sistema utilizar spamassassin desde sus directorios de inicio. spamassassin-FuzzyOcr.3. A fin de que SELinux permita al servicio spamassassin conectarse a servicios externos.org/al/server/AL-Server. se pude crear el archivo /etc/yum.org/al/el$releasever/al-server gpgcheck=1 gpgkey=http://www.repos.repo cd Este archivo. Políticas de SElinux. o bien Red Hat™ Enterprise Linux 5 o 6. que se guarda como /etc/yum. pyzor. SELinux y el servicio spamasssassin. 54.org/al/server/AL-Server. perl-Razor-Agent.d/ wget -N http://www.repo. puede utilizar el el almacén YUM de Alcance Libre para servidores en producción.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux postconf -e 'mailbox_command = /usr/bin/procmail' service postfix restart Si se quiere instalar paquetes adicionales para incrementar las capacidades de filtrado de Spamassassin.repos.

3. Descargar el archivo wget http://www.org/linux/secrets/el6/spamd. Si se desea desactivar toda gestión de SELinux sobre el servicio spamassassin. Genere un nuevo directorio denominado /usr/share/selinux/packages/spamd: mkdir /usr/share/selinux/packages/spamd Cambiarse al directorio /usr/share/selinux/packages/spamd: cd /usr/share/selinux/packages/spamd Si se utiliza CentOS 6 o Red Hat Enterprise Linux http://www. A fin de que SELinux permita a spamassassin añadir registros a la bitácora del servicio de Razor. 54.alcancelibre.te Editar el archivo recién descargado: vim spamd.org/linux/secrets/el6/spamd.te Asegurarse que tenga el siguiente contenido: 404 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. utilice el siguiente mandato: setsebool -P spamd_disable_trans 1 Esta política es inexistente en CentOS 6 y Red Hat™ Enterprise Linux 6.2. Otros ajustes de SELinux. es necesario generar una nueva política. haciendo que todo lo anterior pierda sentido y eliminando la protección que brinda esta implementación. Lo siguiente sólo aplica para CentOS 5 y Red Hat™ Enterprise Linux 5.te: 6.alcancelibre.

type root_t. type root_t. Descargar el archivo wget http://www.0.0. 405 . class fifo_file write. #============= spamc_t ============== allow spamc_t sendmail_t:fifo_file write. class fifo_file write.alcancelibre. require { type spamc_t. allow spamc_t admin_home_t:file { read open }. type spamd_t. class lnk_file read. type spamd_t. } #============= spamd_t ============== allow spamd_t root_t:file { ioctl append }.te: 5. #============= spamc_t ============== allow spamc_t sendmail_t:fifo_file write.te Asegurarse que tenga el siguiente contenido: module spamd 1.te en un sistema donde SELinux impedía a spamassassin realizar escritura sobre la bitácora de Razor. Si se utiliza CentOS 5 o Red Hat Enterprise Linux http://www. class file { ioctl append }. Lo anterior fue obtenido de la salida del mandato dmesg|grep audit|audit2allow -m spamd>spamd. define que se permita añadir contenido al archivo /razoragent.log. } #============= spamd_t ============== allow spamd_t root_t:file { ioctl append }. require { type spamc_t. type sendmail_t.org/linux/secrets/el5/spamd. class lnk_file read. type admin_home_t.alcancelibre.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux module spamd 1.org/linux/secrets/el5/spamd.te Editar el archivo recién descargado: vim spamd. En si. type sendmail_t. allow spamd_t admin_home_t:file { read ioctl open getattr append }. class file { ioctl read open getattr append }.

pues sólo será necesario que exista el archivo binario spamd.mod. Funciona bien sólo si se tienen pocos usuarios.procmailrc del directorio de inicio de un usuario en particular. si sólo se desea que sea utilizado por algunos usuarios: :0fw | /usr/bin/spamassassin 406 . que sólo es necesario utilizar el servicio spamassassin si el servidor de correo electrónico dispone de una gran cantidad de usuarios.pp -m spamd. 54. Utilizando el mandato spamassassin.te Luego.mod Finalmente se vincula el archivo spamd. 54. La siguiente es la configuración recomendada para el archivo /etc/procmailrc. o bien el archivo ~/.1. o bien tiene una elevada cantidad de tráfico.mod) utilizando el mandato checkmodule de la siguiente forma: checkmodule -M -m -o spamd. Configuración de Procmail.4.pp obtenido con las políticas actuales de SELinux y se cargan éstas en el núcleo en ejecución: semodule -i /usr/share/selinux/packages/spamd/spamd.pp: semodule_package -o spamd. 54. La forma más simple de utilizar Spamassassin es haciendo uso del mandato con el mismo nombre. se genera el archivo de módulo para SELinux (spamd.2. Iniciar el servicio y añadirlo a los servicios de arranque del sistema.4. se pueden eliminar los archivos spamd. 54.procmailrc.mod spamd.pp.4. Procedimientos.1. sí se desea que aplique a todos los usuarios del sistema. es posible utilizar el mandato spamassassin a través del archivo /etc/procmailrc o bien ~/.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux A continuación.2. Hay tres formas de utilizar Procmail para hacer uso de Spamassassin.4. chkconfig spamassassin on service spamassassin restart Cabe señalar.te y spamd. se procede a empaquetar el archivo spamd. pues genera una instancia de éste cada vez que se utiliza o llega un mensaje de correo electrónico al sistema. Si se dispone de pocos usuarios.pp Una vez cargadas las nuevas políticas.mod como el archivo spamd.

La siguiente es la configuración recomendada para el archivo /etc/procmailrc.cf.cf Se pueden modificar y añadir parámetros con valores. vim /etc/mail/spamassassin/local. mismo que requiere esté funcionado el servicio spamassassin. Edite el archivo /etc/mail/spamassassin/local.4. si sólo se desea que sea utilizado por algunos usuarios: :0fw | /usr/bin/spamc Todo lo anterior hace que el correo electrónico sea examinado y marcado como Spam si alcanza una cantidad suficiente de puntos.procmailrc del directorio de inicio de un usuario en particular. Configuración del archivo /etc/mail/spamassassin/local.3. sí se desea que aplique a todos los usuarios del sistema. o bien el archivo ~/.cf. Si se desea realizar un filtrado enviando el correo calificado como Spam hacia una capeta de correo (~/mail/Spam). es más conveniente utilizar el mandato spamc.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Sí se dispone de muchos usuarios. se puede utilizar lo siguiente: :0fw | /usr/bin/spamc # Los mensajes marcados como spam se almacenan en carpeta de spam :0: * ^X-Spam-Status: Yes $HOME/mail/Spam 54. entre los cuales se pueden configurar los siguientes: 407 .

De primera instancia. Se pueden definir varias líneas. El valor predeterminado es [SPAM]. rewrite_header Define con que cadena de caracteres se añadirá al mensaje para identificarlo como Spam. se incluye en un adjunto. y puede cambiarse por lo que considere apropiado el administrador. Ejemplo: 4. en un mensaje para considerar el éste como Spam. que permite generar el archivo /etc/mail/spamassassin/local. si es calificado como spam.226 whitelist_to Si utiliza una lista de correo electrónico (majordomo o mailman). en http://www. y se desea evitar que accidentalmente se considere Spam un mensaje de correo electrónico emitido por una de estas listas.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux required_hits Se utiliza para establecer la cantidad de puntos acumulados. El valor predeterminado es 5. y asignados por SpamAssassin.algo whitelist_from *@alcancelibre.cf. se puede definir que nunca se considere Spam el correo emitido por dicha lista.yrex.com Hay una herramienta de configuración de SpamAssassin. Ejemplo: rewrite_header Subject [Spam?] whitelist_from Se utiliza para definir que jamás se considere como Spam los mensajes de correo electrónico cuyo remitente sea un dominio o cuenta de correo electrónico en particular.cf sus direcciones IP locales con el parámetro whitelist_from.algo blacklist_from Se puede definir que todo el correo electrónico proveniente de un dominio o cuenta de correo electrónico en particular siempre sea considerado como Spam.161.1.org whitelist_from 201. acepta decimales y se puede ajustar con un valor inferior o mayor de acuerdo al criterio del administrador. Ejemplo: blacklist_from alguien@spammer. El valor predeterminado es 0. con el valor 1. Ejemplo: whitelist_from *@midominio. o se deja el mensaje tal y como está. Ejemplo: 408 .com/spam/spamconfig. añada al archivo /etc/mail/spamassassin/local.php.5 report_safe Determina si el mensaje. Ejemplo: whitelist_to mailman-users@algo. con el valor 0.

para indica que se trata de un buzón de correo en formato mbox. Si embargo. lo cual permitirá examinar todos los mensajes contenidos en éste: sa-learn --spam --mbox ~/mail/Spam Para que los mensajes que se clasificaron incidentalmente como spam. misma que sirve para entrenar y enseñar a identificar spam (o correo chatarra) al propio Spamassassin. como por ejemplo ~/mail/Spam.0.91 whitelist_from 201. Acto seguido. se utiliza el mandato sa-learn. los cambios surten efecto de inmediato. required_hits 5 report_safe 0 rewrite_header Subject [SPAM] whitelist_from 127. para indicar que se trata de mensajes de spam. se utiliza el mandato sa-learn con las opciones --ham.226 Sí se utiliza el mandato spamassassin en el archivo /etc/procmailrc o ~/. para indica que se trata de un buzón de correo en formato mbox. o bien el buzón de entrada (/var/spool/mail/usuario). incluida con Spamassassin. y la opción --mbox. y que fueron movidos a otra carpeta (como por ejemplo ~/mail/Mensajes). y la opción --mbox.5.1. Sí se utiliza el mandato spamc.1 whitelist_from 192. con las opciones --spam. Esencialmente.1. lo cual permitirá examinar todos los mensajes contenidos en éste: sa-learn --ham --mbox ~/mail/Mensajes sa-learn --ham --mbox /var/spool/mail/usuario 409 . Muchos administradores de servidores utilizan Spamassassin para filtrar los mensajes de correo electrónico que llegan a sus servidores. y mover de la carpeta de spam todos aquellos mensajes que se consideran como legítimos a cualquier otra carpeta de correo o bien el buzón de entrada.168.0. para indicar que es correo legítimo y que se debe dejar de considerar éste como spam.cf # (see spamassassin(1) for details) # These should be safe assumptions and allow for simple visual sifting # without risking lost emails. son muy pocos los que conocen y utilizan la herramienta sa-learn. Consejos para sacarle mejor provecho a Spamassassin utilizando sa-learn. La forma que sugiero consiste en utilizar el cliente de correo electrónico.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux # These values can be overridden by editing ~/. para que surtan efecto los cambios se requiere reiniciar el servicio spamassassin: service spamassassin restart 54. y mover todos los mensajes que se consideren como spam a una carpeta destinada para tal finalidad. el mandato sa-learn sirve para entrenar al componente clasificador Bayesiano de Spamassassin.procmailrc.spamassassin/user_prefs.161.

o bien Red Hat Enterprise Linux 5 y 6. A fin de enriquecer la capacidad de detección de spam de Spamassassin. y pueden contribuir de manera significativa a reducir la cantidad de spam que de otro modo podría pasar por alto Spamassassin. ponerlos en carpeta de spam :0: * ^X-Spam-Status: Yes Spam Se conseguirá que la mayoría los mensajes de spam similares a los que se movieron a la carpeta ~/mail/Spam. lo cual sólo aplicaría para el usuario utilizado. o bien como cualquier usuario. Todo lo anterior puede ser utilizado como el usuario root.6. 54. en adelante serán más fáciles de identificar y filtrar. se considera que en el servidor de correo electrónico se utiliza como sistema operativo CentOS 5 y 6. Incrementando las capacidades de filtrado. se tienen instalados los paquetes procmail (requisito del paquete sendmail y opcional para el paquete postfix) y spamassassin y que se tiene configurado al menos lo siguiente en el archivo /etc/procmailrc: # send mail through spamassassin :0fw | /usr/bin/spamc # Los mensajes marcados como Spam se almacenan en carpeta ~/mail/Spam :0: * ^X-Spam-Status: Yes $HOME/mail/Spam 410 . puede hacerlo consultando desde una terminal de texto ejecutando man sa-learn.promailrc. Para los todos los procedimientos descritos a continuación. perl-Razor-Agent. lo cual haría que los nuevos filtros creados al entrenar a Spamassassin apliquen para todos los usuarios. lo cual sólo tendrían efecto para éste en particular. o bien /etc/procmailrc. descritas más adelante. sí se desea que aplique para todos los usuarios del servidor. contiene algo similar a lo siguiente: MAILDIR=$HOME/mail LOGFILE=$HOME/mail/log # send mail through spamassassin :0fw | /usr/bin/spamassassin #Mensjes marcados como spam. pueden instalarse paquetes opcionales como perl-Mail-SPF. dejarán de ser clasificados como tales. y los mensajes que incidentalmente se clasificaron como spam. Los tres brindan capacidades adicionales de filtración de spam.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux De este modo. Si alguien tiene interés en aprender más acerca del mandato sa-learn. y considerando que se utiliza el archivo ~/. o bien será más difícil que sean clasificados como spam.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Primeramente. ejecute lo siguiente: sa-update && service spamassassin restart Para instalar el conjunto de paquetes que enriquecerán las capacidades de filtrado de Spamassassin. es conveniente utilizar el mandato sa-update de vez en cuando. Optimizando Spamassassin. Para tal fin es necesario que esté instalados los paquetes re2c y gcc: yum -y install re2c gcc Y enseguida se ejecuta el mandato sa-compile: sa-compile Si la sintaxis del archivo /etc/mail/spamassassin/local. Si se tiene un servidor de correo electrónico con mucha carga de trabajo. sin mensajes descriptivos. a lo sumo una o dos veces al mes. el sistema debe realizar la compilación y almacenar los binarios dentro de /var/lib/spamassassin/compiled/.1.cf está correcta. conviene optimizar spamasassassin compilando las reglas de éste para convertirlas a formato binario. Los juegos de reglas y filtros de Spamassassin realmente sufren pocos cambios a lo largo del año y se almacenan en un sub-directorio dentro de /var/lib/spamassassin/. El siguiente mandato realizará la consulta y actualización de reglas y filtros de Spamassassin y reiniciará el servicio solamente si se descargó una actualización: sa-update -v && service spamassassin restart La opción -v hace que se muestre una salida que incluye una descripción de los canales actualizados. y con la finalidad de actualizar el juego de reglas y filtros de Spamassassin. Lo anterior deberá ser repetido cada vez que se realicen modificaciones del archivo /etc/mail/spamassassin/local. es necesario reiniciar el servicio spamassassin: service spamassassin restart 54.6. considerando que tiene configurados los almacenes YUM para AL Server de Alcance Libre. Sólo es necesario conservar el sub-directorio con la versión más reciente. ejecute lo siguiente: yum -y install perl-Mail-SPF perl-Razor-Agent pyzor yum -y install spamassassin-FuzzyOcr poppler-utils Si se utilizan paquetes provenientes de otros almacenes YUM distintos a los de Alcance Libre. Si desea una salida limpia.cf o bien se actualice el conjunto de reglas con el mandato saupdate. el complemento para Pyzor incluido dentro de Spamassassin requerirá además el paquete perlDigest-SHA: yum -y install perl-Digest-SHA A fin de que Spamassassin pueda utilizar los complementos que hacen uso de los complementos que se activan con estos componentes. 411 .

Perl-Mail-SPF.2. 54. Pyzor es similar a Razor.4.2. 54.6. Pyzor. Es altamente recomendado instalarlo.5. Perl-Mail-SPF Implementa una protección contra la falsificación de direcciones en el envío de correo electrónico conocida como SPF (Sender Policy Framework o Convenio de Remitentes). Funciona realizando consultas a los servidores DNS en busca del registro TXT para SPF que específica los servidores de correo electrónico autorizados para enviar correo electrónico para un dominio en particular. FuzzyOcr es un complemento (plugin) para Spamassassin el cual está enfocado sobre este tipo de spam.6. Perl-Razor-Agent. Este conjunto de herramientas es utilizado por Spamassassin para gestionar los contenidos de los documentos en formato PDF.2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 54.3. 412 .com. ¿Por qué Perl-Mail-SPF. o bien el propio dominio. Pyzor. Utiliza GOCR (GNU Optical Character Recognition. Spamassassin-FuzzyOcr. Se complementa de manera mutua con Razor. donde se descartan por completo como emisores de correo electrónico todos aquellos servidores que carezcan de registro tipo MX o tipo A: dominio. Poppler-utils. particularmente las herramientas como pdftops.2.6. requiere contar con un registro similar al siguiente. A diferencia de Perl-Razor-Agent. pstopnm y pdfinfo. o Reconocimiento Óptico de Caracteres de GNU) y otros métodos para analizar el contenido de las imágenes y poder distinguir entre correo ordinario y correo spam. y funciona de la misma forma como una red distribuida y colaborativa dedicada a la detección y filtración de spam. IN TXT "v=spf1 a mx ~all" O bien. Suele haber casos en los cuales se envían mensajes de spam que sólo incluyen una imagen incrustada en el mensaje. 54. Se complementa de manera mutua con Pyzor. sea excluido de este tipo de filtración. con el fin de evadir los filtros de los servidores de correo electrónico. SpamassassinFuzzyOcr y poppler-utils? 54. lo cual establece que preferentemente se descartan como emisores de correo electrónico todos aquellos servidores que carezcan de registro tipo MX o tipo A: dominio.2. Para que un dominio en particular.6.1. Perl-Razor-Agent es la implementación Perl de Razor. si se quiere algo más estricto. IN TXT "v=spf1 a mx -all" 54. Perl-Razor-Agent.2.com. está escrito en Python.2.6. Consiste en un catalogo de propagación de spam que es actualizado constantemente.6. que es una red distribuida y colaborativa dedicada a la detección y filtración de spam.

org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Procedimientos Asumiendo que tiene configurados los almacenes YUM de Alcance Libre. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. b) No puede utilizar esta obra para fines comerciales. Nota. clamav. Configuración simple para Antivirus y Antispam.1.1 © 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. ejecutando lo siguiente: freshclam Actualice el conjunto de reglas de Spamassassin. estudie el documento titulado «Cómo instalar y configurar Spamassassin. Al reutilizar o distribuir la obra. tiene que dejar bien claro los términos de la licencia de esta obra. yum -y install spamassassin clamav clamav-update Active las siguientes políticas de SELinux: setsebool -P clamd_use_jit 1 setsebool -P spamassassin_can_network 1 setsebool -P spamd_enable_home_dirs 1 Actualice la base de datos del antivirus ClamAV. o genera una obra derivada. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. c) Si altera o transforma esta obra. y clamav-update. Para optimizar y extender el funcionamiento de Spamassassin.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 55. ejecutando lo siguiente: sa-update -v Lo anterior deberá indicar qué componentes de Spamassassin fueron actualizados.» Utilizando el mandato touch. genere el archivo /etc/procmailrc: touch /etc/procmailrc Edite el archivo /etc/procmailrc: vim /etc/procmailrc 413 . instale los paquetes spamassassin.alcancelibre. 55.

scan start Inicie el servicio spamassassin.d/scan. en adelante todo el correo será examinado primero por ClamAV. instale el paquete clamav-scanner-sysvinit: yum -y install clamav-scanner-sysvinit Inicie el servicio clamd. y /usr/bin/spamassassin por /usr/bin/spamc. AV_REPORT=`/usr/bin/clamscan --stdout --no-summary . Si se tiene un servidor de correo electrónico con mucha carga de trabajo.phtml?nIdNoticia=1978 # y adecuada.scan.conf /etc/clamd. y Spamassassin. #LOGFILE=/var/log/procmail. descomente lo siguiente. que apunte hacia /etc/clamd. y cambie /usr/bin/clamscan por /usr/bin/clamdscan. :0fw | formail -i "X-Virus: $VIRUS" # Si el mensaje es positivo a virus. then echo Yes.scan on chkconfig spamassassin on Genere un enlace simbólico como /etc/clamd.| cut -d: -f 2` VIRUS=`if [ "$AV_REPORT" != " OK" ].Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Añada el siguiente contenido: SHELL=/bin/sh # Si desea almacenar toda la información de actividad # de Procmail en una bitácora.conf Edite el archivo /etc/procmailrc. 414 .scan. service spamassassin start Añada los servicios clamd.conf.fi` # Añade el campo de reporte ClamAV. :0fw * ^X-Virus: Yes | formail -i "Virus: $AV_REPORT" -i "Subject: MENSAJE CON VIRUS: $AV_REPORT" # Hacer pasar todo el correo electrónico a través de spamassassin :0fw | /usr/bin/spamassassin Con lo anterior. y clasificado antes de ser entregado al usuario. y spamassassin. por Joel Barrios Dueñas. ejecutando lo siguiente.net/body.conf: ln -s /etc/clamd.log # Configuración basada sobre http://bulma. se cambia el asunto. y actualizada. else echo No. o servicio alguno.d/scan. al inicio del sistema: chkconfig clamd. ejecutando lo siguiente: service clamd. Es innecesario reiniciar el servicio sendmail. Esta solución es perfecta para servidores de correo electrónico con poco carga de trabajo.

phtml?nIdNoticia=1978 # y adecuada. tendrá una solución aceptable.fi` # Añade el campo de reporte ClamAV. y actualizada. se cambia el asunto.| cut -d: -f 2` VIRUS=`if [ "$AV_REPORT" != " OK" ]. then echo Yes. y sencilla.log # Configuración basada sobre http://bulma. then echo Yes. # Hacer pasar todo el correo electrónico a través de spamassassin :0fw | /usr/bin/spamc # Los mensajes marcados como spam se almacenan en carpeta de spam :0: * ^X-Spam-Status: Yes $HOME/mail/Spam 415 . y que los mensajes infectados con virus sean movidos a la carpeta de correo ~/mail/Virus. puede enviar los mensajes infectados a /dev/null. :0fw | formail -i "X-Virus: $VIRUS" # Si el mensaje es positivo a virus. :0fw * ^X-Virus: Yes | formail -i "Virus: $AV_REPORT" -i "Subject: MENSAJE CON VIRUS: $AV_REPORT" # Hacer pasar todo el correo electrónico a través de spamassassin :0fw | /usr/bin/spamc Con lo anterior. Si. #LOGFILE=/var/log/procmail. necesita que todos los mensajes de Spam sean movidos automáticamente a la carpeta de correo ~/mail/Spam. else echo No. para servidores de correo electrónico con mucha carga de trabajo.fi` # Añade el campo de reporte ClamAV. se almacena en $HOME/mail/Virus :0: * ^X-Virus: Yes $HOME/mail/Virus # Si lo desea. además. :0fw * ^X-Virus: Yes | formail -i "Virus: $AV_REPORT" -i "Subject: MENSAJE CON VIRUS: $AV_REPORT" # Si el mensaje es positivo a virus.phtml?nIdNoticia=1978 # y adecuada. confiable. y actualizada.net/body. else echo No. descomente lo siguiente. #LOGFILE=/var/log/procmail. AV_REPORT=`/usr/bin/clamdscan --stdout --no-summary . des-comente lo siguiente. :0fw | formail -i "X-Virus: $VIRUS" # Si el mensaje es positivo a virus. se cambia el asunto. por Joel Barrios Dueñas. barata.| cut -d: -f 2` VIRUS=`if [ "$AV_REPORT" != " OK" ]. rápida.net/body. por Joel Barrios Dueñas.log Configuración de Servidores con GNU/Linux # Configuración basada sobre http://bulma. AV_REPORT=`/usr/bin/clamdscan --stdout --no-summary . utilice la siguiente configuración para el archivo /etc/procmailrc: SHELL=/bin/sh # Si desea almacenar toda la información de actividad # de Procmail en una bitácora.Joel Barrios Dueñas SHELL=/bin/sh # Si desea almacenar toda la información de actividad # de Procmail en una bitácora.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux A fin de que todo lo anterior funcione correctamente. con permiso de sólo lectura para root. Es importante considerar que $HOME/mail/Spam y $HOME/mail/Virus serán propiedad de root. y optimizar.» 416 . Si tiene interés en mejorar. salvo que hayan sido creadas y suscritas previamente por el usuario. es imprescindible que los usuarios generen y suscriban con antelación a las carpetas IMAP $HOME/mail/Spam y $HOME/mail/Virus. el filtrado de spam. consulte el documento titulado «Cómo instalar y configurar Spamassassin.

Some examples: # # mail_location = maildir:~/Maildir # mail_location = mbox:~/mail:INBOX=/var/mail/%u # mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n # # <doc/wiki/MailLocation. ejecute lo siguiente: yum -y install mailx nc dovecot sendmail Si elige utilizar postfix. Usted es libre de copiar. o bien sendmail.1.d/10-mail. Al reutilizar o distribuir la obra.1.1 © 1999-2011 Joel Barrios Dueñas. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Preparativos.txt> # mail_location = mbox:~/mail:INBOX=/var/mail/%u establezca Inicie el servicio dovecot: 417 . Introducción a los protocolos de correo electrónico. # See doc/wiki/Variables. omita el siguiente paso. Si utiliza CentOS 6. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.conf: vim /etc/dovecot/conf. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.conf. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.txt for full list. c) Si altera o transforma esta obra.alcancelibre.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 56. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. instale con el mandato yum los paquetes netcat (nc). o genera una obra derivada. ejecute lo siguiente: yum -y install mailx nc dovecot postfix Si utiliza CentOS 5. edite el archivo /etc/dovecot/conf. 56.1.conf Alrededor de la línea 30 del archivo /etc/dovecot/conf. y postfix. Si elige utilizar sendmail. o Red Hat Enterprise Linux 5. dovecot. mbox:~/mail:INBOX=/var/mail/%u como valor del parámetro mail_location. 56. o Red Hat Enterprise Linux 6. A fin de poder realizar todas las pruebas correspondientes a cada protocolo. tiene que dejar bien claro los términos de la licencia de esta obra. Introducción.d/10-mail.d/10-mail. b) No puede utilizar esta obra para fines comerciales.

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

service dovecot start chkconfig dovecot on

Establezca sendmail, o postfix, como agente de transporte de correo (MTA, Mail Transport Agent) predeterminado del sistema, utilizando el mandato alternatives, del siguiente modo:
alternatives --config mta

Lo anterior devolverá una salida similar a la siguiente, donde deberá elegir entre postfix, y sendmail como MTA predeterminado del sistema:

Hay 2 programas que proporcionan 'mta'. Selección Comando ----------------------------------------------1 /usr/sbin/sendmail.postfix *+ 2 /usr/sbin/sendmail.sendmail Presione Intro para mantener la selección actual[+], o escriba el número de la selección: 2

Si eligió utilizar sendmail en lugar de postfix, detenga este último (es el MTA predeterminado en CentOS 6, y Red Hat Enterprise Linux 6) e inicie el servicio sendmail:
service postfix stop chkconfig postfix off service sendmail start chkconfig sendmail on

Si eligió utilizar postfix en lugar de sendmail, detenga este último> (es el MTA predeterminado en CentOS 5, y Red Hat Enterprise Linux 5) e inicie el servicio postfix:
service sendmail stop chkconfig sendmail off service postfix start chkconfig postfix on

En todo momento podrá conmutar de nuevo entre Sendmail, o Postfix, como MTA predeterminado del sistema, utilizando este mismo procedimiento.

56.1.2. Protocolos utilizados.
56.1.2.1. SMTP (Simple Mail Transfer Protocol).
Es un protocolo estándar de Internet, del Nivel de Aplicación utilizado, para la transmisión de correo electrónico a través de una conexión TCP/IP. Éste es, de hecho, el único protocolo utilizado para la transmisión de correo electrónico a través de Internet. Es un protocolo basado sobre texto, y relativamente simple, donde se especifica un destinatario, o mútiples destinatarios, en un mensaje que es transferido. A lo largo de los años han sido muchas las personas que han editado, o contribuido a las especificaciones de SMTP, entre las cuales están Jon Postel, Eric Allman, Dave Crocker, Ned Freed, Randall Gellens, John Klensin, y Keith Moore.

418

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Para determinar el servidor SMTP para un dominio dado, se utilizan los registros MX (Mail Exchanger) en la Zona de Autoridad correspondiente al ese mismo dominio contestado por un Servidor DNS. Después de establecerse una conexión entre el remitente (el cliente), y el destinatario (el servidor), se inicia una sesión SMTP, ejemplificada a continuación.
Cliente: Servidor: $ nc 127.0.0.1 25 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. 220 nombre.dominio ESMTP Sendmail 8.13.1/8.13.1; Sat, 18 Mar 2006 16:02:27 -0600 HELO localhost.localdomain 250 nombre.dominio Hello localhost.localdomain [127.0.0.1], pleased to meet you MAIL FROM:<fulano@localhost.localdomain> 250 2.1.0 <fulano@localhost.localdomain>... Sender ok RCPT TO:<fulano@localhost.localdomain> 250 2.1.5 <fulano@localhost.localdomain>... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Subject: Mensaje de prueba From: fulano@localhost.localdomain To: fulano@localhost.localdomain Hola. Este es un mensaje de prueba. Adios. . 250 2.0.0 k2IM2RjA003987 Message accepted for delivery QUIT 221 2.0.0 nombre.dominio closing connection Connection closed by foreign host.

Cliente: Servidor: Cliente: Servidor: Cliente: Servidor: Cliente: Servidor: Cliente:

Servidor: Cliente: Servidor: Servidor:

La descripción completa del protocolo original STMP está definida en el RFC 821, aunque el protocolo utilizado hoy en día, también conocido como ESMTP (Extended Simple Mail Transfer Protocol), está definido en el RFC 2821. SMTP trabaja sobre TCP en el puerto 25.

56.1.2.2. POP3 (Post Office Protocol version 3).
Es un protocolo estándar de Internet, del Nivel de Aplicación, que recupera el correo electrónico desde un servidor remoto a través de una conexión TCP/IP desde un cliente local. El diseño de POP3, y sus predecesores es permitir a los usuarios recuperar el correo electrónico, mientras están conectados en una red, y manipular los mensajes recuperados sin necesidad de permanecer conectados. A pesar de que muchos clientes de correo electrónico incluyen soporte para dejar el correo en el servidor, todos los clientes de POP3 recuperan todos los mensajes, y los almacenan como mensajes nuevos en la computadora, o anfitrión, utilizado por el usuario, eliminan los mensajes en el servidor, y terminan la conexión. Después de establecerse una conexión entre el cliente, y el servidor, se inicia una sesión POP3, ejemplificada a continuación.

419

Joel Barrios Dueñas Cliente: Servidor:

Configuración de Servidores con GNU/Linux

Cliente: Servidor: Cliente: Servidor: Cliente: Servidor: Cliente: Servidor: Cliente: Servidor:

$ nc 127.0.0.1 110 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. +OK dovecot ready. USER fulano +OK PASS clave de accceso +OK Logged in. STAT +OK 1 728 LIST +OK 1 messages: 1 728 . RETR 1 +OK 728 octets Return-Path: <fulano@localhost.localdomain> Received: from localhost.localdomain (localhost.localdomain [192.168.1.254]) by localhost.localdomain (8.13.1/8.13.1) with SMTP id k2IM2RjA003987 for <fulano@localhost.localdomain>; Sat, 18 Mar 2006 16:03:21 -0600 Date: Sat, 18 Mar 2006 16:02:27 -0600 Message-Id: <200603182203.k2IM2RjA003987@localhost.localdomain> Subject: Mensaje de prueba From: fulano@localhost.localdomain To: fulano@localhost.localdomain Status: O Content-Length: 43 Lines: 2 X-UID: 202 X-Keywords: Hola. Este es un mensaje de prueba. Adios. . QUIT +OK Logging out. Connection closed by foreign host.

Cliente: Servidor:

POP3 está definido en el RFC 1939. POP3 trabaja sobre TCP en el puerto 110.

56.1.2.3. IMAP (Internet Message Access Protocol).
Es un protocolo estándar de Internet, del Nivel de Aplicación, utilizado para acceder hacia el correo electrónico en un servidor remoto a través de una conexión TCP/IP desde un cliente local. La versión más reciente de IMAP es la 4, revisión 1, y está definida en el RFC 3501. IMAP trabaja sobre TCP en el puerto 143. Fue diseñado por Mark Crispin en 1986 como una alternativa más moderna que cubriera las deficiencias de POP3. Las características más importantes de IMAP incluyen:
• Soporte para los modos de operación conectado (connected), y desconectado (disconnected), permitiendo a los clientes de correo electrónico permanezcan conectados el tiempo que su interfaz permanezca activa, descargando los mensajes conforme se necesite. A diferencia de POP3, permite accesos simultáneos desde múltiples clientes, y proporciona los mecanismos necesarios para éstos para que se detecten los cambios hechos por otro cliente de correo electrónico, conectado de manera concurrente, en el mismo buzón de correo. Permite a los clientes obtener individualmente cualquier parte MIME (acrónimo de Multi-Purpose Internet Mail Extensions, o Extensiones de correo de Internet de propósitos múltiples), así como también obtener porciones de las partes individuales, o bien los mensajes completos. A través de banderas definidas en el protocolo, vigilar la información de estado de los mensajes de

420

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

correo electrónico que se mantengan en el servidor. Por ejemplo si el estado del mensaje es leído, no leído, respondido, o eliminado. • Incluye soporte para múltiples buzones de correo electrónico que permite crear, renombrar, o eliminar, mensajes de correo electrónico presentados en el servidor dentro de carpetas, y mover estos mensajes entre distintas cuentas de correo electrónico. Esta característica también permite al servidor proporcionar acceso hacia los carpetas públicas, y las compartidas. Incluye soporte para realizar búsquedas del lado del servidor a través de mecanismos que permiten obtener resultados de acuerdo a varios criterios, permitiendo evitar que los clientes de correo electrónico tengan que descargar todos los mensajes desde el servidor. Las especificaciones del protocolo IMAP definen un mecanismo explícito mediante el cual puede ser mejorada su funcionalidad a través de extensiones. Un ejemplo es la extensión IMAP IDLE, la cual permite sincronizar ente el servidor, y el cliente a través de avisos.

Después de establecerse una conexión entre el cliente, y el servidor, se inicia una sesión IMAP, ejemplificada a continuación.
Cliente: Servidor: $ nc 127.0.0.1 143 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. * OK dovecot ready. +OK dovecot ready. x LOGIN fulano clave de acceso x OK Logged in. x SELECT inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 1 EXISTS * 0 RECENT * OK [UNSEEN 1] First unseen. * OK [UIDVALIDITY 1100569382] UIDs valid * OK [UIDNEXT 203] Predicted next UID x OK [READ-WRITE] Select completed. x FETCH 1 (flags body[header.fields (subject)]) * 1 FETCH (FLAGS (\Seen) BODY[HEADER.FIELDS (SUBJECT)] {30} Subject: Mensaje de prueba ) x OK Fetch completed. . x FETCH 1 (body[text]) * 1 FETCH (BODY[TEXT] {45} Hola. Este es un mensaje de prueba. Adios. ) x OK Fetch completed. x LOGOUT * BYE Logging out x OK Logout completed. Connection closed by foreign host.

Cliente: Servidor: Cliente: Servidor:

Cliente: Servidor:

Cliente: Servidor:

Cliente: Servidor:

56.2. Referencias.
http://www.ietf.org/rfc/rfc2222.txt http://www.ietf.org/rfc/rfc821.txt http://www.ietf.org/rfc/rfc2821.txt http://www.ietf.org/rfc/rfc1939.txt http://www.ietf.org/rfc/rfc3501.txt

421

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

57. Configuración básica de Sendmail.
Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org/

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

57.1. Introducción.
Es imprescindible primero estudiar, y comprender, los conceptos descritos en el documento titulado «Introducción a los protocolos de correo electrónico.»

57.1.1. Acerca de Sendmail.
Es el más popular agente de transporte de correo (MTA, o Mail Transport Agent), responsable, quizá, de poco más del 70% del correo electrónico del mundo. Aunque por largo tiempo se le ha criticado por muchos incidentes de seguridad, lo cierto es que éstos siempre han sido resueltos en pocas horas. URL: http://www.sendmail.org/.

57.1.2. Acerca de Dovecot.
Dovecot es un servidor de POP3 e IMAP, de código fuente abierto, que funciona en Linux, y sistemas basados sobre Unix™, y diseñado con la seguridad como principal objetivo. Dovecot puede utilizar tanto el formato mbox como maildir, y es compatible con las implementaciones de los servidores UW-IMAP, y Courier IMAP. URL: http://dovecot.procontrol.fi/.

57.1.3. Acerca de SASL, y Cyrus SASL.
SASL (Simple Authentication and Security Layer) es una implementación diseñada para la seguridad de datos en protocolos de Internet. Desempareja los mecanismos de la autenticación desde protocolos de aplicaciones, permitiendo, en teoría, cualquier mecanismo de autenticación soportado por SASL, para ser utilizado en cualquier protocolo de aplicación que sea capaz de utilizar SASL. Actualmente SASL es un protocolo de la IETF (Internet Engineering Task Force) que ha sido propuesto como estándar. Está especificado en el RFC 2222 creado por John Meyers en la Universidad Carnegie Mellon. Cyrus SASL es una implementación de SASL que puede ser utilizada del lado del servidor, o del lado del cliente, y que incluye como principales mecanismos de autenticación soportados a ANONYMOUS, CRAM-MD5, DIGEST-MD5, GSSAPI, y PLAIN. El código fuente incluye también soporte para los mecanismos LOGIN, SRP, NTLM, OPT, y KERBEROS_V4. URL: http://asg.web.cmu.edu/sasl/sasl-library.html.
422

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

57.2. Equipamiento lógico necesario.
• • • • • • •

cyrus-sasl cyrus-sasl-plain dovecot m4 make sendmail-cf< sendmail

Instalación a través de yum.
Si se utiliza de CentOS 5, o Red Hat Enterprise Linux 5, o versiones posteriores de éstos, se ejecuta lo siguiente:
yum -y install sendmail sendmail-cf dovecot m4 make yum -y install cyrus-sasl cyrus-sasl-plain

Si acaso estuviese instalado, elimine el paquete cyrus-sasl-gssapi, ya que este utiliza el método de autenticación GSSAPI, mismo que requeriría de la base de datos de cuentas de usuario de un servidor Kerberos. De igual manera, si estuviese instalado, elimine el paquete cyrus-sasl-md5, ya que este utiliza los métodos de autenticación CRAM-MD5, y Digest-MD5, mismos que requerían asignar las claves de acceso para SMTP a través del mandato saslpasswd2. Outlook carece de soporte para estos métodos de autenticación.
yum remove cyrus-sasl-gssapi cyrus-sasl-md5

57.3. Procedimientos.
57.3.1. Definiendo Sendmail como agente de transporte de correo predeterminado.
El mandato alternatives, con la opción --config, y el valor mta, se utiliza para conmutar el servicio de correo electrónico del sistema, y elegir qué programa utilizar. Sólo es necesario utilizar éste si previamente estaban instalados Postfix o Exim. Sí este es el caso, ejecute lo siguiente desde una terminal, y defina Sendmail como agente de transporte de correo (MTA, Mail Transport Agent), seleccionado éste.
alternatives --config mta

Lo anterior devolverá una salida similar a la siguiente, donde deberá elegir entre postfix, y sendmail como MTA predeterminado del sistema:

423

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Hay 2 programas que proporcionan 'mta'. Selección Comando ----------------------------------------------1 /usr/sbin/sendmail.postfix *+ 2 /usr/sbin/sendmail.sendmail Presione Intro para mantener la selección actual[+], o escriba el número de la selección: 2

Si estuviera presente postfix, detenga éste (es el MTA predeterminado en CentOS 6, y Red Hat Enterprise Linux 6) e inicie el servicio sendmail:
service postfix stop chkconfig postfix off service sendmail start chkconfig sendmail on

57.3.2. Alta de cuentas de usuario, y asignación de claves de acceso.
La autenticación para SMTP, a través de cualquier método (PLAIN, LOGIN, Digest-MD5, o CRAM-MD5), requiere se active, e inicie, el servicio saslauthd del siguiente modo:
chkconfig saslauthd on service saslauthd start

El alta de usuarios es la misma que como con cualquier otro usuario del sistema. Sendmail utilizará el servicio saslauthd para autenticar a los usuarios a través de los métodos PLAIN, y LOGIN, con opción a utilizar también Digest-MD5, o bien CRAM-MD5. El alta de las cuentas del usuario en el sistema, la cual se sugiere se asigne /dev/null, o /sbin/nologin como intérprete de mandatos, pude hacerse del siguiente modo:
useradd -s /sbin/nologin fulano

La asignación de claves de acceso, para permitir autenticar a través de SMTP, POP3, e IMAP, utilizando el método PLAIN, o bien el método LOGIN, se hace exactamente igual que con cualquier otra cuenta de usuario del sistema, como se muestra a continuación:
passwd usuario

Ejecutando lo anterior, el sistema solicitará se ingrese una clave de acceso, con confirmación. Prefiera utilizar buenas claves de acceso, y de este modo evitará problemas de seguridad.

424

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Nota. La asignación de claves de acceso para autenticar SMTP, a través de métodos cifrados (CRAM-MD5, y DIGEST-MD5), en sistemas con versión de Sendmail compilada contra SASL-2 (Red Hat™ Enterprise Linux 5, CentOS 5, y versiones posteriores de éstos), puede hacerse a través del mandato saslpasswd2 del siguiente modo, tomando en consideración que Outlook y Outlook Express carecen de soporte para autenticar claves de acceso a través de estos métodos, los cuales requieren además tener instalado el paquete cyrus-sasl-md5: saslpasswd2 usuario Puede mostrarse la lista de los usuarios con clave de acceso asignada a través de SASL-2 utilizando el mandato sasldblistusers2.

57.3.3. Dominios a administrar.
Edite el archivo /etc/mail/local-host-names.
vim /etc/mail/local-host-names

Establezca los dominios locales que serán administrados:
dominio1.tld dominio2.tld dominio3.tld dominio4.tld

Genere el archivo /etc/mail/relay-domains, ejecutando lo siguiente:
touch /etc/mail/relay-domains

Edite el archivo /etc/mail/relay-domains que acaba de crear:
vim /etc/mail/relay-domains

Establezca los nombres de los dominios que tendrán permitido re-transmitir correo electrónico desde el servidor. Técnicamente tendrá el mismo contenido de /etc/mail/local-host-names, a menos que se desee excluir algún dominio en particular, o bien se trate de servidor de correo secundario para otro dominio en otro servidor.
dominio1.tld dominio2.tld dominio3.tld dominio4.tld

57.3.4. Control de acceso
Para definir las listas de control de acceso, edite el archivo /etc/mail/access:
vim /etc/mail/access

425

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Debe incluir las direcciones IP locales del servidor (las que devuelva el mandato ifconfig). Puede incluir la lista direcciones IP, dominios, o bien cuentas de correo electrónico con permisos de re-transmisión sin restricciones, o con permiso de acceso para enviar correo sólo a cuentas locales. Puede definir también una lista negra de direcciones de correo, dominios, y direcciones IP, a las que se desee denegar el acceso. Considere que:

Cualquier elemento que vaya acompañada de RELAY, tendrá permitido enviar correo electrónico, sin necesidad de autenticar, y re-transmitir éste sin restricción alguna. Cualquier elemento que vaya acompañada de OK, tendrá permitido enviar correo electrónico, sin necesidad de autenticar, pero sólo a las cuentas locales. Cualquier elemento que vaya acompañada de REJECT, tendrá prohibida cualquier tipo de comunicación de correo electrónico.
Nota.

Jamás configure una segmento completo de red local con RELAY, ya que dejaría de tener sentido utilizar autenticación a través de SMTP, y potencialmente podría permitir que los problemas de seguridad de maquinas infectadas con virus, gusanos, o troyanos, se magnifiquen, siendo que permitiría el envío, sin restricciones, de correo electrónico infectado, o bien cantidades extraordinarias de spam, originadas por los equipos cuya seguridad se haya visto comprometida.

Ejemplo de configuración para el archivo /etc/mail/access:

426

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Connect:localhost.localdomain RELAY Connect:localhost RELAY Connect:127.0.0.1 RELAY # # Dirección IP del propio servidor. Connect:192.168.70.51 RELAY # # Otros servidores de correo en la LAN a los que se les permitirá enviar # correo libremente a través del propio servidor de correo. Connect:192.168.70.52 RELAY Connect:192.168.70.53 RELAY # # Direcciones IP que sólo podrán entregar correo de forma local, es decir, # no pueden enviar correo fuera del propio servidor. Connect:192.168.2.24 OK Connect:192.168.2.23 OK Connect:192.168.2.25 OK # # Lista negra usuario@molesto.com REJECT productoinutil.com.mx REJECT 10.4.5.6 REJECT # # Bloques de Asia Pacific Networks, ISP desde el cual se emite la mayor # parte del Spam del mundo. # Las redes involucradas abarcan Australia, Japón, China, Corea del Sur, Taiwan, # Hong Kong e India por lo que bloquear el correo de dichas redes significa # cortar comunicación con estos países, pero acaba con entre el 60%, y 80% # del Spam. 222 REJECT 221 REJECT 220 REJECT 219 REJECT 218 REJECT 212 REJECT 211 REJECT 210 REJECT 203 REJECT 202 REJECT 140.109 REJECT 133 REJECT 61 REJECT 60 REJECT 59 REJECT 58 REJECT

57.3.5. Alias de la cuenta de root.
Es peligroso autenticarse con la cuenta de root, a través de cualquier tipo de red, sólo para revisar los mensajes de correo electrónico originados por el sistema. Se recomienda definir alias para la cuenta de root, hacia la cual se entregará todo el correo electrónico originalmente dirigido a root. Edite el archivo /etc/aliases:
vim /etc/aliases

Al final de éste, defina a que cuenta de usuario regular le será entregado el correo electrónico originalmente destinado a root:
427

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

root:

fulano

Para convertir el archivo /etc/aliases en /etc/aliases.db, que es el archivo, en formato de base de datos, que utilizará sendmail, y para verificar que la sintaxis esté correcta, o bien si existen aliases duplicados, ejecute el siguiente mandato:
newaliases

Lo anterior, debe devolver una salida similar a la siguiente:
/etc/aliases: 77 aliases, longest 10 bytes, 777 bytes total

57.3.6. Configuración de funciones de Sendmail.
Para definir, cambiar, o añadir funciones, edite el archivo /etc/mail/sendmail.mc.
vim /etc/mail/sendmail.mc

57.3.6.1. confSMTP_LOGIN_MSG.
Este parámetro permite establecer el mensaje de bienvenida al establecer la conexión al servidor. Es posible ocultar el nombre, y la versión de Sendmail, ésto con el objeto de agregar seguridad por oscuridad. Funciona de manera sencilla, haciendo que, quien establezca una conexión hacia el servidor, sea incapaz determinar qué versión de Sendmail se está utilizando, y con ésto dificultar a un delincuente, o abusador del servicio, el determinar que vulnerabilidad específica aprovechar. Descomente lo siguiente en el archivo /etc/mail/sendmail.mc:
dnl # dnl # Do not advertize sendmail version. dnl # define(`confSMTP_LOGIN_MSG',`$j Sendmail; $b')dnl dnl # dnl # default logging level is 9, you might want to set it higher to dnl # debug the configuration dnl # dnl define(`confLOG_LEVEL', `9')dnl

Si guarda los cambios, reinicia el servicio sendmail, y realiza una conexión al puerto 25, lo anterior hará que se devuelva una salida similar a la siguiente:
$ nc 127.0.0.1 25 Trying 127.0.0.1... Connected to mail.dominio.tld. Escape character is '^]'. 220 mail.dominio.tld ESMTP Sendmail ; Mon, 17 May 2004 02:22:29 -0500 quit 221 2.0.0 mail.dominio.tld closing connection Connection closed by foreign host. $

428

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

57.3.6.2. confAUTH_OPTIONS.
La siguiente línea viene habilitada de modo predeterminado, y permitirá realizar el proceso de autenticación a través del puerto 25, utilizando el método PLAIN, o bien el método LOGIN, los cuales transmiten el nombre de usuario, junto con su correspondiente clave de acceso, en texto simple, garantizando 100% de compatibilidad con todos los clientes de correo electrónico existentes. Sin embargo, ésto también implica un enorme riesgo de seguridad, por lo cual se recomienda implementar seguridad a través de SSL/TLS.
define(`UUCP_MAILER_MAX', `2000000')dnl define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl define(`confAUTH_OPTIONS',`A')dnl dnl # dnl # The following allows relaying if the user authenticates, and disallows dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links

Para añadir la seguridad necesaria, consulte, y estudie, el documento titulado «Cómo configurar Sendmail, y Dovecot con soporte SSL/TLS.» .
Nota. Si utiliza la siguiente línea, en lugar de la mencionada arriba, se desactivará la función que permite la autenticación enviando las claves de acceso en texto simple, a través de conexiones sin cifrar (SSL/TLS), y se habilitará la función que sólo permite autenticar a través de métodos que utilicen claves de acceso encriptadas, como sería CRAM-MD5, y DIGEST-MD5. Esto obliga a utilizar clientes de correo electrónico con soporte para autenticación a través de CRAM-MD5, y DIGEST-MD5 (todos clientes de correo electrónico conocidos, excepto Outlook, y Outlook Express), a tener instalado el paquete cyrus-sasl-md5, y asignar las claves de acceso para SMTP a través del mandato saslpasswd2. dnl # The following allows relaying if the user authenticates, and disallows dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links dnl # define(`confAUTH_OPTIONS',`A p')dnl dnl # dnl # PLAIN is the preferred plaintext authentication method and used by dnl # Mozilla Mail and Evolution, though Outlook Express and other MUAs do dnl # use LOGIN. Other mechanisms should be used if the connection is not

57.3.6.3. TRUST_AUTH_MECH, y confAUTH_MECHANISMS.
Si se desea utilizar SMTP autenticado para equipos excluidos del archivo /etc/mail/access, se requieren des-comentar las siguientes dos líneas del archivo /etc/mail/sendmail.mc, eliminando el dnl y el espacio que les precede:
dnl # PLAIN is the preferred plaintext authentication method and used by dnl # Mozilla Mail and Evolution, though Outlook Express and other MUAs do dnl # use LOGIN. Other mechanisms should be used if the connection is not dnl # guaranteed secure. dnl # Please remember that saslauthd needs to be running for AUTH. dnl # TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5LOGIN PLAIN')dnl dnl # dnl # Rudimentary information on creating certificates for sendmail TLS: dnl # cd /etc/pki/tls/certs; make sendmail.pem

429

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

57.3.6.4. DAEMON_OPTIONS.
De modo predeterminado, Sendmail escucha peticiones sólo a través de la interfaz de retorno del sistema, y a través de IPv4 (127.0.0.1), y ignorando otros dispositivos de red. Sólo se necesita eliminar la restricción de la interfaz de retorno para poder recibir correo desde Internet, o la LAN. Localice la siguiente línea resaltada:
dnl # The following causes sendmail to only listen on the IPv4 loopback address dnl # 127.0.0.1 and not on any other network devices. Remove the loopback dnl # address restriction to accept email from the internet or intranet. dnl # DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl dnl # dnl # The following causes sendmail to additionally listen to port 587 for dnl # mail from MUAs that authenticate. Roaming users who can't reach their dnl # preferred sendmail daemon due to port 25 being blocked or redirected find dnl # this useful. dnl # DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl dnl # dnl # The following causes sendmail to additionally listen to port 465, but dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed

Examine este parámetro, y elimine el valor Addr=127.0.0.1, además de la coma (,) que le antecede, de modo que quede como se muestra a continuación:
dnl # The following causes sendmail to only listen on the IPv4 loopback address dnl # 127.0.0.1 and not on any other network devices. Remove the loopback dnl # address restriction to accept email from the internet or intranet. dnl # DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl dnl # dnl # The following causes sendmail to additionally listen to port 587 for dnl # mail from MUAs that authenticate. Roaming users who can't reach their dnl # preferred sendmail daemon due to port 25 being blocked or redirected find dnl # this useful. dnl # DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl dnl # dnl # The following causes sendmail to additionally listen to port 465, but dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed

El puerto 587 (submission) puede ser utilizado también para envío de correo electrónico. Por estándar se utiliza como puerto alternativo en los casos donde un cortafuegos impide a los usuarios acceder hacia servidores de correo electrónico, los cuales normalmente trabajan a través del puerto 25. Para este fin, se requiere descomentar la línea que incluye DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl, como se ilustra a continuación, resaltado en negrita:

430

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

dnl # The following causes sendmail to only listen on the IPv4 loopback address dnl # 127.0.0.1 and not on any other network devices. Remove the loopback dnl # address restriction to accept email from the internet or intranet. dnl # DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl dnl # dnl # The following causes sendmail to additionally listen to port 587 for dnl # mail from MUAs that authenticate. Roaming users who can't reach their dnl # preferred sendmail daemon due to port 25 being blocked or redirected find dnl # this useful. dnl # DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl dnl # dnl # The following causes sendmail to additionally listen to port 465, but dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed

57.3.6.5. FEATURE(`accept_unresolvable_domains').
De modo predeterminado, como una forma de permitir el correo del propio sistema en una computadora de escritorio, o una computadora portátil, está se utiliza el parámetro FEATURE(`accept_unresolvable_domains'). Sin embargo se recomienda desactivar esta función a fin de impedir aceptar correo de dominios inexistentes (generalmente utilizado para el envío de correo masivo no solicitado, o Spam), sólo se necesita comentar esta configuración precediendo un dnl, del siguiente modo:
dnl dnl dnl dnl dnl dnl dnl dnl # We strongly recommend not accepting unresolvable domains if you want to # protect yourself from spam. However, the laptop and users on computers # that do not have 24x7 DNS do need this. # FEATURE(`accept_unresolvable_domains')dnl # FEATURE(`relay_based_on_MX')dnl #

57.3.6.6. Enmascaramiento.
Des-comente las siguientes tres líneas, y adapte el valor de MASQUERADE_AS para definir la máscara que utilizará el servidor:
MASQUERADE_AS(`dominio1.tld')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl

Si se van a administrar múltiples dominios, añada aquellos deban conservar su propia máscara, utilizando el parámetro MASQUERADE_EXCEPTION del siguiente modo:
MASQUERADE_AS(`dominio1.tld')dnl MASQUERADE_EXCEPTION(`dominio2.tld')dnl MASQUERADE_EXCEPTION(`dominio3.tld')dnl MASQUERADE_EXCEPTION(`dominio4.tld')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl

57.3.6.7. Control del correo chatarra (spam) a través de DNSBLs.
Si se desea utilizar listas negras para mitigar el correo chatarra (spam), pueden añadir la siguiente línea para definir la lista negra de SpamCop.net, casi al final del archivo /etc/mail/sendmail.mc, y justo arriba de MAILER(smtp)dnl:
431

Edite el archivo /etc/dovecot/dovecot. Alrededor de la línea 30 del archivo /etc/dovecot/conf. `"Spam blocked see: http://spamcop. Si utiliza CentOS 5.conf en CentOS 6. 57. y Red Hat Enterprise Linux 6.7.3.net'. pues sólo permitirá conexiones sin TLS desde 127.d/10-mail.3.0.shtml?"$&{client_addr}'.conf en CentOS 5.com)dnl dnl MASQUERADE_DOMAIN(mydomain. estableciendo como valor pop3 imap lmtp.3.0. y Red Hat™ Enterprise Linux 6.1.7.conf. # See doc/wiki/Variables.7. sólo debe editar el archivo /etc/dovecot. Parámetros del archivo /etc/dovecot/conf.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux dnl MASQUERADE_DOMAIN(localhost. pop3s. del siguiente modo (están habilitados de modo predeterminado pop3.txt> # mail_location = mbox:~/mail:INBOX=/var/mail/%u establezca Cabe señalar que la versión de dovecot incluida en CentOS 6.3. `bl. y Red Hat Enterprise Linux 5.d/10-mail. utilizada en CentOS 5.0 de Dovecot. protocols = imap pop3 lmtp 57.7.x.net/bl. mbox:~/mail:INBOX=/var/mail/%u como valor del parámetro mail_location.localdomain)dnl dnl MASQUERADE_DOMAIN(mydomainalias.2.3. `t')dnl MAILER(smtp)dnl MAILER(procmail)dnl dnl MAILER(cyrusv2)dnl 57. y habilitar los servicios de IMAP y/o POP3. imap.conf. Parámetros del archivo /etc/dovecot/dovecot. y Red Hat Enterprise Linux 6 utilizan la versión 2. Configuración de Dovecot.conf en CentOS 6. y por lo cual cambia radicalmente la configuración respecto de la versión 1. # Protocols we want to be serving. Siga el procedimiento descrito en el documento titulado Cómo configurar Sendmail. y versiones anteriores.spamcop. e imaps): # Protocols we want to be serving: # imap imaps pop3 pop3s protocols = imap imaps pop3 pop3s 432 . Some examples: # # mail_location = maildir:~/Maildir # mail_location = mbox:~/mail:INBOX=/var/mail/%u # mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n # # <doc/wiki/MailLocation. Parámetros del archivo /etc/dovecot/dovecot.conf.1. y Red Hat Enterprise Linux 5. es obligatorio generar un certificado. 57. y descomente el parámetro protocols.lan)dnl FEATURE(`enhdnsbl'. y Dovecot con soporte SSL/TLS.txt for full list.0. o Red Hat™ Enterprise Linux 5. CentOS 6. y Red Hat Enterprise Linux 6.

143 (imap). con la opción -f.8.4. y sendmail. El servicio dovecot. así como los puertos 110 (pop3). ejecutando lo siguiente: chkconfig sendmail on Para iniciar el servicio sendmail. se ejecuta lo siguiente: service sendmail start Para reiniciar servicio sendmail. o PLAIN. sólo bastará ejecutar: service sendmail restart Probar servidor enviando/recibiendo mensajes con CUALQUIER cliente estándar de correo electrónico con soporte para POP3/IMAP/SMTP con soporte para autenticar a través de SMTP utilizando los métodos LOGIN. Para el funcionamiento normal de un servicio de correo electrónico estándar. y que haya comprobado las configuraciones. y 995 (pop3s). 465 (smtps). siempre abra los puertos del cortafuegos hasta después de finalizar la configuración del servidor de correo electrónico. Modificaciones necesarias en el muro cortafuegos. Para detectar posibles errores. es necesario abrir los puertos 25 (smtp). utilizando el mandato tail. Como medida de seguridad.3. como se muestra a continuación: tail -f /var/log/maillog 57. se puede examinar el contenido de la bitácora de correo electrónico del sistema. se agrega al inicio del sistema del siguiente modo: chkconfig dovecot on Para iniciar el servicio dovecot. y 587 (submission). Si utiliza Shorewall. sobre el archivo /var/log/maillog. 993 (imaps). se ejecuta lo siguiente: service dovecot start Para aplicar cambios en la configuración del servicio dovecot.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 57. en cualquiera de las versiones de los sistemas operativos mencionados. edite el archivo /etc/shorewall/rules: 433 . se ejecuta lo siguiente: service dovecot restart El servicio sendmail se agrega al inicio del sistema. Añadir al inicio del sistema e iniciar servicios dovecot.

«Configuración avanzada de Sendmail». y «Configuración simple para Antivirus y Antispam».DO NOT REMOVE Al terminar de configurar las reglas para Shorewall.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux vim /etc/shorewall/rules Las reglas corresponderían a algo similar a lo siguiente: #ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT all fw tcp 25.993.465.5. 434 .143. Se recomienda consultar los documentos titulados «Cómo configurar Sendmail. «Cómo instalar y configurar Spamassassin».587 ACCEPT all fw tcp 110. y Dovecot con soporte SSL/TLS».995 #LAST LINE -.ADD YOUR ENTRIES BEFORE THIS ONE -. Lecturas posteriores. ejecutando el siguiente mandato: service shorewall restart 57. reinicie el muro cortafuegos.

2.1 © 1999-2011 Joel Barrios Dueñas.org/wiki/DSA 58.alcancelibre. patentado en EE. URL: http://es. Usted es libre de copiar. 58. Este documento requiere la lectura y comprensión previa del documento titulado «Configuración básica de Sendmail.1.org/wiki/X.509 es un estándar ITU-T (estandarización de Telecomunicaciones de la International Telecommunication Union ) para infraestructura de claves públicas (PKI.» 58.wikipedia. Se utiliza para firmar información. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. acrónimo de los apellidos de sus autores. Ron Rivest.509.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Es decir. Cómo configurar Sendmail y Dovecot con soporte SSL/TLS. Acerca de X. X.UU. Acerca de DSA. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. RSA. URL: http://es.UU. es un algoritmo para el ciframiento de claves públicas que fue publicado en 1977.wikipedia. URL: http://es. Al reutilizar o distribuir la obra. como propuesta para el proceso de firmas digitales.).1. establece los estándares para certificados de claves públicas y un algoritmo para validación de ruta de certificación. pasando por certificados intermedios.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 58.3. desde el certificado inicial. Este último se encarga de verificar que la ruta de un certificado sea válida bajo una infraestructura de clave pública determinada. Acerca de RSA. o genera una obra derivada. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. o Public Key Infrastructure). RSA es utilizado ampliamente en todo el mundo para los protocolos destinados para el comercio electrónico. Entre otras cosas.1. Adi Shamir y Len Adleman. DSA (Digital Signature Algorithm o Algoritmo de Firma digital) es un algoritmo creado por el NIST (National Institute of Standards and Technology o Instituto Nacional de Normas y Tecnología de EE.509 435 . Introducción. hasta el certificado de confianza emitido por una Autoridad Certificadora (CA. b) No puede utilizar esta obra para fines comerciales. publicado el 30 de agosto de 1991.wikipedia.1. o Certification Authority). Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. en 1983 por el el Instituto Tecnológico de Michigan (MIT). tiene que dejar bien claro los términos de la licencia de esta obra.org/wiki/RSA 58. más no para cifrar ésta. c) Si altera o transforma esta obra.

2. cd /etc/pki/tls/ Los servidores de correo electrónico.key Lo anterior solicitará se ingresen varios datos: • • • • • • • Código de dos letras para el país.1. Unidad o sección.pem A continuación. La salida debe devolver algo similar a lo siguiente: 436 . openssl req -x509 -nodes -newkey dsa:dsa1024. Para tal fin. Ciudad. de código abierto. En el mandato de ejemplo mostrado a continuación.org/ 58. OpenSSL es una implementación libre. Acceda al directorio /etc/pki/tls/. URL: http://www. Todos los procedimientos deben realizarse como el usuario root. hasta que éstos comenzaron a trabajar para la división de seguridad de EMC Corporation. se utiliza este archivo de parámetros DSA para crear una llave con algoritmo DSA y estructura x509.1.crt -keyout private/smtp. como Sendmail y Postfix.pem -days 1095 -out certs/smtp. se crea primero un archivo de parámetros DSA: openssl dsaparam 1024 -out dsa1024. Generando firma digital y certificado.4. así como también el correspondiente certificado.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 58. pueden utilizar una firma digital creada con algoritmo DSA de 1024 octetos. Está basado sobre el extinto proyecto SSLeay. o Seguridad para Nivel de Transporte). Nombre de la empresa o razón social. Dirección de correo. Estado o provincia.openssl. 58. se establece una validez por 1095 días (tres años) para el certificado creado. Nombre del anfitrión. Acerca de OpenSSL. iniciado por Eric Young y Tim Hudson.2. Procedimientos. de los protocolos SSL (Secure Sockets Layer o Nivel de Zócalo Seguro) y TLS (Transport Layer Security.

'. Es decir.pem certs/dovecot. se establece una validez por 1095 días (tres años) para el certificado creado.com Email Address []:webmaster@dominio.A. company) [My Company Ltd]:Empresa. Al terminar. el certificado sólo será válido cuando el servidor de correo electrónico sea invocado con el nombre definido en el campo Common Name. rm -f private/dovecot.dominio. rm -f dsa1024. What you are about to enter is what is called a Distinguished Name or a DN. 437 . Organizational Unit Name (eg.dominio. con estructura X. lo anterior solicitará se ingresen varios datos. mismo que puede eliminarse con plena seguridad.com si se planea acceder hacia el mismo servidor con diferentes subdominios del mismo dominio. Es por eso que se sugiere utilizar *. your name or your server's hostname) []:*. ----Country Name (2 letter code) [GB]:MX State or Province Name (full name) [Berkshire]:Distrito Federal Locality Name (eg.pem La creación de la firma digital y certificado para Dovecot es más simple.com).509. If you enter '. En el ejemplo a continuación.V. pero requiere utilizar una clave con algoritmo RSA de 1024 octetos.com Si definió un nombre de anfitrión absoluto (ejemplo: mail.crt private/smtp. openssl req -x509 -nodes -newkey rsa:1024 -days 1095 -out certs/dovecot.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Generating a 1024 bit DSA private key writing new private key to 'smtp. de C.pem -keyout private/dovecot. dominio. S. por mencionar un ejemplo. There are quite a few fields but you can leave some blank For some fields there will be a default value.pem.com como servidor SMTP con soporte TLS desde el cliente de correo electrónico.dominio. city) [Newbury]:Mexico Organization Name (eg. cd /etc/pki/dovecot/ Elimine los certificados de prueba creados durante la instalación.pem Es indispensable que todos los archivos de claves y certificados tengan permisos de acceso de sólo lectura para el usuario root: chmod 400 certs/smtp. Funcionará incorrectamente si se invoca al servidor como. the field will be left blank.com. sólo podrá utilizarlo cuando se defina mail.pem De forma similar a como ocurrió con el certificado para el servidor correo electrónico.dominio. ya no será necesario conservar el archivo dsa1024.key' ----You are about to be asked to enter information that will be incorporated into your certificate request. section) []:Direccion Comercial Common Name (eg.key Cambie al directorio /etc/pki/dovecot/.

2.`/etc/pki/tls/certs/ca-bundle...mc..'.. si definió un nombre de anfitrión absoluto (ejemplo: mail. conviene añadir una huella distintiva indubitable (fingerprint) al certificado. Organizational Unit Name (eg.. Es por eso que se sugiere utilizar *.V.mc a fin de que Sendmail utilice la clave y certificado recién creados: define(`confCACERT_PATH'. de C. A fin de facilitar a los clientes de correo electrónico el poder gestionar una futura actualización de certificado... Es necesario configurar los siguiente parámetros en el archivo /etc/mail/sendmail.A.++++++ writing new private key to 'dovecot.2.pem' ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. If you enter '.crt')dnl define(`confSERVER_CERT'.. section) []:Direccion Comercial Common Name (eg.crt')dnl define(`confSERVER_KEY'.`/etc/pki/tls/private/smtp.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux La salida devuelta debe similar a la siguiente: Generating a 1024 bit RSA private key .com si se planea acceder hacia el mismo servidor con diferentes subdominios del mismo dominio.com).dominio. city) [Newbury]:Mexico Organization Name (eg..2.2.pem Regrese al directorio de inicio del usuario root.. Funcionará incorrectamente si se invoca al servidor como. S. cd 58..++++++ . your name or your server's hostname) []: *.. There are quite a few fields but you can leave some blank For some fields there will be a default value.pem Es indispensable que todos los archivos de claves y certificados tengan permisos de acceso de sólo lectura para el usuario root: chmod 400 private/dovecot.`/etc/pki/tls/certs/smtp. company) [My Company Ltd]:Empresa.key')dnl 438 .1..dominio. sólo podrá utilizarlo cuando se defina mail. el certificado sólo será válido cuando el servidor de correo electrónico sea invocado con el nombre definido en el campo Common Name.dominio. the field will be left blank.`/etc/pki/tls/certs')dnl define(`confCACERT'. dominio.pem certs/dovecot. Es decir.com como servidor POP3 o IMAP con soporte TLS desde el cliente de correo electrónico. por mencionar un ejemplo.com.. Parámetros de /etc/mail/sendmail..dominio. openssl x509 -subject -fingerprint -noout -in certs/dovecot. 58. Configuración de Sendmail. ----Country Name (2 letter code) [GB]:MX State or Province Name (full name) [Berkshire]:Distrito Federal Locality Name (eg.com Nuevamente.com Email Address []:webmaster@dominio.

dnl # dnl # For this to work your OpenSSL certificates must be configured. but dnl # starting immediately in TLS mode upon connecting. dnl # DAEMON_OPTIONS(`Port=smtp. y obligatorio si se hacen a través del puerto 465. dnl # DAEMON_OPTIONS(`Port=submission.1 and not on any other network devices. Remove the loopback address restriction listen to the network. M=Ea')dnl dnl # dnl # The following causes sendmail to additionally listen to port 465. A fin de habilitar el puerto 465 (smtps). Ingrese el mandato EHLO con el dominio configurado.2. but roaming clients using Outlook Express can't dnl # do STARTTLS on ports other than 25. M=s')dnl. como se muestra a continuación. pero el resto de los clientes de correo electrónico con soporte TLS si lo tienen. MS Outlook Express carece de soporte para usar TLS a través del puerto 587. M=s')dnl dnl # dnl # The following causes sendmail to additionally listen on the IPv6 loopback dnl # device. o bien el mandato telnet. a través de TCP. Port 25 or 587 followed dnl # by STARTTLS is preferred. dnl # DAEMON_OPTIONS(`Port=smtps.0.2. al puerto 25 del sistema.STARTTLS support is available in version 1. Mozilla Mail can ONLY use STARTTLS dnl # and doesn't support the deprecated smtps. A fin de que surtan efecto los cambios. Realice una conexión con el mandato nc (netcat).1. La salida deberá devolver.0. Name=TLSMTA.1. Evolution <1. Name=MTA')dnl dnl # dnl # The following causes sendmail to additionally listen to port 587 for dnl # mail from MUAs that authenticate. Remove the loopback dnl # address restriction to accept email from the internet or intranet. Comprobación. service sendmail restart 58. se debe descomentar la línea que contiene DAEMON_OPTIONS(`Port=smtps.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux El acceso cifrado con TLS es opcional si se realizan conexiones a través del puerto 25. resaltado en negrita: dnl # The following causes sendmail to only listen on the IPv4 loopback address dnl # 127.2. entre todas las funciones del servidor. puede ser también utilizado para envío de correo electrónico. La salida puede ser similar a la siguiente: 439 . Name=MSA.1 uses smtps dnl # when SSL is enabled-. es necesario reiniciar el servicio sendmail. una línea que indica STARTTLS. El puerto 587 (submission). Roaming users who can't reach their dnl # preferred sendmail daemon due to port 25 being blocked or redirected find dnl # this useful. Name=TLSMTA. Por estándar se utiliza como puerto alternativo en los casos donde un cortafuegos impide a los usuarios acceder hacia servidores de correo trabajando por puerto 25.1.

0.2. y por lo cual cambia radicalmente la configuración respecto de la versión 1.pem A fin de que surtan efecto los cambios. y enviar correo electrónico.1].conf 440 .0. Tras aceptar el certificado. 58. so keep the key file unreadable by anyone but # root. required. just make sure to update the domains in dovecot-openssl.com 250-dominio. 58.0 de Dovecot.3. They're opened before # dropping root privileges.509 SSL/TLS certificate and private key.com ESMTP Sendmail .pem ssl_key = </etc/pki/dovecot/private/dovecot.3.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux nc 127. Included doc/mkcert.cnf ssl_cert = </etc/pki/dovecot/certs/dovecot. sólo escriba QUIT y pulse la tecla ENTER.com Hello localhost. Edite el archivo /etc/dovecot/conf. deberá ser posible autenticar. deberá especificarse conexión por TLS. Al realizar la configuración del cliente de correo electrónico.d/10-ssl. con nombre de usuario y clave de acceso. Sat.0.3. <doc/wiki/SSL.x.1 25 220 dominio.2. Configuración de Dovecot en CentOS 5 y Red Hat Enterprise Linux 5.1. no. CentOS 6 y Red Hat Enterprise Linux 6 utilizan la versión 2.0.txt> ssl = yes # PEM encoded X.d/10-ssl. utilizada en CentOS 5 y Red Hat Enterprise Linux 5.conf: vim /etc/dovecot/conf. pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-STARTTLS 250-DELIVERBY 250 HELP QUIT Para salir.2.conf: vim /etc/dovecot.sh can be used to easily generate self-signed # certificate.0. Configuración de Dovecot en CentOS 6 y Red Hat Enterprise Linux 6. 19 Jun 2010 18:18:02 -0500 ehlo dominio. es necesario reiniciar el servicio dovecot. service dovecot restart 58. Edite el archivo /etc/dovecot. Configuración de Dovecot.conf Descomente las siguientes líneas resaltadas en negrita: # SSL/TLS support: yes.localdomain [127.2.

pem ssl_key_file = /etc/pki/dovecot/private/dovecot.3. el soporte SSL de Dovecot está activo.pem A fin de que surtan efecto los cambios. Utilice cualquier cliente de correo electrónico con soporte para TLS y configure éste para conectarse hacia el sistema a través de IMAPS (puerto 993) o bien POP3S (puerto 995). con nombre de usuario y clave de acceso. y realizar la lectura del correo electrónico. Tras aceptar el certificado del servidor. protocols = imap imaps pop3 pop3s De modo predeterminado.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Asegúrese que el parámetro protocols estén establecidos como valores: imap imaps pop3 pop3s. nombre de usuario. la configuración de IMAP o POP3 se realiza seleccionando el tipo de servidor. 58. Configuración de GNOME Evolution. el sistema deberá permitir autenticar. Comprobaciones. Verifique que el parámetro ssl_disable tenga el valor no. y usar encriptación segura TLS. del siguiente modo: ssl_cert_file = /etc/pki/dovecot/certs/dovecot. Para GNOME Evolution. es necesario reiniciar el servicio dovecot. service dovecot restart 58. o bien sólo esté comentado.1.3. 441 . definiendo el nombre del servidor utilizado para crear el certificado. #ssl_disable = no Y se especifican las rutas del certificado y clave a través de los parámetros ssl_cert_file y ssl_key_file.

pero considerando además que también se puede utilizar el puerto 587 (submission) en caso de que el proveedor de acceso a Internet del cliente haya restringido el uso del puerto 25 (smtp).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Configuración IMAP. en GNOME Evolution. Se hace lo mismo para la configuración de SMTP (utilizar conexión segura TLS). 442 .

se define el nombre del servidor utilizado para crear el certificado.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Configuración SMTP. 443 .3.2. 58. usuario y usar conexión segura TLS. Para Mozilla Thunderbird. GNOME Evolution. Configuración Mozilla Thunderbird.

pero considerando además que también se puede utilizar el puerto 587 (submission) en caso de que el proveedor de acceso a Internet del cliente haya restringido el uso del puerto 25 (smtp).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Configuración IMAP. Se hace lo mismo para la configuración de SMTP (utilizar conexión segura TLS). Mozilla Thunderbird. 444 . Configuración SMTP. Mozilla Thunderbird.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 445 .

`dnl')dnl FEATURE(`smrsh'. Usuarios Virtuales. justo debajo de la función de virtusertable del archivo /etc/mail/sendmail.alcancelibre. Usted es libre de copiar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 59.2. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. se deben añadir los siguientes parámetros resaltados. b) No puede utilizar esta obra para fines comerciales. Configuración avanzada de Sendmail. Edite el archivo /etc/mail/virtusertable: vim /etc/mail/virtusertable 446 . y reciban. permitiendo que los usuarios envíen. c) Si altera o transforma esta obra. Al reutilizar o distribuir la obra. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.1. Antes de continuar.1 © 1999-2011 Joel Barrios Dueñas. de determinados usuarios.mc: define(`confTO_IDENT'. `/usr/sbin/smrsh')dnl FEATURE(`virtusertable'. «Configuración básica de Sendmail». 59. y «Cómo configurar Sendmail.`hash -o /etc/mail/genericstable. `0')dnl dnl FEATURE(delay_checks)dnl FEATURE(`no_default_msa'. Este documento requeire la lectura previa de los documentos titulados «Introducción a los protocolos de correo electrónico». sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. correo electrónico.`hash -o /etc/mail/virtusertable. y Dovecot con soporte SSL/TLS. Si se desea brindar un servicio de hospedaje de dominios virtuales.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Autor: Joel Barrios Dueñas Correo electrónico: darkshram@gmail. utilizando sus propios dominios.com sitio de Red: http://www. o genera una obra derivada. tiene que dejar bien claro los términos de la licencia de esta obra.» 59.db')dnl FEATURE(`genericstable'.db')dnl GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl FEATURE(redirect)dnl FEATURE(always_add_domain)dnl FEATURE(use_cw_file)dnl FEATURE(use_ct_file)dnl Se generan tres archivos nuevos dentro del directorio touch /etc/mail/virtusertable touch /etc/mail/genericstable touch /etc/mail/generics-domains /etc/mail: El archivo /etc/mail/virtusertable sirve para definir qué cuentas virtuales de correo electrónico se entregan en ciertos buzones. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.

db. a fin de poder alinear los registros.db. como actualizar. el contenido contrario del archivo /etc/mail/virtusertable. o bien.net webmaster@dominio2.net dominio2. respectivamente. deben actualizarse con el contenido de /etc/mail/virtusertable.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux El formato de este archivo permite que la separación de columnas se haga con tabuladores. 447 .net en la cuenta mengano.com mengano perengano Para hacer que el correo electrónico del usuario mengano salga del servidor como webmaster@dominio1.com dominio1. el cual se encargará de pasar el texto desde el archivo /etc/mail/virtusertable.net webmaster@dominio2. Genere el archivo /etc/mail/genericstable: touch /etc/mail/genericstable Edite el archivo /etc/mail/genericstable: vim /etc/mail/generictable Defina el contenido contrario del archivo en el archivo /etc/mail/virtusertable.net. while read cuenta usuario garbage do echo -e "${usuario}\t${cuenta}" >> /etc/mail/genericstable done < /etc/mail/virtusertable El archivo /etc/mail/generics-domains debe contener prácticamente lo mismo que el archivo /etc/mail/local-host-names. se puede mantener sincronizados ambos archivos. se entrega el correo de webmaster@dominio1. o eliminar. con el orden invertido de las columnas. trabajando directamente con /etc/mail/virtusertable. En el ejemplo a continuación. más los dominios que vayan a ser gestionados como dominios virtuales.com Invariablemente los archivos /etc/mail/virtusertable. ejecutando el siguiente guión. y el correo de webmaster@dominio2. y que el del usuario perengano salga como webmaster@dominio2. añadir. cuentas de correo virtuales.com Para efectos prácticos. y poder tener todo mejor organizado. del siguiente modo: mengano perengano webmaster@dominio1. en el buzón del usuario perengano: webmaster@dominio1.com. dominio. y /etc/mail/genericstable. y salvo que se requiera que haya más de una cuenta virtual de correo electrónico para un mismo usuario. hacia el archivo /etc/mail/genericstable. es necesario definir en el archivo /etc/mail/genericstable. cada vez que se se realicen cualquier tipo de cambio. que dos o más usuarios emitan mensajes con la misma cuenta de correo electrónico.com. y /etc/mail/genericstable.

pero cuando éste. Configure el servidor de correo secundario (mail2. Redundancia del servidor de correo. Esta función permite a Sendmail realizar traducción de dominios.3. 448 .`hash -o /etc/mail/mailertable.dominio. dominio.dominio. Debe de estar listado dominio. Encaminamiento de dominios.com en el archivo /etc/mail/relay-domains en el servidor de correo 4 secundario (mail2.dominio.com) a fin de permitir la retransmisión de éste hacia el servidor de . tratado como local.com smtp:mail. se vea 7 imposibilitado para recibir conexiones. 1 Defina en la zona de DNS de dominio.com) 2 Configure normalmente el servidor de correo primario (mail.mc.16.com).3.dominio.com). correo primario (mail.dominio.com).dominio. especificar un agente de entrega.dominio.com).com en el archivo /etc/mail/local-host-names ya que de otro modo el correo será .com un servidor de correo primario (mail. y defina que dominio. Sendmail incluye soporte para realizar en re-encaminamiento de dominios de correo a través del parámetro FEATURE(`mailertable'.com) a fin de contar con redundancia.1. el servidor de correo secundario (mail2. y cambiar el encaminamiento establecido en un DNS. 5 .dominio. Se requieren dos servidores de correo. Cuando se tiene un dominio de correo electrónico que recibe mucho tráfico.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux for f in virtusertable genericstable do makemap hash /etc/mail/${f}.dominio.com) cuando éste re-establezca operaciones normalmente.com smtp:[172. En el servidor de correo secundario (mail2.com) del mismo modo. service sendmail restart En adelante el correo de dominio. y de primera instancia en el servidor de correo primario (mail. servidor de correo secundario (mail2.com) . es conveniente establecer redundancia en el servicio para garantizar que el correo siempre será recibido.1. y llegará a los buzones de correo hacia los que está destinado. y un .dominio. definido en la zona de DNS recibirá todo el correo de dominio. 59.com) modifique el archivo /etc/mail/mailertable.com será entregado en el servidor de correo primario utilizando el nombre plenamente resuelto en la zona del DNS.db') que debe estar habilitado de modo predefinido en el archivo /etc/mail/sendmail. correo de dominio.dominio.com Si lo desea. y otro deberá estar registrado en la zona del dominio en el DNS como servidor de correo secundario (mail2. por alguna razón.com. Uno deberá estar registrado en la zona del dominio en el DNS como servidor de correo primario (mail.dominio. y jamas podrá ser entregado en el servidor de correo primario. pero no añada 3 dominio.db < /etc/mail/${f} done 59.com.com será entregado normalmente. y lo entregará en el servidor de correo primario (mail.dominio. puede especificar la dirección IP en lugar del nombre: dominio.com) para administrar el .50] 6 Reinicie Sendmail .

com) debe estar listada en el archivo 4 /etc/mail/access con RELAY (retransmisión autorizada) del servidor de correo de destino .dominio.dominio. y .16.com será entregado en el servidor de correo de 5 destino (mail.4. ejecute el mandato nc dirigido hacia el puerto 25 de la dirección IP principal del sistema: $ nc 192.com).com smtp:mail.com) se configura 1 normalmente.1.2.168.1/8. otro modo el correo será tratado como local.com) debe estar listada en el archivo 3 /etc/mail/access con RELAY (retransmisión autorizada) del servidor de correo intermediario . Se requieren dos servidores de correo.3.`smtp.. y defina que dominio. plenamente resuelto. Sendmail puede servir de intermediario de correo electrónico ya sea para filtrado de correo con un antivirus.provider'). y jamas podrá ser entregado en el servidor de correo de destino (mail.50.your.com).50). y deberá devolver una salida similar a la siguiente: Trying 172.0. des-comente. En el servidor de correo intermediario (proxy.13. . La dirección P del servidor de intermediario (proxy. dominio.dominio. El servidor de correo que funcionará como intermediario (proxy. 5 Mar 2006 21:45:51 -0600 Ejecute el mandato HELO seguido del nombre del anfitrión: 449 .13. y un servidor en red local.com).dominio. Desde una terminal. correo primario (mail.com) modifique el archivo /etc/mail/mailertable.1.com).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 59.dominio.dominio. que de forma obligatoria deberá estar definido en la zona de DNS del dominio como servidor de correo primario (un registro MX).com) a fin de permitir la retransmisión de éste hacia el servidor de .254 25 Si Sendmail está funcionando correctamente.com en el archivo /etc/mail/local-host-names ya que de . Verificando el servicio.dominio. Servidor de correo intermediario. Escape character is '^]'. (mail.dominio. de modo que .16.1.com') 8 Reinicie Sendmail en ambos servidores de correo. Connected to nombre.dominio. Uno que será el servidor de correo intermediario (proxy. 220 nombre. o bien como intermediario entre una red pública.com sea el servidor de retransmisión (smart host: define(`SMART_HOST'. y otro que servirá como servidor de correo de destino (mail.`proxy.dominio. Debe de estar listado dominio. equipamiento lógico para filtrado de correo chatarra. se establecerá una conexión exitosa. service sendmail restart 59.dominio..dominio.dominio ESMTP Sendmail 8.dominio (172.dominio. (proxy. puede especificar la dirección IP en lugar del nombre: .com) utilizando el nombre FQDN (Fully Qualified Domain Name). Sun.dominio.com 7 como valor para el parámetro define(`SMART_HOST'.dominio. dominio.1.dominio.com 6 Si lo desea.com smtp:[172.16.com).com).dominio. y defina proxy. La dirección P del servidor de destino (mail.com).com en el archivo /etc/mail/relay-domains en el servidor de correo 2 intermediario (proxy.50] En el servidor de correo de destino (mail. proxy. pero no añada dominio.

dominio Hello nombre. 450 .dominio 250-nombre.dominio Hello nombre.dominio 250 nombre.0 nombre.50). pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH DIGEST-MD5 CRAM-MD5 250-DELIVERBY 250 HELP Ejecute el mandato QUIT para cerrar la conexión.13.1.1/8. pleased to meet you EHLO nombre.50].50].1.16.50. y que mostrará las funciones del servidor: 250-nombre.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux HELO nombre.dominio ESMTP Sendmail 8.dominio Obtendrá una salida similar a ésta.50].0.1.13. Escape character is '^]'. Sun.dominio closing connection Connection closed by foreign host.dominio [172.50].16. 220 nombre. La salida completa de todo el procedimiento anterior debe lucir similar a esto (mandatos utilizados resaltados en negrita): [fulano@nombre ~]$ nc 172.16.dominio (172. 5 Mar 2006 21:45:51 -0600 HELO nombre.16.0 nombre.1. pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH DIGEST-MD5 CRAM-MD5 250-DELIVERBY 250 HELP QUIT 221 2.0.16.dominio Obtendrá una salida similar a esta: 250 nombre.. Connected to nombre.50 25 Trying 172.dominio [172.16.dominio closing connection Connection closed by foreign host.dominio Hello nombre.1.dominio [172. pleased to meet you Ejecute el mandato EHLO seguido del nombre del anfitrión: EHLO nombre..dominio Hello nombre.1.1.16. QUIT El servidor deberá contestar lo siguiente al terminar la conexión: 221 2.dominio [172.1.

Recipient ok Ejecute el mandato DATA: DATA El servidor de correo deberá contestarle lo siguiente: 354 Enter mail.dominio>. Al terminar finalice con un punto en una nueva línea.50 25 Salude al sistema con el mandato HELO seguido del nombre del anfitrión.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 59. y examinar como funciona realmente la interacción entre un servidor de correo.1.dominio [172. nc 172.16..1.5. Pruebas de envío de correo. Sender ok Ejecute el mandato RCPT TO especificando una cuenta de correo existente en el servidor del siguiente modo: RCPT TO: <root@nombre.50]. a menos que especifique una cuenta de correo con un dominio distinto a los especificados en el archivo /etc/mail/relay-domains: 250 2. end with ".dominio> El servidor de correo deberá contestarle lo siguiente: 250 2.1.. Utilizar el mandato nc permite conocer.16. Abra una sesión con nc dirigido hacia el puerto 25 de la dirección IP principal del sistema. HELO nombre. y un cliente de correo.1.dominio Hello nombre.0 <fulano@nombre." on a line by itself Enseguida se ingresa el texto que desee incluir en le mensaje de correo electrónico.dominio> El servidor de correo deberá contestarle lo siguiente.dominio El servidor de correo deberá contestarle: 250 nombre. 59.5. 451 . pleased to meet you Ejecute el mandato MAIL FROM especificando la cuenta de correo de un usuario local de sus sistema del siguiente modo: MAIL FROM: <fulano@nombre. Utilizando nc.dominio>.5 <root@nombre...1.

1.16.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Hola. Para enviar un mensaje de correo electrónico siga este procedimiento: 1 Como usuario sin privilegios." on a line by itself Hola.dominio>. y NNTP.1.0 k263wEKK006209 Message accepted for delivery QUIT 221 2.dominio [172.0.5 <root@nombre.0.50.dominio 250 nombre.13.dominio (172. este es un mensaje de prueba.1.dominio ESMTP Sendmail 8. Sender ok RCPT TO: <root@nombre. Recipient ok DATA 354 Enter mail. pleased to meet you MAIL FROM: <fulano@nombre. ejecute mutt.. y para los formatos de correo Maildir. o Mail User Agent) para modo texto. hilos. 250 2. .dominio closing connection Connection closed by foreign host.16. este es un mensaje de prueba.1. La salida completa de todo el procedimiento anterior debe lucir similar a esto (mandatos utilizados resaltados en negrita): [fulano@nombre ~]$ nc 172. Connected to nombre.0 <fulano@nombre.0.5. end with ".. es un cliente de correo electrónico (MUA. MIME. Mutt.dominio closing connection Connection closed by foreign host.1. protocolos POP3.. y pulsar las teclas indicadas la interfaz de texto para realizar diversas tareas..1. PGP/GPG. .dominio> 250 2.0. Sun.. 452 . 2 Responda con la tecla «s» para confirmar que se creará ~/Mail.0 nombre.2. y mbox. término utilizado en la lengua inglesa para referirse a perros mestizos.50]. Escape character is '^]'.13.1.16.50). .dominio>.50 25 Trying 172. .dominio Hello nombre. 5 Mar 2006 21:58:14 -0600 HELO nombre. 59.0 nombre.dominio> 250 2. IMAP. Basta ejecutar mutt.16. El sistema deberá contestarle algo similar a lo siguiente: 250 2. 220 nombre.1/8.0 k263wEKK006209 Message accepted for delivery Ejecute el mandato QUIT: QUIT El servidor deberá contestar lo siguiente al terminar la conexión: 221 2. Utilizando mutt.. Incluye soporte para color.

Tras terminar con el editor de texto simple vi. y pulse . para cambiar el campo de asunto del mensaje. soy ${USER} en ${HOSTNAME}. o alguna que exista al menos en el dominio de la Red Local (LAN).dominio Por favor responde este mensaje. Ingrese un título para el mensaje. insertar texto (i) de vi e ingrese algunas palabras. 9 Si desea responder el mensaje. seleccione éste. y salga de vi (:wq). Si necesita . 5 En la parte inferior de la pantalla aparece un diálogo para ingresar el asunto del mensaje (Subject: .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 3 Una vez iniciada la interfaz de texto de mutt. también puede utilizar mutt desde la linea de mandatos.\n\nSaludos." \ | mutt \ -s "Mensaje enviado desde ${HOSTNAME}" \ fulano@maquina. soy usuario en nombre. Si lo desea. 8 Mutt le devolverá a la pantalla principal. con el asunto «Mensaje enviado desde nombre. pulse la tecla «m» para crear un nuevo mensaje. y repita los procedimientos del paso 4 al 7.dominio Lo anterior envía un mensaje de correo electrónico hacia la cuenta fulano@maquina.dominio» con el siguiente contenido como texto del mensaje: Hola. echo -e \ "Hola. .\n\ Por favor responde este mensaje. Al terminar. Inicie el modo de . pulse «t» para cambiar el destinatario. 7 Confirme que los datos son los correctos. o bien pulse la tecla «s». 453 . y pulse la tecla «y» para enviar el mensaje. Si recibe un mensaje de respuesta. de correo electrónico válida. . 4 En la parte inferior de la pantalla aparece un diálogo para el destinatario (To: ). 6 Enseguida mutt iniciará vi para crear el texto que se enviará en el mensaje. mutt presentará una vista previa del mensaje.dominio. guarde. cambiar alguno de éstos. Saludos. pulse la tecla «r». la tecla ENTER para visualizar el contenido. ). Ingrese una cuenta .

alcancelibre. c) Si altera o transforma esta obra.com sitio de Red: http://www.2.1 © 1999-2011 Joel Barrios Dueñas. Opciones avanzadas de seguridad para Sendmail. es posible para un atacante inundar fácilmente el servidor y desencadenar en una denegación de servicio.2. En el siguiente ejemplo se limitará el número de destinatarios a 20: define(`confMAX_RCPTS_PER_MESSAGE'. b) No puede utilizar esta obra para fines comerciales. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. tiene que dejar bien claro los términos de la licencia de esta obra. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Añadir opciones avanzadas de seguridad se convierte en algo indispensable. En el siguiente ejemplo se establecerán 2 segundos de letargo por cada destinatario rechazado por sobrepasar el límite de destinatarios permitidos: define(`confBAD_RCPT_THROTTLE'. 60. Debido a la naturaleza del correo electrónico.2. Todas las funciones explicadas a continuación pueden incluirse en el archivo /etc/mail/sendmail. 60.1. `20')dnl 60. Al reutilizar o distribuir la obra. `2')dnl 454 .org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. De modo predefinido Sendmail no establece tiempo de letargo. Funciones. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. confMAX_RCPTS_PER_MESSAGE Este parámetro sirve para establecer un número máximo de destinatarios para un mensaje de correo electrónico.mc justo debajo de la última línea que incluya define y arriba de la primera línea que incluya FEATURE. De modo predefinido Sendmail establece un máximo de 256 destinatarios. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Fenómenos como el denominado correo masivo no solicitado o Spam no hacen las cosas más fáciles y las administración de un servidor de correo puede tornarse una pesadilla. Usted es libre de copiar. confBAD_RCPT_THROTTLE Este parámetro sirve para establecer el tiempo de letargo que se utilizará por cada destinatario que sobrepase el límite establecido por confMAX_RCPTS_PER_MESSAGE.2. Autor: Joel Barrios Dueñas Correo electrónico: darkshram@gmail. 60.1. o genera una obra derivada. Introducción.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 60.

es decir. También deshabilita las notificaciones de entrega.2. De modo predefinido los valores de confPRIVACY_FLAGS son `authwarnings. se deshabilitan varios mandatos SMTP como EXPN y VRFY.noexpn.5.novrfy.2. confMAX_HEADERS_LENGTH Esté parámetro se utiliza para definir el tamaño máximo permitido para la cabecera de un mensaje en bytes.restrictqrun'. Muchos programas de utilizados para enviar correo masivo no solicitado ni siquiera se molestan en utilizar HELO o EHLO.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 60.4. `16384')dnl El valor sugerido es 16 Kb (16384 bytes). el resto serán demoradas hasta que se terminen las conexiones existentes y dejen lugar para nuevas conexiones.`goaway')dnl 60.3. confPRIVACY_FLAGS Cuando se establece como valor `goaway'.6. Si se sobre pasa el límite de conexiones simultáneas. Un mensaje de correo electrónico ordinario. En el siguiente ejemplo se limitará el número de conexiones simultáneas hacia el servidor a 5: define(`confMAX_DAEMON_CHILDREN'. Aumente o disminuya el valor a su discresión. En el siguiente ejemplo se limitará el tamaño máximo de la cabecera de un mensaje a 16 Kb (requrerido para MailScanner): define(`confMAX_HEADERS_LENGTH'. De modo predefinido sendmail no establece límites para este parámetro.2. En el siguiente ejemplo se limitará el tamaño máximo de un mensaje a 3 MB: define(`confMAX_MESSAGE_SIZE'. `3145728')dnl 60. confMAX_MESSAGE_SIZE Este parámetro sirve para especificar el tamaño máximo permitido para un mensaje de correo electrónico en bytes. confMAX_DAEMON_CHILDREN Este parámetro sirve para especificar cuantos procesos hijos se permitirán simultáneamente en el servidor de correo. los cuales pudieran ser utilizados para revelar los nombres de usuarios locales a un spammer. de 5120 o 6144 bytes. Algunos programas utilizados para enviar spam tratan de impedir que los MTA puedan registrar transacciones generando cabeceras muy grandes. Limitar le tamaño de las cabeceras hace más difícil la ejecución de guión que explote vulnerabilidades recientes (desbordamientos de búfer) en UW IMAP. el cual es un mecanismo comunmente utilizado por quienes envían correo masivo no solicitado para verificar/confirmar la existencia de una cuenta activa. rara vez utilizará una cabecera que sobrepase los 5 Kb o 6 Kb. y hace que el sistema solicite obligatoriamente HELO o EHLO antes de utilizar el mandato MAIL.2. por muy exagerado que resulte el tamaño de la cabecera. Outlook y Outlook Express. La mayor parte de los mensajes de correo electrónico tendrán cabeceras de menos de 2 Kb (2048 bytes). 60. `5')dnl 455 . cambie por lo siguiente: define(`confPRIVACY_FLAGS'. Puede especificarse lo que el administrador considera apropiado.

confCONNECTION_RATE_THROTTLE Este parámetro sirve para establecer el numero de conexiones máximas por segundo. De modo predefinido sendmail no establece límites para este parámetro.2. `4')dnl 456 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 60. En el siguiente ejemplo se limitará a 4 conexiones por segundo: define(`confCONNECTION_RATE_THROTTLE'.7.

postfix.1. Es imprescindible primero estudiar. y es compatible con las implementaciones de los servidores UW-IMAP. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. DIGEST-MD5. o del lado del cliente. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. 457 . permitiendo. 61. los conceptos descritos en el documento titulado «Introducción a los protocolos de correo electrónico. URL: http://www. 61. Cómo instalar y configurar Postfix y Dovecot con soporte para TLS y autenticación. Cyrus SASL es una implementación de SASL que puede ser utilizada del lado del servidor. o genera una obra derivada. y KERBEROS_V4. y Courier IMAP.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 61. y sistemas basados sobre Unix™.1. en teoría. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. creado con la principal intención de ser una alternativa más rápida. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.2.procontrol. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. y diseñado con la seguridad como principal objetivo.1. y Cyrus SASL.1. y segura que Sendmail. Dovecot es un servidor de POP3 e IMAP de fuente abierta que funciona en Linux. Usted es libre de copiar. URL: http://dovecot.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Desempareja mecanismos de la autenticación desde protocolos de aplicaciones. fácil de administrar. NTLM. Postfix. c) Si altera o transforma esta obra. y PLAIN. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. es un popular agente de transporte de correo (MTA. CRAM-MD5. por entidades con fines de lucro).org/. y comprender. originalmente conocido por los nombres VMailer e IBM Secure Mailer. Actualmente SASL es un protocolo de la IETF (Internet Engineering Task Force) que ha sido propuesto como estándar. Fue originalmente escrito por Wietse Venema durante su estancia en el Thomas J. OPT. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Licencia completa en castellano.alcancelibre. a través de cualquier medio. tiene que dejar bien claro los términos de la licencia de esta obra.fi/. SRP. Watson Research Center de IBM. Al reutilizar o distribuir la obra. y que incluye como principales mecanismos de autenticación soportados a ANONYMOUS. cualquier mecanismo de autenticación soportado por SASL para ser utilizado en cualquier protocolo de aplicación que capaz de utilizar SASL. SASL (Simple Authentication and Security Layer) es un estructura para la seguridad de datos en protocolos de Internet.1 © 1999-2011 Joel Barrios Dueñas. 61. El código fuente incluye también soporte para los mecanismos LOGIN. Acerca de Dovecot. Está especificado en el RFC 2222 creado por John Meyers en la Universidad Carnegie Mellon.3. Introducción.» 61. Acerca de SASL. o Mail Transport Agent). Acerca de Postfix. Dovecot puede utilizar tanto el formato mbox como maildir.1. GSSAPI.

o Nivel de Zócalo Seguro).509. o Seguridad para Nivel de Transporte). o Public Key Infrastructure). patentado en EE. dovecot. mismo que requeriría de la base de datos de cuentas de usuario de un servidor Kerberos: 458 .509 es un estándar ITU-T (estandarización de Telecomunicaciones de la International Telecommunication Union ) para infraestructura de claves públicas (PKI. Ron Rivest. y TLS (Transport Layer Security.UU. Acerca de OpenSSL.wikipedia. URL: http://es.509 61.wikipedia.7. RSA es utilizado ampliamente en todo el mundo para los protocolos destinados para el comercio electrónico.1.org/wiki/X. y Len Adleman. URL: http://es.org/ 61. URL: http://es.1. Acerca de X.web. hasta el certificado de confianza emitido por una Autoridad Certificadora (CA. Adi Shamir.org/wiki/RSA 61.2.). Acerca de RSA. Instalar los paquetes postfix. elimine el paquete cyrus-sasl-gssapi. RSA. cyrus-sasl.UU.cmu.5. y Tecnología de EE.1. y un algoritmo para validación de ruta de certificación. URL: http://www. desde el certificado inicial. o Instituto Nacional de Normas. OpenSSL es una implementación libre.openssl.org/wiki/DSA 61.edu/sasl/sasl-library. establece los estándares para certificados de claves públicas.4. Se utiliza para firmar información.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux URL: http://asg. 61. publicado el 30 de agosto de 1991.6. Entre otras cosas. de código abierto.1. o Certification Authority). Este último se encarga de verificar que la ruta de un certificado sea válida bajo una infraestructura de clave pública determinada. X. DSA (Digital Signature Algorithm. de los protocolos SSL (Secure Sockets Layer. y cyrus-sasl-plain: yum -y install postfix dovecot cyrus-sasl cyrus-sasl-plain Si acaso estuviese instalado. iniciado por Eric Young. pasando por certificados intermedios. ya que este utiliza el método de autenticación GSSAPI. en 1983 por el el Instituto Tecnológico de Michigan (MIT). más no para cifrar ésta.wikipedia.html. o Algoritmo de Firma digital) es un algoritmo creado por el NIST (National Institute of Standards and Technology. Es decir. Equipamiento lógico necesario. Acerca de DSA. y Tim Hudson. hasta que éstos comenzaron a trabajar para la división de seguridad de EMC Corporation. como propuesta para el proceso de firmas digitales. Está basado sobre el extinto proyecto SSLeay. es un algoritmo para el ciframiento de claves públicas que fue publicado en 1977. acrónimo de los apellidos de sus autores.

detenga éste (es el MTA predeterminado en CentOS 5. Outlook carece de soporte para estos métodos de autenticación. ejecute lo siguiente desde una terminal. seleccionado éste.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux yum remove cyrus-sasl-gssapi De igual manera. si estuviese instalado.2. mismos que requerían asignar las claves de acceso para SMTP a través del mandato saslpasswd2. donde deberá elegir entre postfix. Mail Transport Agent). es necesario habilitar la siguiente política: setsebool -P allow_postfix_local_write_mail_spool 1 459 .3. Procedimientos. con la opción alternatives--config mta. y Postfix. y defina Postfix como agente de transporte de correo (MTA.3. A fin de que SELinux permita a Postfix escribir el el directorio de entrada de correo electrónico (/var/spool/mail/). 61. y Digest-MD5. y Red Hat Enterprise Linux 5) e inicie postfix: service sendmail stop chkconfig sendmail off service postfix start chkconfig postfix on 61. Selección Comando ----------------------------------------------*+ 1 /usr/sbin/sendmail. alternatives --config mta Lo anterior devolverá una salida similar a la siguiente. SELinux. yum remove cyrus-sasl-md5 61. Sí este es el caso. Sólo es necesario utilizar éste si previamente estaban instalados Sendmail o Exim.sendmail Presione Intro para mantener la selección actual[+]. y sendmail como MTA predeterminado del sistema: Hay 2 programas que proporcionan 'mta'. o escriba el número de la selección: 1 Si estuviera presente sendmail. ya que este utiliza los métodos de autenticación CRAM-MD5. elimine el paquete cyrus-sasl-md5.1. Todos los procedimientos deben realizarse como el usuario root. El mandato alternatives. se utiliza para conmutar el servicio de correo electrónico del sistema y elegir que paquete utilizar.postfix 2 /usr/sbin/sendmail. Definiendo Postfix como agente de transporte de correo predeterminado.3.

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Solo en CentOS 5, y Red Hat Enterpise Linux 5, a fin de que SELinux permita la lectura de correo electrónico, es necesario habilitar la siguiente política:
setsebool -P mail_read_content 1

En CentOS 6, y Red Hat Enterpise Linux 6, esta política dejó de existir, pues se volvió innecesaria.

61.3.2.1. Generando firma digital, y certificado.
Acceda al directorio /etc/pki/tls/.
cd /etc/pki/tls/

Los servidores de correo electrónico, como Sendmail, y Postfix, pueden utilizar una firma digital creada con algoritmo DSA de 1024 octetos. Para tal fin, se crea primero un archivo de parámetros DSA:
openssl dsaparam 1024 -out dsa1024.pem

A continuación, se utiliza este archivo de parámetros DSA para crear una llave con algoritmo DSA, y estructura x509, así como también el correspondiente certificado. En el ejemplo a continuación, se establece una validez por 1095 días (tres años) para el certificado creado.
openssl req -x509 -nodes -newkey dsa:dsa1024.pem -days 1095 -out certs/smtp.crt -keyout private/smtp.key

Lo anterior solicitará se ingresen varios datos:
• • • • • • • Código de dos letras para el país. Estado, o provincia. Ciudad. Nombre de la empresa, o razón social. Unidad, o sección. Nombre del anfitrión. Dirección de correo.

La salida devuelta sería similar a la siguiente:

460

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Generating a 1024 bit DSA private key writing new private key to 'smtp.key' ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [GB]:MX State or Province Name (full name) [Berkshire]:Distrito Federal Locality Name (eg, city) [Newbury]:Mexico Organization Name (eg, company) [My Company Ltd]:Empresa, S.A. de C.V. Organizational Unit Name (eg, section) []:Direccion Comercial Common Name (eg, your name or your server's hostname) []:*.dominio.com Email Address []:webmaster@dominio.com

Si definió un nombre de anfitrión absoluto (ejemplo: mail.dominio.com), el certificado solo será válido cuando el servidor de correo electrónico sea invocado con el nombre definido en el campo Common Name. Es decir, solo podrá utilizarlo cuando se defina mail.dominio.com como servidor SMTP con soporte TLS desde el cliente de correo electrónico. Funcionará incorrectamente si se invoca al servidor como, por mencionar un ejemplo, dominio.com. Es por eso que se sugiere utilizar *.dominio.com si se planea acceder hacia el mismo servidor con diferentes subdominios del mismo dominio. Al terminar, ya no será necesario conservar el archivo dsa1024.pem, mismo que puede eliminarse con plena seguridad.
rm -f dsa1024.pem

Es indispensable que todos los archivos de claves, y certificados tengan permisos de acceso de solo lectura para el usuario root:
chmod 400 certs/smtp.crt private/smtp.key

Cambie al directorio /etc/pki/dovecot/.
cd /etc/pki/dovecot/

Elimine los certificados de prueba creados durante la instalación.
rm -f private/dovecot.pem certs/dovecot.pem

La creación de la firma digital, y certificado para Dovecot es más simple, pero requiere utilizar una clave con algoritmo RSA de 1024 octetos, con estructura X.509. En el ejemplo a continuación, se establece una validez por 1095 días (tres años) para el certificado creado.
openssl req -x509 -nodes -newkey rsa:1024 -days 1095 -out certs/dovecot.pem -keyout private/dovecot.pem openssl x509 -subject -fingerprint -noout -in certs/dovecot.pem

461

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

De forma similar a como ocurrió con el certificado para el servidor correo electrónico, lo anterior solicitará se ingresen varios datos. La salida devuelta debe similar a la siguiente:
Generating a 1024 bit RSA private key ................++++++ .++++++ writing new private key to 'dovecot.pem' ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [GB]:MX State or Province Name (full name) [Berkshire]:Distrito Federal Locality Name (eg, city) [Newbury]:Mexico Organization Name (eg, company) [My Company Ltd]:Empresa, S.A. de C.V. Organizational Unit Name (eg, section) []:Direccion Comercial Common Name (eg, your name or your server's hostname) []: *.dominio.com Email Address []:webmaster@dominio.com

Nuevamente, si definió un nombre de anfitrión absoluto (ejemplo: mail.dominio.com), el certificado solo será válido cuando el servidor de correo electrónico sea invocado con el nombre definido en el campo Common Name. Es decir, solo podrá utilizarlo cuando se defina mail.dominio.com como servidor POP3, o IMAP, con soporte TLS desde el cliente de correo electrónico. Funcionará incorrectamente si se invoca al servidor como, por mencionar un ejemplo, dominio.com. Es por eso que se sugiere utilizar *.dominio.com si se planea acceder hacia el mismo servidor con diferentes subdominios del mismo dominio. Es indispensable que todos los archivos de claves, y certificados tengan permisos de acceso de solo lectura para el usuario root:
chmod 400 private/dovecot.pem certs/dovecot.pem

Regrese al directorio de inicio del usuario root.
cd

61.3.3. Configuración de Postfix.
61.3.3.1. Archivo de configuración /etc/postfix/master.cf.
Editar el archivo /etc/postfix/master.cf:
vim /etc/postfix/master.cf

Si utiliza CentOS 5, o Red Hat Enterprise Linux 5, debe descomentar las siguientes líneas resaltadas en negrita:

462

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

smtp inet n n smtpd submission inet n n smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject smtps inet n n smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject

Si utiliza CentOS 6, o Red Hat Enterprise Linux 6, debe descomentar las siguientes líneas resaltadas en negrita:
smtp inet n n smtpd submission inet n n smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING smtps inet n n smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING

61.3.3.2. Archivo de configuración /etc/postfix/main.cf.
A continuación, se debe editar el archivo /etc/postfix/main.cf:
vim /etc/postfix/main.cf

Respetando el resto del contenido original de este archivo, y asumiendo que el nombre de anfitrión del servidor es mail.dominio.com, y que se va a utilizar para gestionar el correo electrónico de dominio.com, solo se deben localizar, y configurar los siguientes parámetros:

463

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

# Todo lo siguiente solo requiere descomentarse, o bien modificar la línea # correspondiente que esté descomentada. # Definir el nombre de anfitrión del sistema (hostname). myhostname = mail.dominio.com # Definir el dominio principal a gestionar. mydomain = dominio.com myorigin = $mydomain # Definir se trabaje por todas las interfaces. # De modo predeterminado solo trabaja por la interfaz de retorno del sistema # (loopback), es decir, solo escucha peticiones a través de sobre 127.0.0.1 #inet_interfaces = localhost inet_interfaces = all # Si se van a manejar más dominios de correo electrónico, añadirlos también. mydestination = $myhostname, $mydomain, localhost.localdomain, localhost # Definir tus redes locales, ejemplo asume que tu LAN es 192.168.1.0/24 mynetworks = 192.168.1.0/24, 127.0.0.0/8 # Si se van a manejar más dominios de correo electrónico, añadirlos también. relay_domains = $mydestination # Importante para poder utilizar procmail para filtrar correo. mailbox_command = /usr/bin/procmail # Todo lo siguiente está ausente en la configuración. # Añadir todo al final del archivo main.cf # smtpd_tls_security_level = may smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt # Las rutas deben corresponder a las del certificado, y firma digital creados. smtpd_tls_key_file = /etc/pki/tls/private/smtp.key smtpd_tls_cert_file = /etc/pki/tls/certs/smtp.crt smtpd_tls_auth_only = no smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom

# Soporte para autenticar a través de SASL. # smtpd_sasl_local_domain = # Solo como referencia. smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

A fin de ahorrar tiempo realizando búsqueda de los parámetros anteriores, todo lo anterior también se puede configurar utilizando el mandato postconf, del siguiente modo:

464

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

postconf -e 'myhostname = mail.dominio.com' postconf -e 'mydomain = dominio.com' postconf -e 'myorigin = $mydomain' postconf -e 'inet_interfaces = all' postconf -e 'mydestination = $myhostname, $mydomain, localhost.localdomain, localhost' postconf -e 'mynetworks = 192.168.1.0/24, 127.0.0.0/8' postconf -e 'relay_domains = $mydestination' postconf -e 'mailbox_command = /usr/bin/procmail' postconf -e 'smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt' postconf -e 'smtpd_tls_key_file = /etc/pki/tls/private/smtp.key' postconf -e 'smtpd_tls_cert_file = /etc/pki/tls/certs/smtp.crt' postconf -e 'smtpd_tls_auth_only = no' postconf -e 'smtp_use_tls = yes' postconf -e 'smtpd_use_tls = yes' postconf -e 'smtp_tls_note_starttls_offer = yes' postconf -e 'smtpd_tls_loglevel = 1' postconf -e 'smtpd_tls_received_header = yes' postconf -e 'smtpd_tls_session_cache_timeout = 3600s' postconf -e 'tls_random_source = dev:/dev/urandom' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'smtpd_sasl_security_options = noanonymous' postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_sasl_authenticated_header = yes' postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'

61.3.3.3. Archivo de configuración /etc/aliases.
Se debe editar también el archivo /etc/aliases:
vim /etc/aliases

Se debe definir que el correo del usuario root se entregue al cualquier otro usuario del sistema. El objetivo de esto es que jamás se tenga necesidad de utilizar la cuenta del usuario root, y se prefiera en su lugar una cuenta de usuario sin privilegios. Solo se requiere descomentar la última línea de este archivo, que como ejemplo entrega el correo del usuario root al usuario marc, y definir un usuario existente en el sistema
#root: root: marc fulano

Al terminar, se ejecuta el mandato postalias para generar el archivo /etc/aliases.db que será utilizado por Postfix:
postalias /etc/aliases

61.3.4. Configuración de Dovecot en CentOS 5, y Red Hat Enterprise Linux 5.
61.3.4.1. Parámetros del archivo /etc/dovecot.conf.
Editar el archivo /etc/dovecot.conf:
vim /etc/dovecot.conf

En el parámetro protocols, se deben activar todos los servicios (imap, imaps, pop3, y pop3s).
protocols = imap imaps pop3 pop3s

465

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

De modo predeterminado, el soporte SSL de Dovecot está activo. Verifique que el parámetro ssl_disable tenga el valor no, o bien solo esté comentado.
#ssl_disable = no

Y se especifican las rutas del certificado, y clave a través de los parámetros ssl_cert_file, y ssl_key_file, del siguiente modo:
ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem ssl_key_file = /etc/pki/dovecot/private/dovecot.pem

61.3.5. Configuración de Dovecot en CentOS 6, y Red Hat Enterprise Linux 6.
CentOS 6, y Red Hat Enterprise Linux 6 utilizan la versión 2.0 de Dovecot, y por lo cual cambia radicalmente la configuración respecto de la versión 1.0.x, utilizada en CentOS 5, y Red Hat Enterprise Linux 5.

61.3.5.1. Parámetros del archivo /etc/dovecot/dovecot.conf.
Edite el archivo /etc/dovecot/dovecot.conf, estableciendo como valor pop3 imap lmtp.
# Protocols we want to be serving. protocols = imap pop3

y

descomente

el

parámetro

protocolos,

61.3.5.2. Parámetros del archivo /etc/dovecot/conf.d/10-mail.conf.
Alrededor de la línea 30 del archivo /etc/dovecot/conf.d/10-mail.conf, mbox:~/mail:INBOX=/var/mail/%u como valor del parámetro mail_location.
mail_location = mbox:~/mail:INBOX=/var/mail/%u

establezca

61.3.5.3. Parámetros del archivo /etc/dovecot/conf.d/10-ssl.conf.
En el archivo /etc/dovecot/conf.d/10-ssl.conf, descomente las siguientes líneas resaltadas en negrita:
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt> ssl = yes # PEM encoded X.509 SSL/TLS certificate and private key. They're opened before # dropping root privileges, so keep the key file unreadable by anyone but # root. Included doc/mkcert.sh can be used to easily generate self-signed # certificate, just make sure to update the domains in dovecot-openssl.cnf ssl_cert = </etc/pki/dovecot/certs/dovecot.pem ssl_key = </etc/pki/dovecot/private/dovecot.pem

466

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

61.3.6. Iniciar servicios, y añadir éstos al arranque del sistema.
Se deben añadir al arranque del sistema e iniciar (o reiniciar) los servicios saslauthd, dovecot, y postfix:
chkconfig saslauthd on chkconfig dovecot on chkconfig postfix on service saslauthd start service dovecot start service postfix restart

61.3.7. Soporte para LMTP.
Si utiliza CentOS 6, o Red hat Enterprise Linux 6, es decir Dovecot 2.0, y Postfix 2.6.6, podrá utilizar LMTP (Local Mail Transfer Protocol), o protocolo de transporte local de correo. Este protocolo esta basado sobre el protocolo SMTP, y está diseñado como una alternativa a SMTP para situaciones donde el lado receptor carece de cola de correo (queue mail), como un MTA que entiende conversaciones SMTP. Puede ser utilizado como una forma alternativa, y más eficiente para el transporte de correo entre Postfix, y Dovecot. Edite el archivo /etc/dovecot/dovecot.conf, y añada lmtp a los valores del parámetro protocolos, de la siguiente forma.
# Protocols we want to be serving. protocols = imap pop3 lmtp

A fin de poder hacer uso de LMTP de manera apropiada, es necesario añadir el siguiente parámetro en el archivo /etc/postfix/main.cf:
virtual_transport = lmtp:unix:/var/run/dovecot/lmtp

O bien ejecutar lo siguiente:
postconf -e 'virtual_transport = lmtp:unix:/var/run/dovecot/lmtp'

Y reiniciar los servicios dovecot, y postfix.
service dovecot restart service postfix restart

61.3.8. Modificaciones necesarias en el muro cortafuegos.
Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo Shorewall, es necesario abrir, además de los puertos 25, 110, 143, y 587 por TCP (SMTP, POP3, IMAP, y Submission, respectivamente), los puertos 465, 993, y 995 por TCP (SMTPS, IMAP, y POP3S, respectivamente). Editar el archivo /etc/shorewall/rules:
vim /etc/shorewall/rules 467

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Las reglas para el archivo /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente:
#ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT net fw tcp 25,110,143,465,587,993,995 #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

Para que tomen efecto los cambios, hay que reiniciar el servicio Shorewall.
service shorewall restart

61.3.9. Requisitos en la zona de reenvío en el servidor DNS.
Es indispensable que exista un DNS que resuelva correctamente el dominio, y apunte el servicio de correo electrónico hacia la IP del servidor de correo electrónico recién configurado. Asumiendo que se hizo correctamente todo lo mencionado en este documento, la única forma en que se imposibilitaría la llegada y/o salida del correo electrónico se esté utilizando un enlace ADSL con IP dinámica (restringido por le proveedor para utilizar el puerto 25), o bien que el servidor DNS que resuelve el dominio, esté apuntando hacia otra dirección IP para el servicio de correo electrónico. En el DNS se requieren al menos los siguientes registros, donde xx.xx.xx.xx corresponde a la IP del servidor de correo electrónico.
$TTL 86400 @ IN

@ @ @ @ @ mail www ftp

IN IN IN IN IN IN IN IN

SOA dns1.isp.com alguien.algo.com ( 2010061901 ; Número de serie 28800 ; Tiempo de refresco 7200 ; Tiempo entre reintentos 604800 ; tiempo de espiración 86400 ; Tiempo total de vida ) NS dns1.isp.com. NS dns2.isp.com. A a.b.c.d MX 10 mail TXT "v=spf1 a mx -all" A xx.xx.xx.xx A a.b.c.d A a.b.c.d

61.4. Comprobaciones.
61.4.1. A través de terminal.
Realice una conexión con el mandato nc (netcat), o bien el mandato telnet, al puerto 25 del sistema. Ingrese el mandato EHLO con el dominio configurado. La salida deberá devolver, entre todas las funciones del servidor, una línea que indica STARTTLS. La salida puede ser similar a la siguiente:

468

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

nc 127.0.0.1 25 220 emachine.alcancelibre.org ESMTP Postfix EHLO dominio.com 250-mail.dominio.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN QUIT

Para salir, solo escriba QUIT, y pulse la tecla ENTER.

61.4.2. A través de clientes de correo electrónico.
Utilice cualquier cliente de correo electrónico con soporte para TLS/SSL, y configure éste para conectarse hacia el sistema a través de IMAPS (puerto 993), o bien POP3S (puerto 995). Tras aceptar el certificado del servidor, el sistema deberá permitir autenticar, con nombre de usuario, y clave de acceso, y realizar la lectura del correo electrónico.

61.4.2.1. Configuración de GNOME Evolution.
Para GNOME Evolution, la configuración de IMAP, o POP3, se realiza seleccionando el tipo de servidor, definiendo el nombre del servidor utilizado para crear el certificado, nombre de usuario, y usar encriptación segura TLS.

469

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Configuración IMAP, en GNOME Evolution. Se hace lo mismo para la configuración de SMTP (utilizar conexión segura TLS), pero considerando además que también se puede utilizar el puerto 587 (submission) en caso de que el proveedor de acceso a Internet del cliente haya restringido el uso del puerto 25 (smtp).

470

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Configuración SMTP, GNOME Evolution.

61.4.2.2. Configuración Mozilla Thunderbird.
Para Mozilla Thunderbird, se define el nombre del servidor utilizado para crear el certificado, usuario, y usar conexión segura TLS.

471

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Configuración IMAP, Mozilla Thunderbird. Se hace lo mismo para la configuración de SMTP (utilizar conexión segura TLS), pero considerando además que también se puede utilizar el puerto 587 (submission) en caso de que el proveedor de acceso a Internet del cliente haya restringido el uso del puerto 25 (smtp).

Configuración SMTP, Mozilla Thunderbird.

472

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

61.5. Modificaciones necesarias en el muro cortafuegos.
Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo Shorewall, es necesario abrir, además de los puertos 25, 110, 143, y 587 por TCP (SMTP, POP3, IMAP, y Submission, respectivamente), los puertos 465, 993, y 995 por TCP (SMTPS, IMAP, y POP3S, respectivamente). La regla para el archivo /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente:
#ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT all fw tcp 25,110,143,465,587,993,995 #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

473

1. se recomienda crear previamente al grupo y usuario correspondientes para ClamAV: groupadd -r clamav useradd -r -s /sbin/nologin -d /var/lib/clamav -M -c 'Clamav Antivirus' -g clamav clamav 474 . Se requiere haber configurado previamente Postfix de la forma en que se describe en el documento titulado «Cómo instalar y configurar Postfix en CentOS 5 con soporte para TLS y autenticación. Creación del usuario para ClamAV. 62. c) Si altera o transforma esta obra.alcancelibre. De modo predeterminado. Amavisd-new es una interfaz confiable y de alto desempeño entre el agente de trasporte de correo (MTA. A fin de prevenir un conflicto de UID/GID con otros usuarios y grupos de sistema.» 62. en los paquetes RPM basados sobre los disponibles para Fedora. Funciona comunicándose con el MTA a través de ESMTP (Extended Simple Mail Transfer Protocol. o Protocolo Simple de Transferencia de Correo) o bien LMTP (Local Mail Transfer Protocol. Acerca de Amavisd-new. Este documento permitirá configurar Postfix para utilizar amavisd-new para el control de virus y correo spam.si/software/amavisd/ 62. Equipamiento lógico necesario. o genera una obra derivada. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. y/o SpamAssassin. por entidades con fines de lucro). distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.1.2.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. URL: http://www. con un diseño que impide se puede parder correo electrónico de manera incidental. Al reutilizar o distribuir la obra. a través de cualquier medio. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 62. Cómo instalar y configurar Amavisd-new con Postfix en CentOS 5. Usted es libre de copiar. 62. el usuario para ClamAV se asigna a través de los mandatos fedora-groupadd y fedora-useradd el UID y GID 4 en el sistema. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.ijs. a través de programas auxiliares. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.1.2. Introducción. Está escrito en Perl para asegurar su alta confiabilidad. tiene que dejar bien claro los términos de la licencia de esta obra.1 © 1999-2011 Joel Barrios Dueñas. como es el caso de supervisores anti-virus. portabilidad y facilidad de mantenimiento. Mail Transport Agent) y uno o más supervisores de contenido. o Protocolo de Transferencia Local de Correo). Licencia completa en castellano.

475 .3. 62.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 62. 62. [AL-Server] name=Enterprise Linux $releasever .AL Server mirrorlist=http://www.te: vim amavisd.org/linux/secrets/amavisd.org/linux/secrets/amavisd.1.$basearch .org/al/el$releasever/al-server gpgkey=http://www.te tenga el siguiente contenido: module amavisd 1. require { type traceroute_port_t.3.alcancelibre.3.alcancelibre. 62. type spamd_t. type clamd_t.org/al/AL-RPM-KEY Instalar los paquetes necesarios se utiliza el siguiente mandato: yum -y install amavisd-new clamav-update clamav-server cabextract tnef yum -y install arj lha unzoo p7zip p7zip-plugins Lo anterior también instalará todas las dependencias necesarias.2.alcancelibre. Procedimientos.1.te Verificar que el archivo amavisd.alcancelibre. type amavis_t. Se pueden utilizar el siguiente depósito YUM para la plataforma Enterprise Linux 5. Crear el directorio /usr/share/selinux/packages/amavisd: mkdir /usr/share/selinux/packages/amavisd Cambiarse al directorio /usr/share/selinux/packages/amavisd: cd /usr/share/selinux/packages/amavisd Descargar desde Alcance Libre http://www.2. Procedimiento para crear política.te: wget http://www. Configuración de SELinux.0. Configuración de depósitos YUM para CentOS 5 y Red Hat Enterprise Linux 5.te el archivo Editar el archivo amavisd.

spamd_t ============== allow spamd_t root_t:file { ioctl append }. } #============= amavis_t ============== allow amavis_t initrc_var_run_t:file { read lock }.pp -m amavisd.com'.com'. # a convenient default for other settings Cambiar por lo siguiente: $mydomain = 'dominio.3.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux type initrc_var_run_t.te: checkmodule -M -m -o amavisd.cf vim /etc/postfix/master.mod amavisd. class dir { write search add_name }. type root_t. Configuración de Postfix.cf Añadir al final de éste todo lo siguiente: 476 . Editar el archivo /etc/amavisd/amavisd.mod a partir del archivo amavisd. #============= #============= clamd_t ============== allow clamd_t amavis_var_run_t:dir { write search add_name }. class file { ioctl append read lock }.3.conf Localizar la siguiente línea: $mydomain = 'example.mod Incluir la política al sistema: semodule -i /usr/share/selinux/packages/amavisd/amavisd.conf vim /etc/amavisd/amavisd. class udp_socket name_bind. type amavis_var_run_t.3.mod semodule_package -o amavisd. # a convenient default for other settings 62. Crear el archivo de módulo amavisd.pp 62.2. allow amavis_t traceroute_port_t:udp_socket name_bind. Configuración de Amavisd-new. class lnk_file read.te Crear el archivo de política amavisd.pp a partir del archivo amavisd. Editar el archivo /etc/postfix/master.

0.3.0.cf ejecutando: postconf -e 'content_filter = amavisfeed:[127.0.amavisd on chkconfig amavisd on 477 .1]:10024' Editar el archivo /etc/aliases: vim /etc/aliases Definir un alias para la cuenta virusalert: virusalert: fulano Para que surtan efecto los cambios.0.4.amavisd y amavisd a los servicios de arranque del sistema: chkconfig clamd.Joel Barrios Dueñas # Configuración de amavisd-new Configuración de Servidores con GNU/Linux amavisfeed unix n 2 lmtp -o lmtp_data_done_timeout=1200 -o lmtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 127.cf: vim /etc/postfix/main.no_milters.reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks.reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o smtpd_restriction_classes= -o mynetworks=127. detener y reiniciar el servicio spamass-milter.0.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. Añadir los servicios clamd.no_unknown_recipient_checks. ejecutar: postalias /etc/aliases 62.no_add ress_mappings -o local_header_rewrite_clients= -o smtpd_milters= -o local_recipient_maps= -o relay_recipient_maps= Editar el archivo /etc/postfix/main.cf Añadir al final de éste lo siguiente: content_filter = amavisfeed:[127.1]:10024 Lo anterior se puede definir automáticamente en el archivo /etc/postfix/main.1:10025 inet n n smtpd -o content_filter= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks.0. Iniciar.

"dominio.net". El valor predeterminado es el siguiente: @local_domains_maps = ( [". "otrodominio.$mydomain".com".5.3.amavisd start service amavisd start Reiniciar el servicio postfix: service postfix restart 62.org"] ).conf Y modificar los valores del parámetro @local_domains_maps. Se deben agregar los dominios virtuales de la siguiente manera: @local_domains_maps = ( [". es indispensable editar el archivo /etc/amavisd/amavisd. "otrodominio.conf: vim /etc/amavisd/amavisd.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Iniciar los servicios clamd.amavisd y amavisd: service clamd.$mydomain"] ). se debe reiniciar el servicio amavisd: service amavisd restart 478 . Y para que surtan efecto los cambios. Para poder utilizar Postfix con dominios virtuales y Amavisd-new. Postfix con dominios virtuales y Amavisd-new.

2. Crear el directorio /usr/share/selinux/packages/virtualmail: mkdir /usr/share/selinux/packages/virtualmail Cambiarse al direcrtorio /usr/share/selinux/packages/virtualmail: 479 .alcancelibre. 63.1. hay escenarios donde se utiliza /var/www para crear los directorios de inicio de los dominios virtuales. utilizando los usuarios locales del sistema.» Se recomienda leer. Introducción. a través de cualquier medio. Tengo un lema personal que me gusta citar para explicar mi opinión respecto de SELinux: Más vale tenerlo y jamás necesitarlo. y se utiliza /home para crear los directorios de inicio de los dominios virtuales. Configuración de SELinux. Sin embargo. Procedimiento para crear política. es necesario generar una política que permita a los servicios de Postfix o Sendmail. o genera una obra derivada. Por lo general.1. Sí se hace de este modo. Si es posible utilizar SELinux junto con dominios virtuales.1.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. hacer ésto implica renunciar a una magnífica protección que brinda al sistema esta importante implementación de seguridad. tiene que dejar bien claro los términos de la licencia de esta obra. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. Al reutilizar o distribuir la obra. 63. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. se requieren pocos o ningún ajuste en SELinux. 63. Cómo configurar Postfix en CentOS 5 para utilizar dominios virtuales con usuarios del sistema. y sí se quiere mantener SELinux activo. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 63. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. El siguiente procedimiento sirve para crear la política necesaria. escritura y otros atributos sobre directorios y archivos con contexto httpd_sys_content_t. Procedimientos. por entidades con fines de lucro). Se requiere haber configurado previamente Postfix de la forma en que se describe en el documento titulado «Cómo instalar y configurar Postfix en CentOS 5 con soporte para TLS y autenticación. Usted es libre de copiar. Cuando se quiere implementar un servicio de hospedaje con dominios virtuales. que necesitarlo y carecer de éste. c) Si altera o transforma esta obra.1 © 1999-2011 Joel Barrios Dueñas. Dovecot. Licencia completa en castellano.2. sin mayores argumento o explicaciones. Pyzor y Spamassassin poder realizar lectura. Este documento permitirá configurar Postfix para utilizar múltiples dominios virtuales. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.1. estudiar y aplicar también los procedimientos descritos en el documento titulado «Cómo instalar y configurar Amavisd-new con Postfix en CentOS 5. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Sin embargo. la mayoría de los documentos disponibles en Internet recomiendan desactivar SELinux.2.» 63.

class file { read lock rename create write getattr link unlink append }. type httpd_sys_content_t. type spamc_t. #============= pyzor_t ============== allow pyzor_t httpd_sys_content_t:dir { write search }.te: 480 . } #============= dovecot_t ============== allow dovecot_t httpd_sys_content_t:dir { write search read remove_name getattr add_name }. type procmail_t. class dir { search read write getattr remove_name add_name }. #============= postfix_local_t ============== allow postfix_local_t httpd_sys_content_t:dir search. allow dovecot_t httpd_sys_content_t:file { write getattr link rename read lock create unlink }.te el archivo Editar el archivo virtualmail. Crear el archivo de módulo virtualmail. type sendmail_t. require { type pyzor_t.0. type system_mail_t.org/linux/secrets/virtualmail. #============= spamc_t ============== allow spamc_t sendmail_t:fifo_file write. type dovecot_t.te Verificar que el archivo virtualmail. type postfix_master_t.te: vim virtualmail. type postfix_local_t. class fifo_file write. allow spamd_t httpd_sys_content_t:file { read getattr }.te tenga el siguiente contenido: module virtualmail 1.te: wget http://www. #============= postfix_master_t ============== allow postfix_master_t httpd_config_t:dir search. type postfix_postdrop_t. #============= spamd_t ============== allow spamd_t httpd_sys_content_t:dir { write search getattr }. type httpd_config_t.alcancelibre. #============= procmail_t ============== allow procmail_t httpd_sys_content_t:dir search.org/linux/secrets/virtualmail. #============= postfix_postdrop_t ============== allow postfix_postdrop_t tmp_t:file { getattr append }.alcancelibre.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux cd /usr/share/selinux/packages/virtualmail Descargar desde Alcance Libre http://www. #============= system_mail_t ============== allow system_mail_t httpd_sys_content_t:file append. type spamd_t. allow postfix_postdrop_t httpd_log_t:file getattr. type httpd_log_t.mod a partir del archivo virtualmail. type tmp_t.

2.localdomain # Definir el valor predeterminado para mydomain mydomain = localhost.1.mod Incluir la politica al sistema: semodule -i /usr/share/selinux/packages/virtualmail/virtualmail.2.pp -m virtualmail.pp a partir del archivo virtualmail. 481 .org otrodominio.cf: vim /etc/postfix/main. reemplaza a virtual_maps # Se utiliza para declarar los dominios virtuales.com dominio. myhostname = localhost.net otrodominio. virtual_alias_domains = $virtual_alias_maps # Obligatorio. Ejemplo: # jbarrios@dominio.2.localdomain # También se puede definir cualquier otro dominio.cf. añadir también los # dominios en este formato: # dominio. Configuración de Postfix. Ejemplo: # joel joel. reemplaza a virtual_maps # Se utiliza para declarar la reescritura de direcciones.net # otrodominio. Archivo /etc/postfix/main.com joel # Ejemplo hace que todo correo para joel@dominio.barrios # Ejemplo hace que todo el correo de joel salga como joel.$mydomain.localdomain # Definir los valores predeterminados para mydestination y relay_domains mydestination = $myhostname. localhost. 63.pp 63. comentar virtual_alias_domains.mod semodule_package -o virtualmail.te Crear el archivo de política virtualmail.cf Definir los siguientes parámetros: # Establecer el valor de myhostname como localhost.2. # Se utiliza solo para reescribir la dirección de salida de una cuenta.com # otrodominio. Editar el archivo /etc/postfix/main.barrios canonical_maps = hash:/etc/postfix/canonical # Recomendado.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux checkmodule -M -m -o virtualmail.mod virtualmail.org # Si se hace lo anterior.com se entregue a joel # Si se quiere precindir de utilizar virtual_alias_domains. # Junto con virtual_alias_domains. siempre y cuando sea distinto # a cualquiera de los definidos en los valores de virtual_alias_domains o en # virtual_alias_maps. # Es la contraparte de alias_database = /etc/aliases # Se utiliza para reescritura de direcciones de salida. localhost relay_domains = $mydestination # Recomendado. # Se puede prescindir de éste si se añaden dominios en /etc/postfix/virtual. virtual_alias_maps = hash:/etc/postfix/virtual # Recomendado. # Junto con virtual_alias_maps.

# Se utiliza solo para reescribir solo la dirección de entrada de una cuenta.com otrodominio. especificando a que cuenta de usuario local se entrega cada dirección.net webmaster@otrodominio.2.com otrodominio.org webmaster@dominio.net luis@otrodominio. # Ejemplo: # jbarrios@dominio.org joel juan pablo pedro hugo luis joel@dominio. localhost.com # Ejemplo hace que todo el correo de joel salga como jbarrios@dominio.$mydomain.localdomain' 'mydestination = $myhostname.2.org Editar el archivo /etc/postfix/sender_canonical: vim /etc/postfix/sender_canonical 482 .org joel@dominio.net otrodominio.net otrodominio. Archivos /etc/postfix/virtual y /etc/postfix/sender_canonical.com pablo@dominio.com joel # Ejemplo hace que todo correo para jbarrios@dominio. Utilizar virtual_alias_maps en su lugar.com pedro@dominio. localhost' 'relay_domains = $mydestination' 'virtual_alias_domains = $virtual_alias_maps' 'virtual_alias_maps = hash:/etc/postfix/virtual' 'canonical_maps = hash:/etc/postfix/canonical' 'sender_canonical_maps = hash:/etc/postfix/sender_canonical' 'recipient_canonical_maps = hash:/etc/postfix/recipient_canonical' Al terminar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux # Ejemplo: # joel jbarrios@dominio. dominio.localdomain' 'mydomain = localhost.com webmaster@otrodominio. Editar el archivo /etc/postfix/virtual: vim /etc/postfix/virtual Crear la tabla de cuentas de correo electrónico virtuales de entrada.2.com sender_canonical_maps = hash:/etc/postfix/sender_canonical # Opcional.net luis@otrodominio.com hugo@otrodominio. # Considerar que se procesa antes que canonical_maps. # Poco utilizado.org dominio.com se entregue a joel recipient_canonical_maps = hash:/etc/postfix/recipient_canonical Todo lo anterios se puede realizar también ejecutando el mandato postconf para cada parámetro: postconf postconf postconf postconf postconf postconf postconf postconf postconf -e -e -e -e -e -e -e -e -e 'myhostname = localhost.com hugo@otrodominio. genere los /etc/postfix/recipient_canonical: archivos /etc/postfix/sender_canonical y touch /etc/postfix/sender_canonical touch /etc/postfix/recipient_canonical 63.com juan@dominio.

ni más de una cuenta de correo electrónico por usuario. A fin de que surtan efecto todos los cambios. especificando las direcciones de salida que utilizará cada usuario.3. se debe reiniciar el servicio postfix: service postfix restart 483 . casi lo contrario a lo establecido en /etc/postfix/virtual. Reiniciar el servicio postfix.org Utilizar el mandato postmap con los archivos /etc/postfix/canonical. Es decir.2. Jamás se especifique más de un usuario por cuenta de correo electrónico.net luis@otrodominio.com pedro@dominio. /etc/postfix/recipient_canonical.com hugo@otrodominio.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Crear la tabla de cuentas de correo electrónico virtuales de salida.db correspondientes y que surtan efecto los cambios luego de reiniciar el servicio postfix: postmap postmap postmap postmap /etc/postfix/canonical /etc/postfix/recipient_canonical /etc/postfix/sender_canonical /etc/postfix/virtual 63. joel juan pablo pedro hugo luis joel@dominio. /etc/postfix/sender_canonical y /etc/postfix/virtual a fin de generar los archivos . pero especificando un único usuario para cada cuenta de correo electrónico.com pablo@dominio.com juan@dominio.

Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.1 © 1999-2011 Joel Barrios Dueñas. Si utiliza CentOS 4 o White Box Enterprise Linux 4. POP3 y POP3S. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. a través de cualquier medio. Introducción. cyrus-imapd-utils: herramientas de administración. Proyecto que dio inicio en 1994. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. cyrus-sasl: servicio de autenticación. Licencia completa en castellano. • • • • • cirus-imapd: servidor IMAP. Usted es libre de copiar.2. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.2. tiene que dejar bien claro los términos de la licencia de esta obra. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Equipamiento lógico necesario.alcancelibre.web. Instalación a través de yum. Incluye soporte para los protocolos IMAP. Instalación a través de up2date. en la Universidad Carnegie Mellon.edu/cyrus/imapd/ 64. Este formato almacena los datos por partes del sistema de archivos y que solo pueden ser accedidos por el servicio de Cyrus IMAP. y versiones posteriores.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. el servidor Cyrus IMAP se distingue del resto de los equipamientos lógicos con la misma finalidad en que utiliza un formato para los buzones de correo que mejora el rendimiento y escalabilidad del formato Maildir. por entidades con fines de lucro).2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 64.1. Al reutilizar o distribuir la obra. c) Si altera o transforma esta obra. 64. POP3 y POP3S. cyrus-sasl-md5: soporte para autenticación a través de métoos cifrados. o genera una obra derivada. 64. Cómo configurar Cyrus IMAP. cyrus-sasl-plain: soporte para autenticación a través de texto simple. Esto permite gestionar grandes cantidades de datos de forma eficiente y con un intérprete de mandatos para su administración.cmu. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. solo bastará realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario: up2date -i cyrus-imapd cyrus-imapd-utils cyrus-sasl cyrus-sasl-plain cyrus-sasl-md5 484 . IMAP. URL: http://asg. Si se utiliza Red Hat™ Enterprise Linux 4.1. así como soporte para listas de control de acceso y cuotas en la jerarquía de buzones. IMAP. solo se necesita realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario: yum -y install cyrus-imapd cyrus-imapd-utils cyrus-sasl cyrus-sasl-plain cyrus-sasl-md5 64.2. utilizado por otros equipamientos lógicos como Dovecot.

Sin embargo. Para salir del intérprete. solo se ingresa el mandato exit 6. Si ya se cuenta con un grupo de claves de acceso de usuarios dados de alta en SASL-1. la cual se sugiere no deberá tener acceso a intérprete de mandato alguno: useradd -s /sbin/nologin fulano 2. Por tal motivo. Los valores predeterminados permiten su funcionamiento normal. Alta de la cuenta del usuario en el sistema.usuario Para mostrar la lista de buzones existentes. Crear los buzones de correo para el usuario a través del intérprete de mandatos para administración de Cyrus IMAPD. requiere de algunos procedimientos adicionales en relación a otros equipamientos lógicos. POP3 y POP3S a través de métodos cifrados (CRAM-MD5 y DIGEST-MD5) en sistemas con versión de Cyrus IMAP compilada contra SASL-2 (Red Hat™ Enterprise Linux 4. El alta de usuarios a través de este método será diferente a la manera tradicional.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 64.3. Procedimientos. del siguiente modo: cyradm -user cyrus -auth login localhost 5. CentOS 4 o White Box Enterprise Linux 4). se pueden convertir hacia SASL-2 con el mandato dbconverter2. Esto se realiza a través del mandato passwd. debido a que para utilizar el método de autenticación para acceder hacia los servicios IMAP. Cyrus IMAP utilizará SASL. puede mostrarse la lista de los usuarios con clave de acceso a través de SASL-2 utilizando el mandato sasldblistusers2. Asignación de claves de acceso en el sistema para permitir autenticar a través de los métodos PLAIN y LOGIN para autenticar a través de los protocolos POP3 e IMAP: passwd usuario 3. a fin de impedir accesos no autorizados al intérprete de mandatos para administración. Asignación de claves de acceso para autenticar IMAP. requieren utilizar el mandato saslpasswd2 del siguiente modo: saslpasswd2 usuario 4. POP3 y POP3S. La autenticación para IMAP. IMAPS. 485 . del siguiente modo: passwd cyrus 64. del siguiente modo: createmailbox user. cyradm. Puede mostrarse la lista de los usuarios con clave de acceso a través de SASL-1 utilizando el mandato sasldblistusers. el alta de cuentas de usuario de correo deberá de seguir el siguiente procedimiento: 1.1. POP3 y POP3S a través de cualquier mecanismo requiere se active e inicie el servicio de saslauthd del siguiente modo: chkconfig saslauthd on service saslauthd start En el caso en que se haya decidido utilizar métodos cifrados (CRAM-MD5 y DIGEST-MD5). Alta de cuentas de usuario y asignación de claves de acceso. IMAPS. Acceder hacia el intérprete de mandatos para administración de Cyrus IMAPD. se utiliza el mandato listmailbox. Se debe asignar una clave de acceso para el usuario administrador de Cyrus IMAP. IMAPS. Cyrus IMAP no requiere modificar archivo alguno de configuración.3. cyradm.

justo antes DAEMON_OPTIONS(`Port=smtp. Comprobaciones. utilice: /sbin/service cyrus-imapd restart Para detener el servicio cyrus-imapd.3. MAILER(cyrusv2)dnl Tras realizado lo anterior.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 64. Agregar el servicio cyrus-imapd al arranque del sistema. es necesario descomentar/agregar siguientes líneas de configuración en el archivo /etc/mail/sendmail.3.3. justo debajo de MAILER(procmail)dnl. descrito en el RFC 2033).3. como se ejemplificada a continuación. Para hacer que el correo que llega a través de Sendmail sea almacenado en su totalidad en buzones de Cyrus IMAP a través de LMTP (Local Mail Transfer Protocol o Protocolo trasferencia de correo local.2. `FILE /var/lib/imap/socket/lmtp')dnl los de las de Y descomentar/agregar la siguiente línea al final del archivo /etc/mail/sendmail. 486 . en todos los niveles de ejecución (2. define(`confLOCAL_MAILER'. Iniciar. y 5).mc.4. utilice: /sbin/service cyrus-imapd stop 64. 4. Name=MTA')dnl. Envíe un mensaje de correo electrónico utilizando el mandato mail y establezca una conexión entre el cliente y el servidor a través de POP3. se utiliza lo siguiente: /sbin/chkconfig cyrus-imapd on 64. Para iniciar por primera vez el servicio cyrus-imapd. detener y reiniciar el servicio cyrus-imapd. Para hacer que el servicio de cyrus-imapd esté activo con el siguiente inicio del sistema.4. 3. service sendmail restart 64. Integración con Sendmail. `cyrusv2')dnl define(`CYRUSV2_MAILER_ARGS'. utilice: /sbin/service cyrus-imapd start Para hacer que los cambios hechos a la configuración del servicio cyrus-imapd surtan efecto. solo se necesita reiniciar el servicio sendmail.mc.

localdomain To: root@localhost.1). 487 .1) with SMTP id k2IM2RjA003987 for <root@localhost. esta vez estableciendo conexión entre el cliente y el servidor a través de IMAP.1.12-3.13. Adios.254]) by localhost.0..localdomain (localhost. Sat.0.1.RHEL4.1 server ready. Connected to localhost..0.0.localdomain> Subject: Mensaje de prueba From: fulano@localhost.168. . Connection closed by foreign host.localdomain [192.2.12-Invoca-RPM-2.localdomain (127.13. como se ejemplificada a continuación.localdomain Cyrus POP3 v2.localdomain (8. Cliente: Servidor: Repita el procedimiento.2.k2IM2RjA003987@localhost.localdomain Status: O Content-Length: 43 Lines: 2 X-UID: 202 X-Keywords: Hola.0.1 110 Trying 127. 18 Mar 2006 16:02:27 -0600 Message-Id: <200603182203. Este es un mensaje de prueba.localdomain> Received: from localhost. RETR 1 +OK 728 octets Return-Path: <fulano@localhost.Joel Barrios Dueñas Cliente: Servidor: Configuración de Servidores con GNU/Linux Cliente: Servidor: Cliente: Servidor: Cliente: Servidor: Cliente: Servidor: Cliente: Servidor: $ telnet 127. QUIT +OK Logging out. STAT +OK 1 728 LIST +OK 1 messages: 1 728 .0.localdomain>.1/8. 18 Mar 2006 16:03:21 -0600 Date: Sat. +OK localhost. USER fulano +OK PASS clave de accceso +OK Logged in. Escape character is '^]'.

Cliente: Servidor: Cliente: Servidor: 488 . Connected to localhost.1 143 Trying 127.0.RHEL4. x LOGIN fulano clave de acceso x OK Logged in.12-3. * OK [UIDVALIDITY 1100569382] UIDs valid * OK [UIDNEXT 203] Predicted next UID x OK [READ-WRITE] Select completed.0. Adios.1 server ready.2...0. . x SELECT inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. x LOGOUT * BYE Logging out x OK Logout completed.localdomain Cyrus IMAP4 v2.1).0.1.fields (subject)]) * 1 FETCH (FLAGS (\Seen) BODY[HEADER. Connection closed by foreign host.Joel Barrios Dueñas Cliente: Servidor: Configuración de Servidores con GNU/Linux Cliente: Servidor: Cliente: Servidor: Cliente: Servidor: $ telnet 127. Este es un mensaje de prueba. Escape character is '^]'. +OK dovecot ready. * 1 EXISTS * 0 RECENT * OK [UNSEEN 1] First unseen.0.localdomain (127. x FETCH 1 (body[text]) * 1 FETCH (BODY[TEXT] {45} Hola.FIELDS (SUBJECT)] {30} Subject: Mensaje de prueba ) x OK Fetch completed.12-Invoca-RPM-2.0. * OK localhost.2. x FETCH 1 (flags body[header. ) x OK Fetch completed.

debe modificarse el archivo allusers: :include:/etc/mail/allusers /etc/aliases y añadir al final del mismo: 1. allusers del 65.1. ejecutar lo siguiente: awk -F: '$3 > 500 { print $1 }' /etc/passwd > /etc/mail/allusers 2. si se quiere añadir a todos los usuarios del sistema. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. 3. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. b) No puede utilizar esta obra para fines comerciales. Lo primero será generar un archivo en el sistema. A continuación. 489 .2. tratarán de enviar correo a este alias en el servidor. Puede editarse el archivo /etc/mail/allusers y añadir individualmente cada usuario que se desee conforme esa lista o bien. Al terminar sólo debe ejecutarse el mandato newaliases o bien reiniciar el servicio de Sendmail (el guión de inicio se encarga de hacer todo lo necesario).org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. como por ejemplo / etc/mail/allusers. tiene que dejar bien claro los términos de la licencia de esta obra. Seguramente quienes se dedican a enviar correo masivo no solicitado o correo chatarra (Spam). Usted es libre de copiar. No les facilite el trabajo a esas personas y trate de utilizar un alias ofuscado o en clave. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. bastará con enviar un mensaje de correo electrónico a la cuenta servidor. Procedimientos 1. c) Si altera o transforma esta obra. o genera una obra derivada. Al reutilizar o distribuir la obra. Para probar. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. 65.1 © 1999-2011 Joel Barrios Dueñas. Apéndice: Enviar correo a todos los usuarios del sistema Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Acerca de la seguridad Evite a toda costa utilizar allusers o palabras muy obvias como alias de correo para enviar a todas las cuentas.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 65. Éste puede localizarse en cualquier lugar del sistema. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Ejemplo: 8jj37sjei876.alcancelibre. el cual tendrá como contenido una lista de los usuarios del sistema a los que se quiere enviar un mensaje.

66. solo se necesita realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario: yum -y install vacation 66.2. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.org/al/server/4/ Si se utiliza Red Hat™ Enterprise Linux 4.1. Vacation es un pequeño pero útil programa que permite configurar cuentas de correo electrónico para que respondan automáticamente con un mensaje que indica que el usuario se encuentra de vacaciones.2.2.org/al/server/AL-Server. c) Si altera o transforma esta obra. solo bastará realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario: 490 . Proceda a configurar el depósito YUM de Alcance Libre que incluye el paquete modificado de squid con soporte para direcciones MAC: cd /etc/yum. vim /etc/sysconfig/rhn/sources Añada el siguiente contenido.1 © 1999-2011 Joel Barrios Dueñas.repo cd - Si utiliza CentOS 5. 66. o genera una obra derivada. yum AL-Server http://www.d/ wget -N http://www. Equipamiento lógico necesario. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.2. 66. b) No puede utilizar esta obra para fines comerciales.repos. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Cómo instalar y configurar el programa vacation para responder avisos automáticos en vacaciones.alcancelibre.alcancelibre. Al reutilizar o distribuir la obra. Instalación a través de up2date. Edite el archivo /etc/sysconfig/rhn/sources. Usted es libre de copiar. tiene que dejar bien claro los términos de la licencia de esta obra. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.1.alcancelibre. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos. Intrucción. Red Hat™ Enterprise Linux 5 o White Box Enterprise Linux 5.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 66. Instalación a través de yum.

guarde cambios y salga de vim pulsando la combinación de teclas :x y luego la tecla ⏎ (ENTER). From: como se llame <usuaario@mi-dominio. evitando utilizar acentos y la letra ñ: Subject: Estoy de vacaciones. Pulse la tecla Esc. Reciba un cordial saludo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux up2date -i vacation 66. "|/usr/bin/vacation usuario" Pulse la tecla Esc.3. Asigne como intérprete de mandatos /bin/bash o bien /bin/sh al usuario: usermod -s /bin/bash usuario Cambie a la sesión del usuario: su -l usuario Utilice vim para crear el archivo ~/. Es indispensable que el usuario tenga acceso al intérprete de mandatos a fin de poder utilizar el programa vacation. 491 .vacation. Coloque dentro del archivo un contenido similar al siguiente. Añada el siguiente contenido.msg: vim ~/. Atentamente Lic.mx> Reply-To: como se llame <usuaario@mi-dominio.vacation. tomando en cuenta que la omisión de la barra invertida (\) al inicio hará que el programa vacation falle irremediablemente: \usuario. guarde cambios y salga de vim pulsando la combinación de teclas :x y luego la tecla ⏎ (ENTER). como se llame NOTA: Mensaje *intencionalmente* enviado sin acentos.com. por el momento no me encuentro en la oficina. Utilice vim para crear el archivo ~/.com.forward: vim ~/.msg Pulse la tecla Insert.forward Pulse la tecla Insert. estoy de regreso el proximo DD de MMMM de AAAA.mx> Buen dia. Procedimientos.

vacation. exit A partir de este momento. usermod -s /sbin/nologin usuario 492 . chmod 600 ~/. solo es necesario ingresar nuevamente al sistema como root y eliminar o renombrar el archivo /home/usuario/.forward. a fin de iniciar el programa. Para desactivar el programa. vacation -I Salga de la sesión del usuario.forward Como usuario ejecute el siguiente mandato. /bin/false o /sbin/nologin como intérprete de mandatos para el usuario.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Cambie los permisos del archivo para que solo permitan la lectura y escritura al usuario propietario de éste.forward /home/usuario/. será respondido automáticamente con un aviso que incluirá el texto definido en el archivo /home/usuario/. todo el correo electrónico que se envié a la cuenta del usuario. mv /home/usuario/.msg.forward.old Y definir de nuevo /dev/null.

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

67. Cómo configurar clamav-milter.
Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org/

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

67.1. Introducción.
67.1.1. Acerca de clamav-milter.
Clamav-milter es un componente para añadir (Plug-in) para la biblioteca de filtros de correo (libmilter) de Sendmail, que se encarga de hacer pasar todo el correo entrante, incluyendo todo lo que se reciba a través de rmail/UUCP, a través del ClamAV, que a su vez es un poderoso, y robusto motor, con licenciamiento libre, para la detección de gusanos, troyanos, y virus. Verifica el correo electrónico durante la conexión con el servidor de correo que remite éste ultimo, y lo rechaza automáticamente si éste incluye algún gusanos, troyanos o virus. Al igual que clamav-milter, el cual es utilizado para la filtración de Spam, representa una excelente alternativa pues tiene un bajo consumo de recursos de sistema, haciéndolo idóneo para servidores con sustento físico obsoleto, o donde otras aplicaciones tiene mayor prioridad en la utilización de recursos de sistema. URL: http://www.clamav.net/

67.1.2. Acerca de ClamAV.
ClamAV es un conjunto de herramientas antivirus, libre, y de código fuente abierto, que tiene las siguiente características:
• • • • • • • Distribuido bajo los términos de la Licencia Publica General GNU versión 2. Cumple con las especificaciones de familia de estándares POSIX (Portable Operating System Interface for UNIX o interfaz portable de sistema operativo para Unix). Exploración rápida. Detecta más de 720 mil virus, gusanos, y troyanos, incluyendo virus para MS Office. Capacidad para examinar contenido de archivos ZIP, RAR, Tar, Gzip, Bzip2, MS OLE2, MS Cabinet, MS CHM, y MS SZDD. Soporte para explorar archivos comprimidos con UPX, FSG, y Petite. Avanzada herramienta de actualización con soporte para firmas digitales, y consultas basadas sobre DNS.

URL: http://www.clamav.net/

493

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

67.2. Equipamiento lógico necesario.
• • • sendmail (previamente configurado) make clamav • • • sendmail-cf m4 clamav-milter

67.2.1. Creación del usuario para ClamAV.
De modo predeterminado, en los paquetes RPM basados sobre los disponibles para Fedora, el usuario para ClamAV se asigna a través de los mandatos fedora-groupadd, y fedora-useradd el UID, y GID 4 en el sistema. A fin de prevenir un conflicto de UID/GID con otros usuarios, y grupos de sistema, se recomienda crear previamente al grupo, y usuario correspondientes para ClamAV:
groupadd -r clamav useradd -r -s /sbin/nologin -d /var/lib/clamav -M -c 'Clamav Antivirus' -g clamav clamav

67.2.2. Instalación a través de yum.
Si dispone de un servidor con CentOS 5, y 6 o Red Hat™ Enterprise Linux 5, y 6, puede utilizar el el almacén YUM de Alcance Libre para servidores en producción, descargando el archivo http://www.alcancelibre.org/al/server/AL-Server.repo dentro del directorio /etc/yum.repos.d/:
cd /etc/yum.repos.d/ wget -N http://www.alcancelibre.org/al/server/AL-Server.repo cd

Este archivo, que se guarda como /etc/yum.repos.d/AL-Server.repo, debe tener el siguiente contenido:
[AL-Server] name=AL Server para Enterprise Linux $releasever mirrorlist=http://www.alcancelibre.org/al/el$releasever/al-server gpgcheck=1 gpgkey=http://www.alcancelibre.org/al/AL-RPM-KEY

La instalación a través del mandato yum requiere utilizar lo siguiente:
yum -y install clamav-milter clamav-milter-sysv clamav-data-empty clamav-update clamavscanner clamav-scanner-sysvinit

67.3. Procedimientos.
67.3.1. SELinux, y el servicio clamav-milter.
67.3.1.1. CentOS 5, y Red Hat Enterprise Linux 5.
En CentOS 5 ,y Red Hat Enterprise Linux 5 se debe crear una política para permitir al servicio clamd.scan utilizar JIT, y la función execmem(). Genere un nuevo directorio denominado /usr/share/selinux/packages/clamd:
494

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

mkdir /usr/share/selinux/packages/clamd

Cambiarse al directorio /usr/share/selinux/packages/clamd:
cd /usr/share/selinux/packages/clamd

Descargar el archivo http://www.alcancelibre.org/linux/secrets/clamd.te:
wget http://www.alcancelibre.org/linux/secrets/clamd.te

Editar el archivo recién descargado:
vim clamd.te

Asegurarse que tenga el siguiente contenido:
module clamd 1.0; require { type clamd_t; class process execmem; } #============= clamd_t ============== allow clamd_t self:process execmem;

Lo anterior fue obtenido de la salida del mandato cat /var/log/audit/audit.log|grep audit| audit2allow -m clamd>clamd.te en un sistema donde SELinux impedía a clamav-milter utilizar la función execmem(). A continuación, se genera un el archivo de módulo para SELinux (clamd.mod) utilizando el mandato checkmodule de la siguiente forma:
checkmodule -M -m -o clamd.mod clamd.te

Luego, se procede a empaquetar el archivo clamd.mod como el archivo clamd.pp:
semodule_package -o clamd.pp -m clamd.mod

Finalmente se vincula el archivo clamd.pp obtenido con las políticas actuales de SELinux, y se cargan éstas en el núcleo en ejecución:
semodule -i /usr/share/selinux/packages/clamd/clamd.pp

Una vez cargadas las nuevas políticas, se pueden eliminar los archivos clamd.te, y clamd.mod, pues solo será necesario que exista el archivo binario clamd.pp. A fin de evitar realizar todo lo anterior, permitir que el servicio clamd.scan pueda utilizar la función execmem(), y que SELinux impida las conexiones del servicio clamav-milter hacia el servicio clamd.scan, utilice el siguiente mandato:

495

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

setsebool -P clamd_disable_trans 1

Para que SELinux permita al servicio clamav-milter funcionar normalmente, y que permita realizar la revisión de correo electrónico, utilice el siguiente mandato:
setsebool -P clamscan_disable_trans 1

Para que SELinux permita al mandato freshclam funcionar normalmente, y que permita actualizar la base de datos de firmas digitales, utilice el siguiente mandato:
setsebool -P freshclam_disable_trans 1

67.3.1.2. CentOS 6, y Red Hat Enterprise Linux 6.
En CentOS 6, y Red Hat Enterprise Linux 6 solo existe una política a configurar, y es clamd_use_jit, la cual permite al servicio clamd.scan utilizar JIT, y la función execmem().
setsebool -P clamd_use_jit on

67.3.2. Requisitos previos.
Se requiere un servidor de correo con Sendmail, previamente configurado, y funcionando para enviar, y recibir correo electrónico. Para más detalles al respecto, consultar el documento titulado «Configuración básica de Sendmail (Parte I).».

67.3.3. Archivo /etc/mail/sendmail.mc.
Es necesario agregar el siguiente contenido en el archivo /etc/mail/sendmail.mc, justo arriba de la línea MAILER(smtp)dnl.
INPUT_MAIL_FILTER(`clamav', `S=local:/var/run/clamav-milter/clamav.sock, F=, T=S:4m;R:4m')dnl define(`confINPUT_MAIL_FILTERS', `clamav')dnl

Si se combina con Spamassassin Milter, quedaría del siguiente modo:
INPUT_MAIL_FILTER(`clamav', `S=local:/var/run/clamav-milter/clamav.sock, F=, T=S:4m;R:4m')dnl INPUT_MAIL_FILTER(`spamassassin', `S=unix:/var/run/spamass-milter/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl define(`confMILTER_MACROS_CONNECT',`t, b, j, _, , , ')dnl define(`confMILTER_MACROS_HELO',`s, , , , , ')dnl define(`confINPUT_MAIL_FILTERS', `spamassassin,clamav')dnl

67.3.4. Configuración.
Clamav-milter depende totalmente de la base de datos de ClamAV. El funcionamiento estándar, que consiste en rechazar correo electrónico que contenga virus, y otros programas malignos, funciona sin necesidad de parámetros adicionales. Las banderas de inicio para clamav-milter están definidas en el archivo /etc/sysconfig/clamav-milter, mismo que permite funcionar normalmente sin necesidad de modificar un solo parámetro, a menos que se necesite especificar alguna opción avanzada definida en la página de manual de clamav-milter.
man clamav-milter 496

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

67.3.5. Iniciar, detener, y reiniciar el servicio clamav-milter.
Desde la versión 0.95, ClamAV-milter requiere esté funcionando clamdscan como servicio. Los paquetes de ClamAV incluyen lo necesario a través de clamav-scanner. Solo se requiere agregar al arranque del sistema, y se inicia los servicios clamd.scan, y clamav-milter del siguiente modo, y orden:
chkconfig clamd.scan on service clamd.scan start chkconfig clamav-milter on service clamav-milter start

El archivo /etc/freshclam.conf de los paquetes distribuidos por Alcance Libre ya incluye las modificaciones necesarias para permitir el funcionamiento del mandato freshclam. Sin embargo, si se utilizan paquetes para Fedora, es necesario editar este archivo, y comentar o eliminar la línea 9, que incluye simplemente la palabra inglesa Example, y que de otro mod impediría utilizar el mandato freshclam:
## ## Example config file for freshclam ## Please read the freshclam.conf(5) manual before editing this file. ## # Comment or remove the line below. # Example

El archivo /etc/sysconfig/freshclam de los paquetes distribuidos por Alcance Libre ya incluye las modificaciones necesarias para permitir la actualización automática de la base de datos de ClamAV. Si se utilizan paquetes de Fedora, y a fin de mantener actualizada la base de datos de firmas digitales, es necesario editar el archivo /etc/sysconfig/freshclam con el objeto de permitir las actualizaciones automáticas:
### !!!!! REMOVE ME !!!!!! ### REMOVE ME: By default, the freshclam update is disabled to avoid ### REMOVE ME: network access without prior activation # FRESHCLAM_DELAY=disabled-warn # REMOVE ME

Antes de poner en operación el servidor, es recomendable actualizar manualmente, y de manera inmediata, la base de datos de firmas utilizando el mandato freshclam, desde cualquier terminal como root.
freshclam

Al terminar, considerando que está instalado el paquete sendmail-mc, el cual permite reconfigurar Sendmail a partir del archivo /etc/mail/sendmail.mc, se debe reiniciar el servicio sendmail para que surtan efectos los cambios.
service sendmail restart

497

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

68. Cómo configurar spamass-milter.
Autor: Joel Barrios Dueñas Correo electrónico: darkshram@gmail.com sitio de Red: http://www.alcancelibre.org/

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

68.1. Introducción.
68.1.1. Requisitos previos.
Se requiere un servidor de correo con Sendmail, previamente configurado y funcionando para enviar y recibir correo electrónico. Para más detalles al respecto, consultar el documento titulado «Configuración básica de Sendmail». Se requiere además leer y estudiar previamente la información del documento titulado «Cómo instalar y configurar Spamassassin.»

68.1.2. Acerca de spamass-milter.
Spamass-milter es un componente adicional (Plug-in) para la biblioteca de filtros de correo (libmilter) de Sendmail, que se encarga de hacer pasar todo el correo entrante, incluyendo todo lo que se reciba a través de rmail/UUCP, a través de SpamAssassin, que a su vez es un poderoso y robusto componente de filtrado de correo. Representa una excelente alternativa pues tiene un bajo consumo de recursos de sistema, haciéndolo idóneo para servidores con sustento físico obsoleto, o donde otras aplicaciones tiene mayor prioridad en la utilización de recursos de sistema. URL: http://savannah.nongnu.org/projects/spamass-milt/

68.1.3. Acerca de SpamAssassin.
SpamAssassin es una implementación que utiliza un sistema de puntuación, basado sobre algoritmos de tipo genético, para identificar mensajes que pudieran ser sospechosos de ser correo masivo no solicitado, añadiendo cabeceras a los mensajes de modo que puedan ser filtrados por el cliente de correo electrónico o MUA (Mail User Agent). URL: http://spamassassin.apache.org/

68.2. Equipamiento lógico necesario.
• • • sendmail (previamente configurado) make spamassassin • • • sendmail-cf m4 spamass-milter

498

Joel Barrios Dueñas • • perl-Mail-SPF pyzor

Configuración de Servidores con GNU/Linux • perl-Razor-Agent

68.2.1. Instalación a través de yum.
Si dispone de un servidor con CentOS 4 o 5 o bien Red Hat™ Enterprise Linux 4 o 5, puede utilizar el depósito yum de Alcance Libre para servidores en producción:
[AL-Server] name=AL Server para Enterprise Linux $releasever mirrorlist=http://www.alcancelibre.org/al/el$releasever/al-server gpgcheck=1 gpgkey=http://www.alcancelibre.org/al/AL-RPM-KEY

La instalación solo requiere utilizar lo siguiente:
yum -y install spamass-milter perl-Mail-SPF perl-Razor-Agent pyzor

68.3. Procedimientos.
68.3.1. SELinux y el servicio spamass-milter.
A fin de que SELinux permita al servicio spamassassin conectarse a servicios externos, como razor o Pyzor, utilice el siguiente mandado:
setsebool -P spamassassin_can_network 1

A fin de que SELinux permita a los usuarios del sistema utilizar spamassassin desde sus directorios de inicio, utilice el siguiente mandato:
setsebool -P spamd_enable_home_dirs 1

Si se desea desactivar toda gestión de SELinux sobre los servicios spamass-milter y spamassassin, haciendo que todo lo anterior pierda sentido y eliminando la protección que brinda esta implementación, utilice los siguientes mandatos:
setsebool -P spamd_disable_trans 1 setsebool -P spamass_milter_disable_trans 1

68.3.1.1. Ajustes adicionales.
Actualizaciones recientes en las políticas de SELinux impedirán que el servicio spamass-milter pueda siquiera iniciar. Por lo tanto, es imperativo instalar las políticas de SELinux correspondientes. Genere un nuevo directorio denominado /usr/share/selinux/packages/spamassmilter:
mkdir /usr/share/selinux/packages/spamassmilter

Cambiarse al directorio /usr/share/selinux/packages/spamassmilter:
499

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

cd /usr/share/selinux/packages/spamassmilter

Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, http://www.alcancelibre.org/linux/secrets/el5/spamassmilter.te:

descargar

el

archivo

wget http://www.alcancelibre.org/linux/secrets/el5/spamassmilter.te

Editar el archivo recién descargado:
vim spamassmilter.te

Asegurarse que tenga el siguiente contenido:

module spamassmilter 1.0; require { type spamass_milter_data_t; type spamass_milter_t; type pyzor_t; type initrc_var_run_t; type spamd_t; class dir { search read create write getattr remove_name add_name }; class file { read create ioctl write getattr unlink append }; } #============= pyzor_t ============== allow pyzor_t spamass_milter_data_t:dir { write search create getattr add_name }; allow pyzor_t spamass_milter_data_t:file { read write create getattr }; #============= spamass_milter_t ============== allow spamass_milter_t initrc_var_run_t:file { write getattr }; #============= spamd_t ============== allow spamd_t spamass_milter_data_t:dir { write search read remove_name create getattr add_name }; allow spamd_t spamass_milter_data_t:file { write getattr read create unlink ioctl append };

Lo anterior fue obtenido de la salida del mandato cat /var/log/audit/audit.log|grep audit| audit2allow -m spamassmilter>spamassmilter.te en un sistema CentOS 5 donde SELinux impedía a spamass-milter funcionar correctamente. Si utiliza CentOS 6 o Red Hat Enterprise Linux 6, http://www.alcancelibre.org/linux/secrets/el6/spamassmilter.te: descargar el archivo

wget http://www.alcancelibre.org/linux/secrets/el6/spamassmilter.te

Editar el archivo recién descargado:
vim spamassmilter.te

Asegurarse que tenga el siguiente contenido:

module spamassmilter 1.0; require { type spamass_milter_data_t;

500

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

type spamass_milter_t; type pyzor_t; type initrc_var_run_t; type spamc_t; type spamd_t; class dir { search read create write open getattr remove_name add_name }; class file { read create ioctl write open getattr unlink append }; } #============= pyzor_t ============== allow pyzor_t spamass_milter_data_t:dir { write search create getattr add_name }; allow pyzor_t spamass_milter_data_t:file { read write create getattr }; #============= spamass_milter_t ============== allow spamass_milter_t initrc_var_run_t:file { write getattr }; #============= spamd_t ============== allow spamd_t spamass_milter_data_t:dir { write open search read remove_name create getattr add_name }; allow spamd_t spamass_milter_data_t:file { write open getattr read create unlink ioctl append }; #============= spamc_t ============== allow spamc_t spamass_milter_data_t:file open;

Lo anterior fue obtenido de la salida del mandato cat /var/log/audit/audit.log|grep audit| audit2allow -m spamassmilter>spamassmilter.te en un sistema CentOS 6 donde SELinux impedía a spamass-milter funcionar correctamente. A continuación, se genera un el archivo de módulo para SELinux (spamassmilter.mod) utilizando el mandato checkmodule de la siguiente forma:
checkmodule -M -m -o spamassmilter.mod spamassmilter.te

Luego, se procede spamassmilter.pp:

a

empaquetar

el

archivo

spamassmilter.mod

como

el

archivo

semodule_package -o spamassmilter.pp -m spamassmilter.mod

Finalmente se vincula el archivo spamassmilter.pp obtenido con las políticas actuales de SELinux y se cargan éstas en el núcleo en ejecución:
semodule -i /usr/share/selinux/packages/spamassmilter/spamassmilter.pp

Una vez cargadas las nuevas políticas, se pueden eliminar los archivos spamassmilter.te y spamassmilter.mod, pues solo será necesario que exista el archivo binario spamassmilter.pp.

68.3.2. Archivo /etc/mail/sendmail.mc.
Editar el archivo /etc/mail/sendmail.mc:
vim /etc/mail/sendmail.mc

Es necesario agregar el siguiente contenido en el archivo /etc/mail/sendmail.mc, justo arriba de MAILER(smtp)dnl.
dnl MASQUERADE_DOMAIN(localhost)dnl

501

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl dnl MASQUERADE_DOMAIN(mydomain.lan)dnl INPUT_MAIL_FILTER(`spamassassin', `S=unix:/var/run/spamass-milter/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl define(`confMILTER_MACROS_CONNECT',`t, b, j, _, {daemon_name}, {if_name}, {if_addr}')dnl define(`confMILTER_MACROS_HELO',`s, {tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}')dnl define(`confMILTER_MACROS_ENVRCPT',`r, v, Z')dnl MAILER(smtp)dnl MAILER(procmail)dnl dnl MAILER(cyrusv2)dnl

Si se combina con ClamAV Milter, quedaría del siguiente modo:
dnl MASQUERADE_DOMAIN(localhost)dnl dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl dnl MASQUERADE_DOMAIN(mydomain.lan)dnl INPUT_MAIL_FILTER(`clamav', `S=local:/var/run/clamav-milter/clamav.sock, F=, T=S:4m;R:4m')dnl INPUT_MAIL_FILTER(`spamassassin', `S=unix:/var/run/spamass-milter/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl define(`confMILTER_MACROS_CONNECT',`t, b, j, _, {daemon_name}, {if_name}, {if_addr}')dnl define(`confMILTER_MACROS_HELO',`s, {tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}')dnl define(`confMILTER_MACROS_ENVRCPT',`r, v, Z')dnl define(`confINPUT_MAIL_FILTERS', `spamassassin,clamav')dnl MAILER(smtp)dnl MAILER(procmail)dnl dnl MAILER(cyrusv2)dnl

68.3.3. Archivo /etc/sysconfig/spamass-milter.
Editar el archivo /etc/sysconfig/spamass-milter:
vim /etc/sysconfig/spamass-milter

El archivo /etc/sysconfig/spamass-milter incluye el siguiente contenido:
### Override for your different local config #SOCKET=/var/run/spamass-milter/spamass-milter.sock ### Standard parameters for spamass-milter are: ### -P /var/run/spamass-milter.pid (PID file) ### ### Note that the -f parameter for running the milter in the background ### is not required because the milter runs in a wrapper script that ### backgrounds itself ### ### You may add another parameters here, see spamass-milter(1) #EXTRA_FLAGS="-m -r 15"

De forma predeterminada, a través del parámetro -m, spamass-milter desactiva la modificación del asunto del mensaje (Subject:) y la cabecera Content-Type:, lo cual es conveniente para añadir cabeceras y se procesado posteriormente, y, a través del parámetro -r 15, rechaza los mensajes de correo electrónico cuando éstos tienen asignados 15 puntos o más. Se pueden modificar el número de puntos mínimos para rechazar directamente el correo electrónico sospechoso de ser Spam incrementando el valor para el parámetro -r. La recomendación es asignar un valor mayor al definido en el archivo /etc/mail/spamassassin/local.cf. Si, por ejemplo, se establece en éste último required_hits 4.5 y rewrite_header Subject {Spam?} y en el archivo /etc/sysconfig/spamass-milter se establece EXTRA_FLAGS="-m -r 10", ocurrirá lo siguiente:
502

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

1. Todos los mensajes marcados con 4.4 puntos o menos, se entregarán inmediatamente al usuario sin modificaciones visibles. 2. Todos los mensajes marcados desde 4.5 hasta 9.9 puntos se entregarán al usuario con el asunto modificado añadiendo a éste {Spam?} al inicio. 3. Todos los mensajes que estén marcados con 10.0 puntos o más serán rechazados automáticamente. Basado sobre el ejemplo mencionado, el contenido del archivo /etc/sysconfig/spamass-milter quedaría del siguiente modo:
### Override for your different local config #SOCKET=/var/run/spamass-milter/spamass-milter.sock ### Standard parameters for spamass-milter are: ### -P /var/run/spamass-milter.pid (PID file) ### ### Note that the -f parameter for running the milter in the background ### is not required because the milter runs in a wrapper script that ### backgrounds itself ### ### You may add another parameters here, see spamass-milter(1) EXTRA_FLAGS="-m -r 10"

68.3.4. Archivo /etc/procmailrc.
Si se desea que el correo marcado con una mínima puntuación para ser considerado Spam (igual o superior al valor definido para el parámetro required_hits del archivo /etc/mail/spamassassin/local.cf) se entregue en una carpeta diferente al buzón de entrada, para ser consultado a través de un webmail (Squirrelmail o GroupOffice) o bien un cliente con soporte IMAP (Microsoft Outlook, GNOME Evolution o Mozilla Thunderbird), se puede crear el archivo /etc/procmailrc:
vim /etc/procmailrc

Y añadirle el siguiente contenido:
# Hacer pasar el correo por spamassassin :0fw | /usr/bin/spamc # Mover mensajes positivos a Spam hacia la capeta ~/mail/Spam del usuario :0: * ^X-Spam-Status: Yes $HOME/mail/Spam

Lo anterior define una regla condicionada a que la cabecera del mensaje incluya X-Spam-Status: Yes, el cual es agregado por SpamAssassin cuando hay casos que superan el mínimo de puntos para ser considerado Spam, de modo que todo correo que incluya esta cabecera será almacenado en la carpeta mail/Spam propiedad del usuario a quien sea destinado el mensaje. Al estar en /etc/procmailrc, esta regla se aplica a todas la cuentas de usuario en el servidor. Combinado con todo lo anterior, ocurrirá lo siguiente:

503

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

1. Todos los mensajes marcados con 4.4 puntos o menos, se entregarán inmediatamente al usuario sin modificaciones visibles. 2. Todos los mensajes marcados desde 4.5 hasta 9.9 puntos se entregarán al usuario con el asunto modificado añadiendo a éste {Spam?} al inicio y se almacenarán en la capeta ~/mail/Spam del usuario. 3. Todos los mensajes que estén marcados con 10.0 puntos o más serán rechazados automáticamente.

Archivo /etc/sysconfig/spamassassin.
A fin de que spamass-milter y spamassassin trabajen juntos, es necesario exista el directorio de configuración para el usuario sa-milt que se utilizará para iniciar spamd, el cual corresponde al servicio spamassassin. Por lo general, este directorio se crea automáticamente al instalar el paquete spamassassin. Este directorio debe pertenecer al usuario sa-milt y grupo sa-milt.
chown -R sa-milt:sa-milt /var/lib/spamassassin

Se edita el archivo /etc/sysconfig/spamassassin:
vim /etc/sysconfig/spamassassin

Y se añaden las opciones -u sa-milt -x --virtual-config-dir=/var/lib/spamassassin, las cuales especifican que se iniciará como el usuario sa-milt, que se desactivará la configuración por usuario y que se utilizará /var/lib/spamassassin como directorio virtual de configuración. De tal modo, el archivo debe quedar de la siguiente forma:
# Options to spamd SPAMDOPTIONS="-d -c -m5 -H -u sa-milt -x --virtual-config-dir=/var/lib/spamassassin"

68.3.5. Iniciar, detener y reiniciar el servicio spamass-milter.
Se agrega al arranque del sistema y se inicia el servicio spamassasin del siguiente modo:
chkconfig spamassassin on service spamassassin start

El servicio spamass-milter se agrega al arranque del sistema y se inicia del siguiente modo:
chkconfig spamass-milter on service spamass-milter start

Al terminar, considerando que está instalado el paquete sendmail-mc, el cual permite aplicar cambios en la configuración Sendmail a partir del archivo /etc/mail/sendmail.mc, se debe reiniciar el servicio sendmail para que surtan efectos los cambios realizado en el archivo mencionado.
service sendmail restart 504

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

A fin de mantener actualizado el juego de reglas y filtros de Spamassassin, es conveniente actualizar éstos de vez en cuando, a lo sumo una o dos veces al mes. Los juegos de reglas y filtros de Spamassassin realmente sufren pocos cambios a lo largo del año y se almacenan en un subdirectorio dentro de /var/lib/spamassassin/. Solo es necesario conservar el sub-directorio con la versión más reciente. El siguiente mandato realizará la consulta y actualización de reglas y filtros de Spamassassin y reiniciará el servicio solamente si se descargó una actualización:
sa-update && service spamassassin restart

505

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

69. Cómo configurar un servidor NIS
Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org/

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de auto