You are on page 1of 727

Configuración De Servidores Con GNU/Linux Edición Octubre 2011

21 De Octubre De 2011

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.Cómo optimizar 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

13.Cifrado de particiones con LUKS.....................................................................147
13.1.Introducción...................................................................................................................... 147 13.2.Equipamiento lógico necesario.........................................................................................147 13.3.Procedimientos................................................................................................................. 147

14.Cómo configurar y utilizar Sudo......................................................................150

14.1.Introducción...................................................................................................................... 150
14.1.1.Historia..................................................................................................................................... 150

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

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

14.4.Candados de seguridad.................................................................................................... 152

10

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

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

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

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

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

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

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

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

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

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

18.2.Procedimientos................................................................................................................. 196 18.3.Bibliografía....................................................................................................................... 200

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

19.2.Procedimientos................................................................................................................. 202

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

20.4.Ejemplos........................................................................................................................... 209
11

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

20.4.1.Ejemplos de permisos regulares............................................................................................... 209 20.4.2.Ejemplos de permisos especiales............................................................................................. 210

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

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

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

22.Creando depósitos yum..................................................................................215
22.1.Introducción...................................................................................................................... 215 22.2.Procedimientos................................................................................................................. 215

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

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

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

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

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

26.Cómo instalar y utilizar ClamAV en CentOS....................................................241
26.1.Introducción...................................................................................................................... 241
26.1.1.Acerca de ClamAV.................................................................................................................... 241

12

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

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

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

27.Cómo asignar cuotas de disco en GNU/Linux..................................................245

27.1.Introducción...................................................................................................................... 245
27.1.1.Acerca de las cuotas de disco................................................................................................... 245 27.1.2.Acerca de Inodos...................................................................................................................... 245 27.1.3.Acerca de Bloques.................................................................................................................... 245

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

27.3.Procedimientos................................................................................................................. 246
27.3.1.Edquota.................................................................................................................................... 247

27.4.Comprobaciones............................................................................................................... 249

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

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

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

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

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

Ejercicios.................................................................................................................................. 270
30.2.9.Rutas estáticas......................................................................................................................... 270 30.2.10.Ejercicio: Direcciones IP virtuales........................................................................................... 273

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

32.Cómo configurar acoplamiento de tarjetas de red (bonding).........................282
13

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

32.1.Introducción...................................................................................................................... 282 32.2.Procedimientos................................................................................................................. 282
32.2.1.Archivo de configuración /etc/modprobe.conf........................................................................... 282 32.2.2.Archivo de configuración /etc/sysconfig/network-scripts/bond0................................................284 32.2.3.Iniciar, detener y reiniciar el servicio network.......................................................................... 285

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

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

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

33.3.Bibliografía....................................................................................................................... 292

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

34.2.Procedimientos................................................................................................................. 293

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

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

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

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

36.2.Procedimientos................................................................................................................. 299

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

37.2.Procedimientos................................................................................................................. 304

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

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

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

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

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

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

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

.3...................3....2...........3......................................................417 56....................................................................................................confMAX_DAEMON_CHILDREN........................................Dominios a administrar........Antes de continuar......................Modificaciones necesarias en el muro cortafuegos.....8........ 452 59.......Configuración simple para Antivirus y Antispam........Añadir al inicio del sistema e iniciar servicios dovecot..................................................3....Usuarios Virtuales.................................................. ................................................1..................................................................... 454 DSA.............Comprobaciones...3....................................................2...........................................................................................................................................................................................................................3......confBAD_RCPT_THROTTLE....................Alta de cuentas de usuario.......................1.............................4...3.......................4. 419 56............Acerca 57................................Acerca 57.................................................................. 432 OpenSSL..............................................................................................................................................418 56.....3...........................................5...................................3..2.................................Acerca 60...............................1.....................................Alias de la cuenta de root.........................4....1.........................Configuración Mozilla Thunderbird........................................2............3.........................Redundancia del servidor de correo.......2.1............................................................................................ y Cyrus SASL...........................3....................... 433 57...Acerca 60..............1. 437 57................Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 56........................................................confMAX_HEADERS_LENGTH...............2......... 438 57............ 443 58..3..Verificando el servicio...................................................................Lecturas posteriores..................................................................6................................................432 57.....................2.......................Servidor de correo intermediario........................................... 443 58...............5.................. 448 58......................................... y asignación de claves de acceso...........................................2....2. 452 59.....confMAX_RCPTS_PER_MESSAGE.......................................... 422 56............................1...............1................... 451 59...............Configuración avanzada de Sendmail................ 446 58..... 435 57.........................................2..........................Configuración de Dovecot....427 56....3................1...........9................................confCONNECTION_RATE_THROTTLE................................2............2.................................Procedimientos..1...............................Introducción......................430 56...confMAX_MESSAGE_SIZE..5...................3.......................................5........Configuración de GNOME Evolution................1...........4...........................3.....6...........................3.................... 449 59......................... 455 RSA.................................confPRIVACY_FLAGS........................Definiendo Sendmail como agente de transporte de correo predeterminado..........................1.. 438 57.......2...........7...........1.........Configuración de Dovecot................ 445 58...................Introducción...........................2.................................................................. 417 56................Encaminamiento de dominios.................................................... 433 57....................................................................2..............Cómo instalar y configurar Postfix y Dovecot con soporte para TLS y autenticación.....................509.........Utilizando mutt........ 448 58... 421 56.... 451 59...........................................................1....3.................................. 432 57............................454 60....Funciones............................................................................................3............................................................................................................3......................................................1.......................Acerca de de de de DSA.........................................2....Configuración de funciones de Sendmail.....Acerca 60................................................ 452 59........Utilizando nc...........................Introducción.................1......................................1.1.........................................................................................................5.................................................. 454 Postfix.........Generando firma digital y certificado................................2..............................1....3.....................451 59...Configuración de Sendmail...2............. 452 59... 431 57..............2............ y sendmail.... 454 SASL................................................................................Acerca 57............................................................................................................................................................3................................................................................... 432 X.... 446 58.. 455 19 .......... 455 X....................... .....................................6............................................ 451 59.................... 453 60.....7..................5.................................Acerca 60..........Opciones avanzadas de seguridad para Sendmail................................................ 445 58................ 427 56.............................4.........Pruebas de envío de correo.Control de acceso.....................Cómo configurar Sendmail y Dovecot con soporte SSL/TLS........................................................ 419 56..............1.......................................................................443 58........................................................1....................................................2........... 433 57..........509............................ 440 58...................................... 426 56.............5..........................................................................Acerca de de de de de de 60................................ 432 RSA............Procedimientos.....1................................................... 451 59.............................Acerca 60............4............................2..... 454 Dovecot....

...........3.462 60............................Procedimientos.............................................................................................. 480 63..............Instalación a través de up2date.......................472 61....................................................................................................471 61............3......5..............2......456 60........... 481 63...............483 63...........................................474 61... 456 60...........................3...1...........Apéndice: Enviar correo a todos los usuarios del sistema......Configuración de Postfix.....................................................................1...3.....Cómo configurar Postfix en CentOS 5 para utilizar dominios virtuales con usuarios del sistema............................................2.............................7...........................Comprobaciones...2.................. detener y reiniciar el servicio spamass-milter................6...........3.....................................................................3..........475 62..Configuración de Postfix.................................470 61........9..........1............3............ 471 61...............476 62.................Intrucción........................................................2..Procedimientos............Acerca de la seguridad......4...................................................2.................................... 476 62..............................................4.3..........................................................................................1.....................Iniciar servicios............................2..2.......................Alta de cuentas de usuario y asignación de claves de acceso..................................................Cómo instalar y configurar el programa vacation para responder avisos automáticos en vacaciones.......3..................Acerca de Amavisd-new......................................3..........................................7................Reiniciar el servicio postfix...3................................ 473 61............................................................3.......................2....................3.........................1............1...............2......................................................482 63........................3................... 487 20 .......... 456 60..................... 473 61............A través de clientes de correo electrónico...3.....................2.................................................................Configuración de Dovecot en CentOS 5................. 478 62.....................3........2.......................3.1...................................................................................Procedimientos............. 486 65.....3....................................................3...................................Configuración de Amavisd-new....Postfix con dominios virtuales y Amavisd-new.......2.................................................A través de terminal..................................1................. 483 63................................................................................Creación del usuario para ClamAV.................................................................................................. 471 61............................. y añadir éstos al arranque del sistema..Cómo instalar y configurar Amavisd-new con Postfix en CentOS 5. 459 60.............5........Configuración de SELinux....................................................................................................................................2..............................................Equipamiento lógico necesario..............Soporte para LMTP............... 476 62.......................... 465 60..4........481 63.... y Red Hat Enterprise Linux 6..........Instalación a través de yum...5.2...........Modificaciones necesarias en el muro cortafuegos.............Equipamiento lógico necesario................................464 60.........................................3......3................. y Red Hat Enterprise Linux 5...................................................Procedimientos...............Introducción........................ 464 60................................464 60....483 63....Acerca de OpenSSL.........................Modificaciones necesarias en el muro cortafuegos.2..................... 481 63.....2......................................... 476 62.........................................................3....................................... 472 61....................455 60....Definiendo Postfix como agente de transporte de correo predeterminado....................Introducción................................................................................................ 481 63.....................................................................................486 64..........................1..................Procedimientos..................................... 472 61...... ...........................................1...................................... 483 64..................................................2.................................................Introducción.......................Integración con Sendmail.................. 471 61................................................481 63.......................................................................1........................................................4....................................... y Postfix.........................................................Cómo configurar Cyrus IMAP............................................1.........1.... 455 60...............Requisitos en la zona de reenvío en el servidor DNS. 482 63...2.......................4...............Configuración de depósitos YUM para CentOS 5 y Red Hat Enterprise Linux 5.......2..........................................4. 465 60..............................Configuración de SELinux.....471 61......... 486 64.......................... 466 60..........Iniciar.................................8. detener y reiniciar el servicio cyrus-imapd....................Configuración de Dovecot en CentOS 6.....................Comprobaciones........463 60.................3......................Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 60..........3........................................Agregar el servicio cyrus-imapd al arranque del sistema......1...........487 65.........................Iniciar........................................................Equipamiento lógico necesario..............Configuración de Postfix....465 60....SELinux..................................................1.........4............3.

............Procedimientos..............................490 66.... 503 68............................1.......2.................................................................SELinux y el servicio spamass-milter........494 67...................2............ 509 69...............3......................................Instalación a través de yum...503 68.............................................................3.................................3............................................................................Introducción.................................2.............................2..2................. 496 67............... 495 67...4..................................................503 68........................................................................................................................................................................Procedimientos........... 514 69..2..................Requisitos previos............................................ 490 66.....................................................................................................................................3................................................. 491 66......Archivo /etc/mail/sendmail..................................... 504 68..............1....................................................2..............................2..........................5.............3..................................2........5...............................................................Iniciar.......................................1.........Procedimientos...........Cómo configurar spamass-milter...........................1...1......................................................................Archivo /etc/mail/sendmail......................................3........... 511 69..............................................................1..........................Configuración del servidor NIS......................authconfig-tui (modo texto)..........................Iniciar....... 511 69......1...3.........Acerca de SpamAssassin.4...............................Acerca de spamass-milter...........................4............................4........3..................... 512 69.............................................................................................................................................................................. 510 69...........mc.1.......3....................................SELinux y el servicio ldap........................................................3........ 510 69..............5............................5....................2....1.....................................................1..............3..................................3...................... 491 66....................................................................Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 65.............Cómo configurar clamav-milter.......................3.. 495 67.............3..... 493 66.......SELinux.......... 491 66..Cómo configurar un servidor NIS..Procedimientos.............509 69......................................Introducción.....................................................Requisitos previos........................................1................. 496 67................................................... 500 Archivo /etc/sysconfig/spamassassin.Creación del usuario para ClamAV.....................................................2...............2...........2..................................................................mc.......................................3.....................................................................Cómo configurar OpenLDAP como servidor de autenticación....................1.....................Instalación a través de yum...........................................Equipamiento lógico necesario...........................................................Procedimientos.....Migración de cuentas existentes en el sistema................ 510 69............. 495 67... 493 66....3.............................Acerca de clamav-milter...Archivo /etc/sysconfig/spamass-milter............6.3.2........................Archivo /etc/procmailrc.... 487 65............................................................... detener y reiniciar el servicio spamass-milter........................Instalación a través de yum..........................................Equipamiento lógico necesario............Generación de claves de acceso para LDAP............................. 515 21 .........................4..................509 69...................................................2.Comprobaciones.................... 506 69.........3........1..................................................................3....Configuración..............................................Introducción....................501 68.................................5.......................................................................................................................................................3..................Archivo de configuración /etc/openldap/slapd.................2................... 491 66...................................................3.......5.............Introducción..2.................................................... 510 69........... 503 Instalación del equipamiento lógico necesario en el servidor NIS................Instalación del equipamiento lógico necesario en el cliente NIS.Creación de directorios...........................................................................Configuración del cliente NIS................................2......5.............. 495 67....................................... 498 67...............495 67............. 490 66......................................1...1....2.........2........................................Equipamiento lógico necesario...........3........................3........Inicio del servicio ldap.................... 509 69....................................................................................... 514 69.3.. 496 67......... 493 66..............3..............Acerca de ClamAV....................................................................... y reiniciar el servicio clamav-milter..................................487 65.................Instalación a través de yum........................2..................................2.............................................1.................................authconfig-gtk (modo gráfico)...........................495 67....1...........2......................... detener...491 66................................................... y el servicio clamav-milter...........conf................... 499 67.1...................................Instalación a través de up2date..............506 68........510 69..................................................... 501 67......................................513 69........ 488 66...................................3........................................................................................................................Equipamiento lógico necesario......................................... 490 66.................................Configuración de clientes...............................................1.......................................authconfig (modo-texto).... 487 65.....

.............539 22 ..............Configuración LDAP Administration Tool...................521 70........... 535 72....8..................Inicio del servicio ldap........4...................3......Modificaciones necesarias en el muro cortafuegos................. 520 70...........................................Iniciar....Administración........................ 527 70........................................538 72.....................................................................2.............2.....Equipamiento lógico necesario......... 519 70......................................... 527 70..........................2......................................1...................Otorgando permisos a los usuarios.........................1.........................................................................SELinux y el servicio mysqld........Configuración de clientes.Cómo configurar OpenLDAP con soporte SSL/TLS..................................................................................................................................................3...........................3..........................................2...........1.......................Modificaciones necesarias en el muro cortafuegos....6............................... 521 70........................................ 529 RSA.................Respaldo de datos........................Equipamiento lógico necesario....Acerca 71............Procedimientos...............3....................Comprobación.....6.. 529 X...6...........5.... 529 71.............4..............1..........Archivo de esquemas.... 519 70...................................................................8............................................................Procedimientos.................................Configuración LDAP Browser.................................................................Agregar el servicio mysqld al arranque del sistema..........................................................Instalación a través de yum..............................1................. 535 72..........................6.............................1........3... 533 71..............Cómo instalar y configurar MySQL™...........................................................................................Cómo configurar OpenLDAP como libreta de direcciones....Asignación de clave de acceso al usuario root.......3............ 517 69...........Generación de claves de acceso para LDAP.. 532 71.......................................538 72.........Restauración de datos.................................................Acerca 71.. 521 70....................1...................................................................................................2.....................................................2.................................1...........2.........................................................Squirrelmail...........................................1....2..................3....................Acerca de de de de LDAP en modo SSL/TLS...........4...............4...............................................Procedimientos........................... 535 72..........................................523 70..... 530 71..............4.............Creando y destruyendo bases de datos..................2....................................5.............................................................518 70....2.........................................3..Instalación a través de yum.................Configuración de Mozilla Thunderbird...........Mozilla Thunderbird........................................................................................................Administración..7.........Restauración de datos...............................................Añadir datos al directorio...........4.................... 526 70....... 530 OpenSSL..................2..........................................................................................................Acerca de MySQL™......................................1................................................................................................7...........conf....................5................................ 525 70....Creación de directorios........................................................... 533 71.....1........... 517 69.......3.................2......conf................................... 530 71......1...........5..Novell Evolution.................................................................2.........536 72.............7...........................................4............... 519 70..... 531 71........................................................................................ 523 70.......................3...... 531 71......................3.... 536 72...............................6............ 527 70..............Modificaciones necesarias en el muro cortafuegos.....................9........................................................1...............................................................Introducción................. 520 70............................................................535 72..............534 72.............................................................................3...........3.......................................................................................................................................................2.....1......................1.....................................................................Configuración de GNOME Evolution...Parámetros de /etc/openldap/slapd...Generando clave y certificado..................... 532 71.3..........................................................................519 70.............. 520 70......528 71............ detener y reiniciar el servicio mysqld...........Instalación a través de up2date...........Introducción..............................509.......3.....................................................SELinux y el servicio ldap...............2...................................2...........3.....................................2....................................Modificaciones necesarias en el muro cortafuegos.... 520 70............529 71...........................................Archivo de configuración /etc/openldap/slapd.......................... 520 70............................................ 517 69.................................Acerca 71.....3...............Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 69.............................2...........................2..........................................................Instalación a través de up2date.535 72............................................. 530 71..........................................536 72.519 70..............................Respaldo de datos...........................1.4...............4................2.............3.................................................3................................................................ 536 72............. 535 72............................Introducción.................................................................2...............................................................................................................7..................... 536 72...........................................

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

......612 80............................................................................................ 570 77....................Las zonas esclavas.......................Configuración de Squid: Restricción de acceso a contenido por extensión.................4.................9.....Iniciando......................... 597 78.................................................................... 589 77..................9.............1........................................Re-direccionamiento de peticiones a través de la opción REDIRECT en Shorewall....2...................................................Introducción..............Finalizando procedimiento..2....................Equipamiento lógico necesario.....Reiniciar servicio y depuración de configuración........3................................................................................................................. 601 78........................................3................................................Instalación a través de yum...3.610 80..................................................................................1......... 601 78............599 78....................................... 610 80...........3...Parámetro http_port.....................Introducción..........................1....614 81...................................................................Parámetro cache_mem........ 613 81....................3.............Acerca de Squid.. 606 79...........................................................................................................Instalación a través de yum...........2...................................................................Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 77..........2........Seguridad adicional para transferencias de zona..........................................Restricción por expresiones regulares...................1...............3.................608 79......................................5...2...............8...........Autenticación a través del módulo NCSA...... ..................... 602 78......................6............................Estableciendo el idioma de los mensajes mostrados por de Squid hacia el usuario.Equipamiento lógico necesario..................3.................................................3.................................................Ajustes para el muro corta-fuegos...................5...........SELinux y el servicio squid..............................................................2...........................................................................1..................Definiendo elementos de la Lista de Control de Acceso...¿Qué es Servidor Intermediario (Proxy)?.......2..............................2........Introducción................1............. 596 78......2....605 79........................2................................................................................Creación de los archivos de zona............ 572 77...................Configuración básica.................................. 588 77.................................................602 78........3................Parámetro cache_dir...........................................Parámetro cache_peer: caches padres y hermanos.....................................................Parámetro cache_mgr...................1....606 79................ 616 24 .3.............................1.....................580 77.................................................. 570 77....................Seguridad adicional en DNS para uso público........Preparativos.............................7.......5....................3...............................Introducción....5.......... 594 78.........1......................7.......3.....................................2........................606 79..........6.....Listas y reglas de control de acceso...........................................................604 Re-direccionamiento de peticiones a través de iptables..........................................................................Procedimientos..............605 78...... 604 78......................................5.4................ ............1.......................................................................Finalizando procedimiento..................8.......................3..................................................................................................................................2.....2.................Equipamiento lógico necesario......603 78...........3............5.........................SELinux y el servicio named.6................... 595 78.............. 575 77..................................................................569 77........ reiniciando y añadiendo el servicio al arranque del sistema....... 614 81..........Restricción por expresiones regulares.......................Configuración de Squid: Acceso por autenticación............................................................................................................... 570 77..........Configuración de Squid: Parámetros básicos......................1.........................................569 77..............610 80..........596 78...............................................3..... 601 78..........Seguridad adicional en DNS para uso exclusivo en red local................................................7.................................1.........611 80..606 Eligiendo el módulo de autenticación....5.................................603 78...........................................................................................594 78......... 592 78....3........ 607 79............1.............1...........1...............5................................. 609 80........2....3......................................1........................5.....Permitiendo acceso a sitios inocentes incidentalmente bloqueados....................................................... 597 78.........................................................1.....Configuración de Squid: Restricción de acceso a Sitios de Internet.... 596 78................... 594 78...........................................4...586 77......................................2......................Acerca de Bind (Berkeley Internet Name Domain)......Controles de acceso.................................1.....................................................Depuración de errores............ 606 79....Aplicando Listas y Reglas de control de acceso.................................614 81......... 596 78..............Autenticación a través del módulo LDAP.Finalizando procedimiento............................................................5...........................Antes de continuar..............................................................................................

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

......................................Introducción..........Acerca de Xsane..............conf.................... 662 89.....1...........................3.........Acerca de Net-SNMP...Acerca de SNMP.............Instalación a través de up2date................................. 656 88...3...1.. 650 87.......................................................Equipamiento lógico necesario.............................................................................Cómo configurar SNMP..............2. 658 88........................ 677 92.....Bibiliografía.......1...2....................... 657 88...........3...................................................672 92........................................................................................................................................................................1......Procedimientos.......1.........4.............................................657 88....................................................................................................1..........................670 90.....Cómo configurar Freeradius con MySQL en CentOS 5............................. detener y reiniciar el servicio snmpd.................................. 677 92........................................................................................................Instalación a través de yum.....................................................................................................2.....................2................Configuración del cliente Xsane................................... 662 89..Acerca de Daloradius................ 657 88............................Introducción.............................................................1...... 676 92...................... 672 91......680 26 ...........................................Modificaciones necesarias en el muro cortafuegos...........................3....6 en CentOS 5.....Introducción......3.... 666 90.......Procedimientos. 657 88........Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 87................Comprobaciones..............................Instalación del cliente Xsane...........................................1......Instalación a través de yum............ 662 89........3......3....................1...1.........................................................................................................................................................................................1..........2..........................3.......................................................................................................................................................................Equipamiento lógico necesario.......... 677 92............................................................Bibliografía...........................2...... 672 91..........Cómo configurar un servidor de respaldos con BackupPC.....1...........3..........2...............................Procedimientos........Procedimientos........Introducción.........................Instalación del servicio saned.......Instalación a través de yum.............662 89........................ 662 89...............................Cómo configurar MRTG.......................................................................Instalación del equipamiento lógico necesario...................................................................................................Iniciar.............................................................................................................. 676 92.......1....................................2.........665 90.............1... 660 88...................2...............................................2.................................................................................................. 666 90..........676 92...Instalar Daloradius para administración a través de HTTP........672 91...................................661 89...................... 665 90........3....3............3......................Acerca de SANE...........................2...............................672 91......................Un ejemplo funcional de configuración........................... 663 90...4.................................2..1............ 677 92..............................................................2..............Acerca de MRTG............2.......................................... 658 88..............2...Instalación a través de up2date....................................Configuración del servicio saned...................................................................... 671 91............................................................................ 665 90................Cómo configurar escáner en red..............Acerca de Freeradius..........................................................................................................Clientes GNU/Linux...............3..........................................3..............677 92..............................................Cómo instalar Java 1..........1................................1...........................................................Acerca de RADIUS.......................Procedimientos.............................................................Comprobaciones.......................................................................................... 661 88............................................................................................................................................................1.........2...............1................................... 657 88................................................ 672 91.......................657 88...................................2.... 676 92.3.......................................Equipamiento lógico necesario.......... 679 93..............................660 88.........................................................Agregar el servicio snmpd al arranque del sistema.... 665 90..........................................................662 89.................................4....1.... 662 89.3...... 658 Archivo de configuración /etc/snmp/snmpd...................................................................2..Creación de estructura de directorios para rpmbuild.................1..................................2.....................1....................................................................................Introducción.....................................................5......Creación de usuario para utilizar rpmbuild...............661 88.1.............1........ 672 91..............2.................................................................2......................................2....................................4............

..........................................2.................... 717 97...........................Añadir equipamiento lógico adicional.............1................................................1...............................................................................Introducción............Cómo configurar un racimo (cluster) de alta disponibilidad con Heartbeat en CentOS 5.........................3....Ejercicio: Cuotas de disco.................................................. 698 94.....................Procedimientos.......1...............2........................................Instalación de equipamiento lógico necesario......................................................................................................... Apache.......... 680 93...........2.................................................................................................................719 97................................... 716 97....683 los sistemas Windows a respaldar..........2....2....................... 691 94.......1........Usando Smartd para anticipar los desastres de disco duro..............................3.............Comprobaciones...................................................3.......706 96............2.............................................1................................................................. 691 94..705 96....685 94..Ejercicios..................2...................................................716 97............ 711 97................................................................... 711 97..............................................680 93.....................................................................1........ 713 97.......Procedimientos................................................2...........................................3...... 690 94.3..Configuración 93........... 694 94..............Procedimientos.................................2................... 713 97...............................................Creación de archivo de configuración de instalación personalizada....................................1....................Ejercicio NFS.......................5.....Configuración 93.Configuración del Nodo 1..................4...............................3.....Introducción.......... VSFTPD y DNS..........Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 93......................2................................Ejercicio SAMBA..3... 691 94.....................4..........................................................................711 97.....................................Comprobaciones..............................................1...............1.........1............Introducción.......................................................................1............. 722 Notas.....................1....................................................................... 708 96.....Creación de la imagen ISO........................................................................................Cómo crear un disco con instalación personalizada de CentOS 5............. 719 97...............................................................Instalación del equipamiento lógico necesario...........705 96.............................................Procedimientos..............2...............................................................................................................Procedimientos........................................... 701 95......................2..................................................... 682 los sistemas GNU/Linux a respaldar................2..............Configuración 93...................... 680 93......Introducción...............................2.......1................4..................................................................................Acerca de Heartbeat...................Configuración de de de de Apache...................................................................................................Instalación en CentOS 5.........................................1.. 681 BackupPC..2............................................Procedimientos..............1..........703 95............................................................Procedimientos......4.......................3.Procedimientos.........................................................3........Ejercicio Apache® y VSFTPD......................................................................690 94.........................1.................................................... 703 95........ 690 94...............2...........................................................4....Creación del directorio de trabajo y contenido del mismo..........3.....2................................Verificando el agrupamiento (cluster).................................................... 681 93........2.............................724 27 ..............................................SELinux y Heartbeat.............3..................2....................................... 703 96.........................705 96.........................................2....................................... 705 96....2.......................... 709 97...........................Configuración del Nodo 2...................................................................Servicios que deben desactivarse...............1........... 711 97.......................4.............................................................................2........................

LA DISTRIBUCIÓN DE ESTA LICENCIA NO CREA UNA RELACIÓN ABOGADO-CLIENTE. NI ASUME RESPONSABILIDAD ALGUNA POR DAÑOS PRODUCIDOS A CONSECUENCIA DE SU USO.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Información de Derechos reservados de esta publicación. Debe reconocer y citar al autor original. o genera una obra derivada. No comercial. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. 28 . ● 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 OBRA SE ENCUENTRA PROTEGIDA POR LA LEY ESPAÑOLA DE PROPIEDAD INTELECTUAL Y/O CUALESQUIERA OTRAS NORMAS RESULTEN DE APLICACIÓN. No puede utilizar esta obra para fines comerciales. CREATIVE COMMONS PROPORCIONA ESTA INFORMACIÓN TAL CUAL (ON AN "ASIS" BASIS). Compartir bajo la misma licencia. tiene que dejar bien claro los términos de la licencia de esta obra. QUEDA PROHIBIDO CUALQUIER USO DE LA OBRA DIFERENTE A LO AUTORIZADO BAJO ESTA LICENCIA O LO DISPUESTO EN LAS LEYES DE PROPIEDAD INTELECTUAL. Si altera o transforma esta obra. distribuir y comunicar públicamente la obra ● hacer obras derivadas Bajo las condiciones siguientes: Reconocimiento. ● Al reutilizar o distribuir la obra. Reconocimiento-NoComercial-CompartirIgual 2. Reconocimiento-NoComercial-CompartirIgual 2. CREATIVE COMMONS NO OFRECE GARANTÍA ALGUNA RESPECTO DE LA INFORMACIÓN PROPORCIONADA.1 CREATIVE COMMONS CORPORATION NO ES UN DESPACHO DE ABOGADOS Y NO PROPORCIONA SERVICIOS JURÍDICOS. 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").1 Usted es libre de: ● copiar.

f. 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. artística o científica. comunicación pública y transformación. préstamo o de cualquier otra forma. 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. g. "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. Definiciones a. 29 . La "transformación" de una obra comprende su traducción. 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. i. 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. adaptación y cualquier otra modificación en su forma de la que se derive una obra diferente. Se n. EL LICENCIADOR LE CEDE LOS DERECHOS CONTENIDOS EN ESTA LICENCIA. con independencia de la naturaleza de los soportes materiales de dichas obras. "Obra compuesta e independiente". los compendios. si la obra consiste en una composición musical o grabación de sonidos. 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. así como las composiciones musicales. Para evitar la duda. b. entendiendo por tal la obra nueva que incorpore una obra preexistente sin la colaboración del autor de esta última. resúmenes y extractos. o que ha recibido el permiso expreso del licenciador de ejercitar los derechos cedidos mediante esta licencia a pesar de una violación anterior. j. con o sin sonorización incorporada. se considerará también transformación la reordenación de la misma. 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. actualizaciones y anotaciones. El "autor" es la persona o la entidad que creó la obra. cualesquiera transformaciones de una obra literaria. 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. distribución. Tendrán la consideración de "obras audiovisuales" las creaciones expresadas mediante una serie de imágenes asociadas. 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. los arreglos musicales y. entendiendo por tal aquella que sea resultado unitario de la colaboración de varios autores. alquiler. La creación resultante de la transformación de una obra tendrá la consideración de obra derivada. 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. Se considerarán "obras derivadas" aquellas que se encuentren basadas en una obra o en una obra y otras preexistentes. k. 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. Se entiende por "distribución" la puesta a disposición del público del original o copias de la obra mediante su venta. 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. USTED ACEPTA Y CONSIENTE LAS LIMITACIONES Y OBLIGACIONES DE ESTA LICENCIA. SIEMPRE QUE USTED ACEPTE LOS PRESENTES TÉRMINOS Y CONDICIONES. Cuando se trate de una base de datos según se define más adelante. h. en general.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux MEDIANTE EL EJERCICIO DE CUALQUIER DERECHO SOBRE LA OBRA. artística o científica ofrecida bajo los términos de esta licencia. las revisiones. l. 1. e. "Obra colectiva". "Obra en colaboración". Se considerará "obra conjunta" aquella susceptible de ser incluida en alguna de las siguientes categorías: i. d. m. c. La "obra" es la creación literaria. La "explotación" de la obra comprende su reproducción. tales como: las traducciones y adaptaciones.

4. Tendrán la consideración de "bases de datos" las colecciones de obras ajenas. Si usted crea una obra conjunta o base de datos. según lo que se le requiera y en la medida de lo posible. 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. 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. Concesión de licencia. por medio de una obra derivada. 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. pero no implica que éstas. 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. Derecho de distribución y comunicación pública de copias o grabaciones de la obra. 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). b. d. p. Derecho de distribución y comunicación pública de copias o grabaciones de la obra. Sin uso comercial (NoComercial). previa comunicación del licenciador. Los anteriores derechos se pueden ejercitar en todos los medios y formatos. en su caso. al margen de la obra objeto de esta licencia. Derecho para efectuar cualquier transformación sobre la obra y crear y reproducir obras derivadas. pero no implica que éstas. e. a título enunciativo pero no limitativo. b. siempre que no haya ningún pago de cualquier remuneración monetaria en relación con el intercambio de las obras protegidas. distribuir o comunicar públicamente una obra derivada solamente bajo los términos de esta licencia. 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. de los derechos que pudieran subsistir sobre dichos contenidos. c. previa comunicación del licenciador. 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 la obra solamente bajo términos de esta licencia y debe incluir una copia de la misma. o de una versión posterior de esta licencia con sus mismos elementos principales. los establecidos en la sección 4(e). tales como el derecho de copia privada o el derecho a cita. Restricciones. sin derecho de remuneración. conocidos o por conocer. al margen de la obra objeto de esta licencia. el licenciador concede (durante toda la vigencia de los derechos de propiedad intelectual) una licencia de ámbito mundial. Usted puede reproducir. Usted debe incluir una copia de la esta licencia o de la mencionada anteriormente. ya sean derivados de usos legítimos. tengan que estar sujetas a los términos de esta licencia. lo que se le requiera y en la medida de lo posible. o bien su Identificador Uniforme de Recurso (URI). 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. usted deberá quitar de la obra derivada cualquier referencia a dicho licenciador o al autor original. 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. tangibles o intangibles. Si usted crea una obra derivada. 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. c. con cada copia o grabación de la obra que usted reproduzca. Usted debe mantener intactos todos los avisos que se refieran a esta licencia y a la ausencia de garantías. sin perjuicio. Lo anterior se aplica a una obra derivada en tanto que incorporada a una obra conjunta o base de datos. incluyendo. 30 . distribución y comunicación pública sobre la obra. usted deberá quitar de la obra conjunta o base de datos cualquier referencia a dicho licenciador o al autor original. 2. Usted puede reproducir. Usted no puede sublicenciar la obra. Conforme a los términos y a las condiciones de esta licencia. 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. como incorporada a obras conjuntas o bases de datos. con cada copia o grabación de la obra que usted reproduzca. Compartir de manera igual (CompartirIgual). Todos los derechos no cedidos expresamente por el licenciador quedan reservados. u otras limitaciones como la derivada de la primera venta de ejemplares. Derecho de reproducción.0 Japón). 3. Lo anterior se aplica a una obra en tanto que incorporada a una obra conjunta o base de datos. Límites y uso legítimo de los derechos. 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. La cesión de derechos que supone esta licencia se encuentra sujeta y limitada a las restricciones siguientes: a. distribuya o comunique públicamente. o su Identificador Uniforme de Recurso (URI). tengan que estar sujetas a los términos de la misma. distribuya o comunique públicamente. Usted no puede reproducir. Usted no puede reproducir. no exclusiva e indefinida que incluye la cesión de los siguientes derechos: a. Usted debe mantener intactos todos los avisos que se refieran a esta licencia y a la ausencia de garantías.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux o.

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

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

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

Los distintos servicios servicios se pueden detener. estaciones de trabajo y también para computadoras personales. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.1 © 1999-2011 Joel Barrios Dueñas. el núcleo Linux> fue combinado con el sistema GNU. Fue creado en 1991 por Linus Torvalds. 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. que es el modo que ha dispuesto la Free Software Foundation (Fundación de equipamiento lógico libre).org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. 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 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. c) Si altera o transforma esta obra. como lo indica la Licencia Pública General GNU (acrónimo de GNU is Not Unix). que se traduce como Interfaz de Sistema Operativo Portable). b) No puede utilizar esta obra para fines comerciales. es decir.alcancelibre. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Al reutilizar o distribuir la obra. Esto significa que el usuario tiene la libertad de redistribuir y modificar a de acuerdo a necesidades específicas. 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). sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. o genera una obra derivada. siempre que se incluya el código fuente. En 1992. tiene que dejar bien claro los términos de la licencia de esta obra. robusto y confiable. GNU/Linux es equipamiento lógico libre o Software Libre. con el objetivo de crear un sistema operativo completamente libre. Este proyecto fue iniciado por Richard Stallman. como es el caso de servidores.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 1. asegurarse de que el equipamiento lógico siempre permanezca libre para todos los usuarios. y anunciado el 27 de septiembre de 1983. Cuando nos referirnos a libre. Usted es libre de copiar. se trata de equipamiento lógico libre o Software Libre. GNU/Linux® es también de la mejor alternativa de siglo XXI para los usuarios que no solo desean libertad. GNU/Linux® no es equipamiento lógico gratuito (comúnmente denominado como Freeware). 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. 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. Es un sistema operativo idóneo para utilizar en Redes. 34 . El Sistema Operativo formado por esta combinación se conoce como GNU/Linux. siendo entonces un estudiante de la Universidad de Helsinski. lo hacemos en relación a la libertad y no al precio. 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. GNU es un acrónimo recursivo que significa GNU No es Unix (GNU is Not Unix). Finlandia. ¿Que es GNU/Linux? Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. que se traduce como Licencia Pública General). La GPL (acrónimo de General Public Licence. La GPL tiene como objetivo garantizar al usuario la libertad de compartir y cambiar equipamiento lógico libre. a la cual Linus Torvalds incorporó a Linux. sino que también desean un sistema operativo estable.

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

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 2. A principios de 1996. Enciclopedia Libre. El procesos de desarrollar un estándar de sistema de archivos jerárquico inició en Agosto de 1993 con un esfuerzo para reestructurar la estructuras de archivos y directorios de GNU/Linux. Como uno de los resultados el estándar cambió de nombre a FHS o Filesystem Hierarchy Standard.1 © 1999-2011 Joel Barrios Dueñas. aún si están almacenados en dispositivos físicamente diferentes. Dell. tiene que dejar bien claro los términos de la licencia de esta obra.2. o genera una obra derivada. El 14 de Febrero de 1994 se publicó el FSSTND (Filesystem Standard). 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. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. una organización sin fines de lucro constituida por compañías que manufacturan equipamiento físico (Hardware) y lógico (Software) como Hewlett Packard. El FHS es mantenido por Free Standards Group. un estándar de jerarquía de archivos específico para GNU/Linux. La versión 2.alcancelibre. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. 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. 2.org/ Artículo basado sobre el publicado en inglés por Wikipedia. CentOS 6.1. que es la utilizada por CentOS 5.org/wiki/FHS. 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.wikipedia.3 del FHS. Revisiones de éste se publicaron el 9 de Octubre de 1994 y el 28 de Marzo de 1995. Usted es libre de copiar. La mayoría de las distribuciones de Linux. 36 . en http://en. Estructura de directorios. Todos los archivos y directorios aparecen debajo del directorio raíz «/». y Red Hat Enterprise Linux 6. c) Si altera o transforma esta obra. sin aplicar de forma estricta el estándar. 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. inclusive las que forman parte de Free Software Standards. Introducción. IBM y Red Hat. Red Hat Enterprise Linux 5. fue anunciada el 29 de enero de 2004. con la ayuda de miembros de la comunidad de desarrolladores de BSD. b) No puede utilizar esta obra para fines comerciales. Al reutilizar o distribuir la obra. 2. 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.

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

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

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

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

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

pulse la tecla «TAB» para seleccionar «Skip» y pulse la tecla ENTER. o bien «Siguiente». Haga clic sobre el botón «Next». en cuanto aparezca la pantalla de bienvenida de CentOS. como idioma para ser utilizado durante la instalación. o bien «Español». o discos a partir de los cuales se realizará la instalación. a partir del cual se realizará la instalación. 42 . Si está seguro de que el disco. está en buen estado.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). seleccione «OK» y pulse la tecla ENTER. considere que esto puede demorar varios minutos. Seleccione «Spanish».

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

y zFCP.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. Requiere disponer de un SAN en la red de área local para poder hacer uso de este tipo de dispositivos de almacenamiento. sin tabla de particiones. recibirá una advertencia respecto de que el disco duro deberá ser inicializado antes de guardar la tabla de particiones que será creada posteriormente. iSCSI. como Redes de Área de Almacenamiento (SAN). como FCoE. haga clic sobre el botón «Reinicializar todo. 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. Si solo dispone de uno o más discos duros en el equipo donde se realizará la instalación.» 44 . o bien uno al que le fue borrada la tabla de particiones. elija la opción predeterminada.» Si se trata de un disco duro nuevo.

localdomain. y haga clic sobre el botón denominado «Siguiente. y que el dominio esté resuelto en un DNS.dominio.» 45 .tld. Si está indeciso al respecto. deje el valor predeterminado como localhost. 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. Procure que el nombre del equipo sea corto.

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

utilizará un espacio será equivalente al doble del RAM físico del sistema. datos personales. en combinaciones de números. letras mayúsculas. Un volumen lógico para la partición de memoria de intercambio (swap). letras minúsculas. más 2 GB.» invariablemente se aplicará un diseño predeterminado. que utilizará la mayor parte del espacio disponible. con unidades físicas que se añadirán al volumen lógico. utilizará un espacio equivalente a la suma del RAM físico del sistema. procurando utilizar al menos 8 caracteres. o bien. • 47 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. Salvo que elija «Crear un diseño personalizado. La siguiente pantalla le dará a elegir las opciones para crear las particiones en el disco duro. y otros caracteres. en equipos con más de 1 GB RAM. el cual consistirá en: • • Una partición estándar de 200 MB para /boot Un volumen lógico para /. y que posteriormente permitirá hacer crecer el sistema añadiendo otro disco duro. Evite utilizar palabras de diccionario. que en equipos con menos de 1 GM RAM.

y haga clic sobre el botón denominado «Siguiente. que carezca de alguna forma sencilla de añadir otro disco duro. que uno requiera. permitirá elegir las particiones estándar. «Achicar el sistema actual». Las opciones en pantalla hacen lo siguiente: • • • «Usar todo el espacio». o sistema de escritorio. Si se trata de una computadora portátil. pues se estará utilizando una función (volúmenes lógicos) que jamás se podrá aprovechar. haciendo el espacio necesario para poder instalar un diseño predeterminado de particiones Linux. «Reemplazar sistema(s) Linux existente(s)». basándose sobre un diseño predeterminado. con cualquier propósito. siempre que se trate de un equipo que permita añadir fácilmente más unidades de almacenamiento. • • Seleccione «Crear un diseño personalizado». Este diseño predeterminado funcionará bien para cualquier servidor. cambiará el tamaño de las particiones existentes de otros sistemas operativos. y creará de forma automática las particiones necesarias. solo eliminará todas las particiones Linux existentes. este diseño predeterminado resultará totalmente inadecuado.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. y creará de forma automática las particiones necesarias. o volúmenes lógicos. «Crear un diseño personalizado». como Windows. «Usar espacio libre». para así aprovechar los volúmenes lógicos.» 48 . eliminará cualquier partición de cualquier otro sistema operativo presente. creará de forma automática las particiones necesarias en el espacio disponible.

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

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

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

» Al terminar. defina / como punto de montaje.» 52 . 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 active la casilla de opción denominada «Forzar a partición primaria. y defina un tamaño de 3072 MB. mantenga el formato ext4.

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

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

» En la ventana que aparece sobre la tabla de particiones. y defina un tamaño de 5120 MB. mantenga el formato ext4. haga clic sobre el botón «Aceptar.» Al terminar. defina /tmp como punto de montaje. haga clic sobre el botón «Crear. Al terminar.» 55 .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. Elija crear una «Partición estándar.

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

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

defina /home como punto de montaje. mantenga el formato ext4. 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.» 58 .» Al terminar. y elija la casilla de opción denominada «Completar hasta el tamaño máximo aceptable.

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

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

la correspondiente a la de la memoria de intercambio.» Al terminar.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. vuelva a hacer clic sobre el botón «Crear. donde deberá aparecer la partición recién creada. Para añadir la última partición.» Se abrirá una ventana donde podrá definir el tipo de partición a crear. haga clic sobre el botón «Crear.» 61 . Elija crear una «Partición estándar.

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

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

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

» Asigne y confirme una clave de acceso para el gestor de arranque. 65 . Si desea proceder. pueda modificar los parámetros de arranque del gestor de arranque. conviene asignar una clave de acceso al 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. haga clic sobre la casilla de opción denominada «Usar la contraseña del gestor de arranque. e iniciar en modo mono-usuario (nivel de ejecución 1).

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

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

» 68 . haga clic sobre el botón denominado «Aceptar.» Lo anterior abrirá la ventana «Conexiones de red» de NetworkManager. y haga clic sobre el botón denominado «Editar. Una vez seleccionado el dispositivo de red. 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. Seleccione la interfaz de red deseada.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 «Aplicar. Haga clic sobre la pestaña denominada «Ajustes de IPv4.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Abrirá la ventana de edición de la interfaz.» 69 .» Configure los parámetros necesarios para poder establecer una conexión de red. Al terminar.

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

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

Una vez instalado el sistema.» abrirá una ventana desde la cual podrá seleccionar lo que requiera. salga del editor de texto. hay que editar el archivo /etc/inittab. si decide que necesitará utilizar el entorno gráfico. haga clic sobre el botón denominado «Cerrar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. localice la siguiente línea: id:3:initdefault: Y reemplazar en ésta el 3 por un 5: id:5:initdefault: Guarde el archivo. y de-seleccionar lo que se quiera omitir. haga clic sobre el botón denominado «Paquetes opcionales.» 72 . Al terminar. y reinicie el sistema para que inicie en modo gráfico. 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. vim /etc/inittab Al final del archivo. Si desea personalizar la lista de paquetes que se instalará en un grupo en particular.

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

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

por NM_CONTROLLED="no": 75 .alcancelibre. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. sin agregar grupos de paquetes al diseño predeterminado.1. Cambie NM_CONTROLLED="yes". Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. 4.1.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Dispositivos de red. y dejar que se encargue de ésta el servicio network. o configurar dispositivos de red para incluir actualizacines. c) Si altera o transforma esta obra. tiene que dejar bien claro los términos de la licencia de esta obra.1 © 1999-2011 Joel Barrios Dueñas. 4. Usted es libre de copiar. Procedimientos. conviene desactivar que la gestión de las interfaces de red se haga a través del servicio NetworkManager. Ajustes posteriores a la instalación de 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. Si realizó la instalación mínima. Al reutilizar o distribuir la obra. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Hay algunos ajustes que se recomienda realizar. descubrirá que probablemente los dispositivos de red están desactivados. 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. una vez terminada la instalación de CentOS 6.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 4. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.1. o genera una obra derivada. b) No puede utilizar esta obra para fines comerciales. 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.

.conf: vi /boot/grub/grub. y que la división para decimales se haga con una coma.» lo cual resultará conveniente para los usuarios que radican en España.UTF-8 (sin comillas): 76 . Localización. Sin embargo. Edite el archivo /etc/sysconfig/i18n: vi /etc/sysconfig/i18n Localice LANG="es_ES.2.UTF-8" (español de México).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": LANG="es_ES.1. se establecerá la variable de entorno «LANG» con el valor «es_ES. reinicie el servicio network: service network restart 4. Si durante la instalación estableció «Español» como idioma predeterminado.conf Localice en éste LANG=es_ES.UTF-8.UTF-8" por LANG="es_MX. o bien la localización que corresponda a su país: LANG="es_MX.UTF-8" SYSFONT="latarcyrheb-sun16" Cambie LANG="es_ES. ésto hará que en los números las divisiones de miles se hagan con un punto.UTF-8" SYSFONT="latarcyrheb-sun16" Edite el archivo /boot/grub/grub.

img Reinicie el sistema para que surtan efecto los cambios.1.1.el6.UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto rhgb quiet initrd /initramfs-2.6.1.3.0)/grub/splash.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux # grub. This means that # all kernel and initrd paths are relative to /boot/.0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version. reboot 4.29.32-71.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.6.el6.6.1.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0.i686) root (hd0. Plymouth es la nueva implementación para mostrar un arranque gráfico.6.32-71. This means that # all kernel and initrd paths are relative to /boot/.0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version.el6.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2.29.29.1.xpm.i686) root (hd0.29.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.0) kernel /vmlinuz-2. sin comillas).0)/grub/splash.i686. # root (hd0.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.UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto rhgb quiet initrd /initramfs-2.6.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2.1.29.32-71.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0.i686.el6.el6.32-71.29.el6.32-71. # root (hd0. eg.img Cambie LANG=es_ES.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. el arranque del sistema se mostrará de la siguiente forma: 77 . o bien la localización que corresponda a su país: # grub.6.1.xpm. Si se hizo una instalación mínima.UTF-8 por LANG=es_MX.0) kernel /vmlinuz-2.UTF-8 (español de México.gz hiddenmenu password --md5 $1$xU.32-71. Desactivar Plymouth.gz hiddenmenu password --md5 $1$xU.

Edite el archivo /boot/grub/grub. mostrando los mensajes de inicio de los servicios.conf: vi /boot/grub/grub. y viceversa.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. En un servidor.conf Localice rhgb: 78 . solo hay que pulsar la tecla «Supr» para conmutar al arranque tradicional en texto. probablemente resulte poco conveniente.

eg.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.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.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0.6. # root (hd0.4. y habilitar. This means that # all kernel and initrd paths are relative to /boot/.6.el6.32-71.29.6.1.el6.UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto rhgb quiet initrd /initramfs-2.el6.32-71. 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 .i686) root (hd0.xpm.el6.1.0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version. omita la sección anterior (Desactivar Plymouth). Si considera que requiere utilizar el modo gráfico.29.0) kernel /vmlinuz-2.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux # grub. eg.i686) root (hd0.0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version.0) kernel /vmlinuz-2.6. Instalar.29.29. el modo gráfico. reboot 4.1.xpm.29.1.0)/grub/splash.gz hiddenmenu password --md5 $1$xU.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.1.UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto quiet initrd /initramfs-2. # root (hd0.i686. This means that # all kernel and initrd paths are relative to /boot/.1.29.gz hiddenmenu password --md5 $1$xU. e instale los siguientes grupos: yum -y groupinstall x11 basic-desktop general-desktop Complemente instalando algunos paquetes de herramientas de administración.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2.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.img Reinicie el sistema para que surtan efecto los cambios.i686.6.6.32-71.32-71.1.el6.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2.img Elimine rhgb: # grub.el6.0)/grub/splash.

salga del editor de texto Instale el complemento para GDM (el gestor de pantalla de GNOME). localice la siguiente línea: id:3:initdefault: Y reemplazar en ésta el 3 por un 5: id:5:initdefault: Guarde el archivo. con la finalidad de que los mensajes de error que se pudieran generar al arrancar el sistema. 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. vi /etc/inittab Al final del archivo. y establecer. Probablemente quiera eliminar los siguientes paquetes. yum remove kexec-tools abrt-* Luego. que solo son útiles para realizar depuración del núcleo. hay que editar el archivo /etc/inittab. 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 . y enviar reportes de errores de las aplicaciones gráficas a los desarrolladores de CentOS.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota.

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 . y vistoso.

reboot 82 . vga=0x317 activará una resolución de 1024x768).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. 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. 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. Reinicie el sistema para que apliquen los cambios.

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

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.0)/grub/splash. así como con arreglos de discos por RAID.1. Asumiendo que se dispone de un disco duro basado sobre el estándar SCSI-1. permitiendo al sistema operativo realizar múltiples peticiones de lectura/escritura.el6.2. PATA.1.gz hiddenmenu password --md5 $1$xU. que es el acrónimo de Completely Fair Queuing.6. 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.xpm.29.6.0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Es totalmente inadecuado para discos duros que utilicen TCQ (Tagged Command Queuing).UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto rhgb quiet elevator=anticipatory initrd /initramfs-2. se debe editar el archivo /boot/grub/grub.el6. es el planificador de Entrada/Salida predeterminado de CentOS y Red Hat Enterprise Linux.29. CFQ. eg. que es una tecnología consiste en la optimización de peticiones de lectura/escritura desde la propia unidad de disco duro.29. es decir todos los modernos disco duros que actualmente existen en mercado.conf: vim /boot/grub/grub. que podría traducirse como encolado de procesamiento completamente justo.img 5.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2.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. CFQ. # grub.32-71. o bien IDE/ATA.2.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0.i686.1.0) kernel /vmlinuz-2. Esta tecnología es utilizada en los discos duros con el estándar SCSI-2.conf Y añadir a los parámetros de inicio del núcleo el parámetro elevator. Ofrece un excelente rendimiento para la mayoría de los usos que se le pueda dar al sistema operativo. # root (hd0.6.el6. con el valor anticipatory.32-71. que se ha asignado como el dispositivo /dev/sda.32-71. Tampoco se recomienda con discos duros de alto desempeño.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. 84 . This means that # all kernel and initrd paths are relative to /boot/.i686) root (hd0. y SATA.

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

32-71. 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. o adaptador de transporte del anfitrión) inteligente.6.0)/grub/splash.UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto rhgb quiet elevator=deadline initrd /initramfs-2.conf: vim /boot/grub/grub. se debe editar el archivo /boot/grub/grub. Funciona insertando todas las peticiones de Entrada/Salida.6.29. o bien un HBA (Host Bus Adapter.gz hiddenmenu password --md5 $1$xU.el6. 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.6. # grub. dentro de una cola de procesamiento tipo FIFO (first in.32-71.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Asumiendo que se dispone de un disco duro. que se ha asignado como el dispositivo /dev/sda.el6. first out. Es el planificador de Entrada/Salida más simple que existe para el núcleo de Linux. como ocurre con los SAN (Storage Area Network. 86 . Noop. como en el caso en los controladores RAID para SAS (Serial Attached SCSI).0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version. o Redes de Área de Almacenamiento). e implementando fusión de peticiones. como pudiera ser en el dispositivo de bloque.1.img 5.29.29. con el valor deadline.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.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0.4. o bien un controlador conectado de manera externa.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.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2.0) kernel /vmlinuz-2. # root (hd0.el6.1.conf Y añadir a los parámetros de inicio del núcleo el parámetro elevator.i686) root (hd0. eg.1. o unidad de almacenamiento.i686.xpm.32-71.2. que se traduce como: primero en entrar. primero en salir). Asume que la optimización del desempeño de Entrada/Salida será gestionado por otro nivel de la jerarquía de Entrada/Salida. This means that # all kernel and initrd paths are relative to /boot/.

32-71. o unidad de almacenamiento.0) kernel /vmlinuz-2. capacidades de procesamiento.3. # root (hd0. y en dispositivos que carecen de dependencia a movimientos mecánicos.29.6. # grub.el6.i686.29.1. y la variabilidad del tiempo de servicio de Entrada/Salida. donde se agrupan juntas las peticiones de Entrada/Salida que están físicamente cercanas. reduciendo el tiempo de petición.32-71.6. 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.xpm. los cuales carecen de re-ordenamiento de peticiones múltiples de Entrada/Salida.i686) root (hd0.conf: vim /boot/grub/grub.UTF-8 SYSFONT=latarcyrheb-sun16 KEYB OARDTYPE=pc KEYTABLE=la-latin1 crashkernel=auto rhgb quiet elevator=noop initrd /initramfs-2.el6. que se ha asignado como el dispositivo /dev/sda.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.img 5. con el valor noop.6.0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-[generic-]version. y los tipos de procesos que se quieran priorizar. 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.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. servicios utilizados en el sistema.1. Asumiendo que se dispone de un disco duro. 87 . eg.0)/grub/splash.tiAbo$5a88IZ2yKPvtdYG5ldAmi/ title centos (2. This means that # all kernel and initrd paths are relative to /boot/. se debe editar el archivo /boot/grub/grub.32-71.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. ¿Qué planificador de Entrada/Salida elegir? Depende del tipo de disco duro.29.el6.1.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0. Solid State Drives) basadas sobre memoria Flash.conf Y añadir a los parámetros de inicio del núcleo el parámetro elevator.

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

» 89 .1. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. 6.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Seleccione la entrada denominada «Rescue installed system.alcancelibre. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. o genera una obra derivada.1 © 1999-2011 Joel Barrios Dueñas. Inicie el sistema con el disco de instalación. c) Si altera o transforma esta obra. o bien la tecla ↓. Utilizando el disco de rescate de CentOS 6. Procedimientos. Tendrá 60 segundos para hacerlo. Al reutilizar o distribuir la obra. En cuanto aparezca la pantalla de bienvenida. 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. 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. b) No puede utilizar esta obra para fines comerciales. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. tiene que dejar bien claro los términos de la licencia de esta obra. Usted es libre de copiar.

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

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

Seleccione CD/DVD Local. 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 . pulse la tecla TAB hasta que resalte Aceptar. seleccione la-latin1. y pulse la tecla ↵ (ENTER).

o bien tarjetas. Configure lo necesario para establecer la conexión de red por DHCP. 93 . y pulse la tecla ↵ (ENTER). o bien No. Pulse la tecla TAB hasta que resalte Si. desea utilizar para establecer una conexión de red. Utilice la tecla ESPACIO para definir activar los dispositivos de red.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 Aceptar. o bien por dirección IP fija. el sistema le solicitará que elija qué tarjeta. y pulse la tecla TAB para conmutar entre los elementos de pantalla. Si respondió con Si en la pantalla anterior. Una vez terminado lo anterior. y pulse la tecla ↵ (ENTER).

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

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

utilizado el mandato df con la opción -h.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 .

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

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

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

Procedimientos. o genera una obra derivada.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 7. 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. se definió una clave de acceso para el gestor de arranque. conocido como GRUB (Grand Unified Boot Loader). aparecerá la siguiente pantalla. éste presentará la pantalla del gestor de arranque. y otros ajustes. tiene que dejar bien claro los términos de la licencia de esta obra. también denominado nivel monousuario. Al iniciar el sistema.1 © 1999-2011 Joel Barrios Dueñas. Al reutilizar o distribuir la obra. excepto la tecla ENTER. a fin de realizar tareas de mantenimiento.alcancelibre. para detener la cuenta regresiva de 3 segundos. 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. y poder ingresar al menú de GRUB. 7. Iniciando el sistema en nivel de ejecución 1 (nivel mono-usuario). c) Si altera o transforma esta obra. b) No puede utilizar esta obra para fines comerciales.1. 7.2. 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. o bien para realizar correcciones. Introducción Existen situaciones en las cuales se puede requerir iniciar el sistema en nivel de ejecución 1. 100 . Usted es libre de copiar. Pulse cualquier tecla. Si durante la instalación de CentOS. 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 Para ingresar la clave de acceso. pulse la tecla «p». Ingrese la clave de acceso que se asignó al gestor de arranque durante la instalación del sistema operativo: 101 .

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. 102 . Pulse la tecla «e» para editar las opciones de arranque del núcleo seleccionado: Seleccione la línea referente al núcleo.

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

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Regresará a la pantalla anterior. É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 105 .

Configurar y compilar el núcleo específicamente para las características de este modelo de computadora portátil. pero se tendrá un desempeño inferior.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 8. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Un ejemplo del porque conviene recompilar el núcleo. En sistemas caseros y computadoras portátiles con cierta antigüedad. Introducción. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Cyrix i686. 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. Al reutilizar o distribuir la obra. excluyendo de la configuración funciones que jamás se utilizarán en este sistema. tarjeta de red Ethernet Pro 100 y otros ciertos dispositivos en particular.1 © 1999-2011 Joel Barrios Dueñas. mejorará su desempeño significativamente. a través de cualquier medio. el núcleo genérico incluido en la instalación funcionará bien. o genera una obra derivada. Ésto elimina la necesidad de los usuarios por compilar el núcleo. Pentium III. 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. se dispone una computadora portátil (Laptop) Compaq Armada M300 con microprocesador Pentium III (Coppermine) de 500 MHz. Celeron.1. Pentium II. por entidades con fines de lucro). Por mencionar un ejemplo. pueden excluirse funciones como el soporte para más de 4 GB de RAM. Usted es libre de copiar. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. tarjeta de audio ESS Technology ES1978. compilarlo y obtener como resultado mejoras en el desempeño. etc. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. 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. c) Si altera o transforma esta obra. Éste incluye el soporte para ser utilizado con microprocesadores como Pentium Pro. soporte para IPv6 y otras opciones que solo serían útiles en otro tipo de sistemas como servidores. Evidentemente este soporte genérico impide poder explotar todo el potencial e instrucciones de un modelo de microprocesador en particular. Pentium M. Pentium 4.1. 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.1. circuitos integrados Intel PIIX4. 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. 8. soporte genérico para arquitectura ix86. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Si. 106 . Cómo compilar el núcleo (kernel) de GNU/Linux en CentOS. Licencia completa en castellano.alcancelibre. por ejemplo. con 320 MB RAM. Athlon. 8. soporte para otros modelos de computadoras portátiles. Duron.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. soporte para más de un microprocesador. 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. 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.

8. Utilizando el mandato lsmod es posible determinar que controladores se están utilizando en el sistema. 8.snd_pcm_oss 0 0 2 snd_seq.1.snd_ac97_codec.2.snd_pcm 1 parport_pc 1 snd_es1968 107 .2. como por ejemplo más dispositivos USB. 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. 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. Esta lista de controladores debe tomarse muy en cuenta a fin de evitar excluir alguno de éstos. 8. Procedimientos.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.1. Determinar el sustento físico y controladores.snd_pcm 2 snd_es1968. Módulos utilizados por el sistema.snd_seq_oss. 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.1.sd_mod. Este procedimiento es complicado e implica contar con un cierta experiencia y conocimientos generales acerca del sustento físico (hardware).snd_seq_midi_event 0 1 snd_pcm_oss 0 0 3 snd_es1968.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Puede agregarse soporte para más periféricos. Utilice el mandato de la siguiente forma: /sbin/lsmod Lo anterior puede devolver una salida similar a la siguiente.2.

snd_ac97_codec. 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.86 32 108 .snd_rawmidi 13 snd_es1968.snd_seq_oss.snd_seq.2.2. 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_seq.snd_rawmidi.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.snd_seq_device 0 1 snd 1 e100 0 0 2 i2c_dev.i2c_piix4 0 0 0 0 0 2 1 ext3 0 0 0 8.snd_pcm.1.snd_timer.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_mixer_oss. snd_mpu401_uart. snd_pcm_oss. Tipo de microprocesador.snd_seq_oss.

rpm) como el nuevo archivo /etc/yum.org/centos/RPM-GPG-KEY-CentOS-5 #source packages 109 . Dispositivos PCI.1. Dispositivos USB.repo.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 (.0 Ethernet controller: 3Com Corporation 3CRPAG175 Wireless PC Card (rev 01) 8.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03) 00:08. Super Flash Apple.82443BX/ZX/DX Host bridge (AGP disabled) (rev 03) 00:04. 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.1 root hub 8. /sbin/lsusb Lo anterior puede devolver una salida similar a la siguiente.repos.1.2.2. Conecte a las ranuras USB del sistema los dispositivos USB más frecuentemente utilizados y utilice el mandato lsusb. Para CentOS.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 8.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02) 00:07. Inc.0 Host bridge: Intel Corporation 440BX/ZX/DX . que dependerá de los dispositivos PCI de los que que se disponga: 00:00.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.3. con el siguiente contenido: #source packages [sources] name=CentOS-$releasever . Keyboard Hub [ALPS] Linux Foundation 1.Sources baseurl=http://mirror. El mandato lspci permite determinar los dispositivos PCI (Peripheral Component Interconnect o Interconexión de Componentes Periféricos) presentes en el sistema.2. De manera similar al mandato lspci.1 Serial controller: Agere Systems LT WinModem 01:00.2.d/CentOS-Sources.org/centos/$releasever/os/SRPMS/ gpgcheck=1 enabled=1 gpgkey=http://mirror.4.0 Multimedia audio controller: ESS Technology ES1978 Maestro 2E (rev 10) 00:09. Apple. USB Keyboard [Alps or Logitech.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01) 00:07.centos. a fin de disponer de los paquetes RPM de fuentes. Inc. /sbin/lspci Lo anterior puede devolver una salida similar a la siguiente.centos.0 CardBus bridge: Texas Instruments PCI1211 00:05. 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.src.0 VGA compatible controller: ATI Technologies Inc 3D Rage LT Pro (rev dc) 00:07.

6.1.1.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.18-92.6.src.src.el5.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux [sources-updates] name=CentOS-$releasever .6.el5. 110 .centos.6. Obtener el código fuente del núcleo. A partir de los depósitos de la distribución utilizada. del siguiente modo: yumdownloader --source kernel Suponiendo que se tiene instalado el paquete del núcleo denominado kernel-2.6.centos.3.el5.3. Se procede a instalar el paquete fuente kernel-2. cabeceras de desarrollo para el lenguaje de programación C.18-92.2.6.spec.6. 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. la cual seguramente incluye parches específicos para funcionar con la instalación de esa distribución de GNU/Linux.src.rpm dentro del directorio de trabajo actual.1. 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.18-92. para construir la herramienta de configuración del núcleo. lo anterior descargara desde los depósitos de equipamiento lógico en Internet el paquete kernel2. misma que se utilizará para descargar el paquete fuente del paquete RPM del kernel. paquete de desarrollo de ncurses. 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.rpm de la siguiente forma: rpm -ivh kernel-*.org/centos/5/updates/SRPMS/ gpgcheck=1 enabled=1 gpgkey=http://mirror. 8.Sources Updates baseurl=http://mirror. Primero se instala el paquete yum-utils de la siguiente forma: yum -y install yum-utils El paquete yum-utils incluye la herramienta yumdownloader.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. hay que instalar además los paquetes qt-devel y gcc-c++ del siguiente modo: yum -y install qt-devel gcc-c++ 8.2.

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

Configuración genérica para arquitectura s390. AMD Athlon 64. la versión más reciente del núcleo.18s390x.25. Configuración genérica para arquitectura PPC de 64 bit (G5).6.config kernel-2.6.org/ y se descarga.config kernel-2.10. con opciones de depuración.25.2. Se accede hacia http://www.config kernel-2.bz2 112 .6. Solo recomendado para desarrolladores y escenarios donde se requiere diagnóstico.18ppc.18-ppc64debug.18-ppcsmp.6.bz2.tar.3.tar.18-s390xdebug. Configuración genérica para arquitectura s390.6. con soporte para Xen. con opciones de depuración.6.6.18s390.6/linux-2. Configuración genérica para arquitectura PPC de 64 bit. wget \ http://www.6. Solo recomendado para desarrolladores y escenarios donde se requiere diagnóstico.config kernel-2.org La principal ventaja de descargar el núcleo desde kernel.10.tar.config kernel-2.tar.bz2 Lo anterior descargará el paquete linux-2.config kernel-2.6.25. Descargar desde kernel. mejoras y más dispositivos soportados.18x86_64-debug.bz2 utilizando lo siguiente: tar jxvf linux-2.config kernel-2. 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. Configuración genérica para arquitectura x86_64. Solo recomendado para desarrolladores y escenarios donde se requiere diagnóstico.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux debug. Permite utilizar paravirtualización a través de Xen.config Solo recomendado para desarrolladores y escenarios donde se requiere diagnóstico.kernel.25.config kernel-2.config kernel-2.6. Se procede a descomprimir linux-2. o un API incluido en alguna versión en particular del núcleo. Configuración genérica para arquitectura x86_64.18x86_64.10.org es que se contará con la más reciente versión. Configuración genérica para arquitectura x86_64 (AMD K8. 8.6.6. Configuración genérica para arquitectura PPC de 32 bit.config kernel-2.10.6.6.org/pub/linux/kernel/v2. con opciones de depuración.18ppc64. con soporte de Multi-Procesamiento Simétrico (SMP). Configuración genérica para arquitectura s390x. desde la parte inferior de la portada del sitio.config kernel-2.18-ia64xen.2. Configuración genérica para arquitectura PPC de 32 bit (G3 y G4).18x86_64-xen.6. AMD Opteron). Permite utilizar paravirtualización a través de Xen. con soporte para Xen. Configuración genérica para arquitectura ia64.kernel.

25.2. pues cada opción incluye una ayuda que explica para que sirve y si es seguro incluirla.10 8.6. Solo se recomienda para usuario muy experimentados. 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.10. Configuración del núcleo. compilarla como módulo o excluirla. 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.4. 113 . cd linux-2. Solo resta es acceder hacia este directorio para configurar las opciones que se utilizarán.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior descomprimirá el contenido en un directorio denominado linux-2.6.25.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux En general. 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. 114 .

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 .

lspci y lsusb. de acuerdo a las necesidades y el sustento físico determinado previamente con los mandatos lsmod. PATA (Parallel Advanced Technology Attachment). en el resto de las opciones del árbol de configuración de menuconfig. SATA (Serial Advanced Technology Attachment). Controladores de dispositivos de uso continuo. como controladores de disco y transportes (buses) SCSI (Small Computers System Interface o Sistema de Interfaz para Pequeñas Computadoras). etc. ATA (Advanced Technology Attachment). En general se puede compilar dentro del núcleo lo siguiente: • • Controladores para dispositivos integrados en la tarjeta madre que sean de uso continuo. RAID (Redundant Array of Inexpensive Disks o conjunto redundante de discos independientes). • • En general se debe evitar incluir dentro del kernel y solo compilar como módulo lo siguiente: 116 . Controladores para sistemas de archivos (ext3). 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.

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

se procede a instalar primero los módulos: make modules_install Al concluir el procedimiento.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux make 8. # 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.6.3.2.6.el5) root (hd0.gz hiddenmenu title CentOS (2. Instalación del núcleo. puede editar el archivo /boot/grub/grub.el5. Si todo parece funcionar correctamente. eg.el5 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2. Después de varios minutos.25. creará el archivo system.xpm. 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 . Se puede crear un paquete RPM a partir de los binarios recién compilados.4. Creando paquete RPM.18-92.10) root (hd0.6.1.10.conf.4.0) # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 # initrd /initrd-version. This means that # all kernel and initrd paths are relative to /boot/.0)/grub/splash.map correspondiente.img NOTA: Es muy importante siempre conservar una copia del núcleo que viene con la distribución utilizada en caso de presentarse problemas.6. creará la imagen del disco RAM correspondiente y añadirá una entrada en el archivo /boot/grub/grub.6.2.6.6.18-92. make install Lo anterior instalará el núcleo en el directorio /boot.25.img #boot=/dev/hda default=0 timeout=5 splashimage=(hd0.conf y colocar el nuevo núcleo como predeterminado.10 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.0) kernel /vmlinuz-2. respetando los núcleos previamente instalados al colocarse como opción de arranque secundaria.25. Simplemente reinicie y pruebe el nuevo núcleo.2. dependiendo de la capacidad del sistema. # grub.0) kernel /vmlinuz-2. se instala el núcleo.6.1.18-92. 8.1.6.img title CentOS (2.

10-2. descriptivo y mostrar barra de progreso).10) | |CentOS (2.6.i386. 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.1.18-92.el5) | |CentOS (2.el5) | | | | | | | | | | | | | | | | | |________________________________________________________________| Use the ↑ and the ↓ to select which entry is highlighted. Press enter to boot the selected OS or 'p' to enter a password to unlock the next set of features.1. rpm -ivh /usr/src/redhat/RPMS/i386/kernel-2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si desea crear un paquete RPM compilando todo de nuevo.25.97 (639K lower / 261056K upper memory) _________________________________________________________________ |CentOS (2.rpm Lo anterior instalará el paquete RPM del núcleo recién creado.1.25.6.6. permitiendo elegir con cual iniciar el sistema desde el arranque con Grub.18-92.6. Al terminar. solo será necesario eligir desde Grub el núcelo con el cual se iniciará el sistema. a fin de que se mantengan instalados los paquetes del núcleo existentes en el sistema y estos coexistan. sin afectar a otras versiones de paquetes del núcleo que estén previamente instaladas. 119 . Grub version 0.

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

Sistemas que actualizaron desde una versión de núcleo 2. y se encuentran con la problemática de cubrir la cuota mínima de espacio de memoria de intercambio.1. por ejemplo). 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. se le da formato de la siguiente forma con el mandato mkswap. la mejor solución siempre será adquirir más RAM. 9. donde la opción -c indica se verifiquen sectores del disco duro buscando bloques dañados a fin de marcar estos.4 o 2. Cambiar el tamaño de la partición. Todos los procedimientos listados a continuación requieren hacerse como el usuario root o bien utilizando el mandato sudo.2.1. Ante todo. Otro método más sencillo y sin riesgo alguno. 9.6. Sistemas donde se aumentó la cantidad de memoria RAM. consiste en utilizar un archivo de intercambio de forma similar a como se hace en otros sistemas operativos. Crear un archivo para memoria de intercambio. a una versión de núcleo 2. de aproximadamente 1 GB. Procedimientos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux • • • • • Sistemas en donde adquirir memoria adicional es imposible. Si se utiliza este método.Sin embargo. Si se cambio la tabla de particiones del disco duro y se ha creado una nueva partición de memoria de intercambio. 9. 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. 9. size=1048576 bytes no label.2. UUID=d2fea5ab-c677-8047-789a-e54ae19c506b 121 . Activar una partición de intercambio adicional. 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. Servidores de alto desempeño en donde se desea contar con un amplio margen de espacio de intercambio para satisfacer las demandas de servicios. 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.4. Procedimientos.1. es importante disponer de un respaldo de todos los datos importantes antes de comenzar el proceso. y se está consciente que la memoria de intercambio es muchísimo más lenta que la memoria RAM. En equipos con trabajo intensivo que consume mucha memoria (diseño gráfico.5.ésto representa un riesgo.2.

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. se ejecuta el el mandato free. en bloques de 1024 bytes (bs=1024) hasta completar una cantidad en bytes determinada (count=[cantidad multiplicada por el valor de bs]). que equivalen a 512 MB: dd if=/dev/zero of=/swap bs=1024 count=512000 122 . se edita el archivo /etc/fstab: vim /etc/fstab La línea que se deba agregar. o bien para quienes requieren más de memoria de intercambio ocasional. Es idóneo para usuarios poco experimentados.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.2. Este método no requiere hacer cambios en la tabla de particiones del disco duro. para quienes desean evitar tomar riesgos al cambiar la tabla de particiones el disco duro. 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. En el siguiente ejemplo se realiza lo anterior hasta completar 524288000 bytes (1024 por ). especificando que se escribirán ceros (if=/dev/zero) para crear el archivo /swap (of=/swap). 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. Considerando que el archivo de memoria de intercambio puede ser colocado en cualquier directorio del disco duro.2. se ejecuta el mandato dd. o de manera circunstancial. lleva el siguiente formato: [partición] swap swap defaults 0 0 De tal modo. Utilizar un archivo como memoria de intercambio.

lo cual significa que se reclamará en su lugar el caché de la memoria. 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. donde el valor más bajo establece que se utilice menos la memoria de intercambio. se pone la ruta del archivo de memoria de intercambio creado: vim /etc/fstab /swap swap swap defaults 0 0 9. El valor predeterminado de 60. del siguiente modo. se ejecuta el mandato mkswap. y que sea utilizada inmediatamente por el sistema operativo. 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. Optimizando el sistema. se ejecuta el mandato swapon. se ejecuta el el mandato free. UUID=fed2aba5-77c6-4780-9a78-4ae5e19c506b Para activar la partición.2. fue establecido teniendo en mente a quienes desarrollan el núcleo de Linux. se edita el /etc/fstab: Y se agrega la línea correspondiente. size = 511996 KiB no label. con la finalidad de permitir realizar pruebas y diagnósticos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para dar formato de memoria de intercambio al archivo creado. 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. del siguiente modo: mkswap /swap Lo anterior puede devolver una salida similar a la siguiente: Setting up swapspace version 1.3. donde en lugar de el dispositivo. 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. 123 . El valor predeterminado es 60.

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

Procedimientos de emergencia Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.4G 5% /var/lib 5.8G 71% /usr/src 1.1M 507M 0 40G 35G 2. 10.4G 4. de forma opcional.2G 66% /usr/local 1.2G 34% / 64M 12% /boot 507M 0% /dev/shm 2.9G 2% /tmp 2.9G 792M Disp Uso% Montado en 9. Al reutilizar o distribuir la obra.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.3G 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. 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.0G 257M 6. Estas situaciones requieren que el administrador conozca al menos las herramientas correspondientes.4G 4. c) Si altera o transforma esta obra.1. configurar el teclado y.2. la conectividad a través de dispositivos de red. Usted es libre de copiar. 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.0G 6.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.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.0G 570M 19G 17G 6. 10. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. 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.0G 36M 6. 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. o genera una obra derivada.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 10.6G 94% /home 1. Introducción En ocasiones suele ser necesario realizar tareas de mantenimiento y de reparación en el sistema de archivos. 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. b) No puede utilizar esta obra para fines comerciales.8G 12% /var/www 125 .8G 76M 8.4G 30% /var 998M 95% /var/ftp 5.

Utilizar el mandato fsck en una partición montada. 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. puede ocasionar la pérdida o corrupción de datos. 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). pero además con verificación de solo-lectura para buscar bloques dañados (opción -c). fsck -fy /dev/sdXX Lo mismo que el mandato anterior. preservando la lista de bloques dañados existente donde se añadirán nuevos bloques dañados a ésta (opción -k). fsck -fykcc /dev/sdXX Forzar la verificación del sistema de archivos. fsck -fykc /dev/sdXX Lo mismo que el mandato anterior. desmontar antes ésta. Forzar la verificación del sistema de archivos. necesariamente. 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). este se añade al inodo de bloques dañados. Una vez desmontada la partición a verificar. pero con verificación de lectura-escritura no-destructiva para buscar bloques dañados (opción -cc). Verificación de la integridad del disco La verificación de cualquier partición del disco duro requiere.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 10. Sí se encuentra un bloque dañado. fsck -fpkc /dev/sdXX 126 . pero además con verificación de solo-lectura para buscar bloques dañados (opción -c). es posible realizar una verificación y/o reparación utilizando cualquiera de los siguientes ejemplos de uso del mandato fsck. 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).3.

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

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.

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

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.79 GiB] / in no VG: 1 [9.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. ejecute el mandato hdaparm del siguiente modo: hdparm -z /dev/sdb Para crear un volumen físico.76 GiB] Total: 3 [71.00 GiB / 0 free] PV /dev/sdb1 lvm2 [9.76 GiB] Para crear el grupo de volúmenes denominado VolDatos.80 GiB / 0 free] PV /dev/sda3 VG VolGroup01 lvm2 [8.5GB Tamaño 10. y verificar que se ha creado una partición primaria de 10240 MB.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Numero 1 Inicio 1049kB Fin 10. 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 partprobe del siguiente modo: partprobe /dev/sdb1 Nota. tipo LVM. ejecute el mandato vgcreate del siguiente modo: vgcreate VolDatos /dev/sdb1 Ejecute el mandato vgscan para verificar el procedimiento anterior: 130 .55 GiB] / in use: 2 [61. Si lo anterior falla.5GB Typo primary Sistema de ficheros Banderas lvm Para presentar la nueva partición ante el núcleo del sistema.

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.00 GiB] inherit Para dar formato al nuevo volumen lógico. ejecute el mandato mkfs..80 GiB] inherit '/dev/LogVol01/LogVol00' [8. 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.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.ext4 del siguiente modo: mkfs.76 GiB] inherit '/dev/LogVol00/LogVol01' [53. This may take a Found volume group "VolDatos00" using metadata Found volume group "VolGroup00" using metadata Found volume group "VolGroup01" using metadata while. type lvm2 type lvm2 type lvm2 Para crear un volumen lógico. 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 .. asignando el 100% de las extensiones lógicas libres. perteneciente al grupo de volúmenes denominado VolDatos. denominado Datos00.

Asumiendo que se ha realizado todo el procedimiento anterior. vgreduce VolGroup00 /dev/sda1 11. pvmove /dev/sda1 /dev/sdb1 Una vez terminado el movimiento. a partir de espacio libre sin particionar en un disco duro.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. Añadir un volumen físico a un volumen lógico existente. 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.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux S. edite el archivo /etc/fstab: vim /etc/fstab Añada el siguiente contenido: /dev/mapper/VolDatos00-Datos00 /datos ext4 defaults. sólo resta eliminar /dev/sda1 del 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. Se asume un escenario donde: • • • Se utilizará el mismo disco duro del procedimiento anterior. sólo se requiere utilizar el mandato pvmove para mover el contenido de un volumen físico a otro.1. umount /datos mount /datos 11.noatime. ejecutando el mandato parted del siguiente modo: parted /dev/sdb unit MB print free 132 .1. y monte de nuevo el volumen lógico para verificar que todo trabaje correctamente. será LogVol00.nodiratime 1 2 Desmonte. Mover contenidos desde un volumen físico a otro en un nuevo disco duro. Determine el espacio disponible del disco duro. es igual o mayor al del volumen físico en /dev/sda1.2.1. asumiendo que el tamaño del volumen físico en /dev/sdb1.

y continúe trabajando.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Determine en qué MB comienza el espacio libre. De ser necesario. o bien ejecute el mandato partprobe del siguiente modo: partprobe /dev/sdb2 Si lo anterior falla.5GB 15. As a result. 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. 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. Para crear una nueva partición de aproximadamente 5120 MB.5GB Fin 10. it may not reflect all of your changes until after reboot.5GB 5119MB Typo primary primary Sistema de ficheros Banderas lvm lvm Para crear un volumen físico.6GB Tamaño 10. y verificar que se ha creado una partición primaria de 5120 MB. tipo LVM. reinicie el sistema más adelante. Ignore la advertencia. ejecute el mandato pvcreate del siguiente modo: pvcreate /dev/sdb2 Ejecute el mandato pvscan para verificar el procedimiento anterior: pvscan 133 . ejecute el mandato parted del siguiente modo: parted /dev/sdb mkpart primary ext4 10481 15600 Nota.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Numero 1 2 Inicio 1049kB 10. 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).

al grupo de volúmenes denominado VolGroup00.12 (17-May-2010) Filesystem at /dev/Datos/LogVol00 is mounted on /home.00 GiB / 0 free] PV /dev/sdb2 lvm2 [4.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. new_desc_blocks = 2 Performing an on-line resize of /dev/Datos/LogVol00 to 8300544 (4k) blocks. al volumen lógico LogVol00. 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.80 GiB / 0 free] PV /dev/sda3 VG VolGroup01 lvm2 [8. que corresponde a la partición /dev/sdb2. con la opción -h. provisto por el nuevo volumen físico añadido al grupo de volúmenes denominado VolGroup00. El sistema de ficheros en /dev/VolGroup00/LogVol00 tiene ahora 8300544 bloques. 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 . y que éste utiliza el nuevo espacio libre recién asignado al volumen lógico.55 GiB] / in no VG: 1 [4.77 GiB] Para añadir este volumen físico.41. 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.32 GiB] / in use: 3 [71.77 GiB] Total: 4 [76. ejecute el mandato resize2fs del siguiente modo: resize2fs /dev/VolGroup00/LogVol00 Lo anterior debe devolver una salida similar a la siguiente: resize2fs 1. Ejecute df.66 GiB Logical volume LogVol00 successfully resized Para cambia el tamaño del sistema de archivos.

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

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

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

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

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

7% non-contiguous).2.39 (29-May-2006) Pass 1: Checking inodes. Para optimizar una partición en formato ext3. y comprimiendo directorios.2. 140 . Ejemplo: [root@servidor ~]# df S. blocks. se pueden volver a montar las particiones optimizadas. particiones con formato ext2. La optimización de todos los directorios de una partición consiste en volver a posicionar (reindexing) los directorios. Para poder desmontar una partición es indispensable que el sistema funcione sin procesos haciendo uso de contenidos en dicha partición. cuando el sistema de archivos incluye soporte para tal.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. se utiliza el mandato df. es indispensable que ésta esté desmontada. Puede utilizarse el mandato lsof para determinar ésto.1. y así definir que es lo que se debe detener momentáneamente. 12. 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. Si el sistema funciona sin procesos haciendo uso de contenidos en la partición. Procedimientos Para determinar que dispositivos corresponden a las particiones en el disco duro. 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. Utilizando el mandato e2fsck. Incluye la opción -D que realiza la optimización de directorios en el sistema de archivos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 12. y ext3. 208319/5243214 blocks Una vez terminado el procedimiento. pueden aplicarse varios métodos de optimización. 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. o volviendo a acomodar. y reparar. El mandato e2fsck se utiliza regularmente para revisar.

Nota: Debido a que se debe desmontar. 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). se perderán los datos más recientes con los que se haya trabajado. se configurará la opción noatime para la partición /var/www en el archivo /etc/fstab de un servidor HTTP. Opción data (datos). pero aplicado a todos los datos de la partición. 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. Esta opción controla el tiempo que se utilizará entra cada operación sincronización (sync) de datos y metadatos en una partición. Todas se especifican en la columna de opciones de los dispositivos en el archivo /etc/fstab. los cuales realmente son poco utilizados por la mayoría de los usuarios.2. 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.2. Equivale a utilizar chattr +A.2. Es la forma más rápida.2. o Input/Output). LABEL=/var/www /var/www ext3 defaults. Los sistemas de archivos ext3 permiten tres opciones que particularmente son útiles. y volver a montar. LABEL=/var/www /var/www ext3 defaults. Opción commit (consignación de cambios). 12. 141 .2.2.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).2. Si la prioridad es garantizar la integridad de datos o bien se carece de un sistema de respaldo de energía confiable. del disco duro. y Salida (I/O. y ocurre una interrupción de energía antes de hacer una operación de sincronización (sync).2. El tiempo predeterminado es de 5 segundos. las modificaciones de esta opción requieren que la partición esté sin utilizar. En el siguiente ejemplo. Esto permite mejor desempeño en servidores de noticias y HTTP pues permite un más rápido acceso hacia el sistema de archivos. 12. Esta opción permite tres posibles valores: • ordered: Es el valor predeterminado. es la opción que debe utilizarse. Esta opción sólo se recomienda si se dispone de un sistema de respaldo de energía confiable. y desmontando las particiones que se quiera optimizar antes de utilizar el mandato e2fsck -f -D. Esta opción impide se actualice los tiempos de acceso de los inodos (nodos índice).1. Opciones de montado. de lograr mejoras en el desempeño. Escribe los datos asociados a los metadatos primero en el sistema de archivos antes de hacerlo en el registro por diario.noatime 1 2 12. puede utilizarse el disco de instalación de CentOS. en el caso de Ubuntu. Opción noatime (eliminar tiempos de acceso). y fácil. En el siguiente ejemplo.commit=8 1 2 12. Fedora o Red Hat en modo de rescate ( boot: linux rescue). tomando en cuenta que si se específica demasiado tiempo.3.2.

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

y se elimina la opción data=valor. Convirtiendo particiones de Ext3 a Ext4. es posible montar una partición Ext3 como Ext4 modificando el archivo /etc/fstab. y aplicadas. Para regresar todo a como estaba originalmente. CentOS 5. Ext3. el gestor de arranque. y que el sistema puede ser reiniciado con toda seguridad en el momento que se considere apropiado. 12. jamás se deben convertir a Ext4 las particiones que correspondan a /boot o /. y montan las particiones. por lo cual es innecesario convertir de Ext3 a Ext4. y Red Hat Enterprise Linux 5 la versión de Grub. significa que las opciones se aplicaron correctamente. Si lo anterior devuelve el símbolo de sistema sin errores. pero carecerá de muchas funciones propias de Ext4.2. 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. carece de soporte para iniciar desde particiones Ext4. 143 .3. significa que las opciones fueron revertidas. Si uno sólo necesita hacer pruebas. Nuevamente. preservando los datos originales en el sistema de archivos.. incluye el soporte necesario para convertir al formato Ext4 las particiones Ext3. Es muy importante realizar un respaldo de información importante antes de proceder. si se utiliza CentOS 5 o Red Hat Enterprise Linux 5. con la única restricción de que jamás se deberá convertir a Ext4 las particiones que correspondan /boot y /. el formato predeterminado en las particiones es Ext4. se edita el archivo /etc/fstab. y que el sistema puede ser reiniciado con toda seguridad en el momento que se considere apropiado.5. Esta es la razón por la cual se desmontan. y versiones posteriores. correctamente.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. debido a que en CentOS 5. En CentOS 6 o Red Hat Enterprise Linux 6. Ext4 ha demostrado ser un sistema de archivos con mucho mejor desempeño que su predecesor. para cambiar el tipo de registro por diario de las particiones. Instalando los paquetes correspondientes. por si acaso algo saliese mal.

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

1. utilizando el método descrito en este mismo documento. /var/tmp o /var/cache). Advertencias.2.4. por si acaso algo saliese mal. Hay que considerar además que la mejoría obtenida puede ser apenas perceptible. de la siguiente forma: tune4fs -O ^has_journal /dev/sda7 145 . que fue previamente convertida a Ext4.2. Asumiendo que se dispone de una partición /dev/sda7. es importante aclarar que eliminar por completo el registro por diario implica perder una importante función 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.4. 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. un sistema operativo estable y/o se tienen particiones asignadas a directorios donde la información es poco relevante (como /tmp.mode=620 0 0 defaults 0 0 defaults 0 0 defaults 0 0 1 2 12. Procedimientos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux blkid /dev/sda7 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. sólo amerite eliminar el registro por diario en particiones en unidades de estado sólido (SSD). Eliminando el registro por diario (journal) de Ext4.2. Es importante también realizar un respaldo de información importante antes de proceder.2. Antes de comenzar. Este procedimiento está absolutamente contraindicado en servidores o donde se requiera una garantía absoluta de integridad de datos. muy probablemente. 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.4. El formato Ext3 carece de soporte para funcionar sin registro por diario. que en el ejemplo corresponde a /tmp. y. 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. Este procedimiento aplica exclusivamente a las particiones con formato Ext4. 12. por ejemplo). 12.. o formateada en Ext4. se requiere ejecutar el mandato tune4fs.

En el dado caso que se quiera volver a utilizar el registro por diario. se habrá completado el procedimiento. sin importar la versión de sistema operativo. de la siguiente forma: tune2fs -O ^has_journal /dev/sda7 El símbolo ^ (acento circunflejo) significa que se elimina una opción. y forzar verificación) a fin de realizar correcciones importantes e indispensables en el sistema de archivos. Basta con volver a montar la partición para verificar que todo funcione correctamente. o anterior requiere utilizar en seguida el mandato fsck. y la misma partición /tmp. La mejoría será apenas perceptible. En este caso la opción eliminada fue has_journal.487s 0m3. y establecer el nombre real del dispositivo en lugar del UUID: 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. que es las responsable del registro por diario.978s 0m0.796s 0m0. pero brindará el máximo rendimiento posible para el sistema de archivos Ext4.ext4 -pDf /dev/sda7 Eliminar el registro por diario de una partición ext4 hace que irremediablemente se pierda el UUID.444s 0m4. su -l umount /home tune2fs -O has_journal /dev/sda7 fsck -pDf /dev/sda7 mount /home 146 . se requiere ejecutar el mandato tune2fs.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para eliminar el registro por diario de la partición /dev/sda7 en CentOS 6 o Red Hat Enterprise Linux 6. la diferencia es muy poca. abrir una terminal. En un equipo con una partición /tmp con registro por diario. la escritura de 1 GB de información demoró lo siguiente: real user sys real user sys 0m9. pero significativa. y que prescinda de interacción humana.mode=620 defaults defaults defaults 1 1 1 0 0 0 0 0 1 2 2 0 0 0 0 0 Hecho lo anterior. sólo basta con volver a iniciar con el disco vivo. fsck.811s /tmp con registro por diario /tmp sin registro por diario Como pude verse. superando incluso el desempeño en cuanto a velocidad de Ext2. con las opciones -pDf (reparar automáticamente lo que sea necesario. y ejecutar lo siguiente. por lo cual invariablemente hay que editar el archivo /etc/fstab. optimizar re-ordenando directorios.441s 0m8. sin registro por diario.

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

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

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

en Buffalo. John LoVerso y Don Gworek. salvo que se especifique lo contrario en el archivo /etc/sudoers. Introducción. 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. Historia. Una vez que el usuario se ha autenticado.1. versión que posteriormente fue publicada bajo los términos de la Licencia Pública General de GNU (GNU/GPL). 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. 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). Usted es libre de copiar. c) Si altera o transforma esta obra.1. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. 14.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. b) No puede utilizar esta obra para fines comerciales. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. y Trent Hein. 150 . incluyendo Bob Coggeshall. En 1985 se publicó el grupo de noticias net. Gretchen Phillips. 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. el usuario podrá utilizar nuevamente sudo sin necesidad de volver a autenticarse durante 5 minutos. 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. 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. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Cliff Spencer. 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. 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). en cuyo caso contrario expirará esta autenticación y será necesario volver a realizar ésta. trata de ejecutar un mandato a través de sudo. Si un usuario no listado en el archivo /etc/sudoers. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Cómo configurar y utilizar Sudo Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.1.sources una versión mejorada acreditada a Phil Betchel. Bob Manchek. 14. donde se determina quien está autorizado.1 © 1999-2011 Joel Barrios Dueñas. o genera una obra derivada.alcancelibre. Si el usuario ejecuta el mandato sudo -v podrá refrescar éste periodo de tiempo sin necesidad de tener que ejecutar un mandato. Al reutilizar o distribuir la obra. Desde 1996 el proyecto es mantenido por Todd Miller con la colaboración de Chris Jepeway y Aaron Spangler. tiene que dejar bien claro los términos de la licencia de esta obra.

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

integrada por los usuarios fulano.168.0. 14. pedro.168.0.0.0. mengano y zutano). hugo Cmnd_Alias MANDATOSCLIENTES = /bin/ls.25.23 Lo anterior define que la lista HOSTSHTTPD está integrada por las 3 direcciones IP listadas anteriormente. Candados de seguridad. mengano.2.26. touch y vim como el usuarios juan. mkdir. User_Alias. rm. 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.3. Runas_Alias. pedro y hugo) solamente si se realiza desde las direcciones IP listadas en HOSTSHTTPD (192.26. 192. /usr/bin/vim USUARIOSHTTPD HOSTSHTTPD = (CLIENTES1) MANDATOSCLIENTES Lo anterior permite a los usuarios definidos en USUARIOSHTTPD (fulano. chmod. 152 . se requiere definir una lista para estos mandatos y otra para los aliases de usuarios alternos. /bin/mv. utilizar los mandatos definidos en MANDATOSCLIENTES (ls.4.4. mkdir.168.25. chmod. /bin/chmod. /bin/touch.23). mengano y zutano.168.168. pedro y hugo.168. /bin/rm. Host_Alias. 192.3. User_Alias USUARIOSHTTP = fulano. /bin/cp. Runas_Alias CLIENTES1 = juan. 192. y la regla correspondiente. Si por ejemplo se quisiera que los usuarios de la lista USUARIOSHTTP pudieran además utilizar los mandatos ls. rm. cp.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 14. mv. 192. cp.3. /bin/mkdir. 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.3. zutano Lo anterior define una lista denominada HTTPUSERS. Sudo incluye varios candados de seguridad que impiden se puedan realizar tareas peligrosas. 14. 14. touch y vim) identificándose como los usuarios definidos en CLIENTES1 (juan.0. mv.0. Host_Alias HOSTSHTTPD = 192.

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

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. # . then . ~/. A continuación só diversos aliases que pueden ser de utilidad en el archivo ~/.bashrc ].bash_profile se añadieron estos aliases. hay que salir de la sesión y volver a ingresar al sistema con la misma cuenta de usuario.bashrc # Get the aliases and functions if [ -f ~/.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. en cuyo archivo ~/.bashrc y que permitirán utilizar mandatos diversos con sudo. 154 .

1 © 1999-2011 Joel Barrios Dueñas.1. Sin embargo aún resulta útil para la administración de servidores.1. Actualmente existen recursos como el programa instalador de Red Hat™ Linux® y programas que funcionan desde un entorno gráfico. no se tienen instalados YaST o Linuxconf -o las versiones de estos que se han instalado no trabajan correctamente-. o genera una obra derivada. misma que sólo debe utilizarse para la administración del sistema. 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. tiene que dejar bien claro los términos de la licencia de esta obra. los permisos y ubicación de los archivos y directorios de sistema. Usted es libre de copiar.1. 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. 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. etc. como es Linuxconf y Webmin. Cómo crear cuentas de usuario Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. useradd y passwd. Aún cuando se tenga una PC con un único usuario. b) No puede utilizar esta obra para fines comerciales. 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.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. 15.2. los servicios que trabajan en el trasfondo. 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. cuando no se tiene instalado X Window®.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 15. 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-. se altere accidentalmente la configuración del sistema. Procedimientos Generalmente el paso que procede a una instalación de GNU/Linux® es la creación de cuentas de usuario. 15. como YaST y la versión correspondiente de Linuxconf o Webmin.2. 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 155 . así como recursos que funcionan en modo de texto o desde una ventana terminal. Al reutilizar o distribuir la obra. y algunos otros programas. o bien se tienen limitaciones o problemas para utilizar un entorno gráfico.alcancelibre. Para ello existen distintos métodos.1. como son los mandatos tradicionales. 15. 15. Fue el método comúnmente utilizado antes de la aparición de programas como YaST y Linuxconf. es importante recordar que no es conveniente realizar el trabajo diario desde la cuenta de root. c) Si altera o transforma esta obra.2.

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

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

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

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. Observar estas recomendaciones. 159 . También es posible utilizar pares de palabras con puntuación insertada y frases o secuencias de palabras. o bien acrónimos de éstas. hará que el sistema sea más seguro.

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

el directorio /etc/skel incluye los siguientes guiones de inicio: . 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. 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 161 . por ejemplo. /bin/false. un enlace simbólico que apunta hacia /bin/bash y ofrece una versión simplificada de Bash muy similar a Bourne Shell (sh). IMAP y/o cliente de correo con interfaz HTTP). Es el intérprete de mandatos predefinido en Linux y Mac OS X (a partir de Tiger). características podrán. programa que realiza salida inmediata indicando falla.gtkrc Si.5. de modo predefinido no podrá acceder al sistema a mandatos (shell). /dev/null. que no permite la realización de cosa alguna y además con falla. correo o Samba sin ● ● ● ● ● ● /sbin/nologin.bash_logout . POP3. /bin/ash. /bin/tcsh.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. Otros valores para la variable SHELL pueden ser: ● ● el mandato useradd sin través de intérprete de Los usuarios con estas FTP. /bin/sh. utilizar cualquier otro servicios como problema alguno. es decir. regularmente y como mínimo.2. Es decir. /bin/zsh. Ideal si se quiere tener cuentas de usuario con acceso hacia FTP. En sistemas basados sobre Red Hat™. una versión mejorada del de mandatos de C (csh). un clon de Bourne shell (sh) que utiliza menos memoria. programa que de forma cortés rechaza el ingreso en el sistema (login). correo. acceso en terminal local o remotamente. sin embargo.bash_profile . etc. intérprete de mandatos desarrollado por el proyecto GNU. 15. el dispositivo nulo que descarta todos los datos escritos sobre éste y no provee datos para cualquier proceso que lo lea. /bin/bash.bashrc . aunque sin permitir el acceso hacia un intérprete de mandatos. Ideal para definirse cuando se quiere utilizar una cuenta que sólo tenga acceso a correo (SMTP. Samba. 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. una versión mejorada de sh con funciones útiles encontradas en Bash y tcsh..

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

asignando el directorio de inicio /home/desarrollo/perengano. 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». «mengano». Genere los directorios subordinados /home/desarrollo y /home/sistemas/ del siguiente modo: mkdir -p /home/desarrollo mkdir -p /home/sistemas 7. asignando el directorio de inicio /home/sistemas/zutano.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux groupadd -r sistemas 6. 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. 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 163 . Genere al usuario denominado «zutano» con derecho a intérprete de mandatos. «perengano» y «zutano».

tiene que dejar bien claro los términos de la licencia de esta obra. o genera una obra derivada.alcancelibre.32-71.1. Licencia completa en castellano. y nombre del sistema operativo. tipo de microprocesador. número de lanzamiento del núcleo. Introducción. 16. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.gz 164 . Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. 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. Ingrese como root.localdomain 2. Por favor.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.xpm. en la cual se mostrará el nombre del núcleo.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.6.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 16. e ingrese nuevamente al sistema como usuario regular (fulano). /etc/hosts: ASCII text Ejecute lo siguiente: file /boot/grub/splash. Breve lección de mandatos básicos.29. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. Al reutilizar o distribuir la obra. Ejecute lo siguiente: uname -a Lo anterior devolverá una salida similar a la siguiente. c) Si altera o transforma esta obra.1 © 1999-2011 Joel Barrios Dueñas. En varios ejemplos utilizará el caracter ~ (tilde). plataforma del sistema. nombre de anfitrión.2. 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. versión del núcleo de Linux.el6. que es una forma de abreviar el directorio de inicio del usuario utilizado. 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. a través de cualquier medio. Linux localhost. Usted es libre de copiar.1. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. 16. siga los procedimientos al pie de la letra. por entidades con fines de lucro).

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

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

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

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

y mostró dentro de éste al directorio «uno». mkdir ~/ejemplos1/adicional Acceda al directorio de ejemplos1 para continuar. y genere un directorio denominado adicional dentro del directorio de ejemplos1. Ejecute lo siguiente: cd ~/ejemplos1/ Proceda a ver el contenido de este directorio. y dentro de éste al directorio «uno». ejecutando lo siguiente: ls Se mostrarán los archivos fstab y passwd. 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.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux mkdir -p ejemplos2/uno ls ls ejemplos2 Lo anterior creo el directorio «ejemplos2». Copie algunos archivos para experimentar con este directorio.: [fulano@localhost ejemplos1]$ adicional fstab passwd [fulano@localhost ejemplos1]$ Utilizando el mandato mv. y mostró al directorio «ejemplos2». y el directorio adicional. Utilice de nuevo el mandato mkdir. 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: 169 .

Ejecute lo siguiente: wc -l /etc/crontab 170 .2. Ejecute lo siguiente: wc -w /etc/crontab Lo anterior devolverá que el archivo /etc/crontab contiene 84 palabras. el cual se localiza dentro del directorio adicional: rm adicional/fstab Elimine el directorio adicional: rmdir adicional 16./ Proceda a eliminar el archivo passwd que se encuentra en el directorio ejemplos1 rm passwd Haga lo mismo con fstab.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 . Visualizando contenido de archivos.1.. Ejecute lo siguiente: wc -m /etc/crontab Lo anterior devolverá que el archivo /etc/crontab contiene 448 caracteres.

day of week (0 .tue. Ejecute lo siguiente: cat /etc/crontab | grep -v "root" Lo anterior devolverá una salida similar a la siguiente: 171 .---------------. y sólo visualizar las líneas que sin la cadena de caracteres root.sat | | | | | * * * * * command to be executed Para mostrar sólo las lineas que contengan la cadena de caracteres root. Ejecute lo siguiente: wc -c /etc/crontab Lo anterior devolverá que el tamaño del archivo /etc/crontab es de 448 bytes.. Utilice el mandato cat para ver el contenido del archivo /etc/crontab.------.12) OR jan.mon.thu.month (1 .23) | | .apr .mar.6) (Sunday=0 or 7) OR sun. se utiliza el mandato grep como subrutina.31) | | | .day of month (1 . 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. 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: .minute (0 . | | | | .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior devolverá que el archivo /etc/crontab contiene 16 líneas.---------.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..---.------------.fri.feb.wed.hour (0 .

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: .wed.sat | | | | | * * * * * command to be executed Lo anterior incluye también las lineas vacías.hour (0 .12) OR jan.feb.------------.sat # | | | | | # * * * * * command to be executed Ejecute lo siguiente: head -3 /etc/crontab El mandato head devolverá la siguiente salida.59) # | .mar.tue.---.mar.23) | | .fri.6) (Sunday=0 or 7) OR sun. donde sed es un editor para filtrado y transformación de texto.12) OR jan.---------------.23) # | | .------------. | | | | .feb.apr .mon. mostrando las 3 primeras líneas del archivo /etc/crontab.minute (0 .---------------.wed. # | # * | * | * | * | * command to be executed 172 .59) | .month (1 .thu.hour (0 .thu.day of month (1 .---------.---------.fri.minute (0 .day of week (0 .. mostrando las 3 últimas líneas del archivo /etc/crontab.apr .31) # | | | .6) (Sunday=0 or 7) OR sun. Para mostrar el mismo resultado sin líneas vacías. # | | | | ..day of week (0 . se utiliza el mismo mandato agregando sed -e '/^$/d' como subrutina del siguiente modo.------.---.. 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.mon.month (1 . 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: # .tue.day of month (1 ..------.31) | | | .

Ejecute lo siguiente: cat /etc/passwd |grep 0 | cut -d ":" -f1 El contenido del archivo /etc/passwd es mostrado. pero sólo mostrando aquellas líneas que incluyen el caracter 0. definiendo el caracter : (dos puntos) como delimitador entre las columnas. 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. en orden inverso. ordenando las líneas por nombre. y mostrando sólo la primera columna de datos del archivo. 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. 173 .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. ordenando las líneas por nombre. observe que los datos de cada línea son delimitados por el caracter : (dos puntos). pero sólo las líneas que incluyen el caracter 0. pero sólo las líneas que incluyen 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.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. y sólo mostrando la primera columna de datos. y sólo mostrando la tercera columna de datos del archivo. ordenando las líneas por nombre. avahi-autoipd avahi ftp fulano games gopher halt operator root shutdown sync uucp 174 . considerando que se utilizó el caracter : (dos puntos) como delimitador entre las columnas. definiendo el caracter : (dos puntos) como delimitador entre las columnas. peor sólo las líneas que incluyen el caracter 0. pero sólo aquellas que contienen el caracter 0.

$i+ +){print "$in".Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 16. y que corresponde al contenido del archivo ~/texto.txt: cat ~/texto. Bucles.2.$i<10.2.txt Lo anterior sólo devolverá el símbolo de sistema.$i++){print "Número $i\n".}.}' >> ~/texto.$i<10. perl -e 'for($i=1.txt Lo anterior devolverá una salida similar a la siguiente. Utilice el mandato cat para visualizar el contenido del archivo ~/texto. añada al mandato anterior >> ~/texto.txt: perl -e 'for($i=1.$i<10. lo cual redirigirá la salida hacia el archivo ~/texto.txt: 175 .$i++){print "$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. Ejecute lo siguiente.txt.}' 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.$i++){print "Número $i\n". donde se utiliza el mandato perl ejecutando (-e) el guión for($i=1. 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.

. Primero creará un nuevo directorio: mkdir ~/respaldos Ejecute los siguientes mandatos: cd /usr/share/pixmaps/ for f in *.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.9} do echo -e "Número $i" >> ~/texto-con-bash.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. asignando a cada uno un nombre distinto al que tenían en su directorio de origen. En el siguiente caso usted creará respaldos de un conjunto de archivos de imágenes. y que corresponde al contenido del archivo ~/texto-con-bash. ejecute lo siguiente: 176 . Para ver el contenido del directorio ~/respaldos/.txt Lo anterior devolverá una salida similar a la siguiente.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». Utilice el mandato cat para visualizar el contenido del archivo ~/texto-con-bash. ejecute lo siguiente: for i in {1. pero con el mandato bash.txtejecute lo siguiente: cat ~/texto-con-bash.txt done Lo anterior sólo regresa el símbolo de sistema.

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

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

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

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 180 .

17. 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. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. vi se instala de modo predefinido en la mayoría de las distribuciones de GNU/Linux a través del paquete vim-minimal.2. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.2. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Resulta sumamente útil conocer la funcionalidad básica de vi a fin de facilitar la edición de archivos de texto simple.txt Lo anterior mostrará una interfaz como la siguiente: 181 . o genera una obra derivada.1 © 1999-2011 Joel Barrios Dueñas.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 17.1. 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. Al reutilizar o distribuir la obra.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1. 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. b) No puede utilizar esta obra para fines comerciales.3. Usted es libre de copiar. Conociendo vi Acceda al sistema autenticando como usuario (fulano) y realice lo siguiente: vi holamundo. 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) Si altera o transforma esta obra. 17. principalmente archivos de configuración. Si lo desea. Instalación y paquetes adicionales Por lo general.alcancelibre. Procedimientos 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. 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. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.

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

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»: 183 . Notará que ahora aparece la palabra «REEMPLAZAR»: Alcance Libre un vuen citio donde empesar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -.

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 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -.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: 184 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un buen citio donde empesar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -.

txt»: 185 .txt" [Nuevo] 2L. 44C escritos 2.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.3 Todo Vuelva a pulsar la tecla : (dos puntos) e inmediatamente escriba «saveas adiosmundo.

txt" [Nuevo] 2L.3 Todo Vuelva a pulsar la tecla «INSERT» para regresar al modo de inserción y escriba lo siguiente: 186 . 44C escritos 2.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.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un buen sitio donde empezar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :saveas adiosmunto.txt: Alcance Libre un buen sitio donde empezar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "adiosmundo.

INSERTAR -- 5.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: 187 .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.

el símbolo «%» indicaba que se aplicaría un procedimiento a todo el archivo. A continuación. indicado por la letra «g».1 Todo Ahora pulse dos veces consecutivas la tecla «d». no solo en la misma línea. 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.1 Todo En el procedimiento anterior. pulsará «dd». Observe como desaparece la primera línea: 188 . 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. es decir.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.

sobre la letra «u» de la línea «un buen sitio donde empezar»: 189 . coloque el cursor del teclado nuevamente sobre el primer carácter de la primera linea del archivo. Utilizando las flechas del teclado.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». es decir.

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: 190 .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 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.

Abra nuevamente el archivo adiosmundo. 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: 191 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Alcance Libre un buen sitio donde empezar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 3 líneas menos 2.1 Todo Pulse la tecla «p» una vez.txt con vi y pulse la combinación de teclas :/buen. 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.

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.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 Para cancelar lo que se encuentra resaltado de los resultados.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: 192 .

1 Todo Pulse la tecla <ESC> y enseguida o.INSERTAR -- 2.INSERTAR -- 3.1 Todo Pulse nuevamente la tecla <ESC> y en seguida la combinación dG (d. luego SHIFT+G). 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: 193 .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 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -.

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. 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. 194 . 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.4.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.

Codifica el archivo en UTF-8. Aparece descartando los cambios en el archivo. Guarda el archivo y sale de vi. Búsqueda de cadenas de caracteres. 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. Lo mismo que :wq Guarda el archivo como otro archivo donde sea necesario. 195 . Elimina la línea actual donde se encuentre el cursor.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.5. Aparece si no hubo cambios en el archivos. Cancelar el resaltado de resultados de Búsqueda. Elimina desde la posición actual del cursor hasta el final de la misma línea donde se encuentra el cursor. Deshacer cambios Rehacer cambios. 17. Elimina todo hasta el final del archivo. Guarda el archivo sin salir.

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

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

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

txt La salida devolverá lo siguiente: Fulano Algo Calle Mengana 123 El siguiente mandato solo muestra las últimas tres líneas del archivo usuario. C.$D.P.txt: sed -e :a -e '$q. 123456 En el siguiente ejemplo se reemplazan solo el primer espacio de cada línea por un tabulador: sed 's/\ /\t/' usuario.P. C. 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.ba' usuario.P.txt: sed q usuario.txt La salida devolverá lo siguiente: Fulano Calle Colonia Ciudad Algo Mengana 123 Perengana de Zutano.txt La salida devolverá lo siguiente: Fulano Algo Calle Mengana 123 Colonia Perengana Ciudad de Zutano.txt: sed 2q usuario. 123456 La siguiente línea añade 5 espacios al inicio de cada línea: sed 's/^/ /' usuario.N.txt 199 .txt La salida devolverá lo siguiente: Fulano Algo El siguiente mandato solo imprime las primeras dos líneas del archivo usuario.4. 123456 El siguiente mandato solo imprime la primera línea del archivo usuario.

northpark.wikipedia.1!p. pero no la línea en si que incluye Fulano: sed -n '/Fulano/{n. C.3.txt Wikipedia: http://en.txt La salida devolverá lo siguiente: Calle Mengana 123 Ciudad de Zutano.}.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.edu/pemente/sed/sed1line.P. pero no la línea en si que incluye Calle: sed -n '/Calle/{g.txt La salida devolverá lo siguiente: Fulano Algo 18. • • Eric Pement: http://student.org/wiki/Sed 200 .h' usuario. C. 123456 El siguiente mandato solo mostrará las líneas que incluyen 3: sed '/3/!d' 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. 123456 El siguiente mandato solo mostrará las líneas que no incluyen 3: sed '/3/d' usuario.}' usuario. Bibliografía.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.P.

Acerca de AWK. Peter Weinberger y Brian Kernighan. 19.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. 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. El primero indica como procesar al segundo. Utiliza listas en un índice ordenado por cadenas clave (listas asociativas) y expresiones regulares. por entidades con fines de lucro). Licencia completa en castellano.1. 19. 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. Introducción.1. 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. El mandato awk utiliza un archivo o emisión de ordenes y un archivo o emisión de entrada.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. a través de cualquier medio. c) Si altera o transforma esta obra. Estructura de los programas escritos en AWK. éste examina el archivo de entrada y ejecuta la orden cuando encuentra la expresión regular especificada. Está incluido en las instalaciones básicas de prácticamente todas las distribuciones de GNU/Linux. Introducción a AWK Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. AWK.1 © 1999-2011 Joel Barrios Dueñas. cuyo nombre deriva de la primera letra de los apellidos de sus autores Alfred Aho. Usted es libre de copiar.alcancelibre.1. 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: 201 .2. 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. 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.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 19. 19. La sintaxis general utilizada para el mandato awk sigue el siguiente patrón: awk 'expresión-regular { orden }' Cuando se utiliza el mandato awk. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. o genera una obra derivada. Al reutilizar o distribuir la obra.

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 del siguiente modo: echo -e "Dato1\tDato2\tDato3\tDato4\n" >> ejemplo. Procedimientos.txt La salida devolverá lo siguiente: Columna3 Columna1 Si se añaden datos al archivo ejemplo. $1}' ejemplo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux awk '{ orden }' 19. awk 'BEGIN { print "Hola mundo". $3}' ejemplo. 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.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. en ese orden. El siguiente mandato específica que al inicio se imprima en la salida la frase "Hola mundo" y terminar el procesamiento. del siguiente modo: awk '{ print $3.txt Y se visualiza con el mandato cat: cat ejemplo.txt 202 .2.txt del siguiente modo: echo -e "Columna1\tColumna2\tColumna3\tColumna4\n" > ejemplo.

$3}' ejemplo.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.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 203 .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.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux echo -e "Dato5\tDato6\tDato7\tDato8\n" >> 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 Y se visualiza con el mandato cat: cat ejemplo. $4}' ejemplo. y además solo las columnas 1 y 4: awk '/Dato5/ { print $1.

el valor de w y el valor de c: awk '{ w += NF. RS="" } { print $1 ". palabras y caracteres.P.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 Ingrese el siguiente contenido: Fulano Algo Calle Mengana 123 Colonia Perengana Ciudad de Zutano. C.txt 204 . en lugar de considerar cada palabra como una columna.daily /etc/cron.weekly /etc/cron. " $2 ".hourly /etc/cron. "\nCaracteres: " c }' \ usuario. El el siguiente mandato se establece que el valor de w sea igual al número de campos (New Field o NF). 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. RS=""}'. se utiliza 'BEGIN { FS="\n" . " $3 ". Calle Mengana 123. "\nPalabras: " w. y que se imprima el número de campos. Colonia Perengana. c sea igual la longitud de cada campo.txt La salida devolverá lo siguiente: Fulano Algo. 123456 El mandato awk puede realizar conteo de líneas. C.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: vi usuario. " $4 }' 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". 123456 Para que el mandato awk reconozca cada línea como un registro completo.P. Ciudad de Zutano. c += length} \ END { print \ "Campos: " NR .

el siguiente mandato establece que s es igual a la suma del valor de los campos de la primera columna del archivo numeros. pero con los valores de la columna 2: awk '{ s += $2 } END { print s }' numeros. e imprime el valor de s: awk '{ s += $1 } END { print s }' numeros.txt con el siguiente contenido.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 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. i++) words[tolower($i)]++ } \ END { for (i in words) print i. 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 205 .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.txt La salida devolverá lo siguiente (resultado de la suma de 2+6+10): 18 Para hacer conteo de frecuencia de palabras.txt. se establece que el valor de la variable i es igual a 1 y menor al número de campos. awk 'BEGIN { FS="[^a-zA-Z]+"} \ { for (i=1. 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.

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 206 .

1 © 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 20. donde el primer carácter indica el tipo de archivo: Valor Descripción d b c l p s Denota un archivo regular.org Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. b) No puede utilizar esta obra para fines comerciales. 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. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Denota un directorio.alcancelibre. escritura y ejecución. Al reutilizar o distribuir la obra. 20. Notación simbólica El esquema de notación simbólica se compone de 10 caracteres.2. El primer conjunto de caracteres representa la clase del usuario. o genera una obra derivada.1. Denota un archivo de carácter especial Denota un enlace simbólico. tiene que dejar bien claro los términos de la licencia de esta obra. Zócalo con permiso 775. Introducción La asignación de permisos de acceso (de lectura. c) Si altera o transforma esta obra. Ejemplos: Permisos Descripción Directorio con permiso 755. 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. 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. Permisos del Sistema de Archivos Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Denota un archivo especial de dispositivos de bloque. el segundo conjunto de tres caracteres representa la clase del grupo y el tercer conjunto representa la clase de «otros» (resto del mundo). drwxr-xr-x crw-rw-r-srwxrwxr-x prw-rw-r-- 207 . escritura y ejecución) pueden asignarse a través de modos. grupo y resto del mundo) y el mandato chmod. Archivo de carácter especial con permiso 664. que son combinaciones de números de tres dígitos (usuario. respectivamente y en ese orden. Tubería (FIFO) con permiso 664. Cada uno de los tres caracteres representa permisos de lectura.

1. Con la notación octal de tres dígitos cada número representa un componente diferente de permisos a establecer: clase de usuario. se establece cero como valor de éste.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Permisos Descripción Archivo regular con permiso 644. El bit de lectura añade 4 a la suma. Notación octal La notación octal consiste de valores de tres a cuatro dígitos en base-8. -rw-r--r-- 20. 6 (rw) es el resultado de 4+2 (r+w). Cada uno de estos dígitos es la suma de sus bits que lo componen (en el sistema numeral binario). 20. Escritura y Ejecución Nota: 3 (wx) es el resultado de 1+2 (w+x). El bit setuid añade 4 al total de la suma. El bit de escritura añade 2 a la suma. 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. El primer dígito del conjunto de cuatro es también la suma de sus bits que le componen: 1. El primer dígito representa permisos adicionales. Estos valores nunca producen combinaciones ambiguas y cada una representa un conjunto de permisos específicos. Permisos adicionales Hay una forma de cuatro dígitos. 2. 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.3. 5 (rx) es el resultado de 4+1 (r+x). En sistemas y equipamiento lógico donde no puede ser omitido este primer dígito del conjunto de cuatro. Como resultado. respectivamente. El bit pegajoso (sticky bit) añade 1 al total de la suma. 7 (rwx) es el resultado de 4+3 (r+xw). El bit setgid añade 2 al total de la suma. 3.3. Bajo este esquema el estándar de tres dígitos descrito arriba se convierte en los últimos tres dígitos del conjunto. clase de grupo y clase de «otros» (resto del mundo). 208 .

--t --.--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. Cuando no se ha establecido setgid. Ejemplos 20.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. Permiso Clase Ejecuta No ejecuta setuid setgid pegajoso (sticky) Usuario Grupo Otros s s t S S T 20.--s ----. sin embargo. todos los nuevos archivos creados debajo de este directorio heredarán el grupo propietario de este mismo directorio. Cuando setgid ha sido aplicado a un directorio.4. 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.--s --t --s --.4.1. el comportamiento predefinido es asignar el grupo del usuario al crear nuevos elementos. Ejemplos de permisos regulares Permiso Clase de Usuario Clase de Grupo Clase de Otros 0400 0440 0444 r-r-r-- --r-r-- ----r-- 209 . De modo tal puede considerarse la siguiente tabla: Valor Permiso Descripción 1 2 3 4 5 6 7 --. éste se representa con una letra mayúscula.--.----s --. De la misma manera que el anterior. el proceso resultante asumirá la identidad del grupo dado en la clase de grupo (propietario del elemento). manteniendo control total sobre sus propios archivos y pueden crear nuevos archivos. modificar y eliminar archivos y directorios subordinados dentro de un directorio. el proceso resultante asumirá la identidad del usuario dado en la clase de usuario (propietario del elemento). El bit pegajoso (sticky bit) es utilizado en directorios como /tmp y /var/spool/mail. sólo pueden adjuntar o añadir contenido a los archivos de otros usuarios. 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. Los directorios a los cuales se les ha establecido bit pegajoso restringen las modificaciones de los usuarios a sólo adjuntar contenido. lo que hace el permiso SGID o bit setgid es que cuando se ha establecido la ejecución.

txt 210 .2.4. Uso de chmod chmod [opciones] modo archivo Ejemplo: mkdir -p ~/tmp/ touch ~/tmp/algo.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. 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.

éste ignora los enlaces simbólicos que pudiera encontrar en el recorrido. Cuando se aplica chmod de forma descendente en un directorio. 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. Opciones de chmod Opción -R -c -f -v Descripción Cambia permisos de forma descendente en un directorio dado.txt ls -l ~/tmp/algo. sin embargo no representa un problema en virtud de que jamás se utilizan los permisos de los enlaces simbólicos.txt -rw-rw-r-.txt [fulano@localhost ~]$ chmod 755 ~/tmp/algo.txt [fulano@localhost ~]$ 20.txt chmod 755 ~/tmp/algo. El mandato chmod y los enlaces simbólicos El mandato chmod jamás cambia los permisos de enlaces simbólicos.5. 211 .5.1 fulano fulano 0 mar 2 15:09 /home/fulano/tmp/algo. se cambiará el permiso del archivo o directorio hacia el cual apunta.txt [fulano@localhost ~]$ ls -l ~/tmp/algo.txt -rwxr-xr-x 1 fulano fulano 0 mar 2 15:09 /home/fulano/tmp/algo.1.2.txt Lo anterior debe arrojar una salida similar a la siguiente: [fulano@localhost ~]$ mkdir -p ~/tmp/ [fulano@localhost ~]$ touch ~/tmp/algo. Si se aplica el mandato chmod sobre un enlace simbólico.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux ls -l ~/tmp/algo.txt [fulano@localhost ~]$ ls -l ~/tmp/algo.

Utilizado adecuadamente. b) No puede utilizar esta obra para fines comerciales.sourceforge. Al reutilizar o distribuir la obra.net/ 21. -R Cambia recursivamente los atributos de directorios y sus contenidos.ext3. 21. Utilizar el mandato chattr. e incluye otras herramientas como e2fsck. tratarse de un componente esencial. hace más difícil borrar o alterar bitácoras. pero con diferente sintaxis y opciones. Theodore Ts'o es el desarrollador y quien se encarga de mantener e2fsprogs. son ignorado Salida de charttr más descriptiva. tiene que dejar bien claro los términos de la licencia de esta obra. c) Si altera o transforma esta obra. lo primero que hará será eliminar los registros de sus actividades modificando estructuras de los archivos de bitácoras del sistema y otros componentes. la gran mayoría de los intrusos potenciales no suelen ser expertos en GNU/Linux o Unix.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Cómo utilizar el mandato chattr. tune2fs y dumpe2fs. Acerca del mandato chattr. En la mayoría de los casos. mkfs. El mandato chattr se utiliza para cambiar los atributos de los sistemas de archivos ext2 y ext3. Opciones.1 © 1999-2011 Joel Barrios Dueñas. mostrando además la versión del programa. fsck. que se instala de forma predeterminada en todas las distribuciones de GNU/Linux por. dificulta las acciones en el sistema de archivos por parte de un intruso que haya logrado suficientes privilegios en un sistema. 21. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Utilizar el mandato chattr ciertamente no es obstáculo para un usuario experto. -V -v 212 . Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. mkfs. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. URL: http://e2fsprogs. archivos de configuración y componentes del sistema. dependiendo enormemente de diversos programas o guiones (los denominados rootkits y zappers) para eliminar aquello que permita descubrir sus actividades.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 21. incluido en el paquete e2fsprogs. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. o genera una obra derivada. afortunadamente. 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. Usted es libre de copiar. Ver el número de versión del programa. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.2. fsck. es análogo al mandato chmod.1. Introducción. mismo que se distribuye bajo los términos de la licencia GNU/GPL. Los enlaces simbólicos que se encuentren.ext2.1.ext2. pero. entre otras.alcancelibre. Desde cierto punto de vista. e2label. cuando un intruso consigue suficientes privilegios en un sistema.ext3.

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

txt El siguiente mandato establece que el archivo algo. Ejemplos. chattr -a algo.txt.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 21.5.txt solo tendrá los atributos a.1. Utilización.5. chattr -i algo. lsattr algo.txt.txt El siguiente mandato elimina el atributo inmutable al archivo algo.txt El siguiente mandato agrega el modo de solo adjuntar para escritura al archivo algo.txt.. el siguiente mandato agrega el atributo inmutable al archivo algo.txt El siguiente mandato lista los atributos del archivo algo.txt El siguiente mandato elimina el modo de solo adjuntar para escritura al archivo algo. chattr [-RV] +-=[AacDdijsSu] [-v versión] archivos 21. A.txt. chattr +a algo.txt. s y S. chattr =aAsS algo.txt 214 . chattr +i algo.

1 © 1999-2011 Joel Barrios Dueñas. 22. 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. 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. si dispone del CD correspondiente. b) No puede utilizar esta obra para fines comerciales.1. 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. yum -y install createrepo Una vez instalado. Procedimientos Primero se deben generar los directorios que alojarán los depósitos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 22. 22. Yum es una herramienta sumamente útil para el manejo de paquetería RPM. Creando depósitos yum Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. hay que instalar el paquete createrepo. Introducción. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. incluido en los discos de instalación de CentOS y White Box Enterprise Linux.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. o genera una obra derivada.alcancelibre. c) Si altera o transforma esta obra. 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. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.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. Usted es libre de copiar. sólo basta ejecutar createrepo sobre cada directorio a fin de generar los depósitos yum: 215 .

base baseurl=file:///var/ftp/pub/os/ gpgcheck=1 enabled=1 [updates-released] name=Enterprise Linux $releasever . y suponiendo que el servidor utilizaría 192.1 como dirección IP.$basearch .base baseurl=ftp://192. la llave pública de Alcance Libre se encuentra en el directorio raíz del CD. por lo que hay que instalarlo manualmente desde los discos de instalación.1.1/pub/updates/ gpgcheck=1 enabled=1 Antes de utilizar la opción gpgcheck=1. Si utiliza Red Hat™ Enterprise Linux 3.0 o White Box Enterprise Linux 3.$basearch . en lugar de las líneas que apuntan hacia servidores en Internet: [base] name=Enterprise Linux $releasever .Updates Released baseurl=ftp://192.d/.$basearch . CentOS 3.repos.168.1. mount /media/cdrom rpm --import /media/cdrom/*KEY* Si creó un depósito con el disco de extras de curso. White Box Enterprise Linux 4 no incluye yum por defecto.repo localizado dentro de /etc/yum.$basearch .1/pub/os/ gpgcheck=1 enabled=1 [updates-released] name=Enterprise Linux $releasever . 216 . se deberán importar las llaves públicas GPG que están en el disco 1 de instalación del sistema.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 *. se utiliza yumarch en lugar de createrepo.168. las máquinas cliente deben utilizar lo siguiente: [base] name=Enterprise Linux $releasever .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.1.168. y /mnt/cdrom en lugar de /media/cdrom.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 23. c) Si altera o transforma esta obra. Actualizar sistema Actualización del sistema con todas las dependencias que sean necesarias: yum update 23.1. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. 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. 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.2. Consulta de información Consultar la información contenida en un paquete en particular: 217 . tiene que dejar bien claro los términos de la licencia de esta obra. A continuación presentamos los procedimientos para utilizar yum y realizar fácilmente lo que algunos denominan como «horrible. Al reutilizar o distribuir la obra. La realidad de las cosas es que es mucho muy simple y sólo requiere de un buen ancho de banda.alcancelibre. o bien. Procedimientos 23. difícil y complicado».org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. 23. 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.1 © 1999-2011 Joel Barrios Dueñas. 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. 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. Los procedimientos son tan simples que realmente no hay muchas excusas para no aplicar los parches de seguridad y correctivos al sistema. Usted es libre de copiar.2. ni tampoco tiene que ser un infierno de dependencias entre paquetes RPM como algunos argumentan.1. de muchísima paciencia.2. o genera una obra derivada.3. b) No puede utilizar esta obra para fines comerciales. 23.2. 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 yum info cualquier-paquete Ejemplo: yum info httpd 23. 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. 3. 5. utilizado principalmente como servidor de autenticación. 7. Algunos paquetes que se pueden desinstalar del sistema. 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. mdadm: requerido sólo para arreglos RAID.2. vnc-server: servidor VNC 8.5. Ejecute lo siguiente para desinstalar los paquetes anteriormente mencionados: yum -y remove pcmcia-cs mdadm autofs ypserv ypbind yp-tools hwcrypto vncserver irda-utils 218 . irda-utils: herramientas y soporte para dispositivos infrarrojos.4. ypbind. 2.1. yp-tools: herramientas necesarias para autenticar contra un servidor NIS (ypserv) 6. 4. hwcrypto: bibliotecas y herramientas para interactuar con aceleradores criptográficos de sustento físico (hardware). autofs: servicio de auto-montado de unidades de disco. pcmcia-cs (kernel-pcmcia-cs): requerido sólo en computadoras portátiles para el soporte de PCMCIA.2. ypserv: servidor NIS.2.5. Los siguientes paquetes pueden ser desinstalados del sistema de manera segura junto con todo aquello que dependa de éstos: 1.

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. 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.6.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/. es por tal motivo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 23. Particularmente los paquetes RPM que se han instalado pueden ocupar mucho espacio y. A fin de realizar la limpieza correspondiente. puede ejecutarse lo siguiente: yum clean all 219 .

herramientas y programas y gestionar sus dependencias exactas.2. Mandriva y distribuciones derivadas de estas. RPM Package Manager. Usted es libre de copiar.1. Cómo utilizar RPM Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. RPM viene instalado de modo predeterminado en Red Hat Enterprise Linux. tiene que dejar bien claro los términos de la licencia de esta obra.2. Reconstrucción de la base de datos de RPM. CentOS. 24.1. Al reutilizar o distribuir la obra. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.1 © 1999-2011 Joel Barrios Dueñas. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 24. Introducción. SuSE Linux. Hay ciertos escenarios en donde se puede corromper la base de datos de RPM. 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. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. RPM fue originalmente desarrollado por Red Hat para su distribución de GNU/Linux. 24.alcancelibre. o genera una obra derivada.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. 24. anteriormente conocido como Red Hat Package Manager y que es más conocido por su nombre abreviado RPM. Esto permite instalar y desinstalar limpiamente todo tipo de aplicaciones. Fedora. Procedimientos.1. bibliotecas. 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). Licencia completa en castellano. 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. RPM utiliza una base de datos que se almacena en /var/lib/rpm. OpenSuSE. a través de cualquier medio. 24.1. Acerca de RPM. por entidades con fines de lucro). White Box Enterprise Linux. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. y ha sido llevado hacia otra distribuciones de Linux y sistemas operativos. 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. Ésta se puede reconstruir fácilmente utilizando el siguiente mandato: rpm --rebuilddb 220 . 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.

donde se realiza una consulta listando los componentes que lo integran (query list).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.1/COPYING /usr/share/doc/traceroute-2. se utiliza el mandato rpm con la opción -q. traceroute will show you where the trouble is coming from along the route. 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.0. se utiliza el mandato rpm con las opciones -qi.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 24. Key ID a8a447dce8562897 URL : http://dmitry. Consulta de paquetería instalada en el sistema.el5 Si se desea conocer que es lo que información incluye el paquete traceroute.org Group : Applications/Internet Source RPM: 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. Install traceroute if you need a tool for diagnosing network connectivity problems.0.centos.2.rpm Size : 59726 License: GPL Signature : DSA/SHA1.src.1 Vendor: CentOS Release : 2. Traceroute displays the IP number and host name (if possible) of the machines along the route taken by the packets. mar 03 abr 2007 19:28:12 CDT.el5.2. 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.1 /usr/share/doc/traceroute-2. Traceroute is used as a network debugging tool.1-2.0.butskoy.1/CREDITS 221 .1-2. para hacer la consulta y solicitar información del paquete (query info). Si se desea conocer si está instalado un paquete en particular. 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.0. En el siguiente mandato.0. que realiza una consulta (query) en la base de datos por un nombre de paquete en particular.0. Puede consultarse qué componentes forman parte del paquete utilizando el mandato rpm con las opciones -ql. If you're having network connectivity problems. Si se desea conocer que componentes instaló el paquete traceroute.

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

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.....T S.mc 24.. rpm -Va Lo anterior puede devolver una salida muy extensa. se puede utilizar el mandato rpm con las opciones -Va. realice el siguiente procedimiento: rpm --import http://www.db /etc/crontab /etc/inittab /etc/rc. se utiliza el mandato rpm con la opción --import. especifica todos los paquetes.. Pup.....alcancelibre. para desplazarse en la lista. que hace una consulta..5.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior devuelve una salida extensa dentro con less como visor. las firmas digitales están en /usr/share/doc/rpm-*/ o bien /usr/share/rhn/.3.. 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..db /etc/pki/nssdb/key3.T S.cf /etc/mail/sendmail. En el caso de CentOS y Red Hat Enterprise... Un ejemplo de una salida común sería: ...T c /etc/crontab Si se desea realizar una verificación de todos los componentes del sistema. Pulse la teclas de arriba (↑) y abajo (↓) o Av.5.T c c c c c c c c c c /etc/pki/nssdb/cert8.2.. Para ejemplificar. y Reg.T . Si se quiere verificar si los componentes instalados por un paquete RPM han sido modificados o alterados o eliminados. Pulse la tecla q para salir. Algunos distribuidores pueden tener estas firmas en algún servidor HTTP o FTP.db /etc/pki/nssdb/secmod. Pág. up2date.5. sin ser detectados. Pág..T S.........5.T S. y solicita se verifique si hubo cambios (query all Verify). Instalación de paquetes. puede devolverse una salida similar a la siguiente.T .. pero sin duda alguna mostrará todos los componentes que fueron modificados o alterados o eliminados tras la instalación del paquete al que pertenecen..5. se puede utilizar el mandato rpm con la opción -V. etc.. donde el archivo /etc/crontab fue modificado tras su instalación: S.d/rc....org/al/AL-RPM-KEY 223 .... Yast.5...5.local /etc/mail/access /etc/mail/local-host-names /etc/mail/sendmail.T S..5.. Para importar una firma digital.T . 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.. En el siguiente ejemplo se verificara si el paquete crontabs ha sido alterado: rpm -V crontabs Si algún componente fue modificado...

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

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

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

devolver una salida descriptiva y mostrar una barra de progreso (update verbose hash).9.4..al.1 php-cli-5.al. Este puede estar incluido en el disco de instalación o bien estar incluido entre las actualizaciones del sistema.1-5.noarch.el5.15-2.16.152. Actualmente estos problemas se pueden resolver utilizando yum en los sistemas que lo incluyen.6-15.2-47.2-47.noarch.noarch.el5 libgsf-1.el5.1. se utiliza el mandato rpm con las opciones -Uvh. 227 .15-2.al.el5.el5. la salida hubiera sido similar a la siguiente: Preparing..el5 rpm-libs-4.el5.4-13.9.152.1-6.el5.0.noarch. En el siguiente ejemplo se realiza el procedimiento de instalación del paquete joomla-1.el5.0.0.rpm Si falta alguna de las dependencias.9.11. y se procede a instalar y/o actualizar el mismo: rpm -Uvh joomla-1.al. este era el talón de Aquiles de RPM.1.al.0.rpm: joomla .1.15-2.2-4.noarch.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.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. La forma más práctica de instalar paquetería RPM resolviendo dependencias automáticamente es a través de yum.6-15. Please wait.noarch Marking joomla-1.9.noarch Evidentemente se debe instalar el paquete php-xml para poder instalar el paquete joomla1.0.0.9.al.el5 php-5.8.al.el5 gnome-vfs2-2.1.centos ImageMagick-6.5. Si el paquete php-xml hubiera estado instalado (yum -y install php-xml).14.rpm utilizando yum: yum -y localinstall joomla-1.0.el5 rpm-python-4.1.2-47.4.0-4. el sistema devolverá una salida similar a la siguiente: error: Failed dependencies: php-xml is needed by joomla-1.9.2.15-2.el5_1.0. 1:joomla ########################################### [100%] ########################################### [100%] Antes de la aparición de yum.9.0.el5.9.1 Para instalar o actualizar un paquete.el5 kdelibs-3.noarch.rpm.15-2.el5.al.el5 rpm-4. que significa instalar o actualizar.4.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux elinks-0.15-2.

--> Populating transaction set with selected packages.rpm sin la ejecución de los guiones que pudieran estar definidos en el paquete RPM: rpm -Uvh --noscripts joomla-1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux ---> Package joomla.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.15-2.al joomla-1.6-15.rpm 6. se instalará el paquete joomla-1.i386 0:5.el5 base 93 k Transaction Summary ============================================================================= Install 2 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 6.0.el5.al Dependency Installed: php-xml.al.i386 0:5. En circunstancias en las cuales ser realizaron cambios en los permisos en el sistema de archivos.al set to be updated --> Running transaction check --> Processing Dependency: php-xml for package: joomla --> Restarting Dependency Resolution with new changes. Si no se desea que se ejecuten estos guiones.0.0.0.1.noarch 0:1.15-2.el5.2.noarch.rpm 24.9.9.noarch.noarch 0:1.1. Please wait.al.9.6-15.0.el5.152.9. 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 228 . En el siguiente ejemplo.15-2.el5 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: joomla noarch 1.1.152. se añade a rpm -ivh o rpm -Uvh la opción --noscripts.3 M Installing for dependencies: php-xml i386 5.1.al.9.noarch. ---> Package php-xml. Recuperación de permisos originales a partir de rpm.el5 Complete! Algunos paquetes incluyen guiones que ejecutan procesos que pueden ser requeridos previo o posterior a la instalación.el5.el5.el5.15-2.0.3.9.6-15.

que se utiliza para eliminar. seguida del nombre del paquete.1 root root 22984 ene 6 2007 /usr/bin/passwd El archivo /usr/bin/passwd pertence al paquete passwd. En el siguiente ejemplo.2. se utiliza el mandato rpm con la opción -e. el sistema informará que no es posible desinstalar y devolverá la lista de paquetes que lo requieren. 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. confirmelo del siguiente modo: rpm -qf /usr/bin/passwd Lo anterior debe devolver una salida similar a la siguiente: passwd-0.73-1 Para recuperar de nuevo el permiso original de /usr/bin/passwd. En el siguiente ejemplo se tratará de desinstalar el paquete crontabs: rpm -q crontabs 229 . el sistema solo devolverá el símbolo de sistema. Si el paquete o alguno de sus componentes fuera dependencia de otro u otros paquetes. se solicita al mandato rpm desinstalar los paquetes joomla y php-xml: rpm -e joomla php-xml Si no hay dependencias que lo impidan. Para desinstalar paquetería.4.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-----. Desinstalación de paquetes.

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

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. Este documento mostrará los procedimientos para: ● ● ● ● Generar una clave GnuPG para firmar digitalmente los paquetes creados. b) No puede utilizar esta obra para fines comerciales. o genera una obra derivada. nautilus-devel. cabeceras de desarrollo. necesitará al menos lo siguiente. Introducción Crear paquetería a través de rpmbuild no es tan complicado como algunos suponen. Configuración y creación de una jaula para rpmbuild. Lamentablemente no hay recetas mágicas. Aunque no se instala de modo predeterminado.alcancelibre. Si se pretende crear paquetería a partir de códigos fuente es necesario estar familiarizado con las bibliotecas compartidas necesarias. Usted es libre de copiar. ● ● ● ● ● ● ● Si utiliza Cent OS. Creación de archivos *. pango-devel. gstreamer-devel y gstreamer-plugins-devel. 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. 25. c) Si altera o transforma esta obra. White Box Enterprise Linux o bien Red Hat™ Enterprise Linux. gnome-panel-devel. automake: generador de archivos Makefile. libbonobouidevel. 25. kdegraphics-devel y kdemultimedia-devel. necesitará por lo menos lo siguiente. kdenetworkdevel. 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. tiene que dejar bien claro los términos de la licencia de esta obra.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. ● Si va a crear paquetería para KDE.1.2. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.1 © 1999-2011 Joel Barrios Dueñas.spec. gnome-vfs2-devel. kdebase-devel. con todo lo que dependa de éste: glib2-devel. kdelibs-devel. 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. compiladores y otras herramientas de desarrollo relacionadas o requeridas por un equipamiento lógico en particular. 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. con todo lo que dependa de éste: qt-devel. ● Si va a crear paquetería para GNOME. glibc-devel: bibliotecas de desarrollo para C. Instalación del equipamiento lógico necesario Es indispensable contar con la paquetería de desarrollo mínima necesaria instalada en el sistema. arts-devel. gtk2-devel. Uso del mandato rpmbuild. rpm-build y rpm-devel. libgnomeui-devel. Al reutilizar o distribuir la obra. Un conjunto mínimo sería el siguiente: Gcc: compilador. necesitará correr lo siguiente para instalar el mínimo de paquetería: 231 . autoconf: herramienta para configuración de códigos fuente y archivos Makefile. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. gnome-desktop-devel. atk-devel.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 25.

salvo que específicamente requiera lo contrario.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.3. Lo anterior iniciará un asistente de creación de claves. Creación de la clave GnuPG 1. Configuración y creación de una jaula para rpmbuild Jamás utilice la cuenta de root sin importar la circunstancia. para crear o reconstruir paquetería en formato RPM.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. incluyendo paréntesis. 3. 4. inicie seahorse y de clic en en botón de «Nuevo» en el panel de «Opciones de primera vez».2. Desde una sesión gráfica. En la pantalla de «Fecha de caducidad».3. puede instalar también el equipamiento lógico restante: yum -y install seahorse gpgme 25. lo cual dará como resultado diversas consecuencias de seguridad y de estabilidad para el sistema. 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. Especifique una frase de paso que sólo usted pueda recordar.1. 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. 5. 7. Elija el nivel de seguridad como «Seguridad extra alta». Especifique su nombre completo. especifique «Sin caducidad». Se recomienda utilizar espacios y signos de puntuación. un breve comentario opcional y su cuenta de correo electrónico permanente que se relacionará exclusivamente con la nueva clave. 232 . ya que se utilizarán en el siguiente procedimiento. espacios y otros símbolos. Procedimientos 25. 6. 25. Tome nota de como aparece exactamente el nombre de la llave. 2.

%_signature: se utilizará gpg para firmar los paquetes resultantes.3. %_gpgbin: ruta del binario gpg. A continuación un ejemplo del contenido del archivo ~/.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. 1 habilita. Especifique el nombre corto de su empresa sin espacios. Para la mayoría de los casos se especifica el valor %{nil} a fin de impedir que se genere paquetería de depuración. %vendor: nombre de su empresa u organización. genere la estructura de directorios necesaria utilizando lo siguiente: mkdir -p ~/rpmbuild/{BUILD. Componentes del 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.RPMS.1. genere el archivo ~/.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. %_gpg_name: identidad a utilizar para firmar los paquetes resultantes. 0 deshabilita. Creación de la estructura de la jaula para rpmbuild Desde una terminal.rpmmacros. %_unpackaged_files_terminate_build: sirve para especificar si la construcción de un paquete se deberá interrumpir si hay componentes ignorados por el archivo *.3. la respuesta es obvia: no es deseable un paquete al cual le faltan componentes.SPECS. normalmente en /usr/bin/gpg. %desktop_vendor: variable opcional (y no oficial) para definir el nombre de la empresa en el nombre algunos archivos.spec. %packager: su nombre completo y dirección de correo electrónico o bien el URL de su sitio de red.rpmmacros Utilizando cualquier editor de texto. a fin de poder detectar e impedir que algunos procedimientos durante la creación de paquetes intenten instalar componentes no deseados en el sistema.2.2. %_topdir: ruta donde se localiza la jaula para rpmbuild.TMP} 233 . 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>. principalmente entradas de menú. 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.SOURCES. ¿Qué valor se recomienda?. 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. %_tmppath: directorio de elementos temporales que será utilizado para simular instalaciones.rpmmacros.gnupg %_gpg_name Fulano de Perengano (Una empresa ficticia) <fulano@algún-dominio. así que se especificará 1. %_gpg_path: ruta del directorio .gpg a utilizar.2. %distribution: nombre del producto o bien para especificar para que distribución de GNU/Linux se utilizará la paquetería. 25. utilizando valores ficticios: %debug_package %{nil} %_unpackaged_files_terminate_build 1 %_signature gpg %_gpg_path %(echo "$HOME")/.SRPMS.

i586.i686. Group: Grupo o categoría de equipamiento lógico al cual pertenece el paquete. License: Licencia o licencias utilizadas por el paquete. Regularmente es el mismo nombre utilizado para el paquete del código fuente. No puede llevar espacios.spec Los archivos *. 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.Joel Barrios Dueñas mkdir -p ~/rpmbuild/RPMS/{athlon.i386. instalar virtualmente y empaquetar un equipamiento lógico en particular a partir de un código fuente.3.3. Del contenido de éstos dependerá que sea posible descomprimir. 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: 234 . compilar. Creación de los archivos*. Summary: Resumen o descripción corta del paquete.noarch} Configuración de Servidores con GNU/Linux 25.spec contienen la información que utilizará rpmbuild para construir un paquete. configurar. Name: Se refiere nombre del paquete.

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

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> . Name: algo Version: 0.spec inicial.Se añadieron cosas .Se puso un guión para algo 25. License: GPL Group: Applications/File Buildroot: %{_tmppath}/%{name}-%{version}-root Source: http://un-sitio-güeb.spec. Se utiliza principalmente con paquetes que necesitan correr tareas administrativas.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. como detener y/o dar de baja un servicio. .3.Más cambios .Algunos cambios .algo/algo-0. %files Lista de todos los componentes de el equipamiento lógico empaquetado en sus rutas definitivas. %post Procedimientos que se deben correr justo después de proceder a instalar un paquete.spec. Si un paquete incluye un esquema para GConf.algo/> . Ejemplos: Cuando los paquetes incluyen bibliotecas compartidas.Archivo *.1. %changelog Bitácora de cambios del archivo *.3. %prep %setup -q %build %configure %__make 236 . se debe correr lo necesario para registrar el esquema. %postun Procedimientos que se deben correr justo después de proceder a desinstalar un paquete. Se utiliza principalmente con paquetes que necesitan crear cuentas de sistema u otros preparativos. se ejecuta ldconfig.Otros cambios Ejemplo: * Sun Sep 25 2005 Fulano de Perengano <http://mi-sitio-güeb.1 Release: 1 URL: http://sitio-de-red-del-sustento-lógico-a-utilizar/ Summary: Paquete imaginario que hace algo.1.tar. 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.

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

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

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

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

Bzip2. 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 241 . 26. Creación del usuario para ClamAV. ClamAV es un conjunto de herramientas antivirus.1. MS OLE2. Cumple con las especificaciones de familia de estándares POSIX (Portable Operating System Interface for UNIX o interfaz portable de sistema operativo para Unix). 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.2. Exploración rápida.1. 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. URL: http://www. gusanos. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Avanzada herramienta de actualización con soporte para firmas digitales y consultas basadas sobre DNS. Gzip. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. el usuario para ClamAV asigna a través de los mandatos fedoragroupadd 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. FSG y Petite. Introducción. RAR. Usted es libre de copiar. Equipamiento lógico necesario.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 26. Acerca de ClamAV.1. libre y de código fuente abierto.2. • • clamav clamav-update 26. Al reutilizar o distribuir la obra. 26. que tiene las siguiente características: • • • • • • • Distribuido bajo los términos de la Licencia Publica General GNU versión 2. Detecta más de 720 mil virus. MS CHM y MS SZDD. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. troyanos y otros programas maliciosos.clamav.alcancelibre.net/ 26. MS Cabinet. o genera una obra derivada. c) Si altera o transforma esta obra. tiene que dejar bien claro los términos de la licencia de esta obra. Tar. Capacidad para examinar contenido de archivos ZIP. 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.1 © 1999-2011 Joel Barrios Dueñas.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Soporte para explorar archivos comprimidos con UPX.

Si dispone de un servidor con CentOS 4 y 5.2.org/al/el$releasever/al-server gpgcheck=1 gpgkey=http://www. SELinux y el servicio clamav-milter.3.3.repo con el siguiente contenido: [AL-Server] name=AL Server para Enterprise Linux $releasever mirrorlist=http://www. puede utilizar el el depósito yum de Alcance Libre para servidores en producción.repos. Red Hat™ Enterprise Linux 4 y 5 o White Box Enterprise Linux 4 y 5. utilice el siguiente mandato: setsebool -P freshclam_disable_trans 1 26. 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.3. Instalación a través de yum.alcancelibre. 26. es necesario editar este archivo y comentar o eliminar la línea 9.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. si se utilizan paquetes para Fedora. Freshclam es el programa utilizado para descargar y mantener actualizada la base de datos de virus y otros programas malignos. # Example 242 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 26. ## # Comment or remove the line below.2. 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.2./p> 26. Configuración de Freshclam. Para que SELinux permita utilizar normalmente clamscan. El archivo /etc/freshclam. Sin embargo.alcancelibre.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.conf(5) manual before editing this file. Procedimientos.1.d/AL-Server.

clamscan --remove=yes -r /cualquier/directorio la salida del mandato clamscan puede llegar a ser muy extensa. se utiliza el mandato clamscan con la opción -r. se utiliza el mandato clamscan con la opción --move especificando un directorio que servirá como cuarentena. Uso básico del mandato clamscan. 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. el cual.3. se utiliza el mandato clamscan con la opción --infected. y que consiste en el archivo /etc/cron. clamscan --move=/directorio/de/cuarentena -r /cualquier/directorio Para especificar que los archivos infectados sean eliminados. Si se desea que solo se muestre la información de los archivos infectados. puede actualizar manualmente. Esta opción debe ser utilizada con precaución. 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. es decir. se ejecuta cada tres horas para verificar si hubo cambios en la base de datos. se utiliza la opción --remove con el valor yes. clamscan -r /cualquier/directorio Para especificar que los archivos infectados solo sean movidos a un directorio de cuarentena. El directorio de cuarentena debe de existir previamente.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.d/clamav-update. a través del servicio crond. clamscan --infected --remove=yes -r /cualquier/directorio 243 . de manera recursiva. desde cualquier terminal como root. Si se utilizan paquetes de Fedora. y de manera inmediata.3. 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. 26. para revisar un archivo sospechoso de estar infectado. the freshclam update is disabled to avoid ### REMOVE ME: network access without prior activation # FRESHCLAM_DELAY=disabled-warn # REMOVE ME De ser necesario. la base de datos de firmas utilizando el mandato freshclam.

» 244 .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. clamscan --log=/home/usuario/clamscan. se puede utilizar éste con la opción --log especificando la ruta de un archivo donde se almacenará la bitácora de actividad. consultar el documento titulado «Cómo configurar clamav-milter.log --infected --remove=yes -r /cualquier/directorio Para configurar ClamAV para ser utilizado con un servidor de correo electrónico con Sendmail. a fin de poder examinar posteriormente ésta a detalle.

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

a las líneas que definen la configuración de las particiones correspondientes a /var.2. 27. Durante la instalación. grpjquota=aquota. debió asignarse una partición dedicada para.usrquota. por mencionar un ejemplo. Para este fin.group.user. y grpquota a las líneas que definen la configuración de las particiones /var. y aplicá los cambios inmediatamente.grpjquota=aquota. Procedimientos. y /home: LABEL=/var LABEL=/home /var /home ext3 ext3 defaults. 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. Edite el archivo /etc/fstab.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 27.2. o bien versiones posteriores de éstos. vim /etc/fstab Si utiliza CentOS 6 o Red Hat Enterprise Linux 6. Instalación a través de yum. Si utiliza CentOS 5 o Red Hat Enterprise Linux 5.usrjquota=aquota.group.jqfmt=vfsv0 1 2 1 2 Nota. y /home.grpquota 1 2 1 2 Deben aplicarse los cambios a las particiones. y jqfmt=vfsv0. debe añadir en el archivo /etc/fstab los parámetros usrquota.grpquota defaults. o Red Hat™ Enterprise Linux 5. ya sea reiniciando el sistema. se puede instalar lo necesario ejecutando lo siguiente: yum -y install quota 27.grpjquota=aquota.user. 246 .group. Equipamiento lógico necesario.usrjquota=aquota. se debe añadir en el archivo /etc/fstab los parámetros usrjquota=aquota. 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. Si se utiliza de CentOS 5.1.jqfmt=vfsv0 /dev/mapper/var-LogVol00 /home ext4 defaults .usrquota. y /home: /dev/mapper/home-LogVol00 /var ext4 defaults . similar al registro por diario de los sistemas de archivos Ext3/Ext4.user. los directorios /var. puede utilizar cuotas con registro por diario (journaled quotas).3.

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

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. por ejemplo.1.1. suponiendo que utilizará la cuota de disco del usuario «pepito» como plantilla (note por favor los dos acentos graves en el mandato. pues se trata de un carácter diferente al apostrofe). o segundos.3. El sistema tiene.2. ejecute lo siguiente: 248 . la cual podrá ser excedida hasta por 7 días. tras el cual al usuario se le impide continuar escribiendo sobre la partición. minutes. y /dev/sda5. y /dev/sda5. justo antes de awk. horas. de modo predeterminado.3. Cuando el usuario excede el límite establecido por la cuota de gracia.1. Cuota de gracia. Suponiendo que se quiere asignar una cuota de disco de 6 MB para el usuario «fulano» en en /dev/sda7. Cuota absoluta. 27. un periodo de gracia de 7 días. se utilizaría lo siguiente: Disk quotas for user fulano (uid 501): Filesystem blocks soft hard /dev/sda7 0 6144 0 /dev/sda5 24 6144 0 inodes 0 10 soft 0 0 hard 0 0 27. Grace period before enforcing soft limits for users: Time units may be: days. y al final del mandato.1. ya sea por días. Suponiendo que quiere asignar una cuota de gracia de 6 MB en /dev/sda7. se utilizaría lo siguiente: Disk quotas for user fulano (uid 501): Filesystem blocks soft hard /dev/sda7 0 0 6144 /dev/sda5 24 0 6144 inodes 0 10 soft 0 0 hard 0 0 El usuario siempre podrá rebasar una cuota de gracia pero nunca una cuota absoluta. minutos. hours.3.3. el cual se puede modificar con el mandato edquota -t: edquota -t Donde se puede establecer un nuevo periodo de gracia. a partir de UID 510.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. 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. Si se quiere que todo aplique para los usuarios existentes. Aplicando cuotas de forma masiva.

acceda hacia el sistema como el usuario fulano. o ejecutando su -l fulano.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux edquota -p pepito `awk -F: '$3 > 510 {print $1}' /etc/passwd` 27. Debido a que muy probablemente parte del contenido de /usr/lib se copió en modo de sólo lectura. y observe con detenimiento la salida. cambie primero los permisos del contenido del directorio.4. Comprobaciones. a fin de disponer de permisos de lectura y escritura: 249 . Utilice el mandato edquota con el usuario fulano. edquota fulano Asigne al usuario «fulano» una cuota de disco de 50 MB en todas las particiones con cuota de disco habilitada: 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 Desde otra terminal. Utilice de nuevo el mandato quota. 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 /dev/sda5 24 0 51200 files 1 10 quota 0 0 limit 0 0 grace Realice una copia del directorio /usr/lib como el subdirectorio ~/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. 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 /dev/sda5 51200* 0 51200 files 1 7439 quota 0 0 limit 0 0 grace Para poder volver a escribir sobre la partición. en donde aparecerá un asterisco justo junto a la cantidad en la columna de bloques bloques. es necesario liberar espacio.

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 250 . finalmente. finalmente. vuelva a ejecutar el mandato quota: rm -fr ~/prueba-cuotas Y.

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. de ahí que se denomine también como Conjunto de Protocolos TCP/IP.1. Aplicación Presentación Sesión Transporte Red Enlace de datos Físico Niveles OSI 251 . tiene que dejar bien claro los términos de la licencia de esta obra. 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. b) No puede utilizar esta obra para fines comerciales.UU.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 28. etc. 28. que era la red de área extensa del Departamento de Defensa como medio de comunicación para los diferentes organismos de EE. 28.2. Introducción TCP/IP fue desarrollado y presentado por el Departamento de Defensa de EE. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. en 1972 y fue aplicado en ARPANET (Advanced Research Projects Agency Network).UU. La transición hacia TCP/IP en ARPANET se concretó en 1983. Usted es libre de copiar. 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. POP. c) Si altera o transforma esta obra. ARP.1 © 1999-2011 Joel Barrios Dueñas. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Modelo TCP/IP 5 4 3 2 1 7 6 5 4 3 2 1 Aplicación Transporte Red Enlace Físico. Introducción a TCP/IP Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. 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. 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. son TCP (Protocolo de Control de Transmisión o Transmission Control Protocol) e IP (Protocolo de Internet o Internet Protocol). FTP. y que fueron también los primeros en definirse y también los más utilizados. SMTP. Al reutilizar o distribuir la obra.alcancelibre. o genera una obra derivada. ya sea sobre redes de área local (LAN) o redes de área extensa (WAN). Los dos protocolos más importantes. Los tipos de protocolos existentes superan los cien.

1. DCCP (Datagram Congestion Control Protocol) 252 . 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). 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.2.

como sería IPv4. Protocolos como ARP (Address Resolution Protocol) y RARP (Reverse Address Resolution Protocol) que operan por debajo de IP. Los niveles más cercanos altos son los más cercanos al usuario. pueden ser también considerados como parte de esta capa. 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. que corren sobre IP.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nivel Nombre Descripción • • • SCTP (Stream Control Transmision Protococol) IL (Internet Link Protocol. pero arriba del Nivel de enlace. Un método de abstracción para entender esto es mirar los niveles como proveedores o consumidores de servicios. respectivamente. siendo TCP un proveedor de servicio para los protocolos del nivel de aplicación. Los protocolos como OSPF (Open Shortest Path First). el cual a su vez requiere de un protocolo del nivel de enlace. Ejemplo: TCP en el nivel de transporte requiere un protocolo del nivel de Red. 253 . 3 Red Se compone de diversos protocolos de servicios como IP (incluyendo IPv4 e IPv6). o bien utilizan un servicio del nivel o proveen un servicio. similar a TCP pero más simple) RUDP (Reliable User Datagram Protocol). mientras que los que están más hacia abajo se encuentran más cercanos a la transmisión física de los datos. cada nivel tiene un nivel superior y un nivel inferior que. pueden ser considerados parte del Nivel de Red. etc. Salvo por evidentes razones en el primer y último niveles. ICMP (Internet Control Message Protocol) e IGMP (Internet Group Management Protocol) que también utilizan IP. de modo que pertenecen a un punto intermedio entre el Nivel de Red y el Nivel de Enlace.

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

Terminación de la conexión.CLOSED LISTEN representa la conexión en espera de peticiones desde cualquier puerto TCP remoto. Si se requiere algún tipo de fiabilidad para los datos transmitidos. Retransmisión de paquetes perdidos. FIN-WAIT-2 7. 3. una interrupción de la conexión requiere un par de paquetes FIN y ACK desde cada lado de la conexión TCP. SYN-RECEIVED 4. CLOSE-WAIT 8. 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. Transferencia de datos ordenada. UDP. 2. ésta debe ser implementada en los niveles superiores de la pila. ESTABLISHED 5. FIN-WAIT-1 6. es un protocolo de datagrama sin corrección. Transferencia de datos libre de errores. UDP. TCP realiza las siguientes etapas en su zócalo: 1. Cuando uno de los extremos desea detener su parte de la conexión. SYN-SENT 3. 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. SYN-SENT representa la espera del TCP remoto para enviar de regreso el paquete TCP estableciendo banderas SYN y ACK.TIME-WAIT 11. con cada extremo de la conexión terminando independientemente. LISTEN 2. Descartado de paquetes duplicados. envía un paquete FIN. pero el el otro extremo sí. 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). 255 . 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. 4. a veces referido sarcásticamente como Unreliable Datagram Protocol (Protcolo no fiable de datagrama). III. que la otra parte confirma con un paquete ACK. El extremo que terminó la conexión ya no puede enviar datos en la conexión. Ajuste en la congestión de la transmisión de datos. LAST-ACK 10. ESTABLISHED representa que el puerto está listo para recibir/enviar datos desde/hacia el TCP remoto (lo hacen tanto clientes como servidores TCP). 5. CLOSING 9. Esta etapa utiliza un saludo de tres vías.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 1. 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. 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. Por tanto.

Suma de verificación. que es un conjunto de protocolos para redes WAN utilizando líneas telefónicas o sistema ISDN. Puerto de destino. 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). Longitud. RTP. Un campo de 16 bits que especifica la longitud del datagrama completo: cabecera y datos. Las aplicaciones más comunes que hacen uso de este tipo de protocolo son DNS. • • • • Puerto de origen.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Al igual que IP. es un protocolo de mejor esfuerzo o no-fiable. TFTP y juegos en línea. Identifica el puerto de destino. SCTP.1. 256 . Un campo de 16 bits que se utiliza para verificar errores en cabecera y datos.2. 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).25. 28. Es un nivel de sesión que utiliza el formato de paquetes de UDP como base. 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. Otro ejemplo de protocolo de este nivel es X. Este campo es opcional: si no se utiliza. RTP es un protocolo de datagrama que fue diseñado para datos en tiempo real como la transmisión de audio y vídeo. el valor del campo debe ser 0. Puede además representar una conexión con múltiples direcciones IP de modo que si una IP falla. Sin embargo se considera que este protocolo pudiera acomodar debajo del nivel de transporte del modelo TCP/IP. una forma de control de redundancia con la finalidad de proteger la integridad de datos verificando que no hayan sido corrompidos. Provee múltiples transmisiones distribuidos sobre una misma conexión. 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. Nivel de Red Este nivel resuelve el problema de capturar los datos a través de una red única. y a diferencia de TCP. 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. Es obligatorio. La estructura de paquetes UDP consiste de 4 campos. Está orientado también hacia transmisión de datos pero no está orientado hacia bytes como TCP. La longitud mínima es de 8 bytes ya que es la longitud misma de la cabecera. DCCP. Se desarrolló inicialmente para aplicaciones de telefonía pero se puede utilizar en otras aplicaciones.3. aplicaciones de transmisión de medios. voz sobre IP (VoIP).

IL Ethernet. UDP. Nivel Físico Al igual que el Nivel de Enlace. sincronización y tiempo de vida así como distancias máximas. SIP. detalles de conectores. Ambas se relacionan pero no son equiparables. Winsock. SNMP. potencias de señal. SSH.2.1 (Abstract Syntax Notation 1). 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. concentradores. XMPP (Extensible Messaging and Presence Protocol). repetidores. SMTP. Token ring. longitudes de onda. y otro nivel intermedio entre el Nivel de Red y el Nivel de Transporte para determinar donde corresponden los protocolos ARP y RARP. TLS. RTP.2.1.11 WiFi. una para la VPN y otra para el encaminamiento (routing). Cuando esto se lleva a acabo.2. Este nivel es donde los paquetes son interceptados y enviados hacia una Red Privada Virtual (VPN).AFP (Apple Filing Protocol). los datos suben por la pila del modelo TCP/IP dos veces. 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). SPX. ATM. 802. HDLC. sino que es el método utilizado para pasar paquetes desde el Nivel de Red sobre dos diferentes anfitriones. NFS. Whois.5.1. ISO 8327 / CCITT X.4.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 28. PPP Define todas las especificaciones físicas y eléctricas de los dispositivos. 28. Los dos niveles que hacen la diferencia en el Modelo OSI son el Nivel de Presentación y el Nivel de Sesión. SSH. NCP (NetWare Core Protocol) ASAP (Aggregate Server Access Protocol). SMB (Server Message Block). mismos que podrían ser equivalentes al Nivel de Aplicación del modelo TCP/IP. como son disposición de pines. RPC (Remote Procedure Call). ENRP Telnet. Frame relay. FTP. 28. BSD sockets TCP. código de canales y modulación. 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. El modelo OSI utiliza siete niveles. En el extremo receptor. mientras que el modelo TCP/IP utiliza cinco. ASN. ATP. Del mismo modo que la pila del modelo TCP/IP. 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. voltajes. especificaciones de cableado. 4 2 1 Transporte Enlace de datos Físico 257 . XDR (External Data Representation).2. Estos procesos realizarán funciones de enlace de datos tales como añadir una cabecera de paquete para preparar la transmisión. ISDN. ASP (Appletalk Session Protocol). FDDI. SCTP. y entonces transmitir el todo a través de un medio físico. el modelo OSI no es lo suficientemente diverso en los niveles inferiores para abarcar las verdaderas capacidades del Conjunto de Protocolos TCP/IP. Contempla todas las características físicas de la comunicación como la naturaleza del medio. Nivel de Enlace Este nivel no es realmente parte del Conjunto de Protocolos TCP/IP.225. Nivel 7 6 5 Nombre Aplicación Presentación Sesión Descripción HTTP. Telnet. no es realmente parte del Conjunto de Protocolos TCP/IP. RTSP. NetBIOS.

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

IPv4 es el principal protocolo utilizado en el Nivel de Red del Modelo TCP/IP para Internet.161. Puede resultar en paquetes duplicado o en desorden. Tiene las siguientes características: • • • • Es un protocolo de un servicio de datagramas no fiable (también referido como de mejor esfuerzo).2. Todos los problemas mencionados se resuelven en el nivel superior en el modelo TCP/IP. muchas de estas están reservadas para propósitos especiales como redes privadas.alcancelibre. b) No puede utilizar esta obra para fines comerciales. IPv4 utiliza direcciones de 32 bits (4 bytes) que limita el número de direcciones posibles a utilizar a 4.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 29. No proporciona ni garantías sobre la corrección de los datos. Debido a esto se reduce el número de direcciones IP que realmente se pueden utilizar. Direcciones. etc. Cuando se escribe una dirección IPv4 en cadenas. Introducción.alcancelibre. la notación más común es la decimal con puntos.295 direcciones únicas. 29. c) Si altera o transforma esta obra. 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. Usted es libre de copiar.1. 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. 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 a IP versión 4 Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://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). o genera una obra derivada.294. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Sin embargo. Utilizando como ejemplo: www.2. Representación de las direcciones.1. Hay otras notaciones basadas sobre los valores de los octetos de la dirección IP.226 en la notación decimal con puntos: 259 . Multidifusión (Multicast). No proporciona garantía en la entrega de datos.org que tiene como dirección IP 201. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.1 © 1999-2011 Joel Barrios Dueñas.967.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. a través de TCP o UDP. 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. Al reutilizar o distribuir la obra. 29. documento que dejó obsoleto al RFC 760 de Enero de 1980. 29. 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. 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.1. por ejemplo. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.

Bloques de direcciones reservadas Bloque de direcciones CIDR 0. La forma hexadecimal convertida a binario.1.0. Ejemplo: 201. Esto implica que una dirección asignada a una parte de una red no funcionará en otra parte de la red.0xE2 0311. Además.0/8 127.0/8 14. Bloques reservados.0. todos estos formatos mencionados deberían ser reconocidos por los navegadores (sin combinar).11100010 0xC9A101E2 3382772194 31150200742 11001001101000010000000111100010 Conversión desde decimal con puntos Cada octeto de la dirección es convertido individualmente a hexadecimal.0/8 39. Cada octeto es convertido individualmente a octal. 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.0342 11001001.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. cada octeto puede ser representado en combinación de diferentes bases. como haría un ISP con un cliente. 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).161.0. 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.0.0. Cada octeto es convertido individualmente a binario Concatenación de los octetos de hexadecimal con puntos. Esta estructura fue creada para el CIDR.0.10100001.0/8 128. 29. 29.226 0xC9. Existe una estructura jerárquica que se encarga de la asignación de direcciones de Internet alrededor del mundo.0.0x01. 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.0.3.0.0/8 10.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 260 .00000001. La forma hexadecimal convertida a octal.0xA1. La forma hexadecimal convertida a decimal.3.0. en las formas con puntos. Teóricamente.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.0241.0x01.0.0.0001.0241.226. 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).

168.255.0/4 240. sin embargo.0/16 29.0/24 192.0/4 255.0.1.0.048.2.0.255.0.255 Numero de direcciones IP 16.3.3.255 192.0/8 172.0.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. o 127.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Bloque de direcciones CIDR 169.0.254.0.0.215 1.0. Anfitrión local (Localhost) Además de las redes privadas.0/16 198.255. 261 .1.168.0/16 172.777.255 172.0 – 192.16.0/12 192.576 65.535 Tipo de clase Única clase A 16 clases B contiguas 256 clases C contiguas Bloque CIDR mayor 10.255.18.0.0.255.0. comunicarse hacia redes públicas a través de la Traducción de Direcciones de Red o NAT (Network Address Translation).0 – 172.16.168. Bloques reservados para redes privadas Nombre Bloque de 24bits Bloque de 20bits Bloque de 16bits Rango de direcciones IP 10.0/12 191.1.0 – 10.0/24 224.0.0.255.16.0.255. Ninguna dirección de este rango deberá aparecer en una red.0/8 en la notación CIDR. Pueden.2.0. tres rangos están especialmente reservados para utilizarse solamente en redes privadas. está reservado para la comunicación del anfitrión local (localhost).31.0.88. De los más de cuatro mil millones de direcciones permitidas por IPv4.255.255.0/15 223.0.168.0/16 192. Redes privadas.99.0/24 192.0/24 192. el rango 127.0.0. y cualquier paquete enviado hacia cualquier dirección de este rango deberá regresar como un paquete entrante hacia la misma máquina.255. sea pública o privada.0.255. antes red Clase D) Reservado (Antes red Clase E) Difusiones (Broadcast) 29.255.0 – 127. 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.0.0.0.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 29.252 /31 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).255.0 /13 255.128 /26 255. 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.255.254. 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.255.192 /27 255.224.255.0 /21 255. Ejemplos de esto son los usos del Retorno del sistema (loopback.240.255.0 /22 255.0 /18 255.4.254 /32 255.240 /29 255.0 /15 255.224. o Solicitud De Comentarios). disponibles para la versión 4.0.255.255.0 /20 255.255.255.255.255.0.0 /16 255.0 /9 255.0.255.0.0 /19 255.128.255. se especifican y asignan a través de documentos RFC (Request For Comments.0 /12 255.248.0 /10 255. antes ARPANET.252.254. 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.192.255.255.192.252.255.255.0.248 /30 255. RFC 1643).255.248.255.255. Referencia de sub-redes de IP versión 4.255.0.0.224 /28 255.255.0 /17 255.0 /24 255.240.255 262 .0 /23 255.255.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.255.0 /14 255.0 /11 255.0.0 /25 255. Algunos segmentos del espacio de direcciones de IP.255. Se escribe utilizando el mismo tipo de notación para escribir direcciones IP.255.128.

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

IP versión 4. En CentOS 6 y Red Hat Enterprise Linux 6. que utiliza núcleo de Linux versión 2.2. Solamente requerirá de algunos conocimientos básicos acerca de TCP/IP. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. la detección de las tarjetas de red es automática. 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. Detección y configuración del sustento físico (hardware).conf.1. Procedimientos 30.com. 30.1.1 © 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar. 30. La marca de la tarjeta de red es lo que menos interesa. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. o bien a través de kudzu. De ser necesario. 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). Para consultar la lista de tarjetas de red compatibles. Al reutilizar o distribuir la obra. el archivo /etc/modprobe. o genera una obra derivada. Puede verificarse el módulo correspondiente a la tarjeta de red consultando el archivo anteriormente mencionado: 264 . 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. la detección de las tarjetas de red es realizada o bien por el programa de instalación.2. 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. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. como Vi. En CentOS 5 y Red Hat Enterprise Linux 5.6. En términos generales. Emacs. o gEdit.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 30. lo que es importante es que se determine con exactitud que circuito integrado auxiliar (chipset) utiliza la tarjeta de red. y saber cómo utilizar cualquier editor de texto simple. es posible configurar todo manualmente. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. tiene que dejar bien claro los términos de la licencia de esta obra. mientras se trate de tarjetas de red soportadas. Si acaso no fuese detectado el dispositivo de red debido a la ausencia de kudzu. un servicio que inicia junto con el sistema y que se encarga de detectar y configurar los dispositivos de sustento físico (hardware) instalados.alcancelibre. c) Si altera o transforma esta obra. Cómo configurar los parámetros de red en Linux. visite hardware. con un editor de textos. Introducción Configurar los parámetros de red en una estación de trabajo GNU/Linux o un servidor es realmente simple.redhat. puede modificarse.32.

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

1.3. Ejemplo: DEVICE=eth0 ONBOOT=yes BOOTPROTO=static NM_CONTROLLED=no IPADDR=172. el cual deberá estar asociado a una de las direcciones IP. DNS2 y DNS3.2.3.1. Servidores de nombres.2.50 localhost.3. Nombre del anfitrión (HOSTNAME). que se encontrará del directorio /etc/sysconfig/network-scripts/.3.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. el nombre del anfitrión (hostname) del sistema se definirá dentro del archivo /etc/sysconfig/network del siguiente modo: NETWORKING=yes HOSTNAME=nombre. y verificar que sus parámetros de red sean los correctos.tld localhost nombre Se debe establecer un nombre para el sistema. 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.1.2. 30.2. En el caso de sistemas sin conexión a red o sistemas caseros. De tal modo. Ejemplo: 266 .1.255. Debe modificarse con cualquier editor de textos. Asignación de parámetros de red. se pueden establecer añadiendo al archivo ifcfg-eth0.localdomain nombre. el parámetro DOMAIN y los parámetro DNS1.0. El administrador de la red deberá proporcionar una dirección IP disponible (IPADDR) y una máscara de la subred (NETMASK). sea resuelto de manera local en el archivo /etc/hosts. o bien definidos de acuerdo a una planificación previamente establecida. Dirección IP. En CentOS 6 y Red Hat Enterprise Linux 6.dominio. 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.3.tld 30. Debe modificarse con un editor de textos el archivo /etc/hosts.16.0. Hay dos parámetros a configurar: dominio de búsqueda predeterminado y al menos un servidor de nombres.16.2. 30.192 GATEWAY=172.255.16. el archivo localizado en la ruta /etc/sysconfig/network-scripts/ifcfg-eth0. máscara de subred y puerta de enlace.dominio. y debe verificarse que este diferenciado el eco o retorno del sistema del nombre del sistema. Ejemplo: 127.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 30.50 NETMASK=255.

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

168.3. con máscaras 255.16.192.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 268 .ipv4.1 ADDRESS1=192. Puede ejecutarse el mandato ping hacia cualquier dirección de la red local para tal fin. Si dispone de al menos 2 dispositivos de red y se tiene planeado implementar un NAT o DNAT. solo es necesario ejecutar lo siguiente: sysctl -w net.ip_forward = 0 por net.168.ipv4.ip_forward = 1 Para aplicar el cambio. solo deberá de ser reiniciado el servicio de red. Esto se realiza editando el archivo /etc/sysctl.192 GATEWAY1=192.conf Y cambiando net. o bien dejar 0 para mantener inactivo: vim /etc/sysctl.0 NETMASK1=255.255.2.0 y se requiere establecer conectividad con las redes 192.3.conf.2. Después de hacer configurado todos los parámetros de red deseados.1 y 192. ping -c3 172.ip_forward=1 30.168.255. y estableciendo 1 para activar.1.3. a través de la primera interfaz Ethernet del sistema (eth0).16.255. a través de las puertas de enlace o enrutadores o encaminadores con dirección IP 192.0 NETMASK0=255.ipv4. sin reiniciar el sistema.0 y 192.168.168.255.ip_forward = 1: net.168. se debe habilitar el reenvío de paquetes para IP versión 4.255. Comprobaciones.2. correspondientemente para cada red citada.2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Por citar un ejemplo.6. ejecutando lo siguiente: service network restart Basta solamente comprobar si hay realmente conectividad. imaginemos que nos encontramos dentro de la red 172.255.1.2. Función de Reenvío de paquetes para IP versión 4.ipv4.3.192 30.1 ADDRESS0=192.2. La configuración de /etc/sysconfig/network-scripts/route-eth0 sería la siguiente: GATEWAY0=192.1.5.168.0.168.

16.255.0.0.1 MiB) eth0:0 lo 30.1 Bcast:172.2. el sistema tiene habilitado Zeroconf. 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. se puede realizar una consulta hacia los servidores DNS definidos para el sistema. Son útiles en los casos en los cuales se tiene un servicio de hospedaje de páginas de Internet. De modo predeterminado. El archivo se genera igualmente con el nombre del dispositivo con el prefijo ifcfg-. Es un conjunto de técnicas que automáticamente crean una dirección IP utilizable sin necesidad de configuración de servidores especiales. y a fin de permitir la comunicación entre dos diferentes sistemas a través de un cable RJ45 cruzado (crossover).63 Mask:255. dentro del directorio /etc/sysconfig/network-scripts/.63 Mask: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. y otro conjunto de equipos lo hagan con una dirección IP distinta (una DMZ. y se desea que cada sitio tenga su propia dirección IP.192 La comprobación.254 NETMASK=255.0.1. utilizando: host dominio.255.2. 269 . también conocido como Zero Configuration Networking o Automatic Private IP Addressing (APIPA).1 Mask:255.16.16.tld 30.16. Basta definir solamente la dirección IP. impresoras en red y otros artículos entre sí. Permite a usuarios sin conocimientos de redes conectar computadoras. al ejecutar el mandato ifconfig. máscara de subred y el nombre del dispositivo.255.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para comprobar si hay resolución de nombres.2 Bcast:172.168. por ejemplo).0.1. 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. por ejemplo). La función Zeroconf.255.1 MiB) TX bytes:3327899 (3.1.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:11 Base address:0xd000 Link encap:Local Loopback inet addr:127.8.255.2. deberá regresar algo como lo siguiente eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:172.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.255.1.7.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.3 MiB) Interrupt:11 Base address:0xd000 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:172.4 MiB) TX bytes:20306080 (19.

192 255.0.255. solo bastará añadir en el archivo /etc/sysconfig/network el parámetro NOZEROCONF con el valor yes: NETWORKING=yes HOSTNAME=nombre.1. Este ejercicio considera lo siguiente: 270 .org/wiki/Zeroconf Ejercicios.1.0 127. estos son avahi-daemon y avahi-dnsconfd.255.0.0.0.0. Desactivar estos dos servicios ahorrará tiempo en el arranque y se consumirán algunos pocos menos recursos de sistema.0.org/ http://en.0 169.255.1.255.255. Estando habilitado Zeroconf se mostrará un registro en la tabla de rutas estáticas para la red 169.0.tld NOZEROCONF=yes Al terminar.0. devolviendo una salida similar a la siguiente: 172.0.0 0.0. 30.wikipedia.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.0 0.0.0.255.0 127.254.0 0. Para más detalles acerca de Zeroconf.0.0.0. existen dos servicios en el sistema en CentOS y Red Hat™ Enterprise Linux 5 y versiones posteriores.255.1 255.0.0 0.0 0.0 0. Rutas estáticas.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.2.0. puede consultarla información disponible en: • • http://www.16.16. 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.1 255.0.0 0.0 255.0.0 172.9.255. que se pueden desactivar puesto que sirven para establecer la comunicación a través de Zeroconf.zeroconf.0.0 U U UG 0 0 0 0 0 0 0 0 0 eth0 lo eth0 Una vez hecho lo anterior.16.255 0.0.0 172.0.0.16.0.0 al utilizar el mandato route -n. Por tanto.dominio.192 255.254.0. 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.1. no es conveniente desactivar este soporte si se va a hacer uso del modo gráfico.255 0.255.

2.tld tiene una dirección IP 172.1) 56(84) bytes of data.2.0. PING 10. pc2.2. time 1999ms Proceda a añadir la ruta estática que corresponde especificando la red. Se tiene dos equipos de cómputo con GNU/Linux instalado en ambos. route -n Obtendrá una salida similar a la siguiente: Kernel IP routing table Destination Gateway 172.2.16.0.0 0.0 0.0 172.240 \ gw 172.3.16.192 0.1.255.255. pc1.0.1.61 \ eth0 Visualice de nuevo los registros de la tabla de rutas estáticas.1 10.dominio.1 con máscara de subred 255.16.dominio los registros de la tabla de rutas estáticas.0. route add \ -net 10.2.0.1 Genmask 255. route -n Obtendrá una salida similar a la siguiente: Kernel IP routing table Destination Gateway 172.192 0. 0 received.255.1 Genmask 255.3.192 en el dispositivo eth0.3.255.10.0 \ netmask 255.1.3.16. ping -c 3 10. mascará de subred y puerta de enlace necesarios para llegar hacia 10.2.0.0.3.240 Flags U UG UG Metric 0 0 0 Ref 0 0 0 Use 0 0 0 Iface eth0 eth0 eth0 271 .16.dominio.255.1 ping statistics --3 packets transmitted.0.16.1.dominio. Visualice desde pc2.61 con máscara de subred 255.3. Una dirección IP 10.255.1 El resultado esperado es que ping devuelva que hay 100% de pérdida de paquetes.1.192 en el dispositivo eth0. --.0 255.1.240 en el dispositivo eth1.tld tiene una dirección IP 172.16.255. 100% packet loss.0 172.255. 2.16.1.0.3.0 0.1.255.0. Carece de otros dispositivos de red activos.1 (10.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 1.0. 3.255.0.255.0 0.2.102 (o cualquiera otra en el mismo segmento) con máscara de subred 255.255.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.255.2.0 172.255.3.1.

2.1.1 64 bytes from 64 bytes from 64 bytes from (10.1: icmp_seq=0 ttl=64 time=0.368 ms 10.3.2.048 ms. ping -c 3 10.453/0. service network restart Visualice nuevamente los registros de la tabla de rutas estáticas.0.0.347 ms --.16.0 0. y ponga el siguiente contenido: ADDRESS0=10.1.347/0.2.0 172.2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Intente ejecutar ping hacia la dirección recién añadida en pc1. 0% packet loss.255.2.0 NETMASK0=255.3.3.453 ms 10.1 ping statistics --3 packets transmitted.16.1) 56(84) bytes of data.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: icmp_seq=1 ttl=64 time=0.0.1: icmp_seq=2 ttl=64 time=0. pipe 2 Reinicie el servicio de red.1.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.3.dominio. 3 received.0.192 0.1 porque el registro en la tabla de rutas estáticas fue eliminado al reiniciar el servicio de red.1 272 .2.389/0.1 El resultado esperado es que ping responda al ping. ping -c 3 10.16.dominio. visualice de nuevo los registros de la tabla de rutas estáticas y compruebe que ya no hay respuesta al hacer ping hacia 10. obteniéndose una salida similar a la siguiente: PING 10.16.2.0 172.3.0 255. service network restart route -n ping -c 3 10. route -n Lo anterior debe devolver una salida similar a la siguiente: Kernel IP routing table Destination Gateway 172.255.3.3.2.3.255.255.2.1 Genmask 255. 10.255.3.2.1.2.255. time 1999ms rtt min/avg/max/mdev = 0.3.0.3.10.61 Al terminar reinicie el servicio de red.1 10.0.2.240 GATEWAY0=172.0 0.3.

2.1. Se tiene dos (o más) equipos de cómputo con GNU/Linux instalado en éstos.1.1 KiB) TX bytes:125102 (122. Se añadirá como interfaz virtual (eth0:0) la dirección IP 172. 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.1 KiB) lo Utilice ping para comprobar si acaso hay alguna respuesta desde la interfaz virtual eth0:0. con máscara de subred 255.1.50. pc1. --. time 1999ms 273 .51 Lo anterior debe devolver una salida similar a la siguiente: PING 172.1 Mask:255.255.192.5 MiB) Interrupt:11 Base address:0xd000 Link encap:Local Loopback inet addr:127.16.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.0.16.1.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.63 Mask:255. Este ejercicio considera lo siguiente: 1. Visualice las interfaces de red activas en el sistema.51 (172. 0 received. visualice de nuevo los registros de la tabla de rutas estáticas y compruebe de nuevo que hay respuesta al hacer ping hacia 10.10.dominio.16.1 30.6 MiB) TX bytes:5794288 (5.16.3.51 ping statistics --3 packets transmitted.tld tiene una dirección IP 172.3. Ejercicio: Direcciones IP virtuales. 2.255. 3.51) 56(84) bytes of data.255. service network restart route -n ping -c3 10.192 en el dispositivo eth0.16. con máscara de subred 255.172.1.1.255. Carece de otros dispositivos de red activos. ifconfig Lo anterior debe devolver una salida similar a la siguiente.1.1.255. 100% packet loss.16.0.16.1.255.2.2. ping -c3 172.0.51.50 Bcast:172.16.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Reinicie el servicio de red.

51: icmp_seq=1 64 bytes from 172. ping -c3 172.51 Bcast:172.255.5 MiB) Interrupt:11 Base address:0xd000 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.255.255.1. time 1999ms rtt min/avg/max/mdev = 0.16.50 Bcast:172.255.347/0.347 ms --.0.16.1.1 KiB) TX bytes:125102 (122.255.1.192 Utilice ping para comprobar que haya respuesta desde la interfaz virtual eth0:0.51 ping statistics --3 packets transmitted.51 netmask 255.1.389/0.255.0.0.51: icmp_seq=0 64 bytes from 172. 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.16.63 Mask:255.16.16.1.16.63 Mask:255.1 KiB) eth0:0 lo Reinicie el servicio network.1 Mask:255. el sistema no deberá devolver mensaje alguno.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.172.048 ms. ifconfig Lo anterior debe devolver una salida similar a la siguiente.51: icmp_seq=2 bytes of data. ifconfig eth0:0 172.1.51 (172.1.6 MiB) TX bytes:5794288 (5.16.16.0.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.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.1. ttl=64 time=0.16.1. 3 received.16.368 ms ttl=64 time=0.1.16.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:11 Base address:0xd000 Link encap:Local Loopback inet addr:127. service network restart 274 .1.16.51) 56(84) 64 bytes from 172.453/0.1. Si la sintaxis fue correcta.453 ms ttl=64 time=0. pipe 2 Visualice las interfaces de red activas en el sistema. 0% packet loss.

6 MiB) TX bytes:5794288 (5.16.1 Mask:255. service network restart Visualice las interfaces de red activas en el sistema.1.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.51 (172. --. donde se mostrará que ya no está activa la interfaz eth0:0.51 Lo anterior debe devolver una salida similar a la siguiente: PING 172.0.16.5 MiB) Interrupt:11 Base address:0xd000 Link encap:Local Loopback inet addr:127. ifconfig 275 .1.172.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.192 Reinicie el servicio de red.63 Mask:255.51 ping statistics --3 packets transmitted.1.51 NETMASK=255. time 1999ms Visualice las interfaces de red activas en el sistema.1. 100% packet loss.51) 56(84) bytes of data. ifconfig Lo anterior debe devolver una salida similar a la siguiente.255.0.1.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. 0 received.1 KiB) TX bytes:125102 (122.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. 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.16.255.16.16.16.1. ping -c3 172.255.16.1.255.0.0.50 Bcast:172.

51: icmp_seq=2 bytes of data.453 ms ttl=64 time=0.51 Lo anterior debe devolver una salida similar a la siguiente: PING 172.1.51 ping statistics --3 packets transmitted.0.368 ms ttl=64 time=0.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.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.16.50 Bcast:172.255.255.1 KiB) TX bytes:125102 (122.51) 56(84) 64 bytes from 172.347/0.048 ms.1.16.16.51: icmp_seq=0 64 bytes from 172.0.0.5 MiB) Interrupt:11 Base address:0xd000 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:172.16.1.1.255.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior debe devolver una salida similar a la siguiente.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:11 Base address:0xd000 Link encap:Local Loopback inet addr:127. ttl=64 time=0. 276 .51 (172.168.16.6 MiB) TX bytes:5794288 (5.63 Mask:255. ping -c3 172. time 1999ms rtt min/avg/max/mdev = 0.16. 0% packet loss.389/0.16.255.1 Mask:255.347 ms --.1.1.1.255 Mask: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.172.1 KiB) eth0:0 lo Utilice el mandato ping para comprobar que haya respuesta desde la interfaz virtual eth0:0.453/0.51 Bcast:192.16.0. 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. 3 received.1.16.1.1.1.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 31. impidiendo que puedan intercambiar datos usando la red local. 31. o genera una obra derivada. «una VLAN (acrónimo de Virtual LAN. Usted es libre de copiar. los cuales deberán estar previamente configurados para gestionar algunas VLANs (y saber cómo hacerlo). distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. separando segmentos lógicos de una red de área local. El soporte necesario para configurar VLANs se incluye junto con el paquete vconfig. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Editar el archivo /etc/sysconfig/network: vim /etc/sysconfig/network Añadir el siguiente parámetro para activar el soporte para VLAN.alcancelibre.1q). 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.1 © 1999-2011 Joel Barrios Dueñas. Procedimientos. 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.2. c) Si altera o transforma esta obra. 31. De acuerdo a Wikipedia. a través de cualquier medio. 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. 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. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Son útiles para reducir el tamaño del dominio de difusión y ayudan en la administración de la red.1. 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.. Licencia completa en castellano. y entender perfectamente IP versión 4.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. por entidades con fines de lucro). Introducción. editar el archivo de configuración: vim /etc/sysconfig/network-scripts/ifcfg-eth1 277 . Varias VLANs pueden coexistir en un único conmutador físico o en una única red física. Cómo configurar VLANs en GNU/Linux.» Su implementación requiere de disponer de conmutadores (switches) con capacidad para VLAN (protocolo 802. Equipamiento lógico necesario. o Red de Área Local Virtual) es un método para crear redes lógicamente independientes dentro de una misma red física.

16.255.2 vconfig rem eth1.255.0. para eliminar los dispositivos de VLAN.0. 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. y segmento de red que regularmente utilizan los conmutadores. 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.4 Para que los dispositivos de VLANs sean permanentes. siguiendo el siguiente formato: icfg-eth1.16. solo habría que ejecutar lo siguiente: vconfig rem eth1. 278 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Quitar todos los parámetros de red. 172.1).1 como IP para el servidor.2 172.3 172.255. es necesario crear.192 ifconfig eth1. los archivos de configuración de interfaz.2.255.129 netmask 255.16. dentro del directorio /etc/sysconfig/network-scripts. Se debe evitar usar la VLAN 1 (eth1.4 172.16. dirección IP.3 vconfig rem eth1. se utiliza nuevamente el mandato vconfig.255.192 ifconfig eth1. con la opción rem. Siguiendo el ejemplo utilizado en este documento.255.1 o eth0.192 En caso de que sea necesario. preferentemente debe corresponder son el mimos utilizado en el conmutador principal.número-vlan El número de VLAN. porque suelen corresponder al número de VLAN. así como también evitar utilizar la red 172.65 netmask 255. Ejemplo de contenido de /etc/sysconfig/network-scripts/ifcfg-eth1.0.193 netmask 255.0.0/26.0.16. seguido del nombre del dispositivo VLAN.

16.0. ifconfig La salida debe ser algo similar a lo siguiente: 279 .191 NETWORK=172.255.192 Reiniciar nuevamente el servicio de red a fin de que inicien las interfaces de VLAN.3 TYPE=Ethernet BOOTPROTO=static ONBOOT=yes NM_CONTROLED=no IPADDR=172.255 NETWORK=172.255.0.16.16.4 DEVICE=eth1.0.0.65 NETMASK=255.255.255.192 BROADCAST=172.0.128 Ejemplo de contenido de /etc/sysconfig/network-scripts/ifcfg-eth1.255.0.129 NETMASK=255.4 TYPE=Ethernet BOOTPROTO=static ONBOOT=yes NM_CONTROLED=no IPADDR=172.0.16.0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux DEVICE=eth1.16.192 BROADCAST=172.16.16.193 NETMASK=255.0.16.255.64 Ejemplo de contenido de /etc/sysconfig/network-scripts/ifcfg-eth1. service network restart Verificar con el mandato ifconfig que todas las VLAN estén presentes.2 TYPE=Ethernet BOOTPROTO=static ONBOOT=yes NM_CONTROLED=no IPADDR=172.3 DEVICE=eth1.192 BROADCAST=172.127 NETWORK=172.16.

127 Mask:255.2 eth0. definir una sección por cada red: 280 .129 Bcast:172.2 KiB) Link encap:Ethernet HWaddr 44:87:FC:AA:DD:2D inet addr:172.16. y definir las interfaces de VLAN a utilizar junto con el servidor DHCP.3 eth1.conf (CentOS 6 y Red Hat Enterprise Linux 6).3 KiB) Link encap:Local Loopback inet addr:127.8 KiB) eth0.3 GiB) Interrupt:122 Memory:da000000-da012800 Link encap:Ethernet HWaddr 44:87:FC:AA:DD:2D inet addr:172.1 GiB) TX bytes:12134964357 (11.16.16. Editar el archivo /etc/sysconfig/dhcpd. Editar el archivo /etc/dhcpd.3 eth0.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.0 b) TX bytes:3405 (3.1 KiB) Link encap:Ethernet HWaddr 44:87:FC:AA:DD:2D inet addr:172.193 Bcast:172.0.16.0 b) TX bytes:4235 (4.0 b) TX bytes:4333 (4.255.16.65 Bcast:172.4".255.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. Para alivio de los administradores de sistemas.3.0.2 eth1.191 Mask: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.1 Mask:255.0.0. DHCPDARGS="eth1. es posible utilizar el servicio de DHCP para gestionar la administración de direcciones IP a través de un servidor DHCP.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.0.255.255 Mask:255.0.conf (CentOS 5 y Red Hat Enterprise Linux 5).0.0.4 lo 31. o bien /etc/dhcp/dhcpd.255.255.16. Administrando direcciones IP de las VLANs a través de un servidor DHCP.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.1.0.8 KiB) TX bytes:21398 (20.

65.0.16.16.23.0.255. option subnet-mask 255. max-lease-time 7200.64 netmask 255.0.red-local.16. option subnet-mask 255. ignore client-updates.0.0.190. ddns-update-style interim.126.255.127. conectando algunos equipos a los conmutadores involucrados.0. option broadcast-address 172.192.0.255.30.205.0.16.0.16.net". option domain-name-servers 172.255.248.16. authoritative.192 netmask 255.255. service dhcpd restart 281 .255.16.7.192 { option routers 172.16.net.16.255. option netbios-name-servers 172.0. y comprobar que funcione correctamente el servicio.81.192.0.192.16.0.16.16. 132.191.192 { option routers 172. según sea el caso) el servicio dhcpd.234.192.193.29.65. range 172.16. option netbios-name-servers 172. option domain-name "red-local. option broadcast-address 172.255. option ip-forwarding off.193.192.0.16. option ntp-servers 200. default-lease-time 900.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux server-identifier servidor.0.0.255.0.0.16.130 172.0.0.16.255. option subnet-mask 255.51. } } Reiniciar (o iniciar. option broadcast-address 172.16.0.255. option domain-name-servers 172.16.255.0. option netbios-name-servers 172. range 172.66 172.193.255.128 netmask 255.16.194 172.16.129.65. range 172. shared-network vlan2 { subnet 172. 148.192 { option routers 172.254. option domain-name-servers 172. } } shared-network vlan4 { subnet 172. } } shared-network vlan3 { subnet 172.16.

org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.conf.1. es importante configurar al menos éstos dos parámetros. A fin de obtener un buen funcionamiento confiable. 282 . distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.2.1 © 1999-2011 Joel Barrios Dueñas. 32.dep y los archivos mapa de los controladores. o genera una obra derivada. de entre los cuales los más importantes son mode y miimon. tiene que dejar bien claro los términos de la licencia de esta obra.alcancelibre. Licencia completa en castellano. Cómo configurar acoplamiento de tarjetas de red (bonding).2. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.conf. originalmente creado por Donald Becker. depmod Lo anterior solo debe devolver el símbolo de sistemas después de unos segundos. El controlador bonding. c) Si altera o transforma esta obra. Archivo de configuración /etc/modprobe. 32. que corresponde la configuración más común. Al reutilizar o distribuir la obra. Para fines generales. a través de cualquier medio. Al terminar con el archivo /etc/modprobe. es importante utilizar el mandato depmod para regenerar el archivo modules. 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. Usted es libre de copiar. Procedimientos. 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. 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. 32. Esto se lleva a cabo con el objeto de contar con redundancia o bien balanceo de carga.1. 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 32. por entidades con fines de lucro). 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.

1. 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. Parámetro mode. Es la política predeterminada del controlador y la que funciona para la mayoría de los casos. exclusiva-o) para proporcionar tolerancia a fallos y balanceo de carga. Se utiliza para establecer la política baja la cual se hará trabajar las tarjetas en conjunto.2. Todas las transmisiones de datos son enviadas de forma secuencial en cada interfaz esclava del arreglo empezando con la primera que esté disponible. 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 283 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 32.2. para proporcionar tolerancia a fallos y balanceo de carga entre los miembros del arreglo de dispositivos. 3 (tres): Establece una política de Round-Robin. para proporcionar tolerancia a fallos y balanceo de carga. 1 (uno): Establece una política de respaldo activo que proporciona tolerancia a fallos. 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. donde la salida debe devolver el parámetro Link Detected con el valor yes. 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. Se utiliza para especificar cada cuantos milisegundos se debe supervisar el enlace MII (Media Independent Interface). las transmisiones de datos de datos son enviadas en forma secuencial empezando con la primera interfaz disponible. se utiliza el mandato ethtool.2. Parámetro miimon.1. que es un algoritmo que asigna una carga equitativa y ordenada a cada proceso. Se utiliza cuando se necesita alta disponibilidad para verificar si la interfaz está activa y verificar si hay un cable de red conectado. Los posibles valores son: 0 (cero): Establece una política de Round-Robin. 2 (dos): Establece una política XOR (exclusive-or. Una vez que se establece el enlace. Para verificar si el controlador de la tarjeta tiene soporte para MII. 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.1.

168.255.1 NETMASK=255. Archivo de configuración /etc/sysconfig/network-scripts/bond0.0 GATEWAY=192.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.168.254 Las interfaces de red a utilizar como esclavas se configuran de la siguiente forma.0. 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 284 .0. IPADDR. máscara de subred 255.255. En el siguiente ejemplo se configura la interfaz bond0 con la dirección IP estática 192. BOOTPROTO.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.2.255.168.1. Este se configura con los mismo parámetros que una tarjeta normal.255. Requiere los parámetros ONBOOT.0. Ejemplo: options bonding mode=0 miimon=0 32. puerta de enlace 192. se utiliza el valor 0 (cero). DEVICE. considerando que se tiene eth0 y eth1. NETMASK y GATEWAY.0.0.2.

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 32. 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.1.2 KiB) Interrupt:10 Link encap:Local Loopback inet addr:127.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.168.1.1 Mask:255.255.255. utilice: service network restart Para detener el servicio network utilice: service network stop 32. Para ejecutar por primera vez el servicio network tras configurar el acoplamiento de tarjetas.0 inet6 addr: ::1/128 Scope:Host eth0 eth1 lo 285 .3 MiB) TX bytes:488632 (477.3.64 Bcast:192. Iniciar.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. en el caso de haber utilizado las interfaces eth0 y eth1.0.2.0. Para verificar que la interfaz lógica quedó configurada. detener y reiniciar el servicio network.0 KiB) TX bytes:6393 (6. utilice: service network start Para hacer que los cambios hechos tras modificar la configuración surtan efecto.255 Mask:255.3.0.0. Comprobaciones.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.3 MiB) TX bytes:495025 (483.168.

linuxfoundation.org/en/Net:Bonding Thomas Davis: http://www. • • Thomas Davis: http://www.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. 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. lo anterior debe devolver lo siguiente: Link detected: yes Link detected: yes 32.4/Documentation/networking/bonding.txt 286 . y que hay un cable de red conectado a éstas.org/pub/linux/kernel/people/marcelo/linux2.kernel.9 MiB) Para verificar que las interfaces de red están funcionando correctamente.9 MiB) TX bytes:8364864 (7. Bibliografía.4.

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

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

2. 33. iwconfig wlan0 key clave-de-acceso Si se utiliza una clave WEP tipo ASCII.3. 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. Solo basta utilizar dos mandatos. y para determinar el protocolo a utilizar: iwlist wlan0 scan 33. A través de redes WEP. 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.2. es muy simple. Para redes WEP.3.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. Autenticando en el punto de acceso. se debe detener este servicio: service NetworkMananger stop Muchos componentes del sistema requieren que esté activa la interfaz de retorno del sistema (loopback).. sea de 64 o 128 bit. por lo que es importante iniciar ésta: ifup lo Para poder comenzar a utilizar la interfaz Wifi.1. se define de la siguiente manera: iwconfig wlan0 key s:clave-de-acceso 289 .

128.168.70. con máscara de subred 255.conf Si se realiza el procedimiento desde Ubuntu Linux.2. se asigna a la interfaz wlan0 la dirección IP 192.70.168. Asignando manualmente los parámetros de red. como el usuario root.168. y puerta de enlace 192.conf dentro del directorio de inicio del usuario root. se utiliza el mandato wpa_supplicant con las opciones -B.1.2. En el siguiente ejemplo.0 netmask 0. y la clave de acceso.255.255.0. En el siguiente ejemplo.255.conf 33. el mandato anterior fallará si se utiliza sudo debido a limitaciones de seguridad de sudo. y deberá utilizarse entonces el siguiente: sudo bash -c "wpa_passphrase punto-de-acceso clave-de-acceso > /root/wpa. se edita el archivo /etc/resolv.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 33..50. se utiliza el mandato dhclient de la siguiente manera: dhclient wlan0 33.conf" Lo anterior generará el archivo wpa. y -c.3.255.168.2.0.70.2.1" > /etc/resolv.50 netmask 255. -D. Si se conocen los datos para la configuración de red. 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.1 como servidor DNS: echo "nameserver 192. también es posible asignarlos manualmente.0.conf.1 wlan0 Para definir el servidor DNS. se define 192. para enviar el procesos a segundo plano.168.2. Asignando parámetros de red a la interfaz. 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. Se procede a determinar el nombre de la red Wifi a utilizar.conf 290 .. Utilizando dhclient.128 route add -net 0. A través de redes WPA.1: ifconfig wlan0 192.70. wpa_supplicant -B -Dwext -iwlan0 -c/root/wpa.4.0. 33.70. Para iniciar la autenticación con la red Wifi.168.70.0 gw 192. para especificar el archivo de configuración creado en el paso anterior. para especificar el controlador a utilizar.2. 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. y se define la dirección IP del servidor DNS a utilizar.4.4.

. y utilizar WEP. Asignación permanente de parámetros de red en Fedora.70. CentOS. 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.. si se desea conectar el sistema a un punto de acceso denominado alcance2. y deberá utilizarse entonces el siguiente: sudo bash -c "echo 'nameserver 192. 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.3.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si se realiza el procedimiento desde Ubuntu Linux. y Red Hat Enterprise Linux. el mandato anterior fallará si se utiliza sudo debido a limitaciones de seguridad de sudo. Solo es necesario crear el archivo de interfaz.1' > /etc/resolv. y utilizar WPA. poner el siguiente contenido: 291 . 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..168.conf" 33.4. 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.

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

o genera una obra derivada. tuberías (pipes). Procedimientos.3 0.so. Lsof es un mandato que significa «listar archivos abiertos» (list open files).5. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. Acerca de lsof.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.5. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. 34. Licencia completa en castellano.3 9. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.1 © 1999-2011 Joel Barrios Dueñas.so init 1 root mem 2.3 9. Al reutilizar o distribuir la obra. Lsof fue desarrollado por Vic Abell.1 init 1 root mem /lib/libsepol. En el siguiente ejemplo se solicita a lsof mostrar todos los procesos que estén haciendo uso de algo dentro de /var. Es utilizado ampliamente en sistemas operativos tipo POSIX para hacer reportes de archivos y los procesos que están utilizando a éstos.3 9. 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.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.1 init 1 root 10u TYPE DIR DIR REG REG REG REG REG REG FIFO DEVICE 9. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Se puede utilizar para revisar que procesos están haciendo uso de directorios.so init 1 root mem /lib/libselinux. zócalos de red (sockets) y dispositivos. En ausencia de parámetros. quien alguna vez fue director del Centro de Cómputo de la Universidad de Purdue.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 34. 34. lsof mostrará todos los procesos haciendo uso de archivos.3 9.alcancelibre. tiene que dejar bien claro los términos de la licencia de esta obra. archivos ordinarios.so init 1 root mem /lib/i686/nosegneg/libc-2.3 9. 293 . 34.so. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. solamente especificando este luego de lsof.2. Cómo utilizar lsof Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Ejemplo: lsof | less Puede especificarse que se muestren todos los procesos desde un directorio en particular. a través de cualquier medio. c) Si altera o transforma esta obra.1.3 9. 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. Introducción.5. por entidades con fines de lucro). 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. se puede utilizar el mandato less o el mandato more como subrutinas. Usted es libre de copiar.3 9.1.

Si se quiere mostrar los archivos de red en uso por algún proceso de red en particular.1 0 17006596 /var/log/spooler REG 9.1 REG 9.localdomain:domain localhost.1 12461 17006594 /var/log/secure REG 9.statd rpc.3 1602164 175514 /lib/i686/nosegneg/libc-2.so REG 9.1 DIR 9. 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. 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 DIR 9.5.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.3 35800 146392 /sbin/syslogd REG 9.redlocal.3 4096 2 / DIR 9.1 CHR 1.1 1134708 17006593 /var/log/messages REG 9.statd.net:domain (LISTEN) *:filenet-tms *:filenet-rpc localhost.localdomain:rndc (LISTEN) localhost6.1 REG 9.3 4096 2 / REG 9. 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.3 46680 175529 /lib/libnss_files-2.log /var/named/chroot/var/named /var/named/chroot /var/named/chroot/dev/random /var/lib/nfs/statd /var/run/rpc.1 REG 9.localdomain:domain (LISTEN) servidor.1 REG 9.log /var/log/messages /var/log/secure /var/log/maillog /var/log/cron /var/log/spooler /var/log/boot.1 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.log La opción -i hará que se muestren todos los archivos de red (Internet y x.localdomain6:rndc (LISTEN) 294 .1 REG 9.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.5.so unix 0xc0acfc80 6909 /dev/log REG 9.redlocal. se utiliza la opción -p seguida del número de proceso.5.25) utilizados por procesos de red.8 DIR 9.1 9925 17006595 /var/log/maillog REG 9.net:domain servidor.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.3 125736 175507 /lib/ld-2.1 3339 17006598 /var/log/cron REG 9. se utilizan las opciones -i seguido de una subrutina con grep y el nombre de algún servicio.1 REG 9.1 916 17006597 /var/log/boot.pid Si se quiere mostrar solamente el archivo utilizado por un procesos en particular.so REG 9.

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

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

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

En el siguiente ejemplo se hará que mandato nc funcione como servidor escuchando peticiones en el puerto 22222.out. es posible realizar transferencia de datos desde una terminal como cliente hacia una terminal como servidor.0. Es relativamente simple crear un modelo cliente/servidor. 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. 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. Transferencia de datos. Tomando el ejemplo anterior. En el siguiente ejemplo se realiza la conexión al puerto 22222 de 127. se utiliza el mandato nc con la opción -l (listen o escuchar) seguida de un puerto que esté desocupado.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 35.0.0.0. 35. En lugar de ingresar datos desde la conexión.1 22222 < algo.3. 298 . en el proceso como servidor.in.3.1 22222 Todo lo que se escriba desde la terminal como cliente podrá ser visto en la terminal como servidor.0. se hace a partir de un archivo con contenido de la siguiente forma: nc 127.3.0. hacia el archivo algo.in En el ejemplo descrito se realiza la transferencia de datos del archivo algo. Esto hará que nc se comporte como servidor escuchando peticiones en un puerto arbitrario. nc -l 22222 Para establecer la conexión como cliente.out En el cliente se realiza algo similar. Creando un modelo cliente servidor. Desde una terminal que será utilizada para iniciar un modelo de servidor. desde el proceso como cliente.4.1 nc 127.

Procedimientos. 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. tanto TCP como UDP. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. estadísticas de interfaces y asignaturas de multidifusión.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.168. 36.comm unix 2 [ ACC ] STREAM LISTENING 7647 /var/run/acpid. o genera una obra derivada.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1:netbios-ns *:* udp 0 0 servidor00. 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. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Para visualizar todas las conexiones activas en el sistema. se puede utilizar el mandato less como subrutina. Licencia completa en castellano. Introducción.1. a través de cualquier medio.socket unix 2 [ ACC ] STREAM LISTENING 7737 /var/run/cups/cups. 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. Usted es libre de copiar.1.2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 36. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.122.1. se utiliza la opción -a. 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. netstat -a Debido a que la cantidad de datos puede ser mucha para ser visualizada con comodidad en la pantalla del monitor.sock 299 . 36. tablas de encaminamiento. Como utilizar Netstat. 36. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación.1 © 1999-2011 Joel Barrios Dueñas. por entidades con fines de lucro). Al reutilizar o distribuir la obra. c) Si altera o transforma esta obra. Acerca de Netstat Netstat es una herramienta utilizada para supervisar las conexiones de red. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.

17 resets sent Udp: 287 packets received 0 packets to unknown port received. 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 -u Para mostrar las estadísticas de uso para todos los tipos de conexiones. 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 -t Para mostrar solo las conexiones activas por UDP. 18364064 packets directly received from backlog 300 . 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.

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. 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. 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. se utiliza: 301 .

se utiliza: netstat -r Lo anterior puede devolver una salida similar a la siguiente: Kernel IP routing table Destination Gateway 192.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.NET 1 224.251 1 ALL-SYSTEMS.0.0 Memberships RefCnt Group -----.NET 1 224. 0 packet receive errors 279 packets sent Para mostrar la tabla de encaminamientos.0 * 192.168.--------------------1 ALL-SYSTEMS.251 1 ALL-SYSTEMS.254.255.MCAST.0 255.0.0.255.0 0.122.0.0. se utiliza: netstat -i Lo anterior puede devolver una salida similar a la siguiente: 302 .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.0 * 169.0.254 Genmask 255.168.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 eth0 eth0 xenbr0 vif1.0.0.255.0 255.168.0 * default 192.MCAST. 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.255.255.MCAST.0.

0 vif1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Kernel Interface table Iface eth0 lo peth0 vif0.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 303 .

1. Introducción 37. por entidades con fines de lucro). Cómo utilizar ARP.net m011.73) (10.1.168.1. Licencia completa en castellano.redlocal. arp -a Debe devolver algo similar a lo siguiente.net m046.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.2. ejemplo: arp -e 304 . o genera una obra derivada. 37.1. c) Si altera o transforma esta obra. Procedimientos. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.1.net m073.redlocal.36) (10. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.1.70) (10.1.1 © 1999-2011 Joel Barrios Dueñas.51) (10.1. a través de cualquier medio. 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. tiene que dejar bien claro los términos de la licencia de esta obra. Visualizar el cache ARP actual.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 37. ARP significa Address Resolution Protocol.redlocal.alcancelibre. ARP se utiliza para supervisar y modificar la tabla de asignaciones de direcciones IP y direcciones MAC (Media Access Control).46) (10.1.1.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 (192.1.1.alcancelibre.1.redlocal.net m070.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Acerca de ARP.40) (10. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.net m036. se utiliza el parámetro -e.redlocal. o protocolo de resolución de direcciones. en el caso de tratarse de un solo sistema: m254. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. Para reducir el número de peticiones ARP.net m040. Al reutilizar o distribuir la obra. Si se desea visualizar la información en estilo Linux.1.1. Usted es libre de copiar. cada sistema operativo que implementa el protocolo ARP mantiene una cache en la memoria RAM de todas las recientes asignaciones. El nivel de enlace de datos se encarga de gestionar las direcciones MAC y el nivel de red de las direcciones IP. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. 37.net (10.1.redlocal.redlocal. ARP asocia direcciones IP a las direcciones MAC. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.1. la tabla puede verse de este modo: m051. justo a la inversa del protocolo RARP que asigna direcciones MAC a las direcciones IP.254) at 00:14:95:97:27:E9 [ether] on eth0 Cuando se trata de un servidor intermediario (proxy).

net m046.net m070.1. Ejemplo: arp -d m200.net Para limpiar todo el cache.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 305 .1. en el caso de tratarse de un solo sistema: Address m254.org HWtype ether HWaddress 00:14:95:97:27:E9 Flags Mask C Iface eth0 Si se desea añadir un registro manualmente.1.redlocal.1.alcancelibre. se utiliza el parámetro -i seguido del nombre de la interfaz.net m036.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.1.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.40 10.1. ejemplo: arp -n Lo anterior debe devolver algo similar a lo siguiente: Address 10. solo se utiliza el parámetro -d seguido del nombre del anfitrión a eliminar.net m040. se utiliza el parámetro -n.redlocal. Ejemplo: arp -s m200.net 00:08:A1:84:18:AD Si se quiere eliminar un registro de la tabla.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Lo anterior debe devolver una salida similar a la siguiente: Address m051.net m073.1.redlocal.redlocal.70 10.1. se puede hacer utilizando el parámetro -s seguido del nombre de un anfitrión y la dirección MAC correspondiente. Ejemplo: arp -i eth0 Lo anterior debe regresar algo similar a lo siguiente.73 10.46 10.1.redlocal.1.redlocal.redlocal.

donde se elimina cada una de estas direcciones IP utilizando arp -d. Esto genera una lista de direcciones IP que se asignan como valores de la variable i en el bucle.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. un servidor o estación de trabajo fue encendido con una dirección IP que ya está uso. por ejemplo. El objeto de limpiar el cache de ARP es permitir corregir los registros de la tabla en ciertos escenarios donde. 306 . mostrando a través de awk solo la primera columna de la tabla generada. y eliminando la cadena de caracteres Address.

netfilter. Si utiliza CentOS 5 y 6. a través de cualquier medio. solo se necesita realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario: yum -y install iptables 38.alcancelibre.org/ 38. 38.3. Al reutilizar o distribuir la obra. es decir. Introducción.1. por entidades con fines de lucro).2. el cual realiza procesos de filtración de paquetes. Instalación a través de yum. 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. Acerca de Iptables y Netfilter.3. Usted es libre de copiar. 307 . sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.1. Equipamiento lógico necesario. 38. Licencia completa en castellano. tráfico saliente (OUTPUT) o tráfico reenviado (FORWARD).1 © 1999-2011 Joel Barrios Dueñas. en modo de usuario. 38. Iptables es el nombre de la herramienta de espacio de usuario (User Space. tiene que dejar bien claro los términos de la licencia de esta obra. URL: http://www. es decir. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Iptables es la herramienta estándar de todas las distribuciones modernas de GNU/Linux.1.2. c) Si altera o transforma esta obra.1. Red Hat Enterprise Linux 5 o 6. área de memoria donde todas las aplicaciones. 38. 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. Introducción a IPTABLES Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.1. Cadenas. Estos componentes son cargados como módulos del núcleo. El componente mejor conocido es el cortafuegos. 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).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 38. Las cadenas pueden ser para tráfico entrante (INPUT). Procedimientos. 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. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. o genera una obra derivada. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Netfilter es un conjunto de ganchos (Hooks.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.

iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT 38. se descarta todo el tráfico que entre desde una red pública y el que trate de salir desde la red local. 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.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 38. que puede ser ACCEPT. tráfico reenviado y tráfico saliente así como el NAT. entre otras. RELATED). Las reglas de destino pueden ser aceptar conexiones (ACCEPT). ESTABLISHED. DROP o REJECT. En el siguiente ejemplo se descartan (DROP) todas las conexiones que ingresen (INPUT). A fin de poder crear nuevas reglas.2. SNAT.3. descartar conexiones (DROP). NAT. Reglas de destino. La opción -P cambia una política para una cadena. Establecen cual es la acción a tomar por defecto ante cualquier tipo de conexión. --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 308 • • • • • .3. NEW. Reglas específicas. es decir. 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. encaminamiento previo (PREROUTING).3. encaminamiento posterior (POSTROUTING). Políticas por defecto. Las opciones más comunes son: • • • • • -A añade una cadena. se deben borrar las existentes. iptables iptables iptables iptables -F -F -F -F INPUT FORWARD OUTPUT -t nat 38.3. para el tráfico entrante. rechazar conexiones (REJECT). 38.4. todas las conexiones que se reenvíen (FORWARD) y todas las conexiones que salgan (OUTPUT).5.3. Limpieza de reglas específicas.

desde (-s) cualquier lugar (0/0) hacia (-d) cualquier lugar (0/0). iptables -A POSTROUTING -t nat -s 192. filter.0/24 -o eth0 -j SNAT --to-source x.x.z/32 --destination-port 25 --syn -j ACCEPT 309 .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).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.x.0.z.y.x.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.y.y.z.x.x/32 -j DROP iptables -A INPUT -i eth0 -s 192.x.0. 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.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).01) iptables -A INPUT -i eth0 -s w. iptables -A INPUT -p tcp -s 0/0 -d w.y.168. HTTP(80).y.0/24) o la dirección IP del retorno del sistema (127.168.0.0.0. pueden ser nat.0/24 -j DROP iptables -A INPUT -i eth0 -s 127. Ejemplos de reglas.168.168.0. 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.z/32).y.0/24) utilizando (--to-source) la dirección IP w. alguna dirección IP de la red local (192.0. mangle o raw.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux • -t tabla a utilizar.

y -L.d desde la red local: iptables -A OUTPUT -d a. se utiliza -D (delete).1. 310 .d -j DROP 38. 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.c.d -j DROP Rechazar (REJECT) conexiones hacia (OUTPUT) la dirección IP a.b.d: iptables -A INPUT -s a.146. Eliminar reglas. 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.3. POP3S (995).33.b.b. En general se utiliza la misma regla.217/32 --source-port 53 -d 0/0 -j ACCEPT 38.b.c. Cerrar accesos.b.5.0/24 -j REJECT 38. para ver las listas en formato numérico.c.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).d: iptables -D INPUT -s a.168.d -s 192.c.33.6.0. pero en lugar de utilizar -A (append).b.c. 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. 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.c. Mostrar la lista de cadenas y reglas.3.7.145. para solicitar la lista de éstas cadenas. Eliminar la regla que descarta (DROP) todo tipo de conexiones de tráfico entrante (INPUT) desde (s) la dirección IP a.3.

0.0.0.0/0 0.0.0.0.0.0.0/0 0.0.0.0.0/0 state RELATED.0.0.217 Chain FORWARD (policy DROP) target prot opt source ACCEPT all -.0.0.0/0 0.0.146. la salida.0.0.0.0/0 0.0.168.0.217 destination 0.0/0 DROP all -.0/0 0.0.0.0/0 ACCEPT tcp -.0/0 0.0.0.0.168.127.0/0 0.0.0.0.0/0 ACCEPT all -.0.0/0 0.0.0.33.0.0.0.0.0.0/0 ACCEPT tcp -.192.0.0/0 0.0/0 ACCEPT udp -.0.0.0/0 0.0.0.0.0/8 0.168.0.0/0 state RELATED.0/0 0.0.0.0/0 0.0.0/0 192.0/0 ACCEPT tcp -.0.0.0.0/0 ACCEPT all -. 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/0 0.0.0.0/0 192.0/0 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 0.0.0.0/0 0.0/0 0.0.0.0/0 ACCEPT tcp -.0/0 0.0.0.0.0/0 ACCEPT tcp -.0.0.0/0 0.0.0.0/0 state RELATED.0.0.0.0/0 0.0.0/0 ACCEPT tcp -.0.0/24 127.0.0.0.168.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. 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.1.0.0.0.0.0.0.0/0 ACCEPT tcp -.0.0.0.0/0 0.0.0.0/0 0.0/0 0.0.0/0 0.0.0.1.0.0.0.0/0 0.ESTABLISHED destination destination 0.0.0.0/0 ACCEPT tcp -.0.0.0.0.0.0.0/0 0.0.0/0 0.0/0 0.0.0/0 192.0.0/0 0.0.0.0/0 0.0.0.0.0/0 state RELATED.0/0 ACCEPT udp -.0/0 0.16.0.0.0.0.200.0.64 0.0.0.64 172.0/24 DROP all -.0.0.0.ESTABLISHED 311 .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. suponiendo que se utilizarón los ejemplos de este documento.0/0 200.0/0 0.0/0 0.0/0 0.0.0.0.0.0.64 DROP all -.146.0.0.0.0.0.1.0/0 0.0.0.1.0.64 0.0/0 0.0.0/0 0.0.0.0.0/0 ACCEPT all -.0.0/0 ACCEPT tcp -.0/0 0.0.0.0.0/0 0.0.33.0.0.0.0/0 0.0/0 destination 0.0.0.0.0.0/8 ACCEPT tcp -.0.0/0 0.0.0.172.0.0/0 0.16.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 ACCEPT all -.0.

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

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

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

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

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

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

0.168.168.168.:25 Selección de todo el tráfico desde el puerto 25 (SMTP) en la red 192.0.:25 RULE=. Selección de todo el tráfico desde la red 192.168.0/24 Selección de todo el tráfico desde cualquier puerto en la red 192.0/24.0.168.168.168.0/24 hacia el puerto 25 (SMTP) en cualquier red: RULE=192. controla ancho de banda de correo entrante): RULE=:25.:25 Selección de todo el tráfico desde el puerto 25 (SMTP) en cualquier red hacia cualquier puerto en la red 192.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.0.168.0/24:25.0.0.:587 Selección de todo el tráfico desde los puertos 25 (SMTP).0/24.168.168. Selección de todo el tráfico desde el puerto 25 (SMTP) en la red 192.0/24 hacia el puerto 25 (SMTP) en cualquier red: RULE=192.192.0.192.168.0/24:25.0.0/24: RULE=:25. Selección de todo el tráfico desde cualquier puerto en cualquier red hacia cualquier puerto en la red 192.0/24 hacia cualquier puerto en cualquier red: RULE=192.0/24 hacia cualquier puerto en cualquier red: RULE=192.0.0.0/24: RULE=.0.:465 RULE=.0.192. RULE=:587. RULE=:465.0/24: RULE=:25.0/24:25 Selección de todo el tráfico desde el puerto 80 en cualquier red hacia cualquier puerto de cualquier red: 318 .168.0.168.168. 465 (SMTPS) y 587 (SMTP Submission) en cualquier red hacia cualquier puerto en cualquier red (es decir.0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux RULE=.

168.168.0.161.1.1.192.226 hacia cualquier puerto en cualquier red: RULE=201.168.226:20.0. 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.226:80.0.168.0.1.161.0.161.161.168.161.0/24: RULE=201.192.1.168.192.0/24 39.192.226:80.226:21.0. 319 .161.1.5.161.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux RULE=:80.0/24: RULE=:20.161.0/24 RULE=:21.168.168.192.1.0/24 RULE=201.192. Enlace ADSL de 2048 kbps de tráfico entrante y 256 kbps de tráfico saliente.168.226 hacia la red 192.0/24 Selección de todo el tráfico desde de los puertos 20 (FTP-DATA).0.0.192. Selección de todo el tráfico desde el puerto 80 (HTTP) en cualquier red hacia la red 192.0/24 RULE=:80.0. Selección de todo el tráfico desde cualquier puerto en el anfitrión 201.0.226 hacia cualquier puerto en cualquier red: RULE=201.168. 21 (FTP) y 80 (HTTP) en cualquier red hacia la red 192.226.1.1. Selección de todo el tráfico desde puerto 80 en el anfitrión 201. a través de la interfaz eth0.0/24: RULE=:80.0/24 Selección de todo el tráfico desde los puerto 20 (FTP-DATA). Procedimientos.0/24 RULE=201. 21 (FTP) y 80 (HTTP) en el anfitrión 201.

web-in: Contenido de archivo /etc/sysconfig/cbq/cbq-0005.0.0.0/24 Contenido de archivo /etc/sysconfig/cbq/cbq-0004.0/24 accede desde la interfaz eth1.0/24 DEVICE=eth0. 22 Tráfico entrante 512Kbit 1024Kbit 256Kbit Tráfico saliente 128Kbit 64Kbit 64Kbit 39.168.0/24 RULE=:995.web-out: Contenido de archivo /etc/sysconfig/cbq/cbq-0006.:143 DEVICE=eth0. 110.168.:587 RULE=192.192.0.0. 143.0. FTP y SSH/SFTP.0/24. Con la finalidad de facilitar la organización.192.192.192. 993.0/24.2048Kbit RATE=512Kbit WEIGHT=204Kbit PRIO=5 RULE=:25.:22 320 .192. HTTP.:25 RULE=192.168.0/24. Servicios Correo electrónico: SMTP.168. Al repartir el ancho de banda. y se dará el 50% del ancho de banda de subida a los servicios relacionados con el correo electrónico.0/24 RULE=:587. 21.0.192.168.2048Kbit RATE=265Kbit WEIGHT=204Kbit PRIO=5 RULE=:20.168.0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux • • Red local 192.0. HTTPS.0/24 RULE=:21. Se quiere gestionar el uso de ancho de banda para SMTP.0.0/24.0/24.2048Kbit RATE=64Kbit WEIGHT=204Kbit PRIO=5 RULE=192.0. 465.0.0/24.192.ftp-out: DEVICE=eth0.168.168.192.0.192.168. sin prestar ancho de banda de una clase a otra.0.168.168. destinar un archivo para todo lo relacionado con correo.168. • Como ejemplo.:443 DEVICE=eth0.192.0.:80 RULE=192.168. Contenido de archivo /etc/sysconfig/cbq/cbq-0002.0.0/24.0/24 RULE=:465.0/24 RULE=:22. 443 20.168. se recomienda crear archivos independientes para cada política.smtp-out: Contenido de archivo /etc/sysconfig/cbq/cbq-0003. se asignarán los siguientes anchos de banda para cada servicio específicado.168.smtp-in: DEVICE=eth0.0/24. IMAP.192.192. es decir.0/24.ftp-in: DEVICE=eth0.:110 RULE=192. Es decir.168.:21 RULE=192. otro para lo relacionado con HTTP/HTTPS y otro relacionado con FTP.5.0/24 Contenido de archivo /etc/sysconfig/cbq/cbq-0002.0.1.0.2048Kbit RATE=64Kbit WEIGHT=204Kbit PRIO=5 RULE=192.168. 995 80.0.168.168. 587.2048Kbit RATE=128Kbit WEIGHT=204Kbit PRIO=5 RULE=192.2048Kbit RATE=1024Kbit WEIGHT=204Kbit PRIO=5 RULE=:80.168.0/24 RULE=:110.168.168.0/24.0. POP3. 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. CBQ sin compartir ancho de banda entre clases.:465 RULE=192. se el 50% del ancho de banda de entrada a HTTP y HTTPS.0. POP3 e IMAP HTTP y HTTPS FTP y SSH/SFTP Puertos 25.0/24 RULE=:143.0.0.:20 RULE=192.0/24 RULE=:443.0/24 RULE=:993.168.0.

192. 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.192.0/24 DEVICE=eth0.0. Es decir.0.0/24.smtp-out: Contenido de archivo /etc/sysconfig/cbq/cbq-0003.0.192.0/24. Iniciar.3.0.:21 RULE=192. Contenido de archivo /etc/sysconfig/cbq/cbq-0002.168.168.0.:587 RULE=192.0.192.:143 RULE=192.168.0. Se utilizará a las clases con mayor ancho de banda disponible como las clases padre.:995 Contenido de archivo /etc/sysconfig/cbq/cbq-0004.0/24 RULE=:143.168.0/24 RULE=:22.2048Kbit RATE=64Kbit WEIGHT=204Kbit PRIO=5 PARENT=200 LEAF=sfq RULE=192.:993 RULE=192.168.0.d 321 .0/24.192.2048Kbit RATE=1024Kbit WEIGHT=204Kbit PRIO=5 PARENT=100 LEAF=no BOUNDED=no ISOLATED=no RULE=:80.168.0.:443 DEVICE=eth0.168. Con la finalidad de facilitar la organización.:20 RULE=192.168.192.0.0/24 RULE=:443.168.168.:465 RULE=192.0/24.d/ y tratarlo igual que cualquier otro servicio del sistema.168.0/24.0.0/24.168.0.web-in: Contenido de archivo /etc/sysconfig/cbq/cbq-0005.0.168.0/24 RULE=:587. destinar un archivo para todo lo relacionado con correo.168.0.:995 39.168.0/24.192.192.0/24 RULE=:21.192.:22 39.0.192.168. El guión de inicio de cbq está instalado como /sbin/cbq.2048Kbit RATE=265Kbit WEIGHT=204Kbit PRIO=5 PARENT=100 LEAF=sfq RULE=:20.0/24.168.0.0.0/24 RULE=:993.0/24.2048Kbit RATE=512Kbit WEIGHT=204Kbit PRIO=5 PARENT=100 LEAF=sfq RULE=:25.ftp-in: DEVICE=eth0.0.168.0/24.168.0.192.0.168.168. se recomienda crear archivos independientes para cada política.0/24 RULE=:465.5.0/24.smtp-in: DEVICE=eth0.:80 RULE=192.0.0.:110 RULE=192.0/24.0/24 Contenido de archivo /etc/sysconfig/cbq/cbq-0002.2048Kbit RATE=64Kbit WEIGHT=204Kbit PRIO=5 PARENT=200 LEAF=sfq RULE=192.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux RULE=192.:25 RULE=192. otro para lo relacionado con HTTP/HTTPS y otro relacionado con FTP.0/24.168.:993 RULE=192.168.0/24 RULE=:995. detener y reiniciar el servicio cbq.0/24 RULE=:110.192.5.2048Kbit RATE=128Kbit WEIGHT=204Kbit PRIO=5 PARENT=200 LEAF=no BOUNDED=no ISOLATED=no RULE=192.168. Es necesario copiar este archivo dentro de /etc/init.0.0.0/24.ftp-out: DEVICE=eth0. CBQ compartiendo ancho de banda entre clases.0.web-out: Contenido de archivo /etc/sysconfig/cbq/cbq-0006.168.0.2. cp -a /sbin/cbq /etc/init.0/24 DEVICE=eth0.168.

5. en todos los niveles de ejecución (2. 4.4. y 5).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para probar que las clases están correctas antes de utilizar éstas. Agregar el servicio cbq al arranque del sistema. se utiliza lo siguiente: chkconfig cbq on 322 . utilice: service cbq start Para hacer que los cambios hechos tras modificar la configuración surtan efecto. puede recurrir a: service cbq compile Para ejecutar por primera vez el servicio cbq. 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. 3. Para hacer que el servicio de cbq esté activo con el siguiente inicio del 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. falta de documentación amistosa y que muchos servicios simplemente son imposibles de operar sin una política correspondiente.2. incluyendo el estilo de acceso a los controles del Departamento de Defensa de EE.1 © 1999-2011 Joel Barrios Dueñas.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. muchas personas suelen desactivarlo editando /etc/sysconfig/selinux. de forma breve. 40. o genera una obra derivada. b) No puede utilizar esta obra para fines comerciales. El objetivo de este artículo es servir como una breve introducción a los conceptos básicos de administración de SELinux. pero brinda un nivel de seguridad superior que en un futuro.alcancelibre.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 40. Ciertamente consume bastantes recursos. podría ser de gran utilidad para impedir ataques dirigidos específicamente hacia GNU/Linux. c) Si altera o transforma esta obra. Mandato getsebool Este mandato permite listar políticas en SELinux. Es una implementación compleja y robusta que suele ser muy oscura para la mayoría de los usuarios. Utiliza un modelo de seguridad de control de acceso obligatorio. ejemplificando políticas para algunos servicios. 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. Usted es libre de copiar. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. y determinar si están activos o inactivos. 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. ¿Qué es SELinux? SELinux (del inglés Security-Enhanced Linux. 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. a través del uso de módulos de Seguridad en el núcleo de Linux..1.3. Debido a ésto. Introducción. Introducción a SELinux en CentOS 5 y Fedora. Al reutilizar o distribuir la obra. A continuación explico. 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 se utiliza de la siguiente forma: getsebool -a |grep cadena 323 . 40. En si es una colección de parches que fueron integrados hace algunos años al núcleo de Linux. Suele ocurrir que al intentar mejorar el rendimiento de un sistema se recurra a la práctica de desactivar SELinux. que esperemos sea muy lejano.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. 40. La gran popularidad que están teniendo las computadoras ultra-portátiles está incrementando el número de usuarios de GNU/Linux. lo cual eventualmente también significará que irá surgiendo equipamiento lógico malicioso (malware) específicamente diseñado para GNU/Linux. 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. Autor: Joel Barrios Dueñas Correo electrónico: darkshram@gmail.UU.

se utiliza el mandato setsebool con el nombre de la política y el valor 0 o bien 1 para desactivar o activar. Setsebool permite cambiar los valores para diferentes políticas de SELinux. allow_ftpd_use_cifs: Permite transferencias de datos desde CIFS. mismas que pueden verse a través de el mandato getsebool.4. allow_ftpd_full_access: Permite lectura y escritura sobre todos los archivos disponibles desde el servidor. La sintaxis básica es la siguiente: setsebool nombre_politica valor Cuando se ejecuta de la manera anteriormente descrita. • • • Para activar estas. 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. Por ejemplo. 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. 40. Para el servicio de FTP. Mandato setsebool.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. respectivamente. Servicios de FTP. En el siguiente ejemplo se activa poder acceder a los directorios de inicio de los usuarios: setsebool ftp_home_dir 1 324 . 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. las políticas son aplicadas de inmediato y estarán vigentes hasta el siguiente reinicio del sistema. interesan las siguientes políticas: • • allow_ftpd_anon_write: Permite a los usuarios anónimos poder escribir en el servidor. como sería a través de VSFTPD.4. Para hacer permanentes las políticas. si se desea conocer que políticas que incluyan la cadena ftp están activos.1.

se puede utilizar: setsebool -P httpd_disable_trans 1 40. de ls siguiente manera: setsebool -P ftp_home_dir 1 40.4.4. Samba. SELinux impide utilizar OpenVPN como servidor. y esta es precisamente la política que lo permite. En Samba es común la necesidad de permitir a este servicio operar como controlador de dominio.4. Cuando se trabaja con directorios que serán accedidos desde redes públicas. Para hacer permanente el cambio. hasta que el sistema sea reiniciado.3. Apache.2. añadiendo el tipo httpd_sys_content_t. como un directorio virtual o un directorio para dominio virtual en Apache.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. 40. pero permite a éste funcionar como servidor. setsebool -P httpd_enable_homedirs 1 chcon -R -t httpd_sys_content_t ~user/public_html Para permitir la ejecución de programas CGI. 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.4. Para la política de openvpn_enable_homedirs. Con el nivel de seguridad por omisión. Existen dos políticas: • openvpn_enable_homedirs: Permite utilizar certificados almacenados en los directorios de los usuarios. se utiliza: setsebool -P httpd_can_sendmail 1 Para desactivar que SELinux controle a Apache. se activa la política httpd_enable_homedirs y se utiliza el mandato chcon para permitir el acceso a los directorios ~/public_html. OpenVPN. solo se podrían utilizar certificados definidos por el administrador en algún directorio del sistema. • openvpn_disable_trans: Por omisión. Otro típico ejemplo es del OpenVPN. en su totalidad. 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. se utiliza setsebool con la opción -P. como cliente y servidor. La política que lo habilita es samba_domain_controller: setsebool -P samba_domain_controller 325 .

4. todos las políticas de todos los servicios pueden ser gestionadas buscando cuales están relacionadas a través del mandato getsebool. 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. Ejemplo: setsebool -P samba_export_all_rw 1 40. 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 creará un directorio como /var/samba/publico: mkdir -p /var/samba/publico Para visualizar sus contextos en SELinux. man httpd_selinux 326 . para consultar que políticas hay para el servicio NFS. En el siguiente ejemplo. Otros servicios. 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. 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. Por ejemplo. 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.5.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. 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. se utiliza chcon definiendo el tipo samba_share_t al contexto del directorio. el manual que contiene las descripciones correspondientes es nfs_selinux.

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 327 .

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.ietf. Ésto se hace a través del parámetro hardware ethernet combinado con deny unknown-clients. a ésta le será asignada una dirección IP. Su propósito principal es hacer más fáciles de administrar las redes grandes. por mencionar un ejemplo. que se traduce como dirección de Control de Acceso al Medio). 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. Cuando.1. y éstas se reutilizan de forma dinámica.ietf. puerta de enlace.1.alcancelibre. utilizando un intervalo de tiempo controlable (parámetros default-lease-time. y se describe a detalle en el RFC 2131. Asignación dinámica: Se determina arbitrariamente un rango de direcciones IP. necesarios para unirse a cada Red de Área Local donde se localice. Asignación automática: Una dirección de IP disponible dentro de un rango determinado se asigna permanentemente al anfitrión que la requiera. una computadora portátil se configura para utilizar DHCP. 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. tendrían que configurarse de forma manual cada dirección IP de cada anfitrión que pertenezca a una Red de Área Local. o genera una obra derivada. Usted es libre de copiar. etc. 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. Si un anfitrión se traslada hacia otra ubicación donde existe otra Red de Área Local. 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. Al reutilizar o distribuir la obra. c) Si altera o transforma esta obra.org/rfc/rfc2132.txt 328 . 41. DHCP (acrónimo de Dynamic Host Configuration Protocol. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.) a partir de un servidor DHCP.1. Sólo los anfitriones con una dirección MAC definida en dicha tabla recibirá el IP asignada en la misma tabla. y max-lease-time). • • URL: http://www. Acerca del protocolo DHCP.org/rfc/rfc2131.1 © 1999-2011 Joel Barrios Dueñas. tiene que dejar bien claro los términos de la licencia de esta obra. b) No puede utilizar esta obra para fines comerciales. de modo que la asignación de direcciones IP es de manera temporal. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. 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. y http://www.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 41. 41. DHCP existe desde 1993 como protocolo estándar.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. máscara de sub-red. y otros parámetros de red. Introducción. se tendrá que configurar otra dirección IP diferente para poder unirse a esta nueva Red de Área Local.txt. Sin la ayuda de un servidor DHCP. Un servidor DHCP entonces supervisa. y distribuye. 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.

Agente de retransmisión. Internet Software Consortium. Acerca de dhcp por Internet Software Consortium.2. Cliente DHCP. solamente necesita realizar lo siguiente para instalar o actualizar lo necesario: yum -y install dhcp 41.org/products/DHCP/ 41. Esta opción.1. como Windows. las cuales consisten en: • • • Servidor DHCP. URL: http://isc.1. Inc. Modificaciones necesarias en el muro cortafuegos. distribuye un conjunto de herramientas para el protocolo DHCP.ADD YOUR ENTRIES BEFORE THIS ONE -. y 68. Inc. Si utiliza CentOS 5. habilita las comunicaciones de entrada. ########################################################################## #ZONE INTERFACE BROADCAST OPTIONS net eth0 detect blacklist loc eth1 detect dhcp. 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). 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. 41. Equipamiento lógico necesario.DO NOT REMOVE Reinicie el servicio shorewall a fin de que surtan efecto los cambios. respectivamente) de modo bidireccional.3.2. Fundado en 1994.2. y noPOSIX. y BOOTPC. Si se utiliza un cortafuegos con políticas estrictas.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 41. como por ejemplo Shorewall. Si se utiliza Shorewall. para DHCP. Instalación a través de yum. por UDP (BOOTPS.. tras reiniciar el servicio shorewall. jamás se abren puertos de DHCP a las redes públicas. y salida.blacklist #LAST LINE -. es necesario abrir los puerto 67. 329 . Por lo general. Red Hat™ Enterprise Linux 5 o versiones posteriores de éstos.

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

29. ajustando los datos a una red.» Puede utilizar el contenido de ejemplo. default-lease-time 900. range 172. o bien crear desde cero. Si se utiliza CentOS 6.205.16.81.16.16. ignore client-updates.net".1.3.16.16. hasta 172. ddns-update-style interim. 132.1.1.234. y de acceso gratuito.1. option broadcast-address 172. 132.1. option subnet-mask 255.30.1. edite el archivo /etc/dhcpd.192 { option routers 172. authoritative. server-identifier servidor.58.16.23. definiendo el nombre de anfitrión. option domain-name-servers 172.1< Servidor Wins: 172.30.1. y dirección IP: 331 . option ip-forwarding off.1. Si se tienen equipos con direcciones IP estáticas.255. 148.16.net.7. dirección MAC. 200. Si se tienen dudas. y estudiar. para adaptar. y 148.0 netmask 255.1.51.conf. todo lo anterior para poder continuar con este documento.255.29.51.205.1. el documento titulado «Introducción a IP versión 4. vim /etc/dhcp/dhcpd. } } Lo anterior corresponde a la configuración básica recomendada para un servidor DHCP básico.63. y entender perfectamente. los cuales son confiables. un nuevo archivo de configuración.16. shared-network redlocal { subnet 172.192.255. Rango de direcciones IP a asignar de modo dinámico: 172.conf Si se utiliza CentOS 5.1 Servidores de tiempo (NTP): recomendamos utilizar los de NTP. por favor.1.58. Asignación de direcciones IP estáticas.org. • Es indispensable conocer.conf Para efectos prácticos.7.16.248.2 172.1.4. o Red Hat Enterprise Linux 6.red-local. max-lease-time 7200.conf. 41.16.255. option domain-name "red-local.2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux • • • Servidor de nombres: 172. pueden añadirse también en la configuración de la siguiente forma. option netbios-name-servers 172. option ntp-servers 200.23.16. que se encuentra más adelante. Nota.1. edite el archivo /etc/dhcp/dhcpd. vim /etc/dhcpd. primero consultar. modifique todo lo que esté resaltado.248.81. y un conjunto de sistemas en particular.234. o Red Hat Enterprise Linux 5.1.1.

ddns-update-style interim.16.192 { option routers 172. hardware ethernet 00:24:2B:65:54:84.16.30.1.248.1.red-local.1.63.1. fixed-address 172.29. el servicio dhcpd.0 netmask 255. hardware ethernet 00:50:BF:27:1C:1C.16.23. utilice: service dhcpd start Para hacer que los cambios hechos a la configuración del servicio dhcpd surtan efecto. option domain-name-servers 172.4. ignore client-updates.1.16.234.60.red-local. detener. Iniciar.255.net". option domain-name "red-local.192. shared-network redlocal { subnet 172. option ip-forwarding off. max-lease-time 7200.255. option netbios-name-servers 172.1. option subnet-mask 255. 148.16.59.7. y reiniciar.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux host impresora { option host-name "epl5900. utilice: service dhcpd stop 332 .1. authoritative.1.net".net". fixed-address 172.255.58.red-local.16.51.2 172.205.net". utilice: service dhcpd restart Para detener el servicio dhcpd. hardware ethernet 00:24:2B:65:54:84.1. } # Equipos con IP fija. host impresora { option host-name "epl5900.16. Para iniciar por primera vez el servicio dhcpd.81. range 172. } De modo tal que la configuración queda del siguiente modo: server-identifier servidor. } host pc14 { option host-name "pc14. option ntp-servers 200. option broadcast-address 172.16. fixed-address 172.1.1.255.4. } } 41.1.59.16.red-local.16. 132.net. default-lease-time 900.

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

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

zone localdomain. fixed-address 172. } } 335 . ddns-update-style interim. }. fixed-address 172. } # Equipos con IP fija.key # Ésto se utilizará para poder comunicar el servidor DHCP con el servidor DNS. range 172.red-local.16.172.255.1.2 172. hardware ethernet 00:24:2B:65:54:84.net". # Jamás utilizar la clave ejemplificada a continuación para producción. option netbios-name-servers 172. } host pc14 { option host-name "pc14. option domain-name-servers 172.205.23. ignore client-updates. # y poder gestionar zonas dinámicas desde el servidor DHCP con la misma firma # digital.1.net". ddns-updates on.1.1. } zone red-local. option ip-forwarding off.1. option ntp-servers 200.".7. option subnet-mask 255. option broadcast-address 172. 132.16.1.16.58.16.0. secret "undGpjMq3iWmUh2yvWOnUQ==".Joel Barrios Dueñas Configuración de Servidores con GNU/Linux server-identifier servidor. { primary 127.net.234.30.1. default-lease-time 900. hardware ethernet 00:50:BF:27:1C:1C. { primary 172. } shared-network redlocal { subnet 172. key rndc-key.arpa. max-lease-time 7200. { primary 172.".16.arpa.16.1.net. # Copiar tal cual contenido del archivo # /etc/rndc. authoritative.1.16.63.1.192.1.81.59. ddns-domainname "red-local.in-addr.1. } zone 1. key "rndc-key" { algorithm hmac-md5. key rndc-key.51.net".16.255. host impresora { option host-name "epl5900.1.16. option domain-name "red-local.1. ddns-rev-domainname "in-addr. # Es la única configuración cuya llave de cierre pueden llevar punto y coma.16.248.1.1.net.0 netmask 255.16. key rndc-key.16.255. 148.0.red-local.1.red-local.60.192 { option routers 172.255.29.

172. 604800.red-local.localhost. 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.59 A 172. 86400.in-addr.red-local.60 El archivo /var/named/chroot/var/named/dynamic/1. ( 2011101901. ( 2011101901. 604800.net. root. se requiere generar los archivos red-local.zone deberá tener el siguiente contenido.16. A 172.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para que lo anterior funcione con el servidor DNS.1. chown named:named /var/named/chroot/var/named/dynamic/red-local.red-local. ) NS servidor.172.16.zone touch /var/named/chroot/var/named/dynamic/1.net. root. 28800. 86400. y 1.arpa. 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.net.172.net.16. 7200. y grupo named.zone chown named:named /var/named/chroot/var/named/dynamic/1.net.arpa.172.in-addr.red-local.net. PTR impresora.red-local.net.net.1. dentro del directorio /var/named/chroot/dynamic/ del siguiente modo:: touch /var/named/chroot/var/named/dynamic/red-local.16. 7200.16.in-addr. 28800.1.net. y bind-chroot.zone El archivo /var/named/chroot/var/named/dynamic/red-local.1 A 172. ) NS servidor.localhost.zone deberá tener el siguiente contenido.net.16.red-local.net. En el archivo /var/named/chroot/etc/named.conf deberá estar presente lo siguiente: 336 .in-addr. considerando que ya están instalados los paquetes bind. PTR pc14.zone Ambos archivos deben pertenecer al usuario named.zone.zone. PTR servidor.arpa.red-local.arpa.16.

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

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

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.net DHCP_CLIENT_ID=nombre-equipo DHCP_HOSTNAME=nombre-equipo 339 .

Adi Shamir. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.. que es el recomendado por el RFC 4217. El servicio utiliza los puertos 20. Existen dos diferentes métodos para realizar una conexión SSL/TLS a través de FTP. Prácticamente todos los sistemas operativos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 42.1. y servidor. y plataformas incluyen soporte para FTP. 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. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.1. La primera y más antigua es a través del FTPS Implícito (Implicit FTPS). el cual fue publicado en 1977. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. y 998 (FTPS Data). b) No puede utilizar esta obra para fines comerciales. 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. 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. y patentado 1983. que consiste en cifrar la sesión completa a través de los puertos 990 (FTPS).1. El segundo método. o genera una obra derivada. 42. y Len Adleman.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. donde el cliente realiza la conexión normal a través del puerto 21. tiene que dejar bien claro los términos de la licencia de esta obra. es FTPS Explícito (Explicit FTPS o FTPES).wikipedia. sin permitir negociación con el cliente. en EE. Al reutilizar o distribuir la obra. URL: http://tools. es un algoritmo para la encriptación de claves públicas. una conexión TLS. Introducción. de manera opcional.org/html/rfc959 42.2. Acerca del protocolo FTPS. URL: http://es. 42. Son mecanismos muy diferentes a los del protocolo SFTP (SSH File Transfer Protocol). exclusivamente sobre TCP. por el Instituto Tecnológico de Michigan (MIT).3. Usted es libre de copiar. Cómo configurar vsftpd (Very Secure FTP Daemon) Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. y 21. Acerca del protocolo FTP. El puerto 20 es utilizado para el flujo de datos entre cliente.1. acrónimo de los apellidos de sus autores.ietf. RSA es utilizado en todo el mundo para los protocolos destinados para el comercio electrónico. c) Si altera o transforma esta obra.UU. 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. RSA.org/wiki/RSA 340 . el cual deberá conectarse directamente al servidor FTPS con el inicio de sesión SSL/TLS. Acerca de RSA. El puerto 21 es utilizando para el envío de órdenes del cliente hacia el servidor. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. y permitiendo negociar. Ron Rivest.alcancelibre.1 © 1999-2011 Joel Barrios Dueñas. 42.1. y el utilizado por Vsftpd.

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

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. SELinux controla varias funciones de el servicio vsftpd incrementando el nivel de seguridad de éste. 42. según se requiera para necesidades particulares. ejecute el siguiente mandato: setsebool -P ftpd_disable_trans 1 Esta política es inexistente en CentOS 6 y Red Hat™ Enterprise Linux 6.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 42. SELinux. ejecute cualquiera de los siguientes mandatos: setsebool -P allow_ftpd_use_cifs 1 setsebool -P allow_ftpd_use_nfs 1 Nota. Para permitir que los usuarios anónimos puedan realizar procesos de escritura sobre el sistema de archivos. 42. 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. 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.conf. y el servicio vsftpd. Procedimientos. Utilice un editor de texto.2.1.4. Para eliminar por completo la protección que brinda SELinux al servicio vsftpd. y modifique el archivo /etc/vsftpd/vsftpd. 342 . y que éste funcione normalmente sin esta valiosa protección. vim /etc/vsftpd/vsftpd. haciendo que todo lo anteriormente descrito en esta sección pierda sentido.conf.conf A continuación analizaremos los parámetros a modificar o añadir. Lo siguiente sólo aplica para CentOS 5 y Red Hat™ Enterprise Linux 5. y que serán utilizados para compartir a través del servicio.4. Archivo /etc/vsftpd/vsftpd.4.

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

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

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

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

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

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

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

1.4. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. 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.1.1. o Copia Segura) es una protcolo seguro para transferir archivos entre un anfitrión local y otro remoto. SCP (Secure Copy. c) Si altera o transforma esta obra. 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. es idéntico a RCP (Remote Copy. 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. Acerca de OpenSSH. con licencia BSD. Acerca de SSH. Configuración de OpenSSH. hacia la implementación propietaria y de código cerrado SSH creada por Tatu Ylönen.openssh. Básicamente. Acerca de SCP. Introducción. 43. Acerca de SFTP. SFTP y SCP. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. OpenSSH es un proyecto creado por el equipo de desarrollo de OpenBSD y actualmente dirigido por Theo de Raadt. OpenSSH incluye servicio y clientes para los protocolos SSH. 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. 350 . 43. una ventaja que brinda al tratarse de un proyecto de fuente abierta. SSH provee confidencialidad e integridad en la transferencia de los datos utilizando criptografía y MAC (Message Authentication Codes.1. 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).2. o Códigos de Autenticación de Mensaje).1 © 1999-2011 Joel Barrios Dueñas. SCP sólo implementa la transferencia de archivos. tiene que dejar bien claro los términos de la licencia de esta obra. a través de SSH.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. Usted es libre de copiar.org/. 43. opcionalmente. b) No puede utilizar esta obra para fines comerciales. URL: http://www. Comúnmente se utiliza con SSH para proveer a éste de transferencia segura de archivos. permitir al servidor remoto autenticar al usuario.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 43.1. escucha peticiones a través del puerto 22 por TCP. OpenSSH (Open Secure Shell) es una alternativa de código abierto. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Al reutilizar o distribuir la obra. 43.alcancelibre. 43. Utiliza una clave pública cifrada para autenticar el servidor remoto y. pues la autenticación requerida es realizada a través de SSH. o genera una obra derivada. o Copia Remota). De modo predeterminado.3.1.

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

La mayoría de los delincuentes informáticos utiliza guiones que buscan servidores que respondan a peticiones a través del puerto 22. 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.5.1. resultará prudente utilizar este parámetro con el valor no.254: ListenAddress 192.5. por otro que sólo conozca el administrador del sistema.2. considerando que el servidor a configurar posee la IP 192. Permite restringir el acceso por usuario y.1. de manera opcional. Si se va a permitir el acceso hacia el servidor desde redes públicas. PermitRootLogin no 43.5. Para tal fin puede establecerse lo siguiente. es cambiar el número de puerto utilizado por el servicio. Parámetro PermitRootLogin.254 43. Parámetro Port.168. Si se va a permitir el acceso hacia el servidor desde redes públicas. Puede elegirse cualquier otro puerto entre el 1025 y 65535.1. X11Forwarding yes 43. A este tipo de técnicas se les conoce como Seguridad por Oscuridad. Una forma de elevar considerablemente la seguridad al servicio de SSH. 352 . Parámetro ListenAddress. De modo predeterminado. Cambiar de puerto el servicio de SSH disminuye considerablemente la posibilidad de una intrusión a través de este servicio.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux vim /etc/ssh/sshd_config 43. Parámetro X11Forwarding. 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.5.5.168. resultará prudente utilizar este parámetro con el valor no. Port 22 SSH trabaja a través del puerto 22 por TCP. anfitrión desde el cual pueden hacerlo.5. este parámetro puede quedarse con el valor yes. ejemplo: Port 52341 43.3. Parámetro AllowUsers.4. Establece si se permite o no la ejecución remota de aplicaciones gráficas. el servicio de SSH responderá peticiones a través de todas las interfaces del sistema. El siguiente ejemplo restringe el acceso hacia el servidor SSH para que sólo puedan hacerlo los usuarios fulano y mengano. desde cualquier anfitrión.

70.1 y 10. 43.1.168.2.1 mengano@10.2. el servicio SSH está incluido en todos los niveles de ejecución con servicio de red.99. En el siguiente ejemplo. Para acceder a través de intérprete de mandatos hacia el servidor.1. 353 . se intentará acceder hacia el servidor con dirección IP 192. El siguiente ejemplo restringe el acceso hacia el servidor SSH para que sólo puedan hacerlo los usuarios fulano y mengano. Para ejecutar por primera vez el servicio sshd. ejecute: chkconfig sshd off 43. El servicio de SSH puede iniciar. AllowUsers fulano@10. 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.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux AllowUsers fulano mengano También se puede restringir el acceso por usuario y anfitrión. Aplicando los cambios.1 fulano@10.1.7.2.1. Acceso a través de intérprete de mandatos. solamente desde los anfitriones 10. ejecute lo siguiente: service sshd stop De forma predeterminada. detenerse o reiniciar a través de un guión similar a los del resto del sistema.6. se utiliza el parámetro -p.7.1. Para desactivar el servicio sshd de todos los niveles de ejecución.2.2. De tal modo. utilizando la cuanta del usuario juan. Probando OpenSSH.1.1. ejecute lo siguiente: service sshd restart Para detener el servicio sshd. De modo predeterminado.1 43. el cual tiene un servicio de SSH que responde peticiones a través del puerto 52341.1 mengano@10. basta con ejecutar desde el sistema cliente el mandato ssh definiendo el usuario a utilizar y el servidor al cual conectar: ssh usuario@servidor Para acceder hacia un puerto en particular.1. podrá iniciar.2. ejecute lo siguiente: service sshd start Para hacer que surtan efecto los cambios hechos a la configuración del servicio sshd. el servicio sshd está activo en todos los niveles de ejecución.

99. en el caso que sea distinto al 22. Nautilus.x.7. se accederá a través de SFTP hacia el servidor 192. el cual tiene trabajando el servicio de SSH en el puerto 52341.168.99 Si dispone de un escritorio en GNU/Linux.70.168. sftp -o Port=52341 juan@192. con la opción Port=número de puerto. Para acceder hacia un puerto en particular.168. en el cual está trabajando el servicio de SSH. seguido del puerto. con GNOME 2. se hace través de el parámetro -o.99 43. A continuación se describen algunas de las opciones más importantes del mandato scp. 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.2.70. es necesario conocer las rutas de los directorios objetivo del anfitrión remoto. utilizando la cuenta del usuario juan. Para acceder a través de SFTP hacia el servidor.70. Para realizar transferencias de archivos a través de SCP. accediendo hacia un directorio remoto a través de SFTP.3. 43. Transferencia de archivos a través de SFTP. En el siguiente ejemplo. 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. Transferencia de archivos a través de SCP. 354 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux ssh -p 52341 juan@192.7. seguido del servidor y la ruta hacia la que se quiere acceder. especificando el URI (Uniform Resource Locator o Localizador Uniforme de Recursos) «sftp:».

se transferirá la carpeta Mail. con una sola regla. Especifica el puerto para realizar la conexión. preservando tiempos y modos.169.99.70.70. 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 -.0.0. desde el directorio de inicio del usuario fulano en el servidor 192. Si se utiliza un cortafuegos con políticas estrictas.ADD YOUR ENTRIES BEFORE THIS ONE -. es neceario abrir el puerto correspondiente. Si utiliza Shorewall. junto con todo su contenido.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux -p -P -r Preserva el tiempo de modificación.ADD YOUR ENTRIES BEFORE THIS ONE -.DO NOT REMOVE Si la red de área local (LAN) va a acceder hacia el servidor recién configurado.DO NOT REMOVE O bien.168.169. hacia el directorio de inicio del usuario fulano en el servidor 192. preservando tiempos y modos. cuyo servicio de SSH escucha peticiones a través del puerto 52341. Modificaciones necesarias en el muro cortafuegos. scp -P 52341 -rp fulano@192.168. como por ejemplo Shorewall.txt fulano@192.99:~/ En el siguiente ejemplo. #ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT net fw tcp 22 ACCEPT loc fw tcp 22 #LAST LINE -.0. junto con todo su contenido.8. Copia recursiva de los directorios especificados. hacia el directorio de inicio del usuario fulano en el servidor 192. hacia el directorio del usuario con el que se está trabajando en el anfitrión local.168.99.99. preservando tiempos y modos.99:~/Mail . se transferirá el archivo algo. tiempos de acceso y los modos del archivo original.70. que permita el acceso desde cualquier zona del muro cortafuegos: 355 . se transferirá la carpeta Mail. scp -p algo. hacer todo lo anterior. En el siguiente ejemplo.99:~/ En el siguiente ejemplo./ 43. scp -rp Mail fulano@192.169.txt. es necesario abrir el puerto 22 por UDP (SSH).

DO NOT REMOVE Al terminar de configurar las reglas para Shorewall. en lugar de 52341.ADD YOUR ENTRIES BEFORE THIS ONE -. reinicie el muro cortafuegos. puede utilizar la siguiente regla.ADD YOUR ENTRIES BEFORE THIS ONE -. deberá especificar el puerto que haya elegido: #ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT all fw tcp 52341 #LAST LINE -.DO NOT REMOVE Si se decidió ofuscar el puerto de SSH. ejecutando el siguiente mandato: service shorewall restart 356 . donde.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux #ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT all fw tcp 22 #LAST LINE -.

Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. con permiso de acceso de lectura/escritura sólo para el usuario.2.ssh/ touch ~/.1. ssh usuario@servidor Cómo este usuario.ssh/.alcancelibre. b) No puede utilizar esta obra para fines comerciales.2. 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. facilitando también la operación de guiones y herramientas de respaldo que utilizan dichos protocolos. Al reutilizar o distribuir la obra. Procedimientos 44. y habilitar la política para SELinux denominada allow_ssh_keysign. Utilizar claves públicas en lugar de claves de acceso a través de servicios como SSH. el archivo ~/. 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. acceder con la cuenta de usuario que se utilizará para acceder al servidor. 44. ejecutar los siguientes mandatos.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 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. los cuales tiene como objetivo crear el directorio ~/.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 44. Modificaciones en el Servidor remoto.ssh/authorized_keys.1 © 1999-2011 Joel Barrios Dueñas. igualmente con permiso de acceso de lectura/escritura sólo para el usuario: mkdir -m 0700 ~/. ejecutando lo siguiente: setsebool -P allow_ssh_keysign 1 Al terminar.ssh/authorized_keys exit 357 . Introducción. Usted es libre de copiar. 44. 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. OpenSSH con autenticación a través de firma digital. SCP o SFTP. c) Si altera o transforma esta obra.ssh/authorized_keys chmod 600 ~/.1. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Se requiere acceder primero como administrador al servidor remoto.

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

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

1.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. de entre los más antiguos protocolos de Internet (1985). sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. 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). 45. 360 . y compartiendo datos con sistemas del mismo estrato 2. utilizando el algoritmo de Marzullo para recabar la mejores muestra de datos. NTP fue originalmente diseñado. URL: http://www. Cómo configurar NTP.ietf. de la universidad de Delaware.1. NTP (Network Time Protocol) es un protocolo.1 © 1999-2011 Joel Barrios Dueñas. descartando que parezcan proveer datos erróneos. Estrato 2: Los sistemas envían sus peticiones NTP hacia servidores del estrato 1.txt 45. este margen se reduce considerablemente. Usted es libre de copiar. La versión 4 del protocolo puede mantener el tiempo con un margen de 10 milisegundos a través de la red mundial. Estrato 0: son dispositivos. por Dave Mills.1. utilizado para la sincronización de relojes de sistemas computacionales a través de redes. 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. NTP Utiliza el algoritmo de Marzullo (inventado por Keith Marzullo).1.org/rfc/rfc1305. como relojes GPS o radio relojes. 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. utilizando la escala UTC. NTP utiliza el sistema jerárquico de estratos de reloj. Introducción. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Estrato 1: Los sistemas se sincronizan con dispositivos del estrato 0. c) Si altera o transforma esta obra. y sigue siendo mantenido.alcancelibre. En redes locales. Al reutilizar o distribuir la obra. Acerca de NTP. únicamente por UDP.1. Los sistemas de este estrato actúan como servidores para el estrato 3.1. el cual es un utilizado para seleccionar fuentes para la estimación exacta del tiempo a partir de un número de fuentes. que no están conectados hacia redes sino computadoras. 45. Estratos. bajo condiciones idóneas. alcanzado exactitud de 200 microsegundos. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Los sistemas de este estrato son referidos como servidores de tiempo. o genera una obra derivada.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 45. 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. El servicio trabaja a través del puerto 123.

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

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

3. 3. tanto para tráfico entrante como saliente.DO NOT REMOVE 363 .4. surtan efecto.ADD YOUR ENTRIES BEFORE THIS ONE -. detener y reiniciar el servicio ntpd. Modificaciones necesarias en el muro cortafuegos.DO NOT REMOVE Si la red de área local (LAN) va a acceder hacia el servidor recién configurado. es necesario abrir el puerto 123 por UDP (NTP.3. Si se utiliza un cortafuegos con políticas estrictas. tras modificar la configuración. como por ejemplo Shorewall. Iniciar. 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 -. Para ejecutar por primera vez el servicio ntpd. Para hacer que el servicio de ntpd esté activo con el siguiente inicio del sistema. Agregar el servicio ntpd al arranque del sistema. 4. en todos los niveles de ejecución (2.4. utilice: service ntpd stop 45. #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 -. es necesario abrir el puerto correspondiente. y 5). utilice: service ntpd restart Para detener el servicio ntpd. se utiliza lo siguiente: chkconfig ntpd on 45.ADD YOUR ENTRIES BEFORE THIS ONE -. utilice: service ntpd start Para hacer que los cambios hechos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 45.3.

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 © 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar. pero muy útil. 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. más reciente: yum -y install gdm 2. como GDM. Lograr esto es muy fácil. tiene que dejar bien claro los términos de la licencia de esta obra. Se puede hacer de dos formas.2. y la otra utilizando alguna de las pantallas de acceso gráfico. 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. Procedimiento 1.2. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 46. abra una terminal como súperusuario y ejecute el mandato gdmsetup. Sesión gráfica remota con GDM GDM tiene una característica poco usada. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. En el servidor. 46. 46.1. Introducción. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Deben habilitarse las casillas de "Activar XDMCP" y "Honrar peticiones indirectas" como se muestra a continuación: 364 . o genera una obra derivada. vaya a la solapa de XDMCP y de allí a la pestaña XDMCP. Cuando se tienen distintas máquinas en una LAN y se desea aprovechar el poder y recursos de una de éstas y ahorrar trabajo. 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. Actualice gdm al menos a la versión 2.2.x o.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. c) Si altera o transforma esta obra.alcancelibre. una accediendo vía SSH. 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. b) No puede utilizar esta obra para fines comerciales. RHS o Telnet. 46. una sesión gráfica remota será de gran utilidad. o resulta mucho trabajo instalarles todo un sistema optimizado y personalizado. 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.

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

y permitirá iniciar GNOME o KDE o cualquier otro entorno gráfico utilizado.168. En todas las máquinas. debe respaldarse y editarse el archivo /etc/X11/prefdm y debe hacerse que contenga únicamente lo siguiente. Puede modificar /etc/inittab y cambiar: id:3:initdefault: Por: id:5:initdefault: 7. ni siquiera se notará si se está en un cliente o en el servidor. es decir que arranque en modo de ejecución 5 (o nivel de ejecución 5). Si cuenta con buenos adaptadores de red.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 4. Deben reiniciarse los servidores X de las máquinas clientes. ya sea si se utiliza webmin o linuxconf o alguna otra herramienta. 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. debe hacer que el modo de ejecución sea gráfico y con red. Las máquinas clientes verán a GDM ejecutándose como si se estuviese en el mismo servidor. 8. 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 366 .254 6. En los clientes. Debe determinarse la localización de X con el mandato which: which X 5.

Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.2. 47. y que posteriormente se comprometa también consultar a detalle la documentación incluida en el paquete nfs-utils. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Usted es libre de copiar.deny.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 47. tiene que dejar bien claro los términos de la licencia de esta 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. Esto se consigue modificando los archivos /etc/hosts. 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. nunca para compartir sistemas de archivos a través de Internet. sólo una lista de control de acceso determinada por direcciones IP o nombres. b) No puede utilizar esta obra para fines comerciales. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra.allow y /etc/hosts. Introducción NFS.3. NFS no utiliza un sistema de contraseñas como el que tiene SAMBA.0/255. más comúnmente utilizado entre sistemas basados sobre UNIX®. Procedimientos Teniendo en cuenta los aspectos de seguridad mencionados. Al no contar con un sistema de autenticación por contraseñas.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. Debemos especificar qué direcciones IP o rango de direcciones IP pueden acceder a los servicios de portmap y quiénes no pueden hacerlo.allow como rango de direcciones IP permitidas los siguiente: portmap:192. acrónimo de Network File System. o genera una obra derivada.1 © 1999-2011 Joel Barrios Dueñas. Instalación del equipamiento lógico necesario yum -y install nfs-utils portmap 47.255.1. es un popular protocolo utilizado para compartir volúmenes entre máquinas dentro de una red de manera transparente.1. 47. SAMBA es un protocolo mucho mejor y más seguro para compartir sistemas de archivos. c) Si altera o transforma esta obra. 47. ya que ésta le proporcionará información adicional y completa sobre aspectos avanzados de configuración y utilización.0 367 .1.255.alcancelibre. Configurando la seguridad Lo siguiente será configurar un nivel de seguridad para portmap.168.2. sin embargo no en vano es apodado cariñosamente como "No File Security". Es útil y fácil de utilizar. es importante que siga los procedimientos descritos a continuación al pie de la letra. Personalmente. es un servicio susceptible del ataque de algún delincuente infomático. 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. 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. Podemos entonces determinar en /etc/hosts.

6 192.org otro_nombre_mas como_se_llame.7 localhost.0.mi-red-local.2 192.1.168. debe reiniciarse el servicio de portmap: service portmap restart Si tiene un DNS.255.168.mi-red-local.1.mi-red-local.mi-red-local.deny. Una vez configurado portmap.168. Ejemplo: portmap:192.org como_se_llame como_sea.5 192.mi-red-local.3. Se puede especificar una dirección IP o bien nombrar alguna máquina.3 192.4 192.org otro_nombre otro_nombre_mas.1. Podemos utilizar el siguiente ejemplo (la separación de espacios se hace con un tabulador): 368 .152.org lo_que_sea 47.30. o bien a qué máquinas. sólo resta determinar quiénes no pueden hacerlo.1. Evidentemente nos referimos al resto del mundo.20.localdomain localhost servidor.0.0/255.org servidor algun_nombre.168.1.168.1 192.255.1.168.org algun_nombre otro_nombre.mi-red-local.1. de acuerdo al DNS o /etc/hosts se permitirá el acceso. o bien un patrón común con comodín para definir qué máquinas pueden acceder.1.96 portmap:148. necesitaremos establecer qué directorios en el sistema serán compartidos con el resto de las máquinas de la red.org como_sea lo_que_sea.200.168. 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.168.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.168.mi-red-local. Compartir un volumen NFS Procederemos a determinar qué directorio se va a compartir.171 Una vez que se han determinado las direcciones IP que pueden acceder a portmap.2 portmap:216. Ejemplo del archivo /etc/hosts: 127. 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. Adicionalmente podemos especificar direcciones IP individuales sin necesidad de establecer una máscara.240. Esto es de utilidad cuando se desea compartir volúmenes con otras máquinas en otras redes a través de Internet.28. 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.168. Esto nos servirá como listas de control de accesos.25 portmap:192.0 portmap:192.254 192. Éstos deberemos agregarlos en /etc/exports determinado con qué máquinas y el modo en que se compartirá el recurso.1. Puede crear también uno nuevo: mkdir -p /var/nfs/publico Una vez hecho esto.

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

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

org otra_nueva_maquina Utilice estos disquetes para arrancar en los equipos.mi-red-local.img of=/dev/fd0 bs=1440k Añada en /etc/hosts. puede quedar como sigue: 127. 371 . 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.1.168.org nueva_maquina otra_nueva_maquina.mi-red-local.168.4 192.0.1. Tiene como ventaja que la instalación puede resultar más rápida que si se hiciese con un CDROM. las direcciones IP.168.168.mi-red-local. 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.168.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 47.3 192.7 192.1.mi-red-local.1 192. Utilizaremos bootnet.1.mi-red-local.1. que serán utilizadas por las nuevas máquinas.org como_se_llame como_sea.mi-red-local.org-.localdomain localhost servidor.4.org algun_nombre otro_nombre.254 192.168.1.mi-red-local.mi-red-local.1.6 192.168.9 localhost.mi-red-local.org otro_nombre otro_nombre_mas.org lo_que_sea nueva_maquina. 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.mi-red-local. Para /etc/hosts.org otro_nombre_mas como_se_llame.1. El resto continuará como cualquier otra instalación. asociadas a un nombre con el dominio que específico como regla de control de acceso en /etc/exports -es decir *.168.168.5 192.org servidor algun_nombre.0.2 192.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. y nos permitirá instalar GNU/Linux en máquinas que no tengan unidad de CDROM. siendo que la tasa de trasferencia de archivos será determinada por el ancho de banda de la red local. Inserte un disquete y ejecute lo siguiente: cd /var/nfs/publico/images/ dd if=bootnet.org como_sea lo_que_sea. o bien de de alta en el DNS.8 192.1. 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.

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

4. 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).1. 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. SELinux y el servicio smb.33. A fin de que SELinux permita al servicio smb la escritura como usuario anónimo. 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. como por ejemplo /var/samba/publico. Instalación a través de yum. 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.0.3. y versiones posteriores. se instalará Samba 3. se instalará Samba 3. samba3x-client y samba3x-common. En el caso de CentOS 5 y Red Hat™ Enterprise Linux 5. Si utiliza CentOS 5 y 6 o Red Hat™ Enterprise Linux 5 o 6.2.5.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 48.5. ejecute el siguiente mandato: setsebool -P samba_create_home_dirs 1 Para definir que un directorio será compartido a través del servicio smb. y que se debe considerar como contenido tipo Samba.1. Procedimientos. sin embargo hay opción a utilizar en su lugar Samba 3. yum remove samba samba-client samba-common yum -y install samba3x samba-client3x samba-common3x 48.3. Primary Domain Controler). 48.4 instalando los paquetes samba3x. 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. se utiliza el siguiente mandato: 373 .

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. useradd -s /sbin/nologin usuario-windows smbpasswd -a usuario-windows Es opcional asignar clave de acceso con el mandato passwd. SSH.3.conf. si en una máquina con Windows™ ingresamos como el usuario fulano con clave de acceso 123qwe. es decir. Edite el archivo /etc/samba/lmhosts con cualquier editor de texto simple. vim /etc/samba/lmhosts 374 . A fin de que SELinux permita al servicio smb compartir todos los recursos en modo de sólo lectura.3. que se permita acceso al intérprete de mandatos. El archivo lmhosts Es necesario empezar resolviendo de manera local los nombres NetBIOS.2. en el archivo /etc/samba/lmhosts (lmhosts es acrónimo de LAN Manager hosts). Alta de cuentas de usuario. Es decir. debe ser configurado como acaba de describirse antes de ser configurado en el archivo /etc/samba/smb. 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. 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. asociándolos con las direcciones IP correspondientes. smbpasswd -a root Es importante sincronizar las cuentas entre el servidor Samba y las estaciones Windows™. 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. en el servidor Samba deberá existir también dicha cuenta con ese mismo nombre y la misma clave de acceso. 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. Si se necesita que las cuentas se puedan utilizar para acceder hacia otros servicios como serían Telnet. etc. ejecute el siguiente mandato: setsebool -P samba_export_all_rw 1 48.3. Asigne una clave de acceso al usuario root. Ésta puede ser distinta a la utilizada en el sistema.

48.70.4. vim /etc/samba/smb.8 localhost servidor joel blanca alejandro sergio isaac finanzas direccion 48. y que está comentada con almohadillas (símbolo #).6 192.3.3 192.1 192.1 localhost Se pueden añadir los nombres y direcciones IP de cada uno de los anfitriones de la red local. Este parámetro es de carácter descriptivo. Como mínimo debe encontrarse el nombre del anfitrión Samba.3.70.4 192.5 192. 375 .conf con cualquier editor de texto simple. el resto de los anfitriones de la red local. De manera opcional.168.0. encontrará información que será de utilidad.70. Ejemplo: 127.2 192.1 192. y varios ejemplos comentados con punto y coma (símbolo . La separación de espacios se hace con un tabulador.168.70. se encontrará un contenido similar al siguiente: 127.4. siendo estos últimos los que se pueden tomar como referencia para configurar.1. Si se edita el archivo /etc/samba/lmhosts.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. Parámetros principales del archivo smb.0. Edite el archivo /etc/samba/smb.).2.70. Puede utilizarse un comentario breve que de una descripción del servidor.3. Parámetro workgroup.3. bien o el nombre corto que se asigno como alias a la interfaz de red.168.4. y. si acaso ésto fuese necesario.3. de manera opcional. Se establece el grupo de trabajo definiendo el valor del parámetro workgroup asignando un grupo de trabajo deseado: workgroup = MIGRUPO 48.conf Dentro de este archivo. pero siempre tomando en cuenta que dicho nombre deberá corresponder con el establecido en el archivo /etc/samba/lmhosts: netbios name = servidor 48.0. junto con su correspondiente dirección IP. Normalmente se utiliza el nombre corto del servidor. Parámetro server string.168.168.168.168.conf.70. Parámetro netbios name.0. se puede establecer con el parámetro netbios name otro nombre distinto para el servidor.70.4.168.7 192.

168.5.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux server string = Servidor Samba %v en %L 48.168.0.4. En el siguiente ejemplo se define que el servidor Samba se anuncie a través de las direcciones IP de difusión 192. eth1.). La seguridad es importante. el rango de direcciones IP que se definirá en hosts allow será 192. sin especificar.0/8 (retorno del sistema o loopback). El parámetro hosts allow sirve para determinar ésto. de modo tal que sólo se permitirá el acceso dichas máquinas. Parámetro interfaces.168. eth1. o redes.4.126.0/24) y hacia los grupos de trabajo DOMINIO1 y DOMINIO2.70.4. 192. 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. definiendo los tres primeros octetos de la dirección IP de red.0/25) y 192.0/24.3.127 (que corresponde a la dirección IP de difusión de la red 192. mientras exista una ruta. Parámetro remote announce.70.70. así como cualquier dirección IP de la red 127.70.. 192. Parámetro hosts allow.168. expresada en bits. En el siguiente ejemplo se definen las redes 192.168. Ejemplo: interfaces = lo. etc.168.168.70. de direcciones de la red local. la cual definirá qué máquinas. remote announce = 192. Samba ignorará todas las peticiones provenientes desde cualquier interfaz.70.168. separada por comas. o espacios.3.0.70.0/24 y 192.168. y sea posible la difusión exitosa de paquetes.1 hasta 192. 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. El grupo de trabajo de destino puede estar en donde sea. siendo necesario definir sólo el primer octeto de dicho segmento: hosts allow = 127.37.3. eth0. 192.168.168.168.5.255 (que corresponde a la dirección IP de difusión de la red 192. o bien fuera del bloque. 48.168.254/25 48.168. o dirección IP.70. o segmento. impidiendo se establezcan conexiones hacia este servicio desde Internet. El parámetro interfaces permite establecer desde que interfaces de red del sistema se escucharán peticiones. Los valores aceptados para este parámetro es una lista.255/DOMINIO2 376 . y direcciones IP utilizada en una interfaz en particular.2.70. y ésta se puede establecer estableciendo la lista de control de acceso.37. Ésto es útil cuando Samba se ejecuta en un servidor que sirve además de puerta de enlace para la red local. y otros grupos de trabajo existentes en la red de área local. Esto es particularmente útil si se necesita que el servidor Samba aparezca en su propio grupo de trabajo. 192. con la máscara de sub-red en formato CIDR (Classless Inter-Domain Routing).2. es decir. con los nombres de las interfaces (lo.2.. podrán acceder hacia el servidor.127/DOMINIO1. Si la red consiste en las máquinas con dirección IP desde 192.

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: 377 . Para los directorios o volúmenes que se irán a compartir. Compartiendo directorios a través de Samba. Las impresoras se comparten de modo predeterminado.3. anteriormente se hacía utilizando el parámetro printer admin.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 48. utilizando políticas.6. en el mismo archivo de configuración encontrará distintos ejemplos para distintas situaciones particulares. ejecutando. definiendo una lista de usuarios. o grupos. desde terminal. Impresoras en Samba. Actualmente se hace igual que en Windows. Si se desea que se pueda acceder hacia la impresora como usuario invitado sin clave de acceso. path = /var/spool/samba printable = Yes browseable = No writable = no printable = yes public = Yes Para la administración de las colas de impresión.7. 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. lo siguiente: net -S servidor -U root rpc rights grant fulano SePrintOperatorPrivilege 48. En general. así que sólo hay que realizar algunos ajustes.3.

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

.bashrc. como son los recursos compartidos. para mantenerlos ocultos.3. notando la presencia de archivos ocultos del sistema. Es poco conveniente que los usuarios puedan acceder.4. .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. 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. Puede utilizarse el parámetro hide dot files. service nmb restart Si va a aplicar algún cambio en cualquier otro parámetro de la configuración. como es el caso del directorio de inicio del usuario en el servidor Samba (. es decir archivos cuyo nombre comienza con un punto. Iniciar el servicio. es necesario reiniciar el servicio nmb. 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. con el valor Yes.7. sólo utilice los dos siguientes mandato: chkconfig nmb on chkconfig smb on 379 .).bash_history. Ocultando archivos que inician con punto. [homes] comment = Home Directories browseable = no writable = yes hide dot files = Yes 48.bash_profile. administrador directory mask = 0755 create mask = 0644 48.1. y añadirlo al arranque del sistema. etc. hide dot files = Yes Este parámetro es particularmente útil para complementar la configuración de los directorios personales de los usuarios. el cual es el encargado de proveer el servidor de nombres para los clientes a través de NetBIOS sobre IP.

el6_0.5.4-68. Herramienta smbclient.1.2. 48.el6_0. determine primero que volúmenes o recursos compartidos posee ésta.2.el6_0.1.5.el6_0.el6_0. Para acceder al cualquier recurso de alguna máquina Windows™ o servidor Samba.1. el sistema solicitará se proporcione la clave de acceso del usuario fulano en el equipo denominado LINUX.5.4-68.x hp2550bw Printer Created by system-config-printer 1.x Anonymous login successful Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3. 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.2 en mi-servidor) Created by system-config-printer 1. Indudablemente el método más práctico.2 en mi-servidor) IPC Service (Servidor Samba 3.5. Modo texto. Comprobaciones. e indudablemente más confiable para pruebas de diagnóstico.5.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.4-68. 380 .5.5.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. 48.4-68. es el mandato smbclient.5.2] Server --------mi-servidor Workgroup --------MI-DOMINIO Comment ------Servidor Samba 3.4-68.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 48. similar al mandato ftp en modo texto. Este permite acceder hacía cualquier servidor Samba o Windows™.

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

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

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

0.1/fulano -Ufulano%123qwe Lo anterior debe devolver una salida similar a la siguiente: Domain=[M064] OS=[Unix] Server=[Samba 3.0rc1-14.al] smb: > Utilizando el mandato put del intérprete SMB.4.mp3 Si aún no existiera. genere con el mandato echo del sistema un archivo denominado prueba. Comprobaciones. lo cual indica que no fue permitido subir el archivo prueba.mp3 smb: > Para salir del intérprete SMB utilice el mandato exit: smb: > exit 384 . Con la finalizad de realizar pruebas.2.0.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux service smb restart 49.mp3 Lo anterior debe devolver una salida similar a la siguiente indicando el mensaje NT_STATUS_OBJECT_NAME_NOT_FOUND como respuesta. 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.txt al directorio personal de fulano: smb: > put prueba.mp3 NT_STATUS_OBJECT_NAME_NOT_FOUND opening remote file prueba.mp3: echo "archivo MP3 de pruebas" > prueba. suba el archivo prueba.el5.mp3: smb: > put prueba.9.

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. 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. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Lo correcto es solo utilizarlo en directorios compartidos que solo sean utilizados por un solo usuario. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Este documento considera que usted ya ha leído previamente.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 50. Introducción. 50. En el caso de directorios compartidos que sean accedidos por distintos usuarios. a través de cualquier medio. Al reutilizar o distribuir la obra.alcancelibre. 385 .1. Licencia completa en castellano. 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. que almacenará los contenidos eliminados desde el cliente en un subdirectorio denominado Recycle Bin.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. o genera una obra derivada. En algunas circunstancias. De ser necesario. c) Si altera o transforma esta obra. el cual es creado si éste no existiera. y que ha configurado exitosamente Samba como servidor de archivos. 50. Cómo configurar Samba con Papelera de Reciclaje. a detalle y en su totalidad el manual «Cómo configurar Samba básico». 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. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Usted es libre de copiar. 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. Es particularmente útil para los directorios personales de los usuario. 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. 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 © 1999-2011 Joel Barrios Dueñas. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación. éste se hará de forma permanente. el subdirectorio Recycle Bin se crea con permisos de acceso solo para el primer usuario que elimine contenido.

TMP. El parámetro recycle:versions define que si hay dos o más archivos con el mismo nombre.tmp|*. ~$*.tmp. *.dat y *.TMP recycle:excludedir = /tmp|/temp|/cache recycle:noversions = *.doc. se mantendrán todos donde los archivo más recientes tendrán un nombre con el esquema «Copy #x of nombrearchivo» (es decir.log|*.doc|*.obj|~$*|*.trace|*.ppt|*.trace y *.~??.trace|*. [homes] comment = Home Directories browseable = no writable = yes vfs objects = recycle recycle:repository = Recycle Bin recycle:versions = Yes recycle:keeptree = Yes recycle:exclude = *. y los directorios /tmp. Las listas para archivos y directorios son separadas por tuberías (|).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. *.obj|~$*|*. En el siguiente ejemplo se excluyen los archivos con extensiones *.TMP recycle:excludedir = /tmp|/temp|/cache Si no se quiere que se guarden versiones distintas de archivos con el mismo nombre. *.temp|*. *.ini.~??|*. /temp y /cache.~??|*. para algunas extensiones. y aceptan comodines (* y ?). [homes] comment = Home Directories browseable = no writable = yes vfs objects = recycle recycle:repository = Recycle Bin recycle:versions = Yes recycle:keeptree = Yes recycle:exclude = *.ppt. *.dat|*.obj. El parámetro recycle:keeptree define que si se elimina un directorio con subdirectorios y contenido. Copia #x del nombre-archivo). se indica que no se guarden diferentes versiones de archivos con el mismo nombre que tengan las extensiones *.temp|*. es posible hacerlo definiendo el parámetro recycle:noversions y una lista de extensiones de archivos separados por tuberías (|). y estos son enviados a la Papelera de Reciclaje. *.ini 386 .log.temp.log|*.o|*. [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|*. se mantendrá la estructura de éstos. *.o|*. En el siguiente ejemplo.

y recycle:maxsize.trace|*.0. utilice: service smb restart 50.txt Si aún no existiera. que define un tamaño mínimo.obj|~$*|*. 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.ppt|*.txt: echo "archivo de pruebas" > prueba. Para hacer que los cambios hechos surtan efecto tras modificar la configuración.3.4. que define un tamaño máximo.o|*. 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 = *.9.temp|*.0.ini recycle:minsize = 10 recycle:maxsize = 5120 50.el5. genere con el mandato echo del sistema un archivo denominado prueba. será eliminado permanentemente de forma inmediata. Cualquier archivo que esté fuera de estos límites establecidos.dat|*.1/fulano -Ufulano%123qwe Lo anterior debe devolver una salida similar a la siguiente: Domain=[M064] OS=[Unix] Server=[Samba 3.TMP recycle:excludedir = /tmp|/temp|/cache recycle:noversions = *.tmp|*.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.2.al] smb: > 387 . Aplicando los cambios.doc|*.~??|*. Con la finalizad de realizar pruebas. Comprobaciones.0rc1-14.log|*.

12143 blocks available Elimine el archivo prueba.bashrc .txt y ahora aparece el directorio Recycle Bin: smb: > dir .txt (0.bash_profile .txt: smb: > dir Lo anterior debe devolver una salida similar a la siguiente: smb: > dir .txt utilizando el mandato del desde el intérprete SMB: smb: > del prueba. 12143 blocks available Acceda al directorio Recycle Bin utilizando el mandato cd: 388 .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. suba el archivo prueba. .bash_profile . .zshrc .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.txt as prueba. .bash_logout prueba.4 kb/s) (average 0. .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Utilizando el mandato put del intérprete SMB.bashrc .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 Lo anterior debe devolver una salida similar a la siguiente: smb: > put prueba.bash_logout ...txt al directorio personal de fulano: smb: > put prueba.txt smb: > Visualice de nuevo el contenido del directorio con el mandato dir.kde .

prueba. 12141 blocks available Para salir del intérprete SMB utilice el mandato exit: smb: Recycle Bin> exit 389 . . que fue eliminado con el mandato del.. lo cual debe devolver una salida similar a la siguiente donde se muestra que el archivo 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.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. smb: Recycle Bin> dir .

Su desarrollo aún está en fase experimental.alcancelibre. como una prueba de concepto de módulo para el sistema de archivos virtual de Samba.1.1 © 1999-2011 Joel Barrios Dueñas. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.0. pero es incompatible con AL Desktop).src. incluye soprote para otros antivirus como H+BEDV AntiVir (versión servidor).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 51. pcre-devel y rpm-build. Procedimientos. 51.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. con un mínimo de fallas. 51.rpm Instalar el código fuente: 390 . NAI/McAfee uvscan y F-Secure AntiVirus. a través de cualquier medio. 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. Instalar primero los paquetes gcc. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Es importante señalar que samba-vscan 0.2.2.el5_2. glibc-devel. por entidades con fines de lucro).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.3. 51. clamav-devel. Symantec AntiVirus. Se debe descargar el paquete de fuentes de Samba de la siguiente forma: wget http://mirrors. Licencia completa en castellano.6cBeta5 es compatible con AL Server. Instalación de equipamiento lógico necesario. Samba-Vscan es un interesante módulo desarrollado por OpenAntivirus. Trend Micro FileScanner/InterScan VirusWall. F-Prot Daemon.3. 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) Si altera o transforma esta obra. 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». pero es lo suficientemente estable para el uso diario. Acerca de Samba-Vscan.org/centos/5/updates/SRPMS/samba-3. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Cómo instalar y configurar Samba-Vscan en CentOS 5.28-1.x y versiones posteriores (Nota usuarios equipamiento lógico de Alcance Libre: samba-vscan 0.1.6cBeta5 es incompatible con Samba 3.4.kernel. Además de ClamAV. Usted es libre de copiar. o genera una obra derivada. Al reutilizar o distribuir la obra. 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. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Kaspersky AntiVirus. Introducción.

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./configure dentro del directorio /usr/src/redhat/BUILD/samba-3.el5_2.0. .gz Cambiarse al directorio samba-vscan-0.3.3.28/source/ que se encuentra dentro del directorio de compilación: cd /usr/src/redhat/BUILD/samba-3./configure: .6c-beta5.spec Cambiarse al subdirectorio samba-3.1.gz: tar zxvf samba-vscan-0.tar.org/download/samba-vscan-0.tar./examples/VFS/: cd .28-1. Ejecutar el mandato make proto para compilar lo mínimo necesario para posteriormente compilar Samba-Vscan: make proto Cambiarse al directorio .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux rpm -ivh samba-3.0. rpmbuild -bp samba.3..src.3.28/source/..28/source/ Ejecutar .6c-beta5.openantivirus./examples/VFS Descargar la versión 0.3.tar.gz Descomprimir samba-vscan-0.3./configure Lo anterior demorará algunos minutos en completarse.6cBeta5 de Samba-Vscan.6c-beta5.6c-beta5/: cd samba-vscan-0./configure Ejecutar make clamav: 391 .0.0.6c-beta5/ Ejecutar dentro de este directorio . wget http://www.

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. de otra manera este servicio dejará de funcionar.you really want to change this! quarantine directory = /tmp . donde se desee utilizar protección con antivirus: vfs object = vscan-clamav vscan-clamav: config-file = /etc/samba/vscan-clamav. editar /etc/samba/vscan-clamav.conf. Setting will be ignored if . Si se siguió al pie de la letra la configuración de Clamd en el documento de Alcance Libre titulado «Cómo configurar Clamd». socket name of clamd (default: /var/run/clamd).conf [publico] comment = Directorio público path = /var/samba/publico writable = no printable = no browseable = yes 392 . .so en /usr/lib/samba/vfs/: install vscan-clamav. La recomendación es utilizar cualquier otro directorio distinto de /tmp y que haya sido creado específicamente para este fin. .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.so /usr/lib/samba/vfs/ Instalar clamav/vscan-clamav.sock como zócalo en el parámetro clamd socket name. definido en el archivo /etc/samba/smb.localhost/clamd. 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.conf /etc/samba/ Es importante mencionar que el procedimiento de compilación de samba-vscan debe repetirse cada vez que se actualice Samba. se añaden las siguientes dos líneas a cada recurso compartido. where to put infected files .conf y definir /var/run/clamd. prefix for files in quarantine quarantine prefix = vir- Para utilizar samba-vscan en la configuración de Samba.

conf Para probar. sobre cualquier recurso compartido que haya sido configurado con Samba-Vscan. 393 . 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.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.

Los parámetros wins server.2. 4. Procedimientos.2. Se puede definir que el servidor Samba recién configurado se convierta en un servidor WINS. Al reutilizar o distribuir la obra. y wins support. y wins support. 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.conf 52. el manual «Cómo configurar Samba básico». Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. debe habilitarse el parámetro wins support con el valor yes: wins support = Yes 394 . Introducción. 2. o bien utilizar un servidor WINS ya existente. y que ha configurado exitosamente Samba como servidor de archivos.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. 52. vim /etc/samba/smb. que se definen en la sección [global] del archivo /etc/samba/smb. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Parámetros wins server. Si el sistema va ser utilizado como servidor WINS. por entidades con fines de lucro). c) Si altera o transforma esta obra. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red:http://www. se definen en la sección [global] del archivo /etc/samba/smb.1 © 1999-2011 Joel Barrios Dueñas. 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. de los equipos que conforman la red local. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación.conf. Licencia completa en castellano. a detalle. 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 52. 52. Esta lista permite localizar rápidamente a otro equipo dentro de la red.1. o genera una obra derivada. No es posible ser cliente. y servidor al mismo tiempo. que se encarga de mantener una tabla con la correspondencia entre direcciones IP. a través de cualquier medio. y nombres NetBIOS. La resolución de nombres em Sambase lleva a cabo realizando consultas en el siguiente orden: 1. WINS (Windows Internet Name Service) es un servidor de nombres de para NetBIOS.conf.1. y en su totalidad. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Cómo configurar Samba como cliente o servidor WINS. Usted es libre de copiar. 3. 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. Todos los parámetros descritos a continuación. son mutuamente excluyentes. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.alcancelibre.

52. 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.1 como servidor WINS: wins server = 192.1.168. Parámetro max ttl. permite a Samba realizar búsquedas en un servidor DNS si le es imposible determinar un nombre a través de un servidor WINS. debe habilitarse el parámetro wins server. name resolve order = wins lmhosts hosts bcast 52. lmhosts. Cuando su valor es yes. y como valor se especifica la dirección IP que utilice el servidor WINS. En el siguiente ejemplo. Si las direcciones IP de los equipos que integran la red local cambian demasiado frecuentemente. se definen 48 horas como tiempo máximo de vida para los nombres NetBIOS: max ttl = 86400 395 .1 52.4. y bcast. 52.2. Pueden definirse hasta hasta cuatro valores: wins. En el siguiente ejemplo se define al sistema con dirección IP 192. puede reducirse este tiempo. su valor predeterminado es 259200.168. como se muestra en el siguiente ejemplo.2.3. 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. permite a Samba como servidor intermediario (proxy) para otro servidor WINS. dns proxy = yes El valor predeterminado de este parámetro es no. Parámetro wins proxy. wins proxy = yes El valor predeterminado de este parámetro es no. hosts.2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si el sistema va a utilizar un servidor WINS existente. Parámetro dns proxy. Cuando su valor es yes.2. que corresponde a tres días.5. Por lo general no es necesario modificar este parámetro.2.1.

3. En el siguiente ejemplo se redundan los valores predeterminados: max wins ttl = 518400 min wins ttl = 21600 52. 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. en escala de segundos.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 52. es decir. que tendrán de vida los nombres NetBIOS que han sido asignados por el servidor Samba. 6 días. Los parámetros max wins ttl. y mínimo. Aplicando los cambios. reincie los servicios smb y nmb: service smb restart service nmb restart 396 . y min wins ttl. El valor predeterminado de max wins ttl.2. es decir. Parámetros max wins ttl y min wins ttl. y el valor predeterminado de min wins ttl. es 21600. pueden modificarse estos tiempos. 6 horas.6. respectivamente. corresponden a los tiempos máximo. Para hacer que los cambios hechos surtan efecto tras modificar la configuración. es 518400.

Buena parte del correo electrónico que llega al buzón del usuario consiste de engaños solicitando claves de acceso. 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. Un ingeniero social usará comúnmente el teléfono o Internet para engañar a la gente y llevarla a revelar información sensible.1 © 1999-2011 Joel Barrios Dueñas. 397 . Ingeniería Social es la práctica de obtener información confidencial a través de la manipulación de usuarios legítimos. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. 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. la mayoría de los usuarios simplemente hacen clic con el ratón a cualquier cosa que llegue en el correo electrónico. Con este método. 53.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. haciendo pensar que es con una finalidad legítima. Al reutilizar o distribuir la obra. la enciclopedia libre. b) No puede utilizar esta obra para fines comerciales. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Lamentablemente muchos estudios muestran que los usuarios tienen una pobre conciencia acerca de la importancia de la seguridad. o bien a violar las políticas de seguridad típicas. Clásicos ejemplos de ataques exitosos aprovechando la ingeniería social es el envío de los adjuntos en el correo electrónico (virus. Wikipedia. Generalmente se está de acuerdo en que “los usuarios son el eslabón débil” en seguridad. antes que aprovechar agujeros de seguridad en los sistemas informáticos. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. los ingenieros sociales aprovechan la tendencia natural de la gente a confiar en su palabra. 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. 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.alcancelibre. troyanos y gusanos) que pueden ejecutar código malicioso en una estación de trabajo o computadora personal.1. o genera una obra derivada. El talón de Aquiles de cualquier red lo componen los usuarios que la integran. Una encuesta de InfoSecurity arrojó como resultados que 90% de los oficinistas revelaría una clave de acceso a cambio de un bolígrafo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 53. 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. 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. Este tipo de ataque se conoce actualmente como phising (pesca). como sería el caso de reactivar o crear una cuenta o configuración. e increíblemente el más fácil de realizar. Usted es libre de copiar. haciendo que éste método de ingeniería social sea exitoso. c) Si altera o transforma esta obra. Otro tipo de ataque de ingeniería social. tiene que dejar bien claro los términos de la licencia de esta obra. número de tarjeta de crédito y otra información. Sin embargo. Introducción. 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. por lo que es necesario que el usuario active esta funcionalidad de modo explícito a fin de volver a ser vulnerable. éste es el principio por el que se rige la ingeniería social.

• • No utilizar cuentas de correo electrónico para uso personal para asuntos laborales. Si es inevitable. • • • • • • • • • 398 . utilizar una cuenta destinada y dedicada para ser mostrada a través de HTTP.2. rara vez leen siquiera una palabra contenida en dicho texto y sencillamente dan clic en la aceptación de licenciamientos y acuerdos. No utilizar cuentas de correo electrónico destinadas para uso laboral para asuntos personales. Recomendaciones para evitar ser víctimas de la ingeniería social a través del correo electrónico. 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. Adiestrar al usuario a utilizar claves de acceso más complejas. 53. Adiestrar al usuario a no abrir y dar clic a todo lo que llegue por correo. 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). incluyendo administradores.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. La principal defensa contra la ingeniería social es la educación del usuario. 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). La gran mayoría de los usuarios. Adiestrar a los usuarios para jamas publicar cuentas de correo en áreas públicas que permitan sean cosechadas por software para este fin. empezando por los propios administradores de redes. 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. Adiestrar al usuario para no publicar cuentas de correo electrónico en lugares públicos. 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. La mejor forma de combatir la ingeniería social es la prevención. Adiestrar al usuario para jamás responder a un mensaje de spam.

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

se pude crear el archivo /etc/yum.3. o bien Red Hat™ Enterprise Linux 5 o 6. debe tener el siguiente contenido: [AL-Server] name=AL Server para Enterprise Linux $releasever mirrorlist=http://www. descargando el archivo http://www.org/al/AL-RPM-KEY Hecho lo anterior. A fin de que SELinux permita al servicio spamassassin conectarse a servicios externos.alcancelibre. Si dispone de un servidor con CentOS 5 o 6.d/ wget -N http://www. 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.repo dentro del directorio /etc/yum.repo cd Este archivo. utilice el siguiente mandato: setsebool -P spamd_enable_home_dirs 1 400 .d/AL-Server.repo. 54.repos.org/al/server/AL-Server.repo.repos.org/al/el$releasever/al-server gpgcheck=1 gpgkey=http://www.3. SELinux y el servicio spamasssassin. que se guarda como /etc/yum.alcancelibre.d/AL-Server.org/al/server/AL-Server. spamassassin-FuzzyOcr.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. pyzor.alcancelibre. será posible instalar los paquetes perl-Mail-SPF. Políticas de SElinux. perl-Razor-Agent.d/: cd /etc/yum.repos. popler-utils y re2c: yum -y install perl-Mail-SPF perl-Razor-Agent pyzor yum -y install spamassassin-FuzzyOcr poppler-utils re2c 54. puede utilizar el el almacén YUM de Alcance Libre para servidores en producción. como Razor o Pyzor.alcancelibre.1.repos.

alcancelibre.te Asegurarse que tenga el siguiente contenido: 401 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. Otros ajustes de SELinux. utilice el siguiente mandato: setsebool -P spamd_disable_trans 1 Esta política es inexistente en CentOS 6 y Red Hat™ Enterprise Linux 6.te: 6.3. Lo siguiente sólo aplica para CentOS 5 y Red Hat™ Enterprise Linux 5. 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.2. Si se desea desactivar toda gestión de SELinux sobre el servicio spamassassin. es necesario generar una nueva política.org/linux/secrets/el6/spamd. Descargar el archivo wget http://www.alcancelibre. A fin de que SELinux permita a spamassassin añadir registros a la bitácora del servicio de Razor.te Editar el archivo recién descargado: vim spamd. haciendo que todo lo anterior pierda sentido y eliminando la protección que brinda esta implementación.org/linux/secrets/el6/spamd. 54.

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

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

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.procmailrc del directorio de inicio de un usuario en particular. vim /etc/mail/spamassassin/local. Si se desea realizar un filtrado enviando el correo calificado como Spam hacia una capeta de correo (~/mail/Spam). mismo que requiere esté funcionado el servicio spamassassin. Edite el archivo /etc/mail/spamassassin/local.cf Se pueden modificar y añadir parámetros con valores. entre los cuales se pueden configurar los siguientes: 404 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Sí se dispone de muchos usuarios. 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. La siguiente es la configuración recomendada para el archivo /etc/procmailrc. es más conveniente utilizar el mandato spamc.4. Configuración del archivo /etc/mail/spamassassin/local.3. o bien el archivo ~/.cf. sí se desea que aplique a todos los usuarios del sistema.cf.

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. si es calificado como spam. que permite generar el archivo /etc/mail/spamassassin/local.php. El valor predeterminado es 0. en un mensaje para considerar el éste como Spam.org whitelist_from 201. acepta decimales y se puede ajustar con un valor inferior o mayor de acuerdo al criterio del administrador. añada al archivo /etc/mail/spamassassin/local. Ejemplo: 4. rewrite_header Define con que cadena de caracteres se añadirá al mensaje para identificarlo como Spam. Ejemplo: whitelist_from *@midominio. De primera instancia. y se desea evitar que accidentalmente se considere Spam un mensaje de correo electrónico emitido por una de estas listas.com/spam/spamconfig.com Hay una herramienta de configuración de SpamAssassin. El valor predeterminado es [SPAM].algo whitelist_from *@alcancelibre.5 report_safe Determina si el mensaje.cf. 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.1.yrex. Se pueden definir varias líneas.161. con el valor 1.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. con el valor 0. y puede cambiarse por lo que considere apropiado el administrador. Ejemplo: 405 . o se deja el mensaje tal y como está. Ejemplo: whitelist_to mailman-users@algo. y asignados por SpamAssassin. se puede definir que nunca se considere Spam el correo emitido por dicha lista.226 whitelist_to Si utiliza una lista de correo electrónico (majordomo o mailman). Ejemplo: blacklist_from alguien@spammer. en http://www.cf sus direcciones IP locales con el parámetro whitelist_from. se incluye en un adjunto.

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

Incrementando las capacidades de filtrado de Spamassasin.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux De este modo. descritas más adelante. sí se desea que aplique para todos los usuarios del servidor. en adelante serán más fáciles de identificar y filtrar. 54. y considerando que se utiliza el archivo ~/. o bien será más difícil que sean clasificados como spam. A fin de enriquecer la capacidad de detección de spam de Spamassassin. Para los todos los procedimientos descritos a continuación. o bien como cualquier usuario. se considera que en el servidor de correo electrónico se utiliza como sistema operativo CentOS 5 y 6 o Red Hat Enterprise Linux 4 y 5. 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 407 . puede hacerlo consultando desde una terminal de texto ejecutando man sa-learn. pueden instalarse paquetes opcionales como perl-Mail-SPF. o bien /etc/procmailrc. dejarán de ser clasificados como tales. lo cual haría que los nuevos filtros creados al entrenar a Spamassassin apliquen para todos los usuarios. 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. Todo lo anterior puede ser utilizado como el usuario root. Los tres brindan capacidades adicionales de filtración de spam. perl-Razor-Agent. 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. y los mensajes que incidentalmente se clasificaron como spam. y pueden contribuir de manera significativa a reducir la cantidad de spam que de otro modo podría pasar por alto Spamassassin. lo cual sólo tendrían efecto para éste en particular. Si alguien tiene interés en aprender más acerca del mandato sa-learn.promailrc.6.

Sólo es necesario conservar el sub-directorio con la versión más reciente. 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.cf o bien se actualice el conjunto de reglas con el mandato saupdate. considerando que tiene configurados los almacenes YUM para AL Server de Alcance Libre. conviene optimizar spamasassassin compilando las reglas de éste para convertirlas a formato binario.cf está correcta. Si se tiene un servidor de correo electrónico con mucha carga de trabajo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Primeramente. a lo sumo una o dos veces al mes. 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 estas implementaciones. es conveniente utilizar el mandato sa-update de vez en cuando. 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 Para instalar el conjunto de paquetes que enriquecerán las capacidades de filtrado de Spamassassin. 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.6. 408 . 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/. Optimizando Spamassassin.1. es necesario reiniciar el servicio spamassassin: service spamassassin restart 54. el sistema debe realizar la compilación y almacenar los binarios dentro de /var/lib/spamassassin/compiled/. 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.

sea excluido de este tipo de filtración.6.2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 54. está escrito en Python.2. 54. 409 . Este conjunto de herramientas es utilizado por Spamassassin para gestionar los contenidos de los documentos en formato PDF.4. Poppler-utils.1.6. particularmente las herramientas como pdftops.com. 54. pstopnm y pdfinfo. Utiliza GOCR (GNU Optical Character Recognition. Suele haber casos en los cuales se envían mensajes de spam que sólo incluyen una imagen incrustada en el mensaje.2. 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). FuzzyOcr es un complemento (plugin) para Spamassassin el cual está enfocado sobre este tipo de spam. 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.2. con el fin de evadir los filtros de los servidores de correo electrónico. o bien el propio dominio.6. donde se descartan por completo como emisores de correo electrónico todos aquellos servidores que carezcan de registro tipo MX o tipo A: dominio.2. Pyzor es similar a Razor. Se complementa de manera mutua con Pyzor. IN TXT "v=spf1 a mx -all" 54. IN TXT "v=spf1 a mx ~all" O bien.5. Es altamente recomendado instalarlo. A diferencia de Perl-Razor-Agent. que es una red distribuida y colaborativa dedicada a la detección y filtración de spam.com. Para que un dominio en particular. Pyzor. Perl-Razor-Agent es la implementación Perl de Razor.6. Se complementa de manera mutua con Razor. 54. 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. Perl-Razor-Agent.2.6. ¿Por qué Perl-Mail-SPF.3. Consiste en un catalogo de propagación de spam que es actualizado constantemente.2. SpamassassinFuzzyOcr y poppler-utils? 54. Perl-Razor-Agent. Pyzor. requiere contar con un registro similar al siguiente. Spamassassin-FuzzyOcr. Perl-Mail-SPF. 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.6. y funciona de la misma forma como una red distribuida y colaborativa dedicada a la detección y filtración de spam. si se quiere algo más estricto.

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

org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Si utiliza CentOS 6. o Red Hat Enterprise Linux 6. Introducción a los protocolos de correo electrónico.1. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. ejecute lo siguiente: yum -y install mailx nc dovecot sendmail Si elige utilizar postfix. 55.conf. 55. Introducción. edite el archivo /etc/dovecot/conf. 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. o bien sendmail. Usted es libre de copiar.txt> # mail_location = mbox:~/mail:INBOX=/var/mail/%u establezca Inicie el servicio dovecot: 411 . 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. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Si elige utilizar sendmail.conf: vim /etc/dovecot/conf.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 55.1. Al reutilizar o distribuir la obra.d/10-mail. dovecot. instale con el mandato yum los paquetes netcat (nc).conf Alrededor de la línea 30 del archivo /etc/dovecot/conf.d/10-mail.d/10-mail. c) Si altera o transforma esta obra.txt for full list. 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.alcancelibre. A fin de poder realizar todas las pruebas correspondientes a cada protocolo. ejecute lo siguiente: yum -y install mailx nc dovecot postfix Si utiliza CentOS 5. omita el siguiente paso. o genera una obra derivada. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. 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. o Red Hat Enterprise Linux 5.1 © 1999-2011 Joel Barrios Dueñas. # See doc/wiki/Variables. y postfix. mbox:~/mail:INBOX=/var/mail/%u como valor del parámetro mail_location.1. Preparativos.

postfix *+ 2 /usr/sbin/sendmail. Mail Transport Agent) predeterminado del sistema.sendmail Presione Intro para mantener la selección actual[+]. o mútiples destinatarios. de hecho. utilizando el mandato alternatives. detenga este último> (es el MTA predeterminado en CentOS 5. Randall Gellens. en un mensaje que es transferido. o contribuido a las especificaciones de SMTP. 55. Dave Crocker. A lo largo de los años han sido muchas las personas que han editado. John Klensin. Éste es. donde deberá elegir entre postfix.1. 55. Es un protocolo estándar de Internet. Eric Allman. el único protocolo utilizado para la transmisión de correo electrónico a través de Internet. o postfix. Ned Freed. Es un protocolo basado sobre texto. y sendmail como MTA predeterminado del sistema: Hay 2 programas que proporcionan 'mta'.1. utilizando este mismo procedimiento.1. como agente de transporte de correo (MTA. entre las cuales están Jon Postel. 412 . SMTP (Simple Mail Transfer Protocol).2.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux service dovecot start chkconfig dovecot on Establezca sendmail. 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. Protocolos utilizados.2. o Postfix. Selección Comando ----------------------------------------------1 /usr/sbin/sendmail. 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. y relativamente simple. del siguiente modo: alternatives --config mta Lo anterior devolverá una salida similar a la siguiente. del Nivel de Aplicación utilizado. y Keith Moore. como MTA predeterminado del sistema. detenga este último (es el MTA predeterminado en CentOS 6. para la transmisión de correo electrónico a través de una conexión TCP/IP. o escriba el número de la selección: 2 Si eligió utilizar sendmail en lugar de postfix. donde se especifica un destinatario.

localdomain> 250 2.. 413 .0.0. todos los clientes de POP3 recuperan todos los mensajes. y el servidor. Adios.localdomain To: fulano@localhost.1.5 <fulano@localhost. 220 nombre.localdomain>. 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. y los almacenan como mensajes nuevos en la computadora.. Sender ok RCPT TO:<fulano@localhost. Escape character is '^]'. se inicia una sesión SMTP.dominio Hello localhost.localdomain [127. 18 Mar 2006 16:02:27 -0600 HELO localhost." on a line by itself Subject: Mensaje de prueba From: fulano@localhost. Sat. y terminan la conexión. aunque el protocolo utilizado hoy en día.0 <fulano@localhost.1. está definido en el RFC 2821.localdomain>. Cliente: Servidor: $ nc 127. se inicia una sesión POP3. que recupera el correo electrónico desde un servidor remoto a través de una conexión TCP/IP desde un cliente local.0 nombre. POP3 (Post Office Protocol version 3).1 25 Trying 127.localdomain> 250 2. mientras están conectados en una red. Recipient ok DATA 354 Enter mail. Es un protocolo estándar de Internet..0.1.0. del Nivel de Aplicación. SMTP trabaja sobre TCP en el puerto 25.0. Este es un mensaje de prueba. también conocido como ESMTP (Extended Simple Mail Transfer Protocol).2. A pesar de que muchos clientes de correo electrónico incluyen soporte para dejar el correo en el servidor. Connected to localhost. . y manipular los mensajes recuperados sin necesidad de permanecer conectados. ejemplificada a continuación.. end with ". eliminan los mensajes en el servidor.localdomain 250 nombre.0. y sus predecesores es permitir a los usuarios recuperar el correo electrónico. utilizado por el usuario. Después de establecerse una conexión entre el cliente.2.0. 250 2. se utilizan los registros MX (Mail Exchanger) en la Zona de Autoridad correspondiente al ese mismo dominio contestado por un Servidor DNS.13.localdomain (127.1).0. Después de establecerse una conexión entre el remitente (el cliente).1/8.1]. 55.0.. y el destinatario (el servidor). ejemplificada a continuación. o anfitrión.0.0 k2IM2RjA003987 Message accepted for delivery QUIT 221 2.dominio ESMTP Sendmail 8.13..1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Para determinar el servidor SMTP para un dominio dado.dominio closing connection Connection closed by foreign host. El diseño de POP3.1. pleased to meet you MAIL FROM:<fulano@localhost.localdomain Hola.

y está definida en el RFC 3501.k2IM2RjA003987@localhost. RETR 1 +OK 728 octets Return-Path: <fulano@localhost. 55. Adios. IMAP trabaja sobre TCP en el puerto 143.13. revisión 1. Es un protocolo estándar de Internet. POP3 trabaja sobre TCP en el puerto 110.1.localdomain>. Connection closed by foreign host. A diferencia de POP3. en el mismo buzón de correo. o Extensiones de correo de Internet de propósitos múltiples). IMAP (Internet Message Access Protocol). 18 Mar 2006 16:03:21 -0600 Date: Sat. conectado de manera concurrente.1.0.2. y proporciona los mecanismos necesarios para éstos para que se detecten los cambios hechos por otro cliente de correo electrónico.1) with SMTP id k2IM2RjA003987 for <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: $ nc 127.1 110 Trying 127.168. La versión más reciente de IMAP es la 4. USER fulano +OK PASS clave de accceso +OK Logged in. y desconectado (disconnected).3. Connected to localhost.0. 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.1. Este es un mensaje de prueba.localdomain [192. . 18 Mar 2006 16:02:27 -0600 Message-Id: <200603182203. vigilar la información de estado de los mensajes de • • • 414 . permitiendo a los clientes de correo electrónico permanezcan conectados el tiempo que su interfaz permanezca activa.0. descargando los mensajes conforme se necesite.0. Cliente: Servidor: POP3 está definido en el RFC 1939.. Las características más importantes de IMAP incluyen: • Soporte para los modos de operación conectado (connected). Sat.. STAT +OK 1 728 LIST +OK 1 messages: 1 728 . así como también obtener porciones de las partes individuales.localdomain To: fulano@localhost.1/8. QUIT +OK Logging out.254]) by localhost.13. +OK dovecot ready.localdomain Status: O Content-Length: 43 Lines: 2 X-UID: 202 X-Keywords: Hola. A través de banderas definidas en el protocolo. Escape character is '^]'.0.localdomain (127.localdomain (localhost.localdomain> Received: from localhost. Permite a los clientes obtener individualmente cualquier parte MIME (acrónimo de Multi-Purpose Internet Mail Extensions.localdomain> Subject: Mensaje de prueba From: fulano@localhost. Fue diseñado por Mark Crispin en 1986 como una alternativa más moderna que cubriera las deficiencias de POP3.1).0.localdomain (8. permite accesos simultáneos desde múltiples clientes. o bien los mensajes completos. del Nivel de Aplicación.

org/rfc/rfc821. . o eliminar. Connected to localhost. ) x OK Fetch completed. Un ejemplo es la extensión IMAP IDLE.0.0. +OK dovecot ready.txt 415 . * OK [UIDVALIDITY 1100569382] UIDs valid * OK [UIDNEXT 203] Predicted next UID x OK [READ-WRITE] Select completed. y las compartidas. http://www. Este es un mensaje de prueba. y el servidor. Esta característica también permite al servidor proporcionar acceso hacia los carpetas públicas. • Incluye soporte para múltiples buzones de correo electrónico que permite crear. respondido. • • Después de establecerse una conexión entre el cliente.org/rfc/rfc2821. x SELECT inbox * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. x FETCH 1 (flags body[header. o eliminado.txt http://www. Incluye soporte para realizar búsquedas del lado del servidor a través de mecanismos que permiten obtener resultados de acuerdo a varios criterios. Adios.FIELDS (SUBJECT)] {30} Subject: Mensaje de prueba ) x OK Fetch completed.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux correo electrónico que se mantengan en el servidor. Cliente: Servidor: $ nc 127.org/rfc/rfc3501.0.txt http://www. la cual permite sincronizar ente el servidor.ietf.fields (subject)]) * 1 FETCH (FLAGS (\Seen) BODY[HEADER. no leído. Escape character is '^]'.txt http://www.0.ietf. Connection closed by foreign host. x FETCH 1 (body[text]) * 1 FETCH (BODY[TEXT] {45} Hola.txt http://www. x LOGOUT * BYE Logging out x OK Logout completed..0.0. y mover estos mensajes entre distintas cuentas de correo electrónico. Por ejemplo si el estado del mensaje es leído. x LOGIN fulano clave de acceso x OK Logged in. se inicia una sesión IMAP.ietf.org/rfc/rfc1939. ejemplificada a continuación.1. * 1 EXISTS * 0 RECENT * OK [UNSEEN 1] First unseen. mensajes de correo electrónico presentados en el servidor dentro de carpetas. renombrar. * OK dovecot ready. y el cliente a través de avisos.1).1 143 Trying 127.localdomain (127.ietf.. Referencias. Cliente: Servidor: Cliente: Servidor: Cliente: Servidor: Cliente: Servidor: Cliente: Servidor: 55.ietf.org/rfc/rfc2222. Las especificaciones del protocolo IMAP definen un mecanismo explícito mediante el cual puede ser mejorada su funcionalidad a través de extensiones.2. permitiendo evitar que los clientes de correo electrónico tengan que descargar todos los mensajes desde el servidor.

para ser utilizado en cualquier protocolo de aplicación que sea capaz de utilizar SASL. URL: http://dovecot. y Cyrus SASL. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. o genera una obra derivada. tiene que dejar bien claro los términos de la licencia de esta obra. que funciona en Linux. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior.sendmail. NTLM.fi/.edu/sasl/sasl-library. URL: http://asg.1. Está especificado en el RFC 2222 creado por John Meyers en la Universidad Carnegie Mellon. URL: http://www.1 © 1999-2011 Joel Barrios Dueñas. GSSAPI. y Courier IMAP. en teoría.org/. Acerca de SASL. Dovecot puede utilizar tanto el formato mbox como maildir. o Mail Transport Agent). 416 . y diseñado con la seguridad como principal objetivo. Desempareja los mecanismos de la autenticación desde protocolos de aplicaciones. y es compatible con las implementaciones de los servidores UW-IMAP. Configuración básica de Sendmail. y que incluye como principales mecanismos de autenticación soportados a ANONYMOUS. cualquier mecanismo de autenticación soportado por SASL. y comprender.2.procontrol. quizá.cmu. de código fuente abierto. o del lado del cliente. OPT. 56. Dovecot es un servidor de POP3 e IMAP. de poco más del 70% del correo electrónico del mundo. Es imprescindible primero estudiar. 56. SASL (Simple Authentication and Security Layer) es una implementación diseñada para la seguridad de datos en protocolos de Internet.1.alcancelibre. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. 56. 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. Acerca de Dovecot. Aunque por largo tiempo se le ha criticado por muchos incidentes de seguridad. responsable.1. El código fuente incluye también soporte para los mecanismos LOGIN. 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 KERBEROS_V4.1. Acerca de Sendmail.1. y sistemas basados sobre Unix™. los conceptos descritos en el documento titulado «Introducción a los protocolos de correo electrónico. lo cierto es que éstos siempre han sido resueltos en pocas horas. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. permitiendo. Al reutilizar o distribuir la obra.3. b) No puede utilizar esta obra para fines comerciales. CRAM-MD5. SRP. Introducción. Es el más popular agente de transporte de correo (MTA. DIGEST-MD5.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 56. Actualmente SASL es un protocolo de la IETF (Internet Engineering Task Force) que ha sido propuesto como estándar.» 56. Cyrus SASL es una implementación de SASL que puede ser utilizada del lado del servidor. Usted es libre de copiar.web.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.html. y PLAIN.

ya que este utiliza el método de autenticación GSSAPI. y defina Sendmail como agente de transporte de correo (MTA.2. Outlook carece de soporte para estos métodos de autenticación. con la opción --config. 56.3.1. • • • • • • • cyrus-sasl cyrus-sasl-plain dovecot m4 make sendmail-cf< sendmail Instalación a través de yum. yum remove cyrus-sasl-gssapi cyrus-sasl-md5 56. donde deberá elegir entre postfix. 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. Sí este es el caso. y sendmail como MTA predeterminado del sistema: 417 .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 56. De igual manera. si estuviese instalado. se utiliza para conmutar el servicio de correo electrónico del sistema. alternatives --config mta Lo anterior devolverá una salida similar a la siguiente. elimine el paquete cyrus-sasl-gssapi. Definiendo Sendmail como agente de transporte de correo predeterminado. elimine el paquete cyrus-sasl-md5. o versiones posteriores de éstos. Mail Transport Agent). ejecute lo siguiente desde una terminal. Sólo es necesario utilizar éste si previamente estaban instalados Postfix o Exim. ya que este utiliza los métodos de autenticación CRAM-MD5. Procedimientos. y elegir qué programa utilizar. seleccionado éste. Si se utiliza de CentOS 5. El mandato alternatives. Equipamiento lógico necesario. mismo que requeriría de la base de datos de cuentas de usuario de un servidor Kerberos. mismos que requerían asignar las claves de acceso para SMTP a través del mandato saslpasswd2. y Digest-MD5. o Red Hat Enterprise Linux 5.3. y el valor mta.

o /sbin/nologin como intérprete de mandatos. 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. detenga éste (es el MTA predeterminado en CentOS 6. LOGIN. como se muestra a continuación: passwd usuario Ejecutando lo anterior. se hace exactamente igual que con cualquier otra cuenta de usuario del sistema. pude hacerse del siguiente modo: useradd -s /sbin/nologin fulano La asignación de claves de acceso. e IMAP. o bien el método LOGIN. o escriba el número de la selección: 2 Si estuviera presente postfix. Prefiera utilizar buenas claves de acceso. POP3. 418 . a través de cualquier método (PLAIN. Selección Comando ----------------------------------------------1 /usr/sbin/sendmail. y LOGIN. y Red Hat Enterprise Linux 6) e inicie el servicio sendmail: service postfix stop chkconfig postfix off service sendmail start chkconfig sendmail on 56. e inicie. y de este modo evitará problemas de seguridad. La autenticación para SMTP.postfix *+ 2 /usr/sbin/sendmail. utilizando el método PLAIN. requiere se active.sendmail Presione Intro para mantener la selección actual[+]. o bien CRAM-MD5.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Hay 2 programas que proporcionan 'mta'.2. con opción a utilizar también Digest-MD5.3. con confirmación. y asignación de claves de acceso. Alta de cuentas de usuario. Sendmail utilizará el servicio saslauthd para autenticar a los usuarios a través de los métodos PLAIN. o CRAM-MD5). la cual se sugiere se asigne /dev/null. para permitir autenticar a través de SMTP. El alta de las cuentas del usuario en el sistema. Digest-MD5. el sistema solicitará se ingrese una clave de acceso.

3.tld dominio3. Edite el archivo /etc/mail/local-host-names.tld 56. Técnicamente tendrá el mismo contenido de /etc/mail/local-host-names. puede hacerse a través del mandato saslpasswd2 del siguiente modo.tld dominio3. y versiones posteriores de éstos). dominio1. a menos que se desee excluir algún dominio en particular.tld dominio4.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Nota. Dominios a administrar.tld dominio2. en sistemas con versión de Sendmail compilada contra SASL-2 (Red Hat™ Enterprise Linux 5. vim /etc/mail/local-host-names Establezca los dominios locales que serán administrados: dominio1. 56.3. edite el archivo /etc/mail/access: vim /etc/mail/access 419 . a través de métodos cifrados (CRAM-MD5. La asignación de claves de acceso para autenticar SMTP.tld dominio2. y DIGEST-MD5).3. o bien se trate de servidor de correo secundario para otro dominio en otro servidor.4. el cual requiere 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. tomando en consideración de Outlook carece de soporte para autenticar claves de acceso a través de este método. Control de acceso Para definir las listas de control de acceso.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. CentOS 5.tld dominio4.

siendo que permitiría el envío. Puede definir también una lista negra de direcciones de correo. o bien cuentas de correo electrónico con permisos de re-transmisión sin restricciones. • • Jamás configure una segmento completo de red local con RELAY. Cualquier elemento que vaya acompañada de REJECT. dominios. o troyanos. o bien cantidades extraordinarias de spam. de correo electrónico infectado. y re-transmitir éste sin restricción alguna. sin restricciones. se magnifiquen. Ejemplo de configuración para el archivo /etc/mail/access: 420 .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). Cualquier elemento que vaya acompañada de OK. gusanos. a las que se desee denegar el acceso. Puede incluir la lista direcciones IP. Considere que: • Cualquier elemento que vaya acompañada de RELAY. tendrá prohibida cualquier tipo de comunicación de correo electrónico. o con permiso de acceso para enviar correo sólo a cuentas locales. ya que dejaría de tener sentido utilizar autenticación a través de SMTP. y direcciones IP. tendrá permitido enviar correo electrónico. pero sólo a las cuentas locales. y potencialmente podría permitir que los problemas de seguridad de maquinas infectadas con virus. Nota. tendrá permitido enviar correo electrónico. originadas por los equipos cuya seguridad se haya visto comprometida. dominios. sin necesidad de autenticar. sin necesidad de autenticar.

pero acaba con entre el 60%.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Connect:localhost.2. # Las redes involucradas abarcan Australia.70.5.168. Es peligroso autenticarse con la cuenta de root.localdomain RELAY Connect:localhost RELAY Connect:127.24 OK Connect:192. China. Se recomienda definir alias para la cuenta de root. Japón.2. sólo para revisar los mensajes de correo electrónico originados por el sistema.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. Taiwan. y 80% # del Spam. Connect:192.6 REJECT # # Bloques de Asia Pacific Networks.com.168.53 RELAY # # Direcciones IP que sólo podrán entregar correo de forma local.168.168.0.1 RELAY # # Dirección IP del propio servidor.5. Corea del Sur.70. Alias de la cuenta de root.3. 222 REJECT 221 REJECT 220 REJECT 219 REJECT 218 REJECT 212 REJECT 211 REJECT 210 REJECT 203 REJECT 202 REJECT 140.70. # Hong Kong e India por lo que bloquear el correo de dichas redes significa # cortar comunicación con estos países.mx REJECT 10. a través de cualquier tipo de red. Connect:192.23 OK Connect:192.com REJECT productoinutil. # no pueden enviar correo fuera del propio servidor.0. ISP desde el cual se emite la mayor # parte del Spam del mundo.109 REJECT 133 REJECT 61 REJECT 60 REJECT 59 REJECT 58 REJECT 56.2.168.4. Connect:192. es decir. Edite el archivo /etc/aliases: vim /etc/aliases Al final de éste.52 RELAY Connect:192. defina a que cuenta de usuario regular le será entregado el correo electrónico originalmente destinado a root: 421 .25 OK # # Lista negra usuario@molesto. hacia la cual se entregará todo el correo electrónico originalmente dirigido a root.168.

mc. $b')dnl dnl # dnl # default logging level is 9. `9')dnl Si guarda los cambios.mc 56.dominio.1. y para verificar que la sintaxis esté correcta.tld..dominio.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux root: fulano Para convertir el archivo /etc/aliases en /etc/aliases.tld closing connection Connection closed by foreign host. Descomente lo siguiente en el archivo /etc/mail/sendmail. edite el archivo /etc/mail/sendmail. Es posible ocultar el nombre. debe devolver una salida similar a la siguiente: /etc/aliases: 77 aliases.3.1 25 Trying 127. vim /etc/mail/sendmail. Escape character is '^]'. confSMTP_LOGIN_MSG.db.0. y la versión de Sendmail. Este parámetro permite establecer el mensaje de bienvenida al establecer la conexión al servidor. $ 422 . Connected to mail.3. que es el archivo. Funciona de manera sencilla. el determinar que vulnerabilidad específica aprovechar. en formato de base de datos.`$j Sendmail. o bien si existen aliases duplicados. lo anterior hará que se devuelva una salida similar a la siguiente: $ nc 127.6. dnl # define(`confSMTP_LOGIN_MSG'. sea incapaz determinar qué versión de Sendmail se está utilizando. reinicia el servicio sendmail. Para definir. que utilizará sendmail.0. quien establezca una conexión hacia el servidor.dominio. haciendo que. o abusador del servicio.tld ESMTP Sendmail .0. o añadir funciones.6. 17 May 2004 02:22:29 -0500 quit 221 2. cambiar.mc: dnl # dnl # Do not advertize sendmail version. Mon. 220 mail. ésto con el objeto de agregar seguridad por oscuridad. 777 bytes total 56.. longest 10 bytes. y realiza una conexión al puerto 25. you might want to set it higher to dnl # debug the configuration dnl # dnl define(`confLOG_LEVEL'.1. y con ésto dificultar a un delincuente.0.0 mail.0. ejecute el siguiente mandato: newaliases Lo anterior. Configuración de funciones de Sendmail.

Sin embargo. though Outlook Express and other MUAs do dnl # use LOGIN. los cuales transmiten el nombre de usuario.noexpn. utilizando el método PLAIN.3.6. dnl # TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl define(`confAUTH_MECHANISMS'. dnl # Please remember that saslauthd needs to be running for AUTH. y Outlook Express). Nota.2. se requieren des-comentar las siguientes dos líneas del archivo /etc/mail/sendmail. La siguiente línea viene habilitada de modo predeterminado. en lugar de la mencionada arriba. confAUTH_OPTIONS. por lo cual se recomienda implementar seguridad a través de SSL/TLS. dnl # The following allows relaying if the user authenticates.3. ésto también implica un enorme riesgo de seguridad. y confAUTH_MECHANISMS. TRUST_AUTH_MECH. Other mechanisms should be used if the connection is not dnl # guaranteed secure.restrictqrun')dnl define(`confAUTH_OPTIONS'.`A p')dnl dnl # dnl # PLAIN is the preferred plaintext authentication method and used by dnl # Mozilla Mail and Evolution.6. y se habilitará la función que sólo permite autenticar a través de métodos que utilicen encriptación de las claves de acceso. excepto Outlook. y DIGEST-MD5 (todos clientes de correo electrónico conocidos. `/etc/mail/userdb. a tener instalado el paquete cyrus-sasl-md5. though Outlook Express and other MUAs do dnl # use LOGIN. y Dovecot con soporte SSL/TLS. define(`UUCP_MAILER_MAX'. y DIGEST-MD5. y permitirá realizar el proceso de autenticación a través del puerto 25.» .Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 56.mc. en texto simple. `2000000')dnl define(`confUSERDB_SPEC'. and disallows dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links Para añadir la seguridad necesaria. y estudie. garantizando 100% de compatibilidad con todos los clientes de correo electrónico existentes. consulte. y asignar las claves de acceso para SMTP a través del mandato saslpasswd2.3. a través de conexiones sin cifrar (SSL/TLS). make sendmail. Esto obliga a utilizar clientes de correo electrónico con soporte para autenticación a través de CRAM-MD5.pem 423 . junto con su correspondiente clave de acceso. 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. o bien el método LOGIN. `authwarnings. and disallows dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links dnl # define(`confAUTH_OPTIONS'.db')dnl define(`confPRIVACY_FLAGS'.`A')dnl dnl # dnl # The following allows relaying if the user authenticates. Other mechanisms should be used if the connection is not 56. como sería CRAM-MD5.novrfy. Si se desea utilizar SMTP autenticado para equipos excluidos del archivo /etc/mail/access. el documento titulado «Cómo configurar Sendmail. `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5LOGIN PLAIN')dnl dnl # dnl # Rudimentary information on creating certificates for sendmail TLS: dnl # cd /etc/pki/tls/certs. Si utiliza la siguiente línea. se desactivará la función que permite la autenticación enviando las claves de acceso en texto simple.

M=Ea')dnl dnl # dnl # The following causes sendmail to additionally listen to port 465. 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.1. but dnl # starting immediately in TLS mode upon connecting.1 and not on any other network devices. dnl # DAEMON_OPTIONS(`Port=submission.0. Roaming users who can't reach their dnl # preferred sendmail daemon due to port 25 being blocked or redirected find dnl # this useful. M=Ea')dnl. y a través de IPv4 (127. dnl # DAEMON_OPTIONS(`Port=smtp. los cuales normalmente trabajan a través del puerto 25. Name=MTA')dnl dnl # dnl # The following causes sendmail to additionally listen to port 587 for dnl # mail from MUAs that authenticate.Addr=127. Sendmail escucha peticiones sólo a través de la interfaz de retorno del sistema.0. Roaming users who can't reach their dnl # preferred sendmail daemon due to port 25 being blocked or redirected find dnl # this useful.1. Para este fin. Remove the loopback dnl # address restriction to accept email from the internet or intranet. M=Ea')dnl dnl # dnl # The following causes sendmail to additionally listen to port 465.0.0.4. Name=MTA')dnl dnl # dnl # The following causes sendmail to additionally listen to port 587 for dnl # mail from MUAs that authenticate. además de la coma (. 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.6. como se ilustra a continuación. dnl # DAEMON_OPTIONS(`Port=smtp. y elimine el valor Addr=127. Remove the loopback dnl # address restriction to accept email from the internet or intranet.0.) que le antecede.0.0. Port 25 or 587 followed El puerto 587 (submission) puede ser utilizado también para envío de correo electrónico. o la LAN. Port 25 or 587 followed Examine este parámetro. dnl # DAEMON_OPTIONS(`Port=submission.1 and not on any other network devices.0. Name=MSA.3. resaltado en negrita: 424 . Name=MSA. Sólo se necesita eliminar la restricción de la interfaz de retorno para poder recibir correo desde Internet.0.1). se requiere descomentar la línea que incluye DAEMON_OPTIONS(`Port=submission. y ignorando otros dispositivos de red. De modo predefinido.0. Localice la siguiente línea resaltada: dnl # The following causes sendmail to only listen on the IPv4 loopback address dnl # 127.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 56. Name=MSA. but dnl # starting immediately in TLS mode upon connecting. DAEMON_OPTIONS.

However.3.6.0. añada aquellos deban conservar su propia máscara. pueden añadir la siguiente línea para definir la lista negra de SpamCop. but dnl # starting immediately in TLS mode upon connecting. De modo predefinido.tld')dnl MASQUERADE_EXCEPTION(`dominio3.tld')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl 56.6.6. the laptop and users on computers # that do not have 24x7 DNS do need this. y adapte el valor de MASQUERADE_AS para definir la máscara que utilizará el servidor: MASQUERADE_AS(`dominio1. o Spam).tld')dnl MASQUERADE_EXCEPTION(`dominio4. Name=MTA')dnl dnl # dnl # The following causes sendmail to additionally listen to port 587 for dnl # mail from MUAs that authenticate.0. y justo arriba de MAILER(smtp)dnl: 425 .1 and not on any other network devices.tld')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl Si se van a administrar múltiples dominios. Port 25 or 587 followed 56. sólo se necesita comentar esta configuración precediendo un dnl. Enmascaramiento. Des-comente las siguientes tres líneas.tld')dnl MASQUERADE_EXCEPTION(`dominio2.mc. M=Ea')dnl dnl # dnl # The following causes sendmail to additionally listen to port 465. dnl # DAEMON_OPTIONS(`Port=smtp. utilizando el parámetro MASQUERADE_EXCEPTION del siguiente modo: MASQUERADE_AS(`dominio1.3. 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. # FEATURE(`accept_unresolvable_domains')dnl # FEATURE(`relay_based_on_MX')dnl # 56. 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. casi al final del archivo /etc/mail/sendmail.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. Remove the loopback dnl # address restriction to accept email from the internet or intranet.7. Roaming users who can't reach their dnl # preferred sendmail daemon due to port 25 being blocked or redirected find dnl # this useful.6. Name=MSA. como una forma de permitir el correo del propio sistema en una computadora de escritorio. o una computadora portátil.3.5. Si se desea utilizar listas negras para mitigar el correo chatarra (spam). está se utiliza el parámetro FEATURE(`accept_unresolvable_domains'). FEATURE(`accept_unresolvable_domains'). dnl # DAEMON_OPTIONS(`Port=submission. Control del correo chatarra (spam) a través de DNSBLs.net.

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

y clamav-update. Configuración simple para Antivirus y Antispam. Asumiendo que tiene configurados los almacenes YUM de Alcance Libre. se agrega al inicio del sistema del siguiente modo: chkconfig dovecot on Para iniciar el servicio dovecot. clamav. se ejecuta lo siguiente: service dovecot restart El servicio sendmail se agrega al inicio del sistema. utilizando el mandato tail. en cualquiera de las versiones de los sistemas operativos mencionados. yum -y install spamassassin clamav clamav-update Active las siguientes políticas de SELinux: 427 . instale los paquetes spamassassin. con la opción -f. sobre el archivo /var/log/maillog. Para detectar posibles errores. o PLAIN. se ejecuta lo siguiente: service dovecot start Para aplicar cambios en la configuración del servicio dovecot. ejecutando lo siguiente: chkconfig sendmail on Para iniciar el servicio sendmail.3. y sendmail. El servicio dovecot. 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. Añadir al inicio del sistema e iniciar servicios dovecot. como se muestra a continuación: tail -f /var/log/maillog 56.8.3. se puede examinar el contenido de la bitácora de correo electrónico del sistema.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 56.9. se ejecuta lo siguiente: service sendmail start Para reiniciar servicio sendmail.

#LOGFILE=/var/log/procmail. AV_REPORT=`/usr/bin/clamscan --stdout --no-summary .net/body. :0fw | formail -i "X-Virus: $VIRUS" # Si el mensaje es positivo a virus.phtml?nIdNoticia=1978 # y adecuada. ejecutando lo siguiente: sa-update -v Lo anterior deberá indicar qué componentes de Spamassassin fueron actualizados. else echo No. Nota. :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 428 . y actualizada. ejecutando lo siguiente: freshclam Actualice el conjunto de reglas de Spamassassin. Para optimizar y extender el funcionamiento de Spamassassin.| cut -d: -f 2` VIRUS=`if [ "$AV_REPORT" != " OK" ]. then echo Yes. por Joel Barrios Dueñas. se cambia el asunto. genere el archivo /etc/procmailrc: touch /etc/procmailrc Edite el archivo /etc/procmailrc: vim /etc/procmailrc Añada el siguiente contenido: 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 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.fi` # Añade el campo de reporte ClamAV.log # Configuración basada sobre http://bulma. descomente lo siguiente. estudie el documento titulado «Cómo instalar y configurar Spamassassin.» Utilizando el mandato touch.

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

y actualizada. es necesario abrir los puertos 25 (smtp).4. puede enviar los mensajes infectados a /dev/null.DO NOT REMOVE 430 .587 ACCEPT all fw tcp 110. el filtrado de spam. 465 (smtps).fi` # Añade el campo de reporte ClamAV. 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 all fw tcp 25. #LOGFILE=/var/log/procmail.143. se cambia el asunto. y que los mensajes infectados con virus sean movidos a la carpeta de correo ~/mail/Virus. # 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 Si tiene interés en mejorar. then echo Yes. necesita que todos los mensajes de Spam sean movidos automáticamente a la carpeta de correo ~/mail/Spam. y optimizar. 993 (imaps).| cut -d: -f 2` VIRUS=`if [ "$AV_REPORT" != " OK" ]. siempre abra los puertos del cortafuegos hasta después de finalizar la configuración del servidor de correo electrónico.phtml?nIdNoticia=1978 # y adecuada. 143 (imap). 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. por Joel Barrios Dueñas. :0fw * ^X-Virus: Yes | formail -i "Virus: $AV_REPORT" -i "Subject: MENSAJE CON VIRUS: $AV_REPORT" $HOME/mail/Virus # Si lo desea.» 56.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Si.465. Si utiliza Shorewall. Para el funcionamiento normal de un servicio de correo electrónico estándar. y 587 (submission). y que haya comprobado las configuraciones.log # Configuración basada sobre http://bulma. else echo No. descomente lo siguiente. además. Como medida de seguridad. AV_REPORT=`/usr/bin/clamdscan --stdout --no-summary . consulte el documento titulado «Cómo instalar y configurar Spamassassin. así como los puertos 110 (pop3).993. y 995 (pop3s). :0fw | formail -i "X-Virus: $VIRUS" # Si el mensaje es positivo a virus.995 #LAST LINE -.net/body. Modificaciones necesarias en el muro cortafuegos.ADD YOUR ENTRIES BEFORE THIS ONE -.

5. Se recomienda consultar los documentos titulados «Cómo configurar Sendmail.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Al terminar de configurar las reglas para Shorewall. reinicie el muro cortafuegos. Lecturas posteriores. y Dovecot con soporte SSL/TLS». y «Configuración avanzada de Sendmail. ejecutando el siguiente mandato: service shorewall restart 56.» 431 .

1 © 1999-2011 Joel Barrios Dueñas.). como propuesta para el proceso de firmas digitales. Este último se encarga de verificar que la ruta de un certificado sea válida bajo una infraestructura de clave pública determinada. Al reutilizar o distribuir la obra. URL: http://es.509. establece los estándares para certificados de claves públicas y un algoritmo para validación de ruta de certificación. Introducción. RSA es utilizado ampliamente en todo el mundo para los protocolos destinados para el comercio electrónico. acrónimo de los apellidos de sus autores. publicado el 30 de agosto de 1991. desde el certificado inicial. o Public Key Infrastructure). b) No puede utilizar esta obra para fines comerciales. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. URL: http://es.org/wiki/RSA 57. 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.1. pasando por certificados intermedios. Cómo configurar Sendmail y Dovecot con soporte SSL/TLS. X. Autor: Joel Barrios Dueñas Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www. Acerca de RSA.wikipedia. Es decir.3.1. c) Si altera o transforma esta obra. patentado en EE.1. o Certification Authority). Este documento requiere la lectura y comprensión previa del documento titulado «Configuración básica de Sendmail. 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. Acerca de DSA. es un algoritmo para el ciframiento de claves públicas que fue publicado en 1977. Adi Shamir y Len Adleman.1. RSA.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 57. 57.509 es un estándar ITU-T (estandarización de Telecomunicaciones de la International Telecommunication Union ) para infraestructura de claves públicas (PKI. o genera una obra derivada.2. URL: http://es.alcancelibre. Se utiliza para firmar información.» 57.org/wiki/X. Acerca de X. Entre otras cosas. más no para cifrar ésta. Usted es libre de copiar. 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. tiene que dejar bien claro los términos de la licencia de esta obra. en 1983 por el el Instituto Tecnológico de Michigan (MIT).UU.1. sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. hasta el certificado de confianza emitido por una Autoridad Certificadora (CA. Ron Rivest.509 432 .wikipedia.wikipedia.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.UU.org/wiki/DSA 57.

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

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

A..com Email Address []:webmaster@dominio. the field will be left blank.2.. dominio.mc a fin de que Sendmail utilice la clave y certificado recién creados: 435 .com si se planea acceder hacia el mismo servidor con diferentes subdominios del mismo dominio. company) [My Company Ltd]:Empresa. openssl x509 -subject -fingerprint -noout -in certs/dovecot. your name or your server's hostname) []: *. de C.2...2..dominio. What you are about to enter is what is called a Distinguished Name or a DN.dominio....'.pem certs/dovecot. There are quite a few fields but you can leave some blank For some fields there will be a default value.pem' ----You are about to be asked to enter information that will be incorporated into your certificate request.++++++ writing new private key to 'dovecot.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. If you enter '.pem Regrese al directorio de inicio del usuario root.2.dominio.com. section) []:Direccion Comercial Common Name (eg. lo anterior solicitará se ingresen varios datos. city) [Newbury]:Mexico Organization Name (eg. cd 57. Es por eso que se sugiere utilizar *. Parámetros de /etc/mail/sendmail.com como servidor POP3 o IMAP con soporte TLS desde el cliente de correo electrónico. La salida devuelta debe similar a la siguiente: Generating a 1024 bit RSA private key .com). 57. por mencionar un ejemplo. S.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. ----Country Name (2 letter code) [GB]:MX State or Province Name (full name) [Berkshire]:Distrito Federal Locality Name (eg... sólo podrá utilizarlo cuando se defina mail.++++++ ...V. 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.com Nuevamente.. 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. Organizational Unit Name (eg. Configuración de Sendmail. Funcionará incorrectamente si se invoca al servidor como. conviene añadir una huella distintiva indubitable (fingerprint) al certificado. si definió un nombre de anfitrión absoluto (ejemplo: mail.1..dominio.mc. Es decir..

1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux define(`confCACERT_PATH'. puede ser también utilizado para envío de correo electrónico. resaltado en negrita: dnl # The following causes sendmail to only listen on the IPv4 loopback address dnl # 127. dnl # DAEMON_OPTIONS(`Port=smtp. 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.0.1.1 and not on any other network devices. y obligatorio si se hacen a través del puerto 465. El puerto 587 (submission).`/etc/pki/tls/certs/smtp. A fin de que surtan efecto los cambios. M=s')dnl.`/etc/pki/tls/private/smtp. but dnl # starting immediately in TLS mode upon connecting. se debe descomentar la línea que contiene DAEMON_OPTIONS(`Port=smtps. Roaming users who can't reach their dnl # preferred sendmail daemon due to port 25 being blocked or redirected find dnl # this useful.key')dnl El acceso cifrado con TLS es opcional si se realizan conexiones a través del puerto 25. M=s')dnl dnl # dnl # The following causes sendmail to additionally listen on the IPv6 loopback dnl # device. es necesario reiniciar el servicio sendmail.0. como se muestra a continuación.STARTTLS support is available in version 1. a través de TCP. Remove the loopback dnl # address restriction to accept email from the internet or intranet.`/etc/pki/tls/certs')dnl define(`confCACERT'. but roaming clients using Outlook Express can't dnl # do STARTTLS on ports other than 25.crt')dnl define(`confSERVER_CERT'. Evolution <1. MS Outlook Express carece de soporte para usar TLS a través del puerto 587.1. dnl # DAEMON_OPTIONS(`Port=submission. dnl # dnl # For this to work your OpenSSL certificates must be configured.`/etc/pki/tls/certs/ca-bundle. Name=MSA. A fin de habilitar el puerto 465 (smtps). pero el resto de los clientes de correo electrónico con soporte TLS si lo tienen.crt')dnl define(`confSERVER_KEY'. Remove the loopback address restriction listen to the network. M=Ea')dnl dnl # dnl # The following causes sendmail to additionally listen to port 465. Mozilla Mail can ONLY use STARTTLS dnl # and doesn't support the deprecated smtps. Name=MTA')dnl dnl # dnl # The following causes sendmail to additionally listen to port 587 for dnl # mail from MUAs that authenticate.1 uses smtps dnl # when SSL is enabled-. service sendmail restart 436 . Port 25 or 587 followed dnl # by STARTTLS is preferred. Name=TLSMTA. dnl # DAEMON_OPTIONS(`Port=smtps. Name=TLSMTA.

0.x.2.1 25 220 dominio. just make sure to update the domains in dovecot-openssl. deberá ser posible autenticar. o bien el mandato telnet. una línea que indica STARTTLS. 57. 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 Pasa salir. 19 Jun 2010 18:18:02 -0500 ehlo dominio. Comprobación.com 250-dominio. La salida puede ser similar a la siguiente: nc 127.d/10-ssl.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 57. Configuración de Dovecot.txt> ssl = yes # PEM encoded X.pem ssl_key = </etc/pki/dovecot/private/dovecot. so keep the key file unreadable by anyone but # root. deberá especificarse conexión por TLS. al puerto 25 del sistema.pem A fin de que surtan efecto los cambios. La salida deberá devolver. 57. <doc/wiki/SSL. es necesario reiniciar el servicio dovecot. Tras aceptar el certificado. con nombre de usuario y clave de acceso. required. Included doc/mkcert. Al realizar la configuración del cliente de correo electrónico.0. They're opened before # dropping root privileges.2.0.localdomain [127.3. y descomente las siguientes líneas resaltadas en negrita: # SSL/TLS support: yes. y por lo cual cambia radicalmente la configuración respecto de la versión 1.conf. Sat.0.1.1].0. sólo escriba QUIT y pulse la tecla ENTER. CentOS 6 y Red Hat Enterprise Linux 6 utilizan la versión 2.509 SSL/TLS certificate and private key.2. Edite el archivo /etc/dovecot/conf.cnf ssl_cert = </etc/pki/dovecot/certs/dovecot.sh can be used to easily generate self-signed # certificate. utilizada en CentOS 5 y Red Hat Enterprise Linux 5.2.3.0 de Dovecot. Configuración de Dovecot en CentOS 6 y Red Hat Enterprise Linux 6. entre todas las funciones del servidor.com ESMTP Sendmail .com Hello localhost. service dovecot restart 437 . Realice una conexión con el mandato nc (netcat). y enviar correo electrónico. no.2. Ingrese el mandato EHLO con el dominio configurado.

2. service dovecot restart 57. Comprobaciones.conf Asegúrese que el parámetro protocols estén establecidos como valores: imap imaps pop3 pop3s. Verifique que el parámetro ssl_disable tenga el valor no.pem ssl_key_file = /etc/pki/dovecot/private/dovecot.pem A fin de que surtan efecto los cambios.3. definiendo el nombre del servidor utilizado para crear el certificado. el sistema deberá permitir autenticar. Edite el archivo /etc/dovecot.conf: vim /etc/dovecot. nombre de usuario. protocols = imap imaps pop3 pop3s De modo predeterminado. Configuración de GNOME Evolution. 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). la configuración de IMAP o POP3 se realiza seleccionando el tipo de servidor. Para GNOME Evolution.1. 57. y realizar la lectura del correo electrónico. del siguiente modo: ssl_cert_file = /etc/pki/dovecot/certs/dovecot. #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. 438 . o bien sólo esté comentado. y usar encriptación segura TLS. Tras aceptar el certificado del servidor.2.3. Configuración de Dovecot en CentOS 5 y Red Hat Enterprise Linux 5. el soporte SSL de Dovecot está activo. con nombre de usuario y clave de acceso. es necesario reiniciar el servicio dovecot.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 57.3.

439 . en GNOME Evolution. 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). Se hace lo mismo para la configuración de SMTP (utilizar conexión segura TLS).Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Configuración IMAP.

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

Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Configuración IMAP. Mozilla Thunderbird. 441 . 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). Configuración SMTP. Se hace lo mismo para la configuración de SMTP (utilizar conexión segura TLS).

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

1 © 1999-2011 Joel Barrios Dueñas.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.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. `dnl')dnl FEATURE(`smrsh'. y Dovecot con soporte SSL/TLS. c) Si altera o transforma esta obra.mc: define(`confTO_IDENT'.`hash -o /etc/mail/virtusertable. `/usr/sbin/smrsh')dnl FEATURE(`virtusertable'. Edite el archivo /etc/mail/virtusertable: vim /etc/mail/virtusertable 443 . Configuración avanzada de Sendmail. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Este documento requeire la lectura previa de los documentos titulados «Introducción a los protocolos de correo electrónico». 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. y «Cómo configurar Sendmail. Usted es libre de copiar. se deben añadir los siguientes parámetros resaltados. permitiendo que los usuarios envíen. Antes de continuar.1. de determinados usuarios. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original.2.alcancelibre. justo debajo de la función de virtusertable del archivo /etc/mail/sendmail. o genera una obra derivada.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 58.» 58. correo electrónico.com sitio de Red: http://www. 58. b) No puede utilizar esta obra para fines comerciales. Autor: Joel Barrios Dueñas Correo electrónico: darkshram@gmail. «Configuración básica de Sendmail». `0')dnl dnl FEATURE(delay_checks)dnl FEATURE(`no_default_msa'. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Usuarios Virtuales.db')dnl FEATURE(`genericstable'. y reciban. Si se desea brindar un servicio de hospedaje de dominios virtuales.`hash -o /etc/mail/genericstable. 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. utilizando sus propios dominios. Al reutilizar o distribuir la obra.

ejecutando el siguiente guión.com Para efectos prácticos.com. y el correo de webmaster@dominio2. o eliminar.com mengano perengano Para hacer que el correo electrónico del usuario mengano salga del servidor como webmaster@dominio1. que dos o más usuarios emitan mensajes con la misma cuenta de correo electrónico. es necesario definir en el archivo /etc/mail/genericstable.net webmaster@dominio2. se puede mantener sincronizados ambos archivos. dominio. y /etc/mail/genericstable.net. el cual se encargará de pasar el texto desde el archivo /etc/mail/virtusertable.net webmaster@dominio2. más los dominios que vayan a ser gestionados como dominios virtuales. hacia el archivo /etc/mail/genericstable. en el buzón del usuario perengano: webmaster@dominio1. y que el del usuario perengano salga como webmaster@dominio2. 444 . como actualizar. el contenido contrario del archivo /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.com Invariablemente los archivos /etc/mail/virtusertable. deben actualizarse con el contenido de /etc/mail/virtusertable.db. trabajando directamente con /etc/mail/virtusertable.net dominio2. y poder tener todo mejor organizado.net en la cuenta mengano. 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. 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. cuentas de correo virtuales. o bien. con el orden invertido de las columnas. respectivamente. a fin de poder alinear los registros.db. En el ejemplo a continuación. 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.com dominio1. se entrega el correo de webmaster@dominio1. añadir. del siguiente modo: mengano perengano webmaster@dominio1. cada vez que se se realicen cualquier tipo de cambio.com.

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

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

.1.dominio [172.13.dominio closing connection Connection closed by foreign host.16.16.1.dominio Obtendrá una salida similar a esta: 250 nombre.1.50 25 Trying 172. 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.dominio (172.1.16.50]. Escape character is '^]'.dominio closing connection Connection closed by foreign host.1. pleased to meet you EHLO nombre.dominio Hello nombre.dominio 250-nombre.16. pleased to meet you Ejecute el mandato EHLO seguido del nombre del anfitrión: EHLO nombre.50].0.16. Connected to nombre. 5 Mar 2006 21:45:51 -0600 HELO nombre.0 nombre.16. Sun.50].dominio Obtendrá una salida similar a ésta. 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. 447 .1.16.dominio Hello nombre.dominio [172.dominio ESMTP Sendmail 8.50). 220 nombre.1. QUIT El servidor deberá contestar lo siguiente al terminar la conexión: 221 2.dominio [172. La salida completa de todo el procedimiento anterior debe lucir similar a esto (mandatos utilizados resaltados en negrita): [fulano@nombre ~]$ nc 172.1/8.dominio 250 nombre.50].0.1. y que mostrará las funciones del servidor: 250-nombre.13.dominio Hello nombre.dominio Hello nombre.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux HELO nombre.50.dominio [172.0 nombre..

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

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

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

De modo predefinido Sendmail no establece tiempo de letargo. De modo predefinido Sendmail establece un máximo de 256 destinatarios. Al reutilizar o distribuir la obra. confMAX_RCPTS_PER_MESSAGE Este parámetro sirve para establecer un número máximo de destinatarios para un mensaje de correo electrónico. 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.mc justo debajo de la última línea que incluya define y arriba de la primera línea que incluya FEATURE.com sitio de Red: http://www. Introducción. 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.1. Debido a la naturaleza del correo electrónico.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 59. distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. Usted es libre de copiar. 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. es posible para un atacante inundar fácilmente el servidor y desencadenar en una denegación de servicio. Añadir opciones avanzadas de seguridad se convierte en algo indispensable. Opciones avanzadas de seguridad para Sendmail. `2')dnl 451 . sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. o genera una obra derivada. c) Si altera o transforma esta obra. 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'. 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.2.org/ Creative Commons Reconocimiento-NoComercial-CompartirIgual 2. Autor: Joel Barrios Dueñas Correo electrónico: darkshram@gmail. 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. 59. tiene que dejar bien claro los términos de la licencia de esta obra.2.2. 59.1.alcancelibre. `20')dnl 59. En el siguiente ejemplo se limitará el número de destinatarios a 20: define(`confMAX_RCPTS_PER_MESSAGE'. Funciones. Todas las funciones explicadas a continuación pueden incluirse en el archivo /etc/mail/sendmail.2. 59.

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

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

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

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

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

y certificado. o razón social. se establece una validez por 1095 días (tres años) para el certificado creado. y estructura x509. 60. pueden utilizar una firma digital creada con algoritmo DSA de 1024 octetos.crt -keyout private/smtp. Ciudad. La salida devuelta sería similar a la siguiente: 457 . o provincia. Estado. Unidad.key Lo anterior solicitará se ingresen varios datos: • • • • • • • Código de dos letras para el país. Nombre del anfitrión. se crea primero un archivo de parámetros DSA: openssl dsaparam 1024 -out dsa1024. Acceda al directorio /etc/pki/tls/. se utiliza este archivo de parámetros DSA para crear una llave con algoritmo DSA. Nombre de la empresa. o sección. Generando firma digital. pues se volvió innecesaria.pem A continuación. y Postfix. En el ejemplo a continuación. así como también el correspondiente certificado. esta política dejó de existir. es necesario habilitar la siguiente política: setsebool -P mail_read_content 1 En CentOS 6.3. Dirección de correo.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux Solo en CentOS 5. cd /etc/pki/tls/ Los servidores de correo electrónico. y Red Hat Enterpise Linux 6.1.pem -days 1095 -out certs/smtp.2. openssl req -x509 -nodes -newkey dsa:dsa1024. Para tal fin. como Sendmail. y Red Hat Enterpise Linux 5. a fin de que SELinux permita la lectura de correo electrónico.

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

S....1. the field will be left blank..3. La salida devuelta debe similar a la siguiente: Generating a 1024 bit RSA private key . 60. el certificado solo será válido cuando el servidor de correo electrónico sea invocado con el nombre definido en el campo Common Name. y certificados tengan permisos de acceso de solo lectura para el usuario root: chmod 400 private/dovecot. Funcionará incorrectamente si se invoca al servidor como.cf: vim /etc/postfix/master.dominio.. Es indispensable que todos los archivos de claves.com Nuevamente. company) [My Company Ltd]:Empresa.'.dominio.A. Es decir.com).. your name or your server's hostname) []: *.. Configuración de Postfix. solo podrá utilizarlo cuando se defina mail.... If you enter '..3.++++++ writing new private key to 'dovecot. What you are about to enter is what is called a Distinguished Name or a DN. lo anterior solicitará se ingresen varios datos. si definió un nombre de anfitrión absoluto (ejemplo: mail..pem certs/dovecot. de C. Organizational Unit Name (eg. debe descomentar las siguientes líneas resaltadas en negrita: 459 . o IMAP.cf Si utiliza CentOS 5.com como servidor POP3.V. Es por eso que se sugiere utilizar *. There are quite a few fields but you can leave some blank For some fields there will be a default value.com Email Address []:webmaster@dominio.++++++ .3. o Red Hat Enterprise Linux 5.dominio.dominio. por mencionar un ejemplo.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. Archivo de configuración /etc/postfix/master.pem Regrese al directorio de inicio del usuario root.pem' ----You are about to be asked to enter information that will be incorporated into your certificate request. con soporte TLS desde el cliente de correo electrónico..com. Editar el archivo /etc/postfix/master. ----Country Name (2 letter code) [GB]:MX State or Province Name (full name) [Berkshire]:Distrito Federal Locality Name (eg..3..com si se planea acceder hacia el mismo servidor con diferentes subdominios del mismo dominio. dominio.cf. section) []:Direccion Comercial Common Name (eg. cd 60. city) [Newbury]:Mexico Organization Name (eg.

com. y que se va a utilizar para gestionar el correo electrónico de dominio.com.3.reject Si utiliza CentOS 6.cf: vim /etc/postfix/main. Archivo de configuración /etc/postfix/main.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. y asumiendo que el nombre de anfitrión del servidor es mail. solo se deben localizar.dominio. o Red Hat Enterprise Linux 6. se debe editar el archivo /etc/postfix/main.3.reject smtps inet n n smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated.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.cf Respetando el resto del contenido original de este archivo.reject -o milter_macro_daemon_name=ORIGINATING 60. y configurar los siguientes parámetros: 460 . 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.cf. A continuación.2.

1. 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. mydomain = dominio. # De modo predeterminado solo trabaja por la interfaz de retorno del sistema # (loopback).0. smtpd_tls_key_file = /etc/pki/tls/private/smtp. es decir.com # Definir el dominio principal a gestionar. $mydomain.0/24 mynetworks = 192. y firma digital creados.1 #inet_interfaces = localhost inet_interfaces = all # Si se van a manejar más dominios de correo electrónico. añadirlos también.com myorigin = $mydomain # Definir se trabaje por todas las interfaces.cf # smtpd_tls_security_level = may smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.168.dominio. mydestination = $myhostname. mailbox_command = /usr/bin/procmail # Todo lo siguiente está ausente en la configuración.0/8 # Si se van a manejar más dominios de correo electrónico.0. # Añadir todo al final del archivo main.0. añadirlos también.reject_unauth_destination A fin de ahorrar tiempo realizando búsqueda de los parámetros anteriores. 127.localdomain. # Definir el nombre de anfitrión del sistema (hostname). ejemplo asume que tu LAN es 192. o bien modificar la línea # correspondiente que esté descomentada. todo lo anterior también se puede configurar utilizando el mandato postconf.1. del siguiente modo: 461 . myhostname = mail. # smtpd_sasl_local_domain = # Solo como referencia.0/24. solo escucha peticiones a través de sobre 127.168.permit_mynetworks. localhost. localhost # Definir tus redes locales.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux # Todo lo siguiente solo requiere descomentarse.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.crt # Las rutas deben corresponder a las del certificado. relay_domains = $mydestination # Importante para poder utilizar procmail para filtrar correo.key smtpd_tls_cert_file = /etc/pki/tls/certs/smtp.0.

se deben activar todos los servicios (imap. y pop3s). que como ejemplo entrega el correo del usuario root al usuario marc. Archivo de configuración /etc/aliases. 60. localhost' postconf -e 'mynetworks = 192.3. se ejecuta el mandato postalias para generar el archivo /etc/aliases. y Red Hat Enterprise Linux 5. localhost.0.1.0. y definir un usuario existente en el sistema #root: root: marc fulano Al terminar.com' postconf -e 'myorigin = $mydomain' postconf -e 'inet_interfaces = all' postconf -e 'mydestination = $myhostname.permit_mynetworks.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.4. $mydomain. Solo se requiere descomentar la última línea de este archivo. 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.4.1.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.reject_unauth_destination' 60. imaps.key' postconf -e 'smtpd_tls_cert_file = /etc/pki/tls/certs/smtp. pop3. Configuración de Dovecot en CentOS 5. 127.localdomain. y se prefiera en su lugar una cuenta de usuario sin privilegios.crt' postconf -e 'smtpd_tls_key_file = /etc/pki/tls/private/smtp.3.3. El objetivo de esto es que jamás se tenga necesidad de utilizar la cuenta del usuario root.3.dominio.3.conf En el parámetro protocols.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux postconf -e 'myhostname = mail.conf. Editar el archivo /etc/dovecot.168.com' postconf -e 'mydomain = dominio. protocols = imap imaps pop3 pop3s 462 .db que será utilizado por Postfix: postalias /etc/aliases 60.conf: vim /etc/dovecot. Parámetros del archivo /etc/dovecot.0/24.

conf. y Red Hat Enterprise Linux 6.pem ssl_key = </etc/pki/dovecot/private/dovecot. y Red Hat Enterprise Linux 6 utilizan la versión 2. <doc/wiki/SSL. Included doc/mkcert.pem 463 . protocols = imap pop3 y descomente el parámetro protocolos. En el archivo /etc/dovecot/conf.509 SSL/TLS certificate and private key.conf.d/10-mail. #ssl_disable = no Y se especifican las rutas del certificado.cnf ssl_cert = </etc/pki/dovecot/certs/dovecot. CentOS 6.3. Parámetros del archivo /etc/dovecot/dovecot. 60.d/10-ssl. estableciendo como valor pop3 imap lmtp.5. required. y clave a través de los parámetros ssl_cert_file. utilizada en CentOS 5. y ssl_key_file. o bien solo esté comentado. # Protocols we want to be serving.d/10-mail. Parámetros del archivo /etc/dovecot/conf. mail_location = mbox:~/mail:INBOX=/var/mail/%u establezca 60. mbox:~/mail:INBOX=/var/mail/%u como valor del parámetro mail_location.5. descomente las siguientes líneas resaltadas en negrita: # SSL/TLS support: yes.sh can be used to easily generate self-signed # certificate. y por lo cual cambia radicalmente la configuración respecto de la versión 1.conf.pem 60.3.0. y Red Hat Enterprise Linux 5.txt> ssl = yes # PEM encoded X.conf. Edite el archivo /etc/dovecot/dovecot. Parámetros del archivo /etc/dovecot/conf.x.conf. so keep the key file unreadable by anyone but # root. Configuración de Dovecot en CentOS 6.2. They're opened before # dropping root privileges.3. del siguiente modo: ssl_cert_file = /etc/pki/dovecot/certs/dovecot.5.5. just make sure to update the domains in dovecot-openssl.conf. Alrededor de la línea 30 del archivo /etc/dovecot/conf. el soporte SSL de Dovecot está activo.pem ssl_key_file = /etc/pki/dovecot/certs/dovecot.0 de Dovecot.3. 60. no.1.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux De modo predeterminado.d/10-ssl. Verifique que el parámetro ssl_disable tenga el valor no.3.

Iniciar servicios.3. es necesario abrir. y postfix: chkconfig saslauthd on chkconfig dovecot on chkconfig postfix on service saslauthd start service dovecot start service postfix restart 60.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 más eficiente para el transporte de correo entre Postfix. Editar el archivo /etc/shorewall/rules: vim /etc/shorewall/rules 464 .3. 143. Modificaciones necesarias en el muro cortafuegos. dovecot.8. como un MTA que entiende conversaciones SMTP.7. Este protocolo esta basado sobre el protocolo SMTP. POP3. # Protocols we want to be serving. Si se utiliza un cortafuegos con políticas estrictas. y 587 por TCP (SMTP. y POP3S. los puertos 465. 110. respectivamente). respectivamente). es necesario añadir el siguiente parámetro en el archivo /etc/postfix/main. protocols = imap pop3 lmtp A fin de poder hacer uso de LMTP de manera apropiada.6.0. Se deben añadir al arranque del sistema e iniciar (o reiniciar) los servicios saslauthd.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux 60. o protocolo de transporte local de correo. Puede ser utilizado como una forma alternativa. o Red hat Enterprise Linux 6. service dovecot restart service postfix restart 60. es decir Dovecot 2. Edite el archivo /etc/dovecot/dovecot.conf. podrá utilizar LMTP (Local Mail Transfer Protocol). y Submission. como por ejemplo Shorewall. además de los puertos 25. 993.3. y 995 por TCP (SMTPS. y postfix. y está diseñado como una alternativa a SMTP para situaciones donde el lado receptor carece de cola de correo (queue mail). IMAP. y Dovecot. y añada lmtp a los valores del parámetro protocolos. Si utiliza CentOS 6.6. de la siguiente forma.6. y añadir éstos al arranque del sistema. y Postfix 2. Soporte para LMTP. IMAP.

xx A a. Asumiendo que se hizo correctamente todo lo mencionado en este documento.xx corresponde a la IP del servidor de correo electrónico.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. En el DNS se requieren al menos los siguientes registros.xx.xx.com alguien. tiempo de espiración 86400 . o bien el mandato telnet. Requisitos en la zona de reenvío en el servidor DNS.DO NOT REMOVE Para que tomen efecto los cambios.4.587.c. service shorewall restart 60. La salida deberá devolver.com.xx.993. Comprobaciones. 60. A través de terminal. Número de serie 28800 . al puerto 25 del sistema. Tiempo de refresco 7200 .b. una línea que indica STARTTLS. Realice una conexión con el mandato nc (netcat). 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).9.isp.c. Ingrese el mandato EHLO con el dominio configurado. La salida puede ser similar a la siguiente: 465 . entre todas las funciones del servidor. esté apuntando hacia otra dirección IP para el servicio de correo electrónico. $TTL 86400 @ IN @ @ @ @ @ mail www ftp IN IN IN IN IN IN IN IN SOA dns1.c.algo. Tiempo total de vida ) NS dns1.3. y apunte el servicio de correo electrónico hacia la IP del servidor de correo electrónico recién configurado.995 #LAST LINE -.d A a.4.xx.1. o bien que el servidor DNS que resuelve el dominio. A a. Es indispensable que exista un DNS que resuelva correctamente el dominio.d MX 10 mail TXT "v=spf1 a mx -all" A xx.b. Tiempo entre reintentos 604800 .com ( 2010061901 .465.isp.110.143. hay que reiniciar el servicio Shorewall. NS dns2.b. donde xx.com.d 60.ADD YOUR ENTRIES BEFORE THIS ONE -.isp.

0.4. o bien POP3S (puerto 995). solo escriba QUIT.1.4.org ESMTP Postfix EHLO dominio.dominio. o POP3. Configuración de GNOME Evolution.0.2. Tras aceptar el certificado del servidor. se realiza seleccionando el tipo de servidor. y realizar la lectura del correo electrónico. definiendo el nombre del servidor utilizado para crear el certificado. 466 .alcancelibre. Utilice cualquier cliente de correo electrónico con soporte para TLS/SSL. el sistema deberá permitir autenticar. 60.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. 60. y configure éste para conectarse hacia el sistema a través de IMAPS (puerto 993).com 250-mail. Para GNOME Evolution. y clave de acceso. y pulse la tecla ENTER.2. la configuración de IMAP. nombre de usuario.Joel Barrios Dueñas Configuración de Servidores con GNU/Linux nc 127. con nombre de usuario. y usar encriptación segura TLS.1 25 220 emachine. A través de clientes de correo electrónico.

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).

467

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Configuración SMTP, GNOME Evolution.

60.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.

468

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.

469

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

60.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

470

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

61. Cómo instalar y configurar Amavisd-new con Postfix en CentOS 5.
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 autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. 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.

61.1. Introducción.
Este documento permitirá configurar Postfix para utilizar amavisd-new para el control de virus y correo spam. 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.»

61.1.1. Acerca de Amavisd-new.
Amavisd-new es una interfaz confiable y de alto desempeño entre el agente de trasporte de correo (MTA, Mail Transport Agent) y uno o más supervisores de contenido, como es el caso de supervisores anti-virus, y/o SpamAssassin. Está escrito en Perl para asegurar su alta confiabilidad, portabilidad y facilidad de mantenimiento. 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, o Protocolo de Transferencia Local de Correo), a través de programas auxiliares, con un diseño que impide se puede parder correo electrónico de manera incidental. URL: http://www.ijs.si/software/amavisd/

61.2. Equipamiento lógico necesario.
61.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

471

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

61.2.2. Configuración de depósitos YUM para CentOS 5 y Red Hat Enterprise Linux 5.
Se pueden utilizar el siguiente depósito YUM para la plataforma Enterprise Linux 5.
[AL-Server] name=Enterprise Linux $releasever - $basearch - AL Server mirrorlist=http://www.alcancelibre.org/al/el$releasever/al-server gpgkey=http://www.alcancelibre.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.

61.3. Procedimientos.
61.3.1. Configuración de SELinux.
61.3.1.1. Procedimiento para crear política.
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.alcancelibre.org/linux/secrets/amavisd.te:
wget http://www.alcancelibre.org/linux/secrets/amavisd.te

el

archivo

Editar el archivo amavisd.te:
vim amavisd.te

Verificar que el archivo amavisd.te tenga el siguiente contenido:

module amavisd 1.0; require { type traceroute_port_t; type amavis_t; type clamd_t; type spamd_t;

472

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

type initrc_var_run_t; type amavis_var_run_t; type root_t; class dir { write search add_name }; class lnk_file read; class udp_socket name_bind; class file { ioctl append read lock };

} #=============
amavis_t ============== allow amavis_t initrc_var_run_t:file { read lock }; allow amavis_t traceroute_port_t:udp_socket name_bind;

#============= #=============

clamd_t ============== allow clamd_t amavis_var_run_t:dir { write search add_name }; spamd_t ============== allow spamd_t root_t:file { ioctl append };

Crear el archivo de módulo amavisd.mod a partir del archivo amavisd.te:
checkmodule -M -m -o amavisd.mod amavisd.te

Crear el archivo de política amavisd.pp a partir del archivo amavisd.mod
semodule_package -o amavisd.pp -m amavisd.mod

Incluir la política al sistema:
semodule -i /usr/share/selinux/packages/amavisd/amavisd.pp

61.3.2. Configuración de Amavisd-new.
Editar el archivo /etc/amavisd/amavisd.conf
vim /etc/amavisd/amavisd.conf

Localizar la siguiente línea:
$mydomain = 'example.com'; # a convenient default for other settings

Cambiar por lo siguiente:
$mydomain = 'dominio.com'; # a convenient default for other settings

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

Añadir al final de éste todo lo siguiente:

473

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.0.0.1:10025 inet n n smtpd -o content_filter= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,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.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,no_unknown_recipient_checks,no_milters,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:
vim /etc/postfix/main.cf

Añadir al final de éste lo siguiente:
content_filter = amavisfeed:[127.0.0.1]:10024

Lo anterior se puede definir automáticamente en el archivo /etc/postfix/main.cf ejecutando:
postconf -e 'content_filter = amavisfeed:[127.0.0.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, ejecutar:
postalias /etc/aliases

61.3.4. Iniciar, detener y reiniciar el servicio spamass-milter.
Añadir los servicios clamd.amavisd y amavisd a los servicios de arranque del sistema:
chkconfig clamd.amavisd on chkconfig amavisd on

474

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

Iniciar los servicios clamd.amavisd y amavisd:
service clamd.amavisd start service amavisd start

Reiniciar el servicio postfix:
service postfix restart

61.3.5. Postfix con dominios virtuales y Amavisd-new.
Para poder utilizar Postfix con dominios virtuales y Amavisd-new, es indispensable editar el archivo /etc/amavisd/amavisd.conf:
vim /etc/amavisd/amavisd.conf

Y modificar los valores del parámetro @local_domains_maps. El valor predeterminado es el siguiente:
@local_domains_maps = ( [".$mydomain"] );

Se deben agregar los dominios virtuales de la siguiente manera:
@local_domains_maps
= ( [".$mydomain", "dominio.com", "otrodominio.net", "otrodominio.org"] );

Y para que surtan efecto los cambios, se debe reiniciar el servicio amavisd:
service amavisd restart

475

Joel Barrios Dueñas

Configuración de Servidores con GNU/Linux

62. Cómo configurar Postfix en CentOS 5 para utilizar dominios virtuales con usuarios del 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 (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 autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. 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.

62.1. Introducción.
Este documento permitirá configurar Postfix para utilizar múltiples dominios virtuales, utilizando los usuarios locales del sistema. 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.» Se recomienda leer, estudiar y aplicar también los procedimientos descritos en el documento titulado «Cómo instalar y configurar Amavisd-new con Postfix en CentOS 5.»

62.2. Procedimientos.
62.2.1. Configuración de SELinux.
Por lo general, la mayoría de los documentos disponibles en Internet recomiendan desactivar SELinux, sin mayores argumento o explicaciones. Sin embargo, hacer ésto implica renunciar a una magnífica protección que brinda al sistema esta importante implementación de seguridad. Tengo un lema personal que me gusta citar para explicar mi opinión respecto de SELinux:
Más vale tenerlo y jamás n