Subido por jimmy carrasco

Certificacion-Linux-LPIC-1-en-10-Dias-Adolfo-Olivera

Anuncio
Tabla de contenidos
Tabla de contenidos
Guía de Estudio LPI
Acerca de la certificación LPI
1. Arquitectura del Sistema
Determinar y establecer la configuración de hardware
Introducción
Firmware
El sistema de archivos /proc
IRQs
Direcciones I/O (Direcciones de entrada y salida)
Direcciones DMA (Direct Memory Addressing)
Dispositivos coldplug y hotplug
Utilidades para detectar dispositivos hotplug
Configuración de placas PCI
Comando lspci
Comando setpci
Configuración de Dispositivos USB
Módulos del Kernel
Comando lsmod
Cargar módulos de kernel en tiempo de ejecución
Comando modprobe
Remover módulos
Proceso de Arranque
Introducción
Inicio de ejecución con el Firmware
Proceso arranque con BIOS
Proceso de Arranque con UEFI
Gestores de Arranque
Inicio de Linux con init
Obteniendo información acerca del proceso de arranque
Niveles de ejecución, apagado y reinicio del sistema
Concepto de niveles de ejecución
Modo Monousuario
Scripts de Inicio de SysV
Gestión de los servicios de los niveles de ejecución
Ajuste del nivel de ejecución por defecto
Cambiando el nivel de ejecución con init o telinit
Comando Shutdown
Sistemas de Inicio alternativos
Upstart
2
systemd
2. Instalacion del sistem a y m anejo de paquetes
Diseño del Disco Duro
Introducción
Escenario 1: Espacio de disco limitado
Escenario 2: Sistemas grandes
Función del sistema
Copias de resguardo
Espacio de SWAP
Recomendaciones generales de diseño
Instalación de un gestor de arranque
Introducción
MBR
GRUB
GRUB 2
Superbloque
Gestión de Librerías
Introducción
Tipo de Librerías
Gestión de Librerías Compartidas
Configurando la ruta global a librerías
Cambiar temporalmente la ruta a librerías
Comandos para Gestionar Librerías
Gestión de Paquetes en Debian
Introducción
Concepto de Paquetes
Sistemas de Gestión de Paquetes
Gestión de Paquetes en Debian
Comando dpkg
APT
Apt-cache
Apt-Get
dselect
Aptitude
dpkg-reconfigure
Gestión de paquetes con RPM y Yum
RPM
Nombres de paquetes en RPM
Uso de RPM
Yum
Yumdownloader
Rpm2cpio
3. Com andos GNU y UNIX
Trabajando en la línea de comando
3
Introducción a Bash
¿Que shell estoy ejecutando?
Comandos Internos
Comando history
Explorando la configuración del shell
Variables de ambiente
Obteniendo ayuda
Comando man
Comando info
Filtrado de flujos de texto
Introducción
Comandos para combinar archivos
Comando cat
Comando join
Comando paste
Comandos de transformación de archivos
Comando expand
Comando unexpand
Comando od
Comando sort
Comando split
Comando tr
Comando uniq
Comandos para formatear archivos
Comando fmt
Comando nl
Comando pr
Comandos para visualizar archivos
Comando head
Comando tail
Comando less
Comandos para resumir archivos
Comando cut
Comando wc
Manejo básico de archivos
Introducción
¿Cómo son los nombres de archivos en Linux?
Reglas de expansión con uso de comodines
Inodos
Comandos de manejo de archivos
Comando ls
Comando cp
Comando rm
Comando mv
Comando touch
4
Comando mkdir
Comando file
Código de tipo de archivos
Comando tar
Comando cpio
Comando dd
Ventajas de dd
Desventajas de dd
Compresión con gzip
Compresión con bzip
2
Flujos de datos, tuberías y redirecciones
Introducción
STDIN, STDOUT Y SDTERR
Redirigiendo entradas y salidas
Tuberías
Comando tee
Usar la salida como argumento
Crear, monitorear y matar procesos
Introducción
Procesos en primer y segundo plano
Traer un proceso al primer plano con fg
Reanudar un proceso en segundo plano con bg
Ejecutar en segundo plano con &
Ver los procesos asociados con nuestra sesión con jobs.
Ver la memoria libre del sistema con free
Ver el estado básico del sistema con uptime
Correr un comando independiente del estado de la terminal
Matando Procesos con kill
Comando killall
Modificar la prioridad de procesos en ejecución
Introducción
Comando ps
Interpretación de la salida de ps
Top: Una variante dinámica de ps
Prioridad nice
Comando nice
Comando renice
Uso de expresiones regulares para filtrar texto
Introducción
Metacaracteres
Comando grep
Comando egrep
Comando fgrep
sed
Editar texto con Vi
5
Modos de Vi
Trabajar con archivos
Moverse en el archivo
Insertar y sobrescribir texto
Eliminación de texto
Modo visual
Edición de bloques de texto
Deshacer y rehacer
Buscar
4. Dispositivos, Filesystem s y el FHS
Creación de Particiones y Filesystems
Introducción
Ventajas de usar particiones
Esquema de particiones MBR
Particiones GPT
Proceso de particionado
fdisk
Preparar una partición para uso
Sistemas de archivos nativos de Linux
Comandos para crear filesystems
Comando mke2fs
Comando mkdosfs
Comando mkswap
Comando mkfs.xfs
Comando mkfs.reiserfs
Tipos de discos
Verificar la integridad de Filesystems.
Introducción
Comando dumpe2fs
Comando xfs_info
Comando tune2fs
Comando xfs_admin
Comando debugfs
Comando fsck
Comando e2fsck (aka fsck.ext2)
Monitoreo de uso de Disco
Comando df
Comando du
Controlando el montaje y desmontaje de unidades
Introducción
Montaje temporal de un filesystem
Comando mount
Comando umount
Opciones de Montaje
6
Montaje permanente de sistemas de archivos
Campos:
Manejo de Cuotas de Disco
Introducción
Habilitación del Soporte para Cuotas
Fijación de las cuotas para los usuarios.
edquota
quotacheck
quotaon
quotaoff
repquota
Permisos y propiedad de archivos
Introducción
Control de acceso a archivos en Linux
Listar los permisos
Notación octal
Fijar el modo por defecto con umask
Permisos Especiales
Cambiar la propiedad de un archivo con chown
Cambiar la propiedad del grupo con chgrp
Comando chmod
Metodo Octal
Método Simbólico
Crear y cambiar vínculos duros y simbólicos
Introducción
Tipos de vínculos
Uso para la administración del sistema
Comando ln
Comprender la ubicación correcta de los archivos del FHS
El FHS
Comando find
Comando locate
Comando whereis
Comando which
Comando type
5. Shells, Scripts y m anejo de datos con SQL
Manejo del entorno de Shell
Introducción
Variables de entorno
Variables de entorno mas comunes
Modificación de los archivos de configuración de bash
Archivos de esqueleto
El comando set
Alias
Funciones
7
Crear y modificar de scripts
Introducción
Hola Mundo!!!
Variables
Parámetros Posicionales
Comando source
Expresiones Condicionales
if
case
Sentencias de Iteración
Sentencia for
Sentencia while
until
Funciones
Manejo de datos con SQL
Introducción
Tipos de Datos mas comunes
MySQL
Instalación
Mostrar bases instaladas con “show databases”
Crear una base con “create database”
Crear de una tabla con “create table”
Ver la estructura de una tabla con “describe“
Eliminar una tabla con “drop table”
Insertar registros con “insert”
Consultar registros con “select”
Filtrar las consultas con “where”
Consultar varias tablas con “join”
Eliminar registros con “delete”
Ordenar los resultados con “order by”
Funciones de agregación y “group by”
6. Interfaces Graficas de Usuario
Instalar y Configurar X11
Introducción
Configuración básica de X
Opciones para el servidor X en Linux
Métodos para configurar X:
Ubicación y nombre de los archivos de configuración
El formato de los archivos de configuración
Secciones de configuración de X
Sección Module
Sección InputDevice
Sección Monitor
Sección Device
8
Sección Screen
Server Layout
Configurando y testeando X
Fuentes
Instalar fuentes nuevas
Configuración de fuentes Xft
Gestores de Pantalla
Introducción
XDM
KDM
GDM
Métodos para ejecutar un servidor XDMCP
Arquitectura Cliente/Servidor de X
Accesibilidad
Introducción
Configuraciones de Accesibilidad
Orca
Emacspeak
7. Tareas Adm inistrativas
Usuarios y Grupos
Introducción
Cuentas de usuario y el archivo /etc/passwd
Grupos y el archivo /etc/group
El sistema shadow de contraseñas
Comandos de gestión de usuarios y grupos
Comando useradd
Comando usermod
Comando userdel
Comando groupadd
Comando groupmod
Comando groupdel
Comando passwd
Comando chage
Cron, Anacron y At
Introducción
Creando trabajos de Cron del Sistema
Comando crontab
Anacron
Comando at
Localización e internacionalización
Introducción
locale
Cambiar el locale
Codificación de caracteres
Convertir archivos entre distintos formatos de codificación
9
8. Servicios esenciales del sistem a
NTP
Introducción
Comando date
Comando hwclock
Uso de NTP
Anatomía de NTP
Logging
Introducción
Syslog, Syslogd, Rsyslog y Klogd
Configuración
Facilidades
Prioridades
Sintaxis
Registro manual de datos
Rotación de logs
Revisando archivos de Log
Correo electrónico
Introducción
Conceptos básicos de correo electrónico
Gestión de Correo electrónico
Servidores SMTP
Uso del programa mail
Envío de correo con mail
Leer correo con mail
Consultar la cola de correos
Redirección de correo
Programas complementarios
Gestión de impresoras e impresión
Introducción
Conceptualización de la arquitectura de impresión en Linux
Configuración
PostScript: El lenguaje de Impresión de Facto
GhostScript
Configuración de CUPS
9. Fundam entos de redes
Conceptos fundamentales de redes
Introducción
Hardware de red
Paquetes de red
Pila de protocolos
Protocolo de control de transmisión (TCP)
Protocolo de Datagramas de usuarios (UDP)
Protocolos IP
10
Redes privadas según RFC-1918
Direccionamiento de Red
Direcciones de Hardware
Direcciones IP
Mascara de red
DNS
Comando host
Comando dig
Puertos de red
Puertos comunes
Configuración DNS
Configuración básica de red
Introducción
Configurar Linux para una red local
DHCP
Comando ifconfig
Routers, Rutas y Default Gateway
Comando route
Archivos de configuración de interfaces de red
Comandos ifup e ifdown
Configuración DNS
Comando ping
Comando traceroute
Resolución de Problemas
Introducción
Configuración manual de tabla de ruteo
Comando ping
Comando traceroute
Comando Host
Comando dig
Configuración del cliente DNS
Introducción
Cambiar el orden de resolución de nombres
Archivo /etc/hosts
Establecer los servidores DNS en el /etc/resolv.conf
10. Seguridad
Gestión de la seguridad
Introducción
Peligros de los archivos SUID y GUID
Como encontrar archivos SUID y GUID
Comando chage
Comando usermod
Monitoreo de puertos de red
Comando lsof
11
Comando netstat
Comando nmap
Restringir el uso de el usuario root con Sudo
Beneficios de usar Sudo
Configuración de sudo con el archivo /etc/sudoers
Comando su
Ulimit
Seguridad del Host
Introducción
Gestión de Contraseñas
Súper Servidores
TCP Wrappers
Xinetd
Bloquear el acceso a usuarios con /etc/nologin
Desactivar los servicios que no estén en uso
Técnicas de encriptado
Criptografía con clave publica
OpenSSH
Configuración del servidor SSH
Claves SSH
Agente SSH (ssh_agent)
Túneles SSH
GPG
GPG Keyring
12
Guía de Estudio LPI
Adolfo Olivera
13
14
15
Acerca de la certificación LPI
La certif icaciones son una manera estándar de tener un
comprobante que acredite un determinado niv el de conocimiento
acerca de cierta materia. Si bien tradicionalmente, el mundo Open
Source no le dio may or importancia a las certif icaciones, esta
tendencia está dando un giro. Ya que si bien no son garantía de que
un indiv iduo pueda realizar un determinado trabajo, son un buen
punto comienzo a la hora de buscar y f iltrar candidatos.
En lo que respecta a los administradores Linux en general, las dos
certif icaciones dominantes del mercado son las prov istas por el
Linux Professional Institute y las prov istas por Red Hat.
Los conocimientos que conf orman la currícula son f ruto de
acabadas inv estigaciones realizadas por LPI y prof esionales
acreditados de la industria. Es una certif icación neutral, lo que
signif ica que no se orienta a ninguna distribución en particular, si no
que trata de ser lo más general posible.
Si bien la certif icación es neutral en cuanto a las distribuciones, uso
como ref erencia las distribuciones Red Hat y Debian como
ref erencia, y a que estas dos distribuciones son las que dieron lugar
a la may oría de las distribuciones de uso general existentes en la
actualidad.
Las certif icaciones LPIC del Linux Professional Insititute están
div ididas en tres niv eles, cada uno f undacional al otro:
Nivel 1 (LPIC 1)
Este niv el acredita un niv el Junior de conocimientos, la certif icación
consta de dos exámenes, 101 y 102; y un prof esional que hay a
pasado estos dos exámenes debería estar en condiciones de realizar
tareas básicas de administración de un serv idor.
Nivel 2 (LPIC 2)
Este niv el de certif icación acredita conocimientos más específ icos
en cuanto a los serv icios que suelen correr los serv idores. Como
son los serv icios Web, los serv idores de archiv os, los serv icios
av anzados de red, etc. Además de hacer un análisis más prof undo
de la arquitectura del sistema operativ o.
Nivel 3 (LPIC 3)
Este es el niv el de acreditación más alta que otorga el LPI. Los
prof esionales que acrediten esta certif icación son expertos en
16
dif erentes especialidades en Linux.
Estas especialidades son Ambientes Híbridos (Redes con Windows
y Linux) prov ista por el examen 300; Seguridad prov ista por el
examen 303 y Alta Disponibilidad y Virtualización, prov ista por el
examen 304.
Este programa de certif icaciones proporciona una doble oportunidad
a los prof esionales en administración Linux. Ya que no solo brinda
las herramientas necesarias y una hoja de ruta para ser en experto
en la materia; sino que además proporciona la oportunidad de
obtener un diploma que sea prueba de esto.
17
18
1. Arquitectura del Sistema
En esta primera unidad se v en los lineamientos generales que
comparten los sistemas Linux. Explicando cómo es la arquitectura
del sistema, como se relaciona Linux con los componentes de
hardware y como comienza la ejecución del sistema cuando se
enciende la máquina.
La unidad estará div idida en tres subunidades:
Determinar y establecer la configuración de hardware (101.1)
En esta subunidad v eremos con que comandos y herramientas
contamos a la hora de hacer un análisis del hardware con el que
cuenta una computadora. También se v erán técnicas para establecer
las conf iguraciones necesarias para lograr un f uncionamiento óptimo
de este hardware.
Proceso de arranque (101.2)
El proceso de arranque de una maquina comprende todo lo que
sucede desde que presionamos el botón de encendido del equipo
hasta que tenemos un sistema ejecutándose y listo para serv ir a los
usuarios. Si bien este proceso no suele generar problemas y puede
pasar desapercibido, es importante saber que componentes
interv ienen en el mismo para saber como proceder en el caso que se
quiera modif icar este proceso o realizar una resolución de problemas.
Niveles de ejecución, apagado y reinicio del sistema (101.3)
En esta subunidad es realiza una introducción al concepto de niv eles
de ejecución. Estos niv eles permiten determinar el comportamiento
del sistema, def iniendo una serie de acciones y conf iguraciones
para cada niv el.
También v eremos una introducción a proceso de apagar y reiniciar la
maquina; explicando con que herramientas se cuenta.
19
20
que está realizando y atienda un ev ento externo, como cuando se
presiona una tecla del teclado. En x86, las interrupciones están
numeradas del 0 al 15. Computadoras más modernas, como
sistemas x86-64, prov een más de 16 interrupciones.
Listado de interrupciones
0 - Reserv ado para uso interno
1 - Teclado
2 - Interrupciones en cascada para IRQs 8-15
3 - Segundo puerto RS-232 (COM 2 en Windows)
4 - Primer puerto RS-232 (COM 1 en Windows)
5 - Placa de Sonido o segundo puerto paralelo
6 - Controladora de discos floppy
7 - Primer puerto paralelo
8 - Reloj de tiempo real
9-11 - Abierto
12 - PS/2 Mouse
13 - procesador matemático
14 - Controlador ATA primario
15 - Controlador ATA secundario
Algunas interrupciones están reserv adas para propósitos
particulares, como el teclado y el reloj de tiempo real, otras tienen
usos comunes, pero pueden ser reasignados, y otros quedan libres
para ser asignados. La lista de interrupciones de puede leer desde
/proc/interrupts.
Direcciones I/O (Direcciones de entrada y salida)
Las direcciones o puertos I/O son direcciones de memoria
reserv adas para la comunicación entre la CPU y dispositiv os de
hardware. Una v ez que el sistema se encuentra corriendo, las
direcciones de I/O, se pueden consultar desde el archiv o
/proc/ioports.
Direcciones DMA (Direct Memory Addressing)
DMA es un método de comunicación alternativ o a los puertos I/O.
En v ez de tener a la CPU como intermediaria entre un dispositiv o y
la memoria, los DMA permiten a los dispositiv os mandar datos
directamente a la memoria, sin uso de la CPU. Esto permite tener
menos requerimientos de uso de CPU para activ idades de I/O. Para
el uso de DMA, la arquitectura x86 implementa v arios canales DMA,
los cuales pueden usar usados por dispositiv os. La inf ormación
sobre los canales DMA se pueden encontrar en /proc/dma.
23
Dispositivos coldplug y hotplug
Los dispositiv os hotplug son aquellos que pueden ser conectados
mientras el sistema esta corriendo, mientras que los dispositiv os
coldplug precisan que el sistema se encuentre apagado para ser
conectados y desconectados, corriendo el riesgo de dañarse si así
no se hiciese. Generalmente los componentes internos de la
computadora como la CPU, la memoria y los discos internos son
coldplug. Y los dispositiv os externos como dispositiv os USB,
firewire y Ethernet son hotplug.
Utilidades para detectar dispositivos hotplug
Demonio HAL: Las siglas HAL prov ienen Hardware abstraction
layer, el demonio que opera esta capa de abstracción de hardware es
llamado hald. Es un programa dentro del espacio del usuario y
prov ee inf ormación sobre el hardware disponible. Se conecta a DBus y prov ee una API la cual las aplicaciones pueden utilizar para
descubrir, monitorear e inv ocar operaciones en dispositiv os.
D-Bus: Su nombre prov iene de Desktop Bus. Es un demonio que
permite a los programas en ejecución comunicarse entre sí y ser
notif icados de ev entos. Ya sean ev entos de otros procesos o de
hardware, como por ejemplo la conexión de un disco USB. Es el
v ínculo que conecta a las aplicaciones con el demonio HAL (hald).
Udev: Tradicionalmente, Linux crea a los nodos de dispositiv os
como archiv os en /dev . /dev se crea como un sistema v irtual de
archiv os, que crea archiv os de dispositiv os dinámicamente a
medida que los driv ers de esto son cargados y descargados. Udev
se puede conf igurar desde /etc/udev/udev.conf. Se puede crear
reglas de Udev dentro del directorio /etc/udev/udev.d/. Las reglas
son básicamente archiv os dentro de este directorio, los cuales serán
leídos por el demonio udev y utilizados cuando el Kernel notif ica a
udev sobre algún ev ento.
Sysfs (/sys) : El sistema v irtual de archiv os /sys exporta
inf ormación de dispositiv os. En este sistema de archiv os v irtual se
guarda una base de datos con todos los dispositiv os que están
conectados al sistema. Los archiv os dentro de /sys generalmente
están compuestos por un solo v alor.
24
30
el estándar.
El f irmware del motherboard (placa madre) reside en una memoria
flash o EEPROM (Electrically Erasable Programmable Read-Only
Memory). Cuando uno enciende la máquina, esta realiza una prueba
para rev isar que todo esté f uncionando correctamente, este prueba
se llama POST (Power On Self Test). Una v ez f inalizado esto, carga
el gestor de arranque desde el dispositiv o de arranque. Típicamente,
este es el primer disco duro. El gestor de arranque toma control y
carga el sistema operativ o.
Proceso arranque con BIOS
Luego de iniciado el equipo, un programa llamado BIOS (Basic Input
Output Service), que es guardado en memoria no v olátil, es
ejecutado. El proceso seria así:
1.
2.
3.
4.
El BIOS prueba el correcto f uncionamiento del equipo con el
programa POST.
Se le indica al BIOS que dispositiv o de arranque usar (Disco
Duro, CD-ROM, floppy, etc.), mediante la interf az de usuario.
BIOS carga el código del gestor de arranque del MBR (Master
Boot Record), localizado en el primer sector del disco duro. El
MBR también guarda la tabla de particiones.
El gestor de arranque dentro del MBR puede realizar a su v ez
dos acciones dif erentes:
1. Examinar la tabla de particiones y localizar la partición
que tenga la bandera de arrancable. El gestor de
arranque primario llama a un gestor de arranque
secundario, localizado en el sector de arranque de esa
partición. Este ultimo continua el proceso localizando un
kernel de sistema operativ o y cargándolo en memoria.
2. Localizar un Kernel y cargarlo directamente. Este
enf oque se saltea el gestor de arranque secundario.
Tradicionalmente, los gestores de arranque de Windows necesitaban
estar en el MBR del disco. Los gestores de arranque en Linux
soportan estar en el sector de arranque de una partición. Por lo que
se aconseja en el caso de tener una maquina con arranque dual,
colocar el gestor de arranque de Windows en el MBR del disco y el
de Linux en el MBR de la partición.
Este es un resumen muy simplif icado del arranque basado en BIOS
y MBR. En la práctica, esquemas mas complejos son posibles.
32
Proceso de Arranque con UEFI
El proceso basado en BIOS, f ue diseñado en los años 80, cuando el
espacio disponible para el BIOS era diminuto comparado con los
estándares actuales. Por lo que el proceso de arranque del BIOS
necesitaba ser simple, y la complejidad se trasladaba al sof tware
dentro del disco.
El f irmware UEFI es bastante mas complejo que el antiguo BIOS. En
lugar de usar el código que esta en los sectores de arranque de los
discos, EFI utiliza gestores de arranque almacenados como archiv os
en una partición de disco, conocida como ESP (EFI System
Partition). En Linux, generalmente el ESP se monta en /boot/efi. Los
gestores de arranque residen en archiv os con la extensión .efi. Se
nombran en subdirectorios con el nombre de la distribución y el
nombre del archiv o es el nombre del gestor de arranque. Por
ejemplo, /boot/efi/EFI/Ubuntu/grub.efi .
Esta conf iguración permite tener un gestor de arranque dif erente
para cada sistema operativ o que se instala en una computadora. El
f irmware de EFI incluy e un programa propio, llamado boot manager
que ay uda a elegir que gestor de arranque se quiere lanzar.
EFI debe ser saber acerca de los gestores de arranque almacenados
en el ESP del disco. Normalmente, esto se hace registrando los
gestores de arranque con el f irmware, esto se puede hacer mediante
una utilidad que v iene con el f irmware o con alguna otra herramienta
como efibootmgr (http://linux.die.net/man/8/efibootmgr).
Gestores de Arranque
Los gestores de arranque se ejecutan antes que cualquier sistema
operativ o sea cargado, aunque normalmente son conf igurados desde
Linux o algún otro sistema operativ o.
De alguna u otra manera, el f irmware de la computadora lee y carga
el código del gestor de arranque. El gestor de arranque, una v ez
cargado, será responsable de llamar al kernel de Linux. Por lo que
una correcta conf iguración del gestor de arranque es necesaria para
poder dar inicio a Linux.
Si bien las instalaciones de las distribuciones prov een métodos
automáticos de conf iguración del gestor, es importante saber como
f unciona. Ya que en ciertos casos, como en la re-complicación de un
kernel, podría ser necesario hacer modif icaciones.
Inicio de Linux con init
Una v ez que el Kernel pasa a controlar el sistema, se llama al
proceso init. Por def ecto este programa se encuentra dentro de
33
/sbin/init. Este programa tomara el PID 1 y a que es el primer
proceso que se ejecuta en el sistema. En un sistema Linux
tradicional, /sbin/init leerá los contenidos del archiv o /etc/inittab para
determinar que otros programas ejecutar. En sistemas mas
modernos que usan otros sistemas de inicio como Upstart o
Systemd, init leerá otros archiv os de conf iguración.
Obteniendo información acerca del proceso de
arranque
Cierta inf ormación acerca del Kernel y sus módulos se registra en el
kernel ring buf f er. Esta inf ormación es la que se muestra en pantalla
durante el proceso de arranque, aunque al pasar tan rápido es muy
dif ícil su lectura. Se puede inspeccionar esta inf ormación con el
comando dmesg.
34
35
sistema que actúa como un serv idor de archiv os o un serv idor web,
el cambio de un niv el de ejecución sin notif icación podría ser un
desastre para otros usuarios. Es imprescindible notif icar a los
usuarios antes de realizar cualquier cambio importante del sistema.
El comando init no proporciona automáticamente esta f uncionalidad,
y en estas situaciones se pref iere el comando shutdown.
Comando Shutdown
Cuando se inicia el comando shutdown, todos los usuarios que han
iniciado sesión en sesiones de terminal son notif icados de que el
sistema se está cerrando. Además, otros inicios de sesión se
bloquean para ev itar a nuev os usuarios ingresar en el sistema, y a
que se está cerrando.
Descripción
El comando shutdown cierra el sistema de una manera segura y
organizada. De f orma predeterminada, shutdown llev a al sistema a
modo de usuario único. Se pueden utilizar otras opciones para apagar
o reiniciar su lugar. El comando init utiliza con un argumento niv el de
ejecución apropiado para af ectar el cambio de sistema.
El argumento tiempo obligatorio indica al comando shutdown cuándo
iniciar el procedimiento de apagado. Puede ser un momento del día
en el f ormato hh:mm, o puede estar en la f orma + n, donde n es un
número de minutos a esperar. El tiempo también puede ser la palabra
now, en cuy o caso el cierre ocurre de inmediato. Si la hora
especif icada es más de 15 minutos, shutdown espera hasta 15
minutos antes del cierre se mantienen antes de hacer su primer
anuncio.
Si se proporciona un mensaje de adv ertencia (una cadena de texto),
que se utiliza en anuncios del sistema para los usuarios f inales. No
son necesarias comillas para el mensaje de adv ertencia a menos
que el mensaje incluy e caracteres especiales como * o &.
Sintaxis
shutdown [opciones] tiempo [mensaje de advertencia]
Opciones de uso más frecuente:
-f: Fast Boot, no realiza chequeos de los sistemas de archiv os en el
próximo inicio.
-F: Fuerza los chequeos de los sistemas de archiv os en el próximo
inicio.
-k: Solo manda los mensajes de adv ertencia y deshabilita los inicios
de sesión, pero no apaga el sistema.
39
Muestra el estado actual de todas las unidades conf iguradas
42
43
2. Instalacion del sistema y
manejo de paquetes
Esta unidad describe como realizar la instalación del sistema,
incluy endo la instalación de todos los paquetes necesarios para
cumplir sus f unciones. También es necesario saber como mantener
actualizado el sof tware dentro del sistema, por lo que también se
explican los dif erentes métodos de actualización de paquetes.
Esta unidad incluy e 5 subunidades:
Diseño del Disco Duro (102.1)
El diseño del disco duro implica entender el concepto de particiones.
Las particiones nos permiten distribuir espacio de disco de una
manera mas ordenada, ef iciente y segura.
Gestores de Arranque (102.2)
Los gestores de arranque son programas pequeños que cumplen con
la f unción de cargar sistemas operativ os como Linux para utilizarlos.
Los mas importantes a tener en cuenta son GRUB y GRUB 2.
Gestion de librerías (102.3)
Las librerías son los componentes de sof tware que en su conjunto
conf orman todo el sof tware del sistema. Por razones de reutilización
y f acilidad de mantenimento, el sof tware se div ide en unidades
pequeñas llamadas librerías.
Gestión de Paquetes en Debian (102.4)
En esta unidad se explica el concepto de paquetes de sof tware y
conocemos los dif erentes gestores de paquetes que existen para los
sistemas Debian y sus deriv ados.
Gestión de paquetes con RPM y Yum (102.5)
RPM es el gestor de paquetes de paquetes en Red Hat y Yum es el
gestor de paquetes que se utiliza para utilizar paquetes desde algún
repositorio de Red Hat.
44
45
otras computadoras para que
estas puedan hacer uso de los
ejecutables que allí residen
/v ar
2 GB
En este caso no se necesita un
filesystem /var demasiado
grande y a que solo se guardan
logs dentro de /var. La
situación seria dif erente en el
caso de que el serv idor sea un
serv idor web
/tmp
500 MB
Otorgándole a /tmp su propia
partición, nos aseguramos que
no causara problemas
creciendo mas de lo debido
/home
90 GB
Teniendo en cuenta que el f in
ultimo del sistema es presentar
datos a usuario, /home se llev a
la may or parte del espacio.
En los serv idores de producción, gran parte del sistema a menudo
se coloca en los medios de almacenamiento redundantes, tales
como discos duplicados. Grandes sistemas de archiv os, tales como
/ home, pueden ser almacenados en algún tipo de arreglo de discos
utilizando un controlador de hardware.
Función del sistema
El papel del sistema también puede dictar la distribución del disco.
En una red de tipo UNIX tradicional con serv idores de archiv os NFS,
la may or parte de las estaciones de trabajo no necesitará
necesariamente la totalidad de sus propios archiv os ejecutables. En
los días en que el espacio en disco era un bien escaso, esto
representaba un ahorro signif icativ o en el espacio en disco. Mientras
que el espacio en los discos de estaciones de trabajo no es el
problema que una v ez f ue, manteniendo ejecutables en el serv idor
todav ía elimina el dolor de cabeza administrativ a de distribución de
actualizaciones a las estaciones de trabajo.
Copias de resguardo
Algunos esquemas de backup, incluy en copias a disco local, por lo
que de acuerdo a la f recuencia con la que se realizan estas copias y
al periodo de tiempo por el que se mantienen, habría que reserv ar el
48
espacio suf iciente para realizar.
Espacio de SWAP
Al instalar Linux, se le pedirá que conf igure un espacio SWAP o
memoria v irtual. Este espacio de disco especial se utiliza para
almacenar temporalmente partes de la memoria principal que
contiene programas o datos de programa que no se necesitan
constantemente, permitiendo que más procesos se ejecuten al
mismo tiempo. Generalmente se reserv a el doble del tamaño de la
memoria RAM.
Recomendaciones generales de diseño
Aquí hay algunas pautas para particionar un sistema Linux:
• Mantener el root f ilesy stem (/) pequeño mediante la distribución de
porciones más grandes del árbol de directorio a otras particiones.
• Separar una partición para /var y asegurarse de que sea lo
suf icientemente grande como para manejar el esquema de rotación
de logs.
• Separar /tmp. Su tamaño depende de las demandas de las
aplicaciones que se ejecutan. Debe ser lo suf icientemente grande
como para manejar los archiv os temporales para todos sus usuarios
de f orma simultánea.
• Separar /usr y montarlo como solo lectura, sí es que se v a a
compartir por medio de NFS.
• Separar /home para máquinas con múltiples usuarios. Para su uso
en producción, es conv eniente colocarlo en algún arreglo de discos
(SAN).
• Conf igurar el espacio SWAP con el doble de tamaño que la
memoria RAM.
49
50
55
58
Sistemas de Gestión de Paquetes
La manera en que se manejan estos paquetes de sof tware v aria
mucho entre distribuciones. Las principales herramientas de manejo
de paquetes son RPM para sistemas Red Hat y deriv ados y DPKG
pata el manejo de paquetes en Debian y deriv ados. Generalmente,
solo se usa un solo sistema de manejo de paquetes por cada
computadora; aunque es útil tener conocimiento sobre los 2.
Un gestor de paquetes mantiene la siguiente
información:
Paquetes: La inf ormación mas básica que los sistemas de manejo
de paquetes registran, es inf ormación sobre los paquetes. Los
paquetes son colecciones de archiv os que están instalados en la
computadora. Los paquetes son distribuidos como archiv os
parecidos a los tarballs o los archiv os zip. Una v ez instalados, los
paquetes consisten en docenas o cientos de archiv os, el sistema de
paquetes tiene registro de todos.
Base de Datos de Archivos Instalados: Esta base de datos
mantiene inf ormación acerca de cada archiv o instalado por medio
del sistema de manejo de paquetes, el nombre del paquete al que
pertenece cada archiv o e inf ormación asociada adicional.
Dependencias: Dependencias entre paquetes.
Checksums: Esta inf ormación permite v erif icar la v alidez del
sof tware instalado.
Tareas que ayudan a realizar:
Instalación de Software: Permiten simplif icar el proceso de
instalación de sof tware.
Actualizaciones y desinstalaciones: Al registrar dependencias, el
sistema de manejo de paquetes f acilita actualizaciones y
desinstalaciones
Creación de paquetes binarios: Tanto RPM como los paquetes
Debian prov een herramientas para la creación de paquetes binarios
desde código f uente. Esto es de extrema ay uda cuando se trabaja
con CPUs extrañas. Esto prov ee v entajas f rente a la compilación
conv encional y a que permite el uso de los sistemas de manejo de
paquetes para registrar dependencias, etc.
Gestión de Paquetes en Debian
Las principales herramientas que utilizaremos para gestionar
paquetes en Debian son dpkg, la suite de programas APT y el
60
65
72
3. Comandos GNU y UNIX
En general cuando trabajemos con serv idores Linux, la línea de
comando v a a ser nuestra herramienta de trabajo principal. La
f ilosof ía Linux es utilizar v arios pequeños programas específ icos
para alguna f uncionalidad y combinarlos con otros para resolv er
tareas complejas.
Esta unidad comprende 3 subunidades:
Trabajando en la línea de comando (103.1)
Introducción a los shells (interpretes de comandos) y a Bash, el shell
mas popular en Linux.
Filtrado de flujos de texto (103.2)
Uso de herramientas para manipular, f ormatear y f iltrar texto.
Manejo básico de archivos (103.3)
Herramientas para gestión de archiv os
Flujos de datos, tuberías y redirecciones (103.4)
Como dirigir los f lujos de datos a trav és de dif erentes programas
utilizando tuberías y redirecciones.
Crear, monitorear y matar procesos (103.5)
Concepto de procesos y creación de los mismos.
Modificar la prioridad de procesos en ejecución (103.6)
Como darle may or o menos prioridad de ejecución a un proceso
Uso de expresiones regulares para filtrar texto (103.7)
Introducción a las expresiones regulares básicas y extendidas.
Editar texto con Vi (103.8)
Introducción a Vi/Vim y comandos básicos.
73
74
Algunos programas han migrado del uso de man hacia info. La
v entaja de man sobre info es que este ultimo utiliza hipertexto para
mov erse a trav és de la documentación. Estas 2 herramientas
presentan inf ormación de una manera que puede resultar poco
amigable para el usuario principiante. Por lo que en ocasiones
conv iene ir a las web para buscar ay uda o tutoriales acerca de
programas.
79
80
Sintaxis
# wc [opciones] [archivos]
86
87
Sintaxis
bzip2 [opciones] [nombre_archivos]
bunzip2 [opciones] [nombre_archivos]
97
98
103
107
Mostar con orden jerárquico: -H, -f y –forest muestran la
jerarquía de los procesos.
Mostrar mas 80 caracteres: Las opciones w y -w muestran una
salida mas amplia que la normal.
Interpretación de la salida de ps
Usuario: El nombre del usuario que ejecuta el programa. Así como
los archiv os tienen un usuario, un grupo y unos permisos
determinados asignados, también los procesos pertenecen a
usuarios. Un proceso contará de cara al sistema de archiv os con los
mismos permisos que tenga el usuario que lo creó.
ID del proceso: El PID es el numero de identif icación asociado al
proceso. Es importante y a que en el caso de querer modif icar o
matar el proceso, seguramente lo necesitemos.
ID del proceso padre: El ppid identif ica al proceso padre que dio
origen al proceso actual.
TTY: Algunos procesos tendrán asociado un identif icador de terminal.
No todos los procesos tienen un numero de terminal; los demonios y
los programas de X no tienen terminal asociada.
Tiempo de uso de CPU: Los encabezados TIME y %CPU muestran
dos medidas de tiempo de uso de cpu. La primera nos muestra el
tiempo que llev amos consumido, mientras que la segunda nos el
porcentaje de CPU que consume el proceso al momento de ejecutar
ps.
Prioridad de CPU: La columna NI representa la prioridad de uso de
CPU que tienen los procesos. El v alor por def ecto es 0. Valores
positiv os representan menor prioridad, mientras que los negativ os
representan may or prioridad.
Consumo de memoria: %RSS (Resident Set Size) es el tamaño
del proceso en la memoria principal del sistema y %MEM porcentaje
de la memoria principal usada por el proceso.
Comando: Generalmente la ultima columna muestra el comando
que genero el proceso.
Top: Una variante dinámica de ps
La herramienta top nos muestra en tiempo real los procesos que
están en nuestro sistema, de una manera más gráf ica que como lo
hace ps. Por def ecto, top nos ordena los procesos por uso de CPU.
Prioridad nice
El niv el de prioridad nice es un v alor que mide la prioridad que uso
109
111
Ejemplo
La expresión a[2-4]z concuerda con a2z, a3z y a4z.
Cualquier carácter: El punto (.) representa cualquier carácter
singular, excepto, una nuev a línea.
Ejemplo
La expresión a.z concuerda con a2z, abz y aQz.
Principio y fin de línea: ^ representa el principio de una línea y el
signo de $, el f inal de la misma.
Operadores de repetición: Estos operadores indican la cantidad de
v eces que debe ocurrir una expresión. Una expresión regular, o
alguna parte de ella, puede estar seguida por un símbolo especial,
que denota cuantas v eces el ítem debe existir. Específ icamente, un
asterisco (*) denota 0 o mas ocurrencias, un signo de pregunta (?)
cero o una ocurrencia y un signo positiv o (+) indica 1 o mas
ocurrencias.
Ejemplo
La expresión C.*Gomes concuerdo con todo lo que empiece con
tenga la letra C y Gomes, en ese Orden. Como Carlos Gomes,
Cesar Gomes y Cristian Gomes.
Múltiples posibles cadenas: La barra v ertical (|) separa dos
posibles coincidencias.
Ejemplo
La expresión peso | dólar concuerda con peso o con dólar.
Paréntesis: Los paréntesis () se usan para agrupar subexpresiones.. Se pueden utilizar alrededor de un grupo de palabras
que están concatenadas por una barra v ertical, para asegurarse que
estas palabras sean tratadas como un grupo, sin inv olucrar las otras
partes de la expresión regular env olv ente.
Escape de caracteres: Si uno quiere buscar algún carácter especial,
como el punto, se debe escapar, precediéndolo con una barra
inv ertida \.
Ejemplo
Para coincidir con el nombre de una computadora
113
117
123
4. Dispositivos, Filesystems y
el FHS
Creación de Particiones y Filesystems (104.1)
En esta subunidad se analiza en prof undidad el concepto de
particiones y Fylesystems (Sistema de archiv os).
Verificar la integridad de Filesystems (104.2)
En esta subunidad se hace una introducción a las dif erentes
herramientas disponibles para v elar por la buena salud de un
Filesystem.
Controlando el montaje y desmontaje de unidades (104.3)
Un filesytem solo puede ser utilizado una v ez que es sistema realiza
un proceso de montaje. En esta subunidad inv estigamos ese
proceso.
Manejo de Cuotas de Disco (104.4)
El sistemas de cuotas de disco permite tener un control del consumo
de espacio en disco.
Permisos y propiedad de archivos (104.5)
En esta subunidad se explica como f unciona el sistema de permisos
y propiedad de archiv os necesarios para controlar el acceso a los
archiv os por parte de los usuarios.
Crear y cambiar vínculos duros y simbólicos (104.6)
Esta subunidad es bastante simple y escueta, se explica como usar
v ínculos.
Comprender la ubicación correcta de los archivos del FHS
(104.7)
La distribución de los archiv os a los largo de los f ilesy stems tienen
un lógica de ser y esta es estandarizada en el Filesystem Hierarchy
Standard. En esta subunidad v eremos como están organizados los
Filesy stems según este estándar.
124
125
Borrar una partición
La opción d nos permite borrar una partición. Si existe mas de una
partición, f disk nos v a a preguntar que numero de partición quiero
borrar
Cambiar el tipo de partición
Cuando se crea una partición Linux le asigna un código de 0x83, que
corresponde a un sistema de archiv os de Linux. Si se quiera cambiar
a otro, por ejemplo, un swap de Linux (0x83), se ingresa t.
M arcar una partición como partición de arranque
Ingresando la opción a, luego Linux me preguntara que partición
quiero marcar como de arranque.
Preparar una partición para uso
Una v ez que la partición se crea, se debe preparar para su uso. Este
proceso se llama la creación de un sistema de archiv os o f ormatear
una partición. Requiere la creación de estructura de datos de bajo
niv el en la partición.
Sistemas de archivos nativos de Linux
ext2fs: Es el sistema tradicional de archiv os en Linux. Fue el
sistema dominante durante v arios años, pero en los últimos años
f ue eclipsado por sistemas mas nuev os. Su código es ext2
ext3fs: Básicamente es ext2 con journaling. Su código es ext3.
ext4fs: Agrega la posibilidad de trabajar con discos de gran tamaño.
Por encima de los 16 TiB, que es el limite de los discos con ext2 y
ext3. Implementa extensiones que mejoran la perf ormance. El
código es ext4
ReiserFS: Es particular bueno para trabajar con un gran numero de
archiv os pequeños (menores a 32 KB).
XFS: Creado por Silicon Graphics, luego donado a Linux. Es muy
robusto, técnico y sof isticado
FAT: Su nombre es acrónimo de File Allocation Table. Es v iejo y
primitiv o, pero v ersátil. Es el único sistema de archiv os que soporta
DOS y Windows 9x/Me. Es un buen sistema para intercambiar datos
en medios remov ibles. El código es msdos.
NTFS: (del inglés New Technology File System) es un sistema de
archiv os de Windows NT incluido en las v ersiones de Windows 2000,
Windows XP, Windows Serv er 2003, Windows Serv er 2008, Windows
Vista, Windows 7 y Windows 8.
El soporte de Linux sobre el sistema es bastante rudimentario, se
130
mucho mas f inos que los PATA. Al igual que los PATA, son
detectados por el f irmware. La may oría de las distribuciones
modernas trata los discos SATA como si f ueran SCSI y algunas
distribuciones v iejas como si f ueran PATA, por lo que es muy dif ícil
encontrar nombres de dispositiv os SATA.
SCSI
Hay v arias def iniciones de SCSI, se usan una v ariedad de cables y
opera a dif erentes v elocidades. SCSI es tradicionalmente un BUS
paralelo, como PATA, aunque la ultima v ariante, Serial Attached SCSI
(SAS), es un bus serial, como SATA. Si bien el SCSI es un bus
superior al PATA, tiene un precio considerablemente may or, por lo
que solo se suele v er en sistemas de alto rendimiento.
SCSI soporta hasta 8 o 16 dispositiv os por canal (bus), uno de estos
dispositiv os es la controladora, que puede estar en el motherboard o
como un placa de plugin. En la practica, el numero de controladores
que se puede conectar es menor debido a los limites del cable. Cada
dispositiv o tiene un id, que se f ija por medio de un jumper en el
dispositiv o.
Los discos SCSI se nombran /dev/sda , /dev/sdb , etc. Las cintas
SCSI se nombran /dev/st0 , /dev/st1, etc. Y los CD-ROM y DVDROM se nombran /dev/scd0 o /dev/sr0. Generalmente los nombres
se asignan teniendo en cuenta el ID del dispositiv o, y endo de menor
a may or. Ambos lados del cable SCSI deben ser terminados
mediante un terminador, para ev itar que queden señales rebotando
por el BUS.
Discos Externos
Los discos externos v ienen en v arias f ormas, los mas comunes son
SCSI, USB y IEEE-1394 (Firewire). Linux trata los discos como
SCSI, desde el punto de v ista del sof tware. Típicamente, se
enchuf a el dispositiv o, y un nuev o nodo /dev/sdx debería aparecer.
Esto se aplica también a los discos de estado solido.
134
135
soporta un archiv o por lo que la cantidad de inodos disponibles limite
la cantidad de archiv os que puedo tener en un sistema. Esta utilidad
se puede ejecutar mientras el sistema de archiv os esta montado.
Comando xfs_info
Descripción
Es similar a dumpe2f s, pero se utiliza para XFS. Esta herramienta
requiere que el sistema este montado. La inf ormación que prov ee
este comando es sumamente técnica, como ser el tamaño de los
bloques o de los sectores.
Sintaxis
xfs_info [dispositivo o punto de montaje]
Comando tune2fs
Descripción
Nos permite cambiar muchos de los parámetros que nos prov ee
dumpe2f s.
Sintaxis
tune2fs [opciones] dispositivo
La complejidad de esta herramienta radica en la gran cantidad de
opciones que el programa acepta. Cada parámetro que nos permite
ajustar requiere su propia opción. El f ilesy stem no debe estar
montado. Algunas de las operaciones que podemos realizar son las
siguientes:
Ajustar la cantidad máxima de montadas: -c max-mount-counts.
Especificar la cantidad de veces que fue montado: -C mountcount.
Ajustar el intervalo entre chequeos: -i intervalo, el interv alo es un
numero seguido de d, w o m. Por día, mes y año, respectiv amente.
Agregarle un journal (bitácora): La opción -j agrega el journal,
conv irtiendo un sistema ext2 en uno ext3. Igualmente para que este
journal sea ef ectiv o, se debe montar el sistema como ext3 en lugar
de ext2.
Fijar los bloques reservados: La opción -m porcentaje f ija de
porcentaje de disco que queda reserv ado para uso de root. El v alor x
def ecto es 5.
137
141
Sintaxis
umount [opciones] [dispositivo | punto_de_montaje]
Opciones de Montaje
defaults Usa todas las opciones por def ecto.
loop permite montar un archiv o como si f uese un dispositiv o.
auto o noauto Monta cada v ez que inicia el sistema o cuando se
ejecuta el comando mount –a.
user o nouser Permite a usuarios normales montar el sistema. El
def ault es nouser, user es apropiado para medio extraíbles.
users Similar a user, pero para el desmontaje.
owner El usuario debe ser dueño del archiv o de dispositiv o para
montarlo.
ro read only.
rw read write.
uid=v alor Fija el owner para todos los archiv os.
gid=v alor Fija el grupo para todos los archiv os.
umask=Fija la mascara para los permisos de archiv os.
dmask= Fija la mascara para los directorios.
fmask= Fija una mascara solo para archiv os.
Montaje permanente de sistemas de archivos
Se hace por medio del archiv o /etc/fstab, el cual esta compuesto por
los siguientes campos.
Campos:
Dispositivo: Se puede indicar el archiv o del dispositiv o, una
etiqueta o un UUID. También se puede indicar un driv e de un
serv idor remoto.
Punto de Montaje: Es el directorio dentro del cual se podrá acceder
al f ilesy stem que se monte, debe existir prev iamente.
Tipo de sistema de archivos: El código de sistema de archiv os.
Opciones de montaje: Son las opciones de montajes v istas en el
punto anterior.
Operación de Resguardo: Se f ija en 1 si la utilidad dump debe
hacer un backup o 0 si debe ignorarlo.
Orden de chequeo: Orden en el que se ubica para el chequeo de
f sck, si es que lo debe hacer (0 indica que no se debe chequear).
143
144
147
(umask).
Este comando toma un v alor octal que representa los bits a remov er
cuando se crea un archiv o o un directorio. Para un archiv o se
remuev e desde 666 y para un directorio desde 777.
Ejemplo
Si tenemos una mascara de 022, los archiv os se crearan con 644
(rw-r--r--) y los directorios con 755 (rwxr-xr-x).
Si tenemos una mascara de 002, los archiv os se crearan con 664
(rw-rw-r--) y los directorios con 775 (rwxrwxr-x).
La mascara no es una simple substracción de los v alores 777 y 666,
es una extracción bit a bit. Cualquier bit que este f ijado en la
mascara, es remov ido de los permisos f inales para archiv os
nuev os, pero si un bit no esta f ijado, su especif icación en la
mascara no af ecta en nada.
Permisos Especiales
Set User ID (SUID)
Esta opción se usa en conjunto con archiv os ejecutables. Lo que
hace es indicarle a Linux que ejecute el programa con los permisos
de quien es dueño del archiv o en lugar de usar los permisos de quien
lo ejecuta.
Por ejemplo, si un archiv o del cual root es dueño, tiene el bit de
SUID seteado, el programa se ejecuta con priv ilegios root. Los
archiv os con SUID se indican con una s en el bit de ejecución del
usuario.
Set Group ID (SGID)
El SGID es similar al SUID, pero asigna el grupo del programa en
ejecución al grupo del archiv o. Cuando el SGID esta f ijado en un
directorio, los nuev os subdirectorios y nuev os archiv os creados en
el directorio original heredaran la propiedad de grupo, en lugar de
basarse en el def ault actual.
Sticky bit
El sticky bit ha cambiado su signif icado a lo largo de la historia de
UNIX. En implementaciones modernas de Linux (y v ersiones mas
modernas de UNIX), es usado para proteger archiv os de no ser
eliminados por quien no es dueño de estos archiv os .
Hoy en día, el sticky bit se utiliza con directorios. Cuando se le
asigna a un directorio, signif ica que los elementos que hay en ese
directorio sólo pueden ser renombrados o borrados por el propietario
150
del elemento, el propietario del directorio o el usuario root, aunque el
resto de usuarios tenga permisos de escritura y, por tanto, puedan
modif icar el contenido de esos elementos.
Se suele usar en el directorio /tmp.
Cambiar la propiedad de un archivo con chown
El comando chown nos permite cambiar el usuario al cual pertenece
un determinado archiv o.
Sintaxis
chown [opciones] [nuevo_usuario]:[nuevo_grupo] archivo
Una de las opciones mas usadas es –R, que permite realizar los
cambios de manera recursiv a. Solo root puede cambiar la propiedad
de un archiv o.
Cambiar la propiedad del grupo con chgrp
El comando chgrp nos permite cambiar la propiedad de los archiv os
niv el de grupo:
Sintaxis
chgrp [opciones] nuevo_grupo nombre_archivo
El comando chgrp acepta muchas de las mismas opciones que
chown, incluy endo –R para que los cambios se apliquen de f orma
recursiv as.
Comando chmod
Descripción
El comando chmod nos permite cambiar el modo de un archiv o, es
decir, sus permisos. Este comando se puede ejecutar de v arias
maneras dif erentes para conseguir el mismo ef ecto. La sintaxis
básica es la siguiente:
Sintaxis
chmod [opciones] modo nombre_archivo
Acepta la opción –R para actuar en modo recursiv o. La may oría de
la complejidad de chmod radica en la especif icación del modo del
archiv o. Se puede especif icar el modo de dos maneras dif erentes,
de manera octal o de manera simbólica.
Metodo Octal
Se pasan 3 dígitos octales, uno por el usuario, otro por el grupo y el
ultimo por el resto.
151
153
destinan una carpeta para los archiv os de conf iguración disponibles
y otra para los archiv os habilitados, dentro de la carpeta de archiv os
habilitados se crean v ínculos simbólicos a los originales.
Esto f acilita agregar, quitar o modif icar las conf iguraciones que
estos archiv os prov een.
Comando ln
Descripción
El comando ln se utiliza para crear links.
Sintaxis
ln [opciones] fuente destino
Donde f uente es el archiv o original y destino es el nombre del
v inculo. Para crear un link simbólico se pasa la opción –s.
155
156
Este directorio es similar a /bin y a /sbin, pero contiene librerías de
programas. El subdirectorio /lib/modules contiene módulos del kernel,
driv ers que pueden ser cargados y descargados cuando se
requieren.
/usr
Almacena el grueso de los programas de Linux. Su contenido es
compartible y estático, por lo que puede ser montando como solo
lectura y compartido con otros sistemas Linux.
/usr/local
Este directorio espeja la organización de /usr, así como también
/usr/local/bin y /usr/local/lib. El directorio /usr/local contiene archiv os
que el administrador de sistemas instala localmente, por ejemplo,
paquetes que son compilados en la computadora local. La idea es
tener un área que este libre de actualizaciones automáticas cuando
el sistema operativ o es actualizado por completo. Algunos
administradores separan esta partición para protegerla de una
reinstalación en la que se borre la carpeta padre.
/opt
Este directorio es muy similar a /usr/local de muchas maneras, pero
esta pensado para paquetes listos que no se instalan directamente
con el sistema operativ o, como procesadores de texto o juegos.
Típicamente, estos programas residen en subdirectorios dentro de
/opt nombrados en base a sí mismos.
/home
Contiene datos de usuarios. Suele tener su propia partición.
/root
Es el directorio perteneciente al súper usuario root, allí se guardarán
distintos archiv os pertenecientes al mismo.
/var
Prov iene de variable, contiene colas de impresión, cola de mails,
algunos logs de serv icios, etc.
/tmp
Archiv os Temporales.
/mnt
Se usa para montar dispositiv os remov ibles.
Comando find
158
162
163
5. Shells, Scripts y manejo de
datos con SQL
Esta unidad contiene 3 subunidades: En las dos primeras v emos
como conf igurar y usar el shell mediante el cual interactuamos con
el sistema, en la segunda inv estigamos
Cubre los siguientes objetiv os:
Manejo del Entorno de Shell (105.1)
Se realiza una explicación básica sobre el concepto de shell.
Incluy endo el v ariables de entorno , aliases y archiv os de
conf iguración.
Manejo de Scripts (105.2)
La habilidad de crear y modif icar scripts existentes en el sistema es
importante para la gestión y la automatización de tareas. En este
objetiv o se explica la sintaxis de scripting del shell.
Manejo de datos con SQL (105.3)
Este objetiv o cubre el concepto y el uso básico de SQL. Haciendo
una rev isión de lo que es el Lenguaje Estructurado de Datos. Se
hace una introducción al motor de base de datos MySQL.
164
165
Funciones
Además de los aliases, Bash también prov ee f unciones. Las
f unciones trabajan de manera parecida a los aliases, en el sentido en
que un nombre de f unción, def inido por el usuario es asignado a uno
o mas comandos mas complejos.
Sintaxis
function nombre () {
lista_de_comandos;
}
Ejemplo
Podemos agregar la siguiente f unción a nuestro archiv o ~/.bashrc.
Es necesario iniciar una nuev a sesión de Bash para que los cambios
surtan ef ecto.
…
function listartemp(){
echo “Estos son los contenidos de /temp”;
ls –l /tmp;
}
…
170
171
if [ $numero = 1 ]
then
echo " El numero es 1"
else
echo " El numero es otro pero no 1 "
fi
case
Cuando hay mas de dos posibles resultados y caminos a seguir, se
usa la sentencia case.
Sintaxis
case expresión in
patron1 )
acciones ;;
patron2 )
acciones ;;
...
esac
Ejemplo
En el siguiente ejemplo, combinamos una sentencia de iteración (for)
con la sentencia de control case; para iterar por todos los nombres
de los archiv os dentro de un directorio y luego en base a la
extensión de los mismo, mostrar en pantalla el tipo de archiv o al
cual corresponde esa extensión.
…
#!/bin/sh
for nombrearchivo in $(ls)
do
# Tomo la extension del archivo
ext=${nombrearchivo##*\.}
case "$ext" in
c) echo "$nombrearchivo : C Programacion"
;;
o) echo "$nombrearchivo : Archivo Objeto"
;;
sh) echo "$nombrearchivo : Script de Shell"
;;
txt) echo "$nombrearchivo : Archivo de texto"
;;
*) echo " $nombrearchivo : Extension Desconocida"
;;
esac
done
175
…
Sentencias de Iteración
Son estructuras que le indican al script repita una acción
determinada hasta que se cumple una determinada condición.
Sentencia for
El bucle for realiza una acción determinada, una v ez por cada
elemento dentro de una lista que debemos prov eer.
Ejemplo
En el siguiente ejemplo, utilizamos la sentencia f or para iterar por las
v ariables que conf orman la lista (v 1, v 2, v 3 y v 4) y mostrar su
contenido con el comando echo.
…
#!/bin/bash
for i in v1 v2 v3 v4; do
echo "Estas son las variables $i"
done
…
Frecuentemente se usa en conjunto con el comando seq, el cual
genera una secuencia. Por ejemplo:
for `seq 1 10`
Genera una secuencia de 10 números empezando por el 1 y
terminando en el 10.
Sentencia while
Se ejecuta mientras se cumple una determinada condición
Sintaxis
while [condición]
do
comandos
done
Ejemplo
En el siguiente ejemplo, se inicializa un contador en 0, y se le v a
sumando uno cada v ez que entra en el bucle. Se mostraran en
pantalla 10 mensajes diciendo “ El contador es n”, donde es n es un
numero entre 0 y 9.
…
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
176
echo The counter is $COUNTER
let COUNTER=COUNTER+1
done
…
until
Es similar a while pero se ejecuta mientras una condición sea f alsa.
Funciones
En Bash se pueden def inir f unciones. Una f unción en Bash
(denominada subrutina o procedimiento en otros lenguajes de
programación) se podría def inir como un script dentro de un script.
Sirv e para organizar un script en unidades lógicas de manera que
sea mas f ácil de mantener y programar. En Bash las f unciones se
pueden def inir de la siguiente manera:
function nombre_funcion(){
comandos_del_shell
}
177
178
184
6. Interfaces Graficas de
Usuario
Si bien, para las tareas de administración de serv idores, la línea de
comando es la herramienta de trabajo; es necesario saber como
conf igurar interf aces graf icas de usuario. La siguiente unidad trata 3
subunidades:
Instalación y configuración de X11 (106.1)
X11 es la interf az graf ica de usuario mas utilizada hoy en dia en
Linux. Si bien la may oría de la conf iguración se realiza
automáticamente al momento de la instalación del sistema, es bueno
saber la estructura de sus archiv os de conf iguración.
Gestores de Pantalla (106.2)
Los gestores de pantalla (Display Managers) nos prov een una serie
de elementos que completan a la interf az graf ica que prov ee X11.
Como ser los gestores de v entanas y los gestores de graf icos de
inicios de sesión. Los mas importantes son XDM, KDM y GDM.
Accesibilidad (106.3)
Entre los usuarios de escritorios Linux, hay una población la cual
tiene ciertas limitaciones f ísicas. En lo que respecta a la capacidad
de v er bien, maniobrar el teclado y el ratón.
Para ellos hay v arias herramientas que nos permiten conf igurar el
sistema para que sea mas amigable a personas con limitaciones.
185
186
Ejemplo
Section “Module”
Load “dbe”
Load “extmod”
Load “freetype”
Load “type1”
Endsection
Los módulos freetype y type1 se ocupan de renderizar las f uentes
TrueType y Adobe Type1, respectiv amente. Si no entendemos un
modulo, no deberíamos preocuparnos, seguramente esta ahí
cumpliendo algún f unción útil.
Sección InputDevice
Las secciones “InputDev ice” manejan el mouse y el teclado.
Teclado
Section “Input Device”
Identifier “Keyboard0”
Driver “kbd”
Option “XkbModel” “pc105”
Option “AutoRepeat” “500 200”
Endsection
Las líneas indican los siguiente:
Identifier: Prov ee un identif icador que luego será usado por otra
sección (Server Layout). Si bien, el texto a poner es arbitrario, es
bueno poner algo descriptiv o.
Driver: La línea donde dice driv er le indica a X que controlador usar
para acceder al dispositiv o. Kbd y Keyboard son controladores
específ icos para teclado, mientras que evdev es un controlador
genérico para dispositiv os de entrada de datos de distinto tipo.
Option: Las líneas donde dice opción f ijan las dif erentes opciones
que ajustan la f uncionalidad del teclado, como ser, modelo, ratio de
repetición y distribución de las teclas.
Ratón
Section “Input Device”
Identifier “Mouse0”
Driver “Mouse”
Option “Device” “/dev/input/mice”
Option “Protocol” “IMPS/2”
EndSection
190
El controlador puede ser mouse o evdev. Las líneas mas
importantes son Device y Protocol. Device indica a X que dispositiv o
de Linux debe leer para acceder al mouse. La opción protocol indica
que señal debe esperar cuando se muev e el mouse y se aprietan
botones.
Sección Monitor
Uno de los aspectos mas dif íciles en la conf iguración de X es el
ajuste de las v ariables del monitor. Esto se ajusta en la sección
“Monitor”. Una v ersión modesta puede ser la siguiente:
Section “Monitor”
Identifier “Monitor0”
ModelName “”
HorizSync 30.0 – 83.0
VertRefresh 55.0 – 75.0
End Section
HorizSync y VertRefresh def inen el rango de ref resco horizontal y
v ertical, respectiv amente, que acepta el monitor.
Data Display Channel: Es un protocolo que permite a los monitores
comunicar el máximo ratio de ref resco horizontal y v ertical que
soporta un monitor.
Sección Device
El monitor generalmente manda la inf ormación a trav és de la tarjeta
de v ideo. La v ersiones mas modernas de X.org-X11 pueden escoger
el controlador de la placa de v ideo de manera automática,
seleccionando el mas optimo. En otras ocasiones, se debe prov eer
la inf ormación al archiv o de conf iguración XF86Config o xorg.conf .
En particular, el modulo del controlador se ajusta mediante la línea
Driver “valor” dentro de la sección Device.
…
Driver “nv”
…
Esta línea indica el nombre del controlador, que generalmente se
encuentra en /usr/X11R6/lib/modules/drivers o
/usr/lib/xorg/modules/drivers en general los nombres de los driv ers
terminan en _drv.o .
191
Si se tipea Xorg –configure para crear una conf iguración inicial, el
archiv o probablemente tenga múltiples secciones de Device, cada
una para un driv er dif erente. Algunos de estos, como fdev y vesa,
son driv ers genéricos que f uncionan en una gran v ariedad de placas
de v ideo. Actualmente, se utilizan controladores nv o nouveau para
placas nVidia, radeon para placas ATI/AMD y controladores Intel para
placas Intel .
Opciones específicas de la placa de video
…
Section “Device”
Identifier “Videocard0”
Driver “nv”
VendorName “nVidia”
EndSection
…
Sección Screen
La sección Screen le indica a X sobre la combinación de monitores y
placas de v ideo que se están utilizando.
Section “Screen”
Identifier “ Screen0 ″
Device “ Videocard0 ″
Monitor “ Monitor0 ″
DefaultDepth
16
SubSection “Display”
Depth
24
Modes “ 1280 × 1024 ″ “ 1280 × 960 ″ “ 1152 × 864 ″ “ 1024 × 768 ″
“ 800 × 600 ″ “ 640 × 480 ″
EndSubSection
SubSection “Display”
Depth
16
Modes “ 1152 × 864 ″ “ 1024 × 768 ″ “ 800 × 600 ″ “ 640 × 480 ″
EndSubSection
Incluy e una o mas subsecciones de Display.
Server Layout
La sección “server layout” v incula todos los otros componentes de la
192
196
id:5:initdefault:
Cambiando el 5 al niv el de runlev el que se desea ejecutar por
def ecto.
La may oría de las distribuciones prov een métodos para determinar
el serv idor XDMCP por def ecto. Existen dos métodos comunes:
Selección por medio de un archivo de configuración
Algunas distribuciones ocultan la elección del serv idor,
f recuentemente en el directorio /etc/sysconfig . En Fedora, el
archiv o /etc/sysconfig/desktop f ija la v ariable DISPLAY MANAGER
con el v alor de la ruta al ejecutable DISPLAY MANAGER=/bin/xdm.
En openSUSE, /etc/sysconfig/displaymanager.
Selección por medio de los scripts de inicio
En Debian y sus distribuciones deriv adas, como Ubuntu, el gestor
de pantalla se elige por medio de un script de inicio de SysV, Upstart
o Systemd.
Arquitectura Cliente/Servidor de X
La may oría de la gente imagina a los serv idores como
computadoras muy potentes dentro de centros de cómputos. Si bien
este concepto es acertado a v eces, no aplica los serv idores X.
El serv idor X se ejecuta en la computadora que el usuario utiliza,
f ísicamente. Los clientes X, son los programas que el usuario
ejecuta (xterm, KMail, LibreOffice, etc). En la may oría de los casos,
el serv idor X y los clientes residen en la misma computadora, pero
en los casos en que se usa X para acceso remoto, hay que tener en
cuenta que el serv idor X se encuentra en la computadora del usuario.
Supongamos que tenemos 2 computadores en la red, Zion y Lion.
Zion es una computadora potente que contiene importantes
programas y Lion es un sistema menos potente, pero que tiene un
teclado, un mouse y un monitor.
Queremos estar sentados en Lion y correr programas que se
encuentran en Zion.
1.
2.
3.
Iniciamos una sesión con X en Lion.
Abrimos una terminal
Escribimos xhost + Zion en la terminal de Lion. Este comando
le indica a Lion que muestre datos originados de Zion en
199
4.
5.
6.
pantalla.
Iniciar una sesión ssh en Zion desde Lion.
En Zion, escribir export DISPLAY =Lion:0.0 Este comando le
indica a Zion que use Lion para mostrar programas basados
en X.
Lanzar un programa de Zion, como lof f ice (LibreOf f ice)
200
201
RepeatKeys: Permite a un usuario con coordinación limitada tiempo
adicional para largar las teclas antes de empezar a repetir las teclas.
BounceKeys: Inserta un tiempo muerto entre tecla y tecla, para
ev itar pulsaciones no intencionadas.
Orca
Orca es una tecnología de asistencia f lexible, extendible y potente
para las personas con discapacidad v isual. Usando v arias
combinaciones de síntesis de v oz, braille y magnif icación, Orca
ay uda a proporcionar acceso a las aplicaciones GNOME y algunas
otras.
Emacspeak
Es similar a Orca, habilita a personas con discapacidad v isual a
utilizar una computadora.
203
204
205
7. Tareas Administrativas
En el siguiente capitulo v eremos como llev ar a cabo las rutinas de
administración necesarias para administrar el sistema, como la
administración de usuarios, la planif icación y programación de tareas
recurrentes el f uturo y las conf iguraciones de localización e
internacionalización.
Esta unidad consiste de 3 subunidades:
Gestión de usuarios y grupos (107.1)
En esta unidad se explica como gestionar cuentas de usuario y
grupos. Cuales son los archiv os de conf iguración y los comandos
que interv ienen en la administración de usuarios.
Programación de tareas futuras con Cron y At (107.2)
La herramientas f undamental para que el sistema realice tareas
programadas a f uturo es el demonio Cron. En esta subunidad
examinaremos su f uncionamiento y conf iguración. También v eremos
el comando at.
Localización e Internacionalización (107.3)
Es importante tener la habilidad de conf igurar el sistema para que se
adapte a dif erentes lenguajes y locales. Para eso v eremos las
dif erentes conf iguraciones que podemos realizar.
206
207
almacenada en este campo que se encuentra encriptado. A pesar de
la encriptación, por razones de seguridad, la may oría de los
sistemas almacena contraseñas en un archiv o separado, el
/etc/shadow. Si no se incluy e la contraseña, su campo se rellena por
la letra x, que indica que el sistema de contraseñas shadow está en
uso.
ID de usuario
Cada nombre de usuario requiere un identif icador de usuario único, o
UID. El UID es simplemente un entero no negativ o. La cuenta root
se le asigna el UID de 0. Por conv ención, los v alores de UID de 0 a
99 están reserv ados para uso administrativ o, los may ores de 99 son
para los usuarios regulares del sistema. En algunos sistemas, se
empiezan a asignar UID para usuarios regulares a partir del numero
500.
ID de grupo
Cada usuario tiene un identif icador de grupo primario o GID. El GID
es también un entero no negativ o. Los números de grupo y sus
nombres asociados se especif ican en el archiv o /etc/group. El GID
almacenado para cada usuario en /etc/passwd es su ID de grupo por
def ecto, aunque el usuario puede pertenecer a v arios grupos.
El nombre completo del usuario o miscelánea
El nombre del usuario u otra inf ormación se almacena como texto
sin f ormato y por lo general contiene el nombre completo del
usuario. Este campo puede contener espacios.
Directorio de inicio
El directorio de inicio el directorio por def ecto en el sistema de
archiv os para la cuenta. Si una cuenta es para una persona,
probablemente se creará un directorio en el sistema de archiv os con
archiv os de conf iguración estándar que el usuario puede
personalizar. La ruta completa al directorio de inicio está aquí.
Shell por defecto
Este campo especif ica el shell por def ecto para el usuario o el
serv icio, que es el shell que se ejecuta cuando el usuario inicia
sesión o abre una v entana de shell. En la may oría de los casos, el
shell será /bin/bash o /bin/tcsh, pero puede ser cualquier shell, o
incluso otro programa ejecutable.
Grupos y el archivo /etc/group
Los grupos son similares a los usuarios en su administración y se
209
def inen en el archiv o /etc/group. Al igual que el archiv o passwd, el
archiv o de grupo contiene campos separados por dos puntos:
Nombre del grupo
Este campo indica el nombre del grupo. Cada grupo debe tener un
nombre único.
Contraseña
Al igual que las cuentas de usuario tienen contraseñas, los grupos
pueden tener contraseñas para sus miembros. Si el campo de la
contraseña está v acío, el grupo no requiere una contraseña. La
contraseña en un grupo puede usarse para acceder temporariamente
al grupo por medio el comando newgrp.
ID de grupo
Cada grupo requiere un GID único. Como los UID, los GID son
números enteros no negativ os.
M iembros del Grupo
El último campo es una lista de los miembros del grupo por nombre
de usuario, separados por comas.
El sistema shadow de contraseñas
En los comienzos de Linux, las contraseñas se podían leer, de
manera encriptado, desde el archiv o /etc/passwd. Eso los hacia
susceptibles a ataques de f uerza bruta. Para corregir esa
v ulnerabilidad, se trasladaron las contraseñas a los archiv os
/etc/shadow para los usuarios y /etc/gshadow para los grupos. El
único con permisos para leer estos archiv os debería ser root.
Comandos de gestión de usuarios y grupos
Aunque es posible, rara v ez es necesario (ni aconsejable) manipular
la cuenta y los archiv os de def inición de grupo manualmente con un
editor de texto. En cambio, una f amilia de comandos está disponible
para la gestión de cuentas, grupos y contraseñas.
Comando useradd
Descripción
Crea cuentas de usuarios en el sistema. Tanto los v alores por
def ecto del sistema y las opciones especif icadas def inen cómo se
conf igurara la cuenta. Una contraseña inicial debe ser establecida
posteriormente.
Una alternativ a a useradd es el comando adduser, el cual nos
permite ingresar los parámetros de manera interactiv a.
210
214
219
Iconv –f formato [-t formato] [archivo_entrada]
Las opciones f y t representan los f ormatos de codif icación de
entrada y de salida. Si se omite el f ormato de codif icación de salida,
iconv utiliza el que este como def ecto en las conf iguraciones de
locale.
223
224
8. Servicios esenciales del
sistema
Mantener la hora del sistema (108.1)
Esta subunidad analiza como Linux mantiene la f echa y la hora
actualizadas. Se rev isa como realizar esta tarea manualmente y
utilizando un serv idor NTP (Network Time Protocol).
También se explica como conf igurar un serv idor para que prov ea el
serv icio NTP a otras computadoras dentro de nuestra red.
Registro de actividad del sistema o “Logging” (108.2)
Es importante registrar lo que suceden a diario y hacen a la v ida del
sistema. La inf ormación que se guarda en estos archiv os de registro
de activ idad (log f iles) no serv irá para solucionar problemas y para
estar al tanto de lo que sucede en nuestro sistema.
Correo electrónico (108.3)
El correo el electrónico es uno de los serv icios mas importante que
prov ee un serv idor Linux. Si bien saber el detalle de todos los
serv idores SMTP no es necesario para la certif icación LPIC-1, si es
necesario saber como estos f uncionan. Además de los demás
programas complementarios.
Gestión de Impresoras (108.4)
En esta subunidad se inspecciona como es la arquitectura de los
sistemas de impresión en Linux. Algunos de los conceptos son
PostScript, Ghostscript y el serv icio CUPS.
225
226
230
231
Logging
Introducción
Muchos de los ev entos que ocurren durante el f uncionamiento de un
sistema v alen la pena de ser registrados. Para ellos se desarrollaron
programas llamados loggers, los cuales gestionan los logs (registros
de activ idad).
El concepto detrás de un logger es prov eer una manera unif icada de
manejar los archiv os de registros de activ idad. Este guarda
mensajes que suelen tener inf ormación sobre la activ idad del
sistema, junto con cada mensaje se incluy e la f echa y la hora del
env ío.
Syslog, Syslogd, Rsyslog y Klogd
Antes de empezar, v ale la pena tomarse el tiempo de aclarar ciertos
términos para f acilitar la comprensión del resto del texto.
Syslog
El termino Syslog puede resultar un tanto ambiguo, y a que se lo
suele usar para ref erenciar dif erentes cosas. Antes que nada, syslog
es un estándar, que def ine una arquitectura para manejar los
mensajes que registran activ idad dentro de un sistema. También se
usa syslog para ref erirse al demonio sy slogd, que def inimos a
continuación.
Syslogd
Hasta hace poco tiempo f ue el programa de syslog mas común
dentro de la may oría de las distribuciones, se instala con un paquete
llamado sysklogd.
Rsyslog
Últimamente es mas común v er a rsyslogd instalado como serv idor
de logging en las distribuciones mas populares. Si bien acepta una
conf iguración tradicional (estilo sysklogd) , muchas de las mejoras
que implementa necesitan un archiv o de conf iguración con los
métodos nuev os.
Klogd
Tanto syslogd como rsyslog generalmente f uncionan en paralelo con
el demonio klogd, cuy a tarea es guardar un registro de la activ idad
del kernel.
En lo que respecta a los objetiv os de la certif icación LPI, solo hay
232
que conocer en detalle el f uncionamiento de sy slogd. Solo es
necesario tener una noción básica acerca de rsy slogd.
Configuración
Syslogd se conf igura a trav és de el archiv o/etc/syslog.conf . El
concepto de este archiv o de conf iguración es muy simple y
poderoso al mismo tiempo. El f ormato básico de las líneas que lo
componen es el siguiente.
Línea de ejemplo syslog.conf
facilidad.prioridad acción
Facilidad: es una palabra que codif ica el tipo de programa o
herramienta que genera el mensaje a ser registrado.
Prioridad: este campo codif ica la importancia del mensaje.
Acción: Representa el destino de los mensajes. Puede ser un
archiv o, una computadora remota u otra locación que acepte el
mensaje. La f acilidad y la prioridad muchas v eces son ref eridas en
conjunto como el selector.
Facilidades
auth: Autenticación.
auth-priv: Autenticación que no son creados por el sistema.
cron: Serv icio Cron.
daemon: Serv icios de ejecución. Este código es utilizado por los
demonios que no tienen asignado un código especif ico, como mail o
cron.
kern: kernel
lpr: Serv icio impresión.
mail: Serv icio de Mail
news: Serv icio News.
security (auth): Similar a auth.
syslog: sy slog.
user: Usuarios.
uucp: Serv icios uucp.
local0 a local7: Se pueden usar estas f acilidades para programas
que creen los usuarios. Es posible que las distribuciones y a estén
usando alguna de estas f acilidades para programas específ icos, así
que, es conv eniente consultar la documentación de cada distribución
antes utilizarlas.
Prioridades
debug: depuración
info: inf ormativ o
233
notice: notif icaciones
warning: adv ertencias
err: errores
crit: críticos
alert: alertas
emerg: emergencia
Las prioridades tienen un orden ascendente de importancia. emerg
indica el niv el mas alto de importancia e indica serios problemas. El
niv el de debug es el que registra la may or cantidad de inf ormación,
se usa para depurar programas que no se comportan de la manera
esperada.
Sintaxis
Igual o mayor prioridad
Cuando un programa env ía un mensaje al logger, incluy e un código
de prioridad, el logger registra el mensaje a un archiv o si esta
conf igurado para registrar esa prioridad o may or. Por cual, si se
especif ica un código de prioridad de alerta, el sistema registrara
mensajes de alerta, pero no mensajes crit o de menor prioridad.
Igual prioridad
Si se quiere indicar una prioridad que solo se registre si coincide con
esa prioridad, se utiliza el singo (=).
M enor o igual prioridad
El signo de exclamación (!) indica un v alor de menor o igual
propiedad.
Todas las facilidades
Un asterisco (*) se ref iere a todas las f acilidades.
M últiples facilidades
Se pueden especif icar v arias f acilidades en un solo selector
separándolas por comas.
M últiples selectores
Se pueden especif icar múltiples selectores para una acción particular
separando los selectores con ";"
Registro manual de datos
En la may oría de los casos, el sistema o algún serv idor generan las
entradas de registros en el logger, aunque en ocasiones, un puedo
llegar a querer generar una entrada manual o un script que se ocupe
de ello. La herramienta para este trabajo es llamada logger.
234
237
usuario. El serv idor de correo almacena los mensajes para cada
usuario dentro del directorio /v ar/spool/mail .
Servidores SMTP
Linux soporta v arios serv idores de correo dif erentes.
Probablemente, alguno de estos programas este instalado en nuestro
sistema. Estos son los cuatro serv idores de correo mas populares
en Linux.
Sendmail
Durante un tiempo, f ue el paquete para gestionar correo electrónico
mas usado en Internet. Sendmail tiene 2 def ectos importantes, el
primero, es que su conf iguración suele ser bastante compleja; el
segundo radica en la cantidad de v ulnerabilidades de seguridad que
presenta.
Como respuesta a estas def iciencias, con el tiempo, aparecieron
v arios programas que f ueron ganándole terreno a Sendmail.
Postfix
Postf ix f ue diseñado como un reemplazo modular a Sendmail, esta
conf ormado por v arios programas, cada cual de ellos realiza tareas
especif icas. Su conf iguración es mas simple que la de Sendmail y
se ha conv ertido en el paquete de correo electrónico por def ecto
para muchas distribuciones.
Exim
Si bien tiene un diseño monolítico, al igual que Sendmail, pero no es
tan dif ícil de conf igurar como este ultimo. Exim llego como una
respuesta a los problemas de seguridad de Sendmail, por lo que tiene
un buen niv el de seguridad. Muchas distribuciones, incluy endo
Debian, usan Exim como MTA por def ecto.
Qmail
Tiene un diseño modular, se f ocaliza en la seguridad y es mas f ácil
de instalar que Sendmail. No tiene una licencia GPL, lo que limita un
poco su uso.
Uso del programa mail
El programa mail nos permite env iar correos y leer correos
almacenados localmente en el serv idor. Vale la pena mencionar, que
además del programa mail, existen una v ariación de el, llamada nail,
la cual permite env iar archiv os adjuntos al mensaje de correo.
Envío de correo con mail
Sintaxis
239
mail [-v] [s- asunto] dirección_destino
Opciones
-v: Muestra mas inf ormación
-s: Permite especif icar el asunto.
-c: dirección: Env ía el mensaje con copia
-b: dirección: Env ía el mensaje con copia oculta
Para env iar un mail podemos ejecutar el comando mail seguido por
una alguna dirección de correo electrónico o algún usuario del
sistema. Si las opciones de asunto, copia y copia oculta no son
prov istas, el programa nos dará la oportunidad de agregar estos
parámetros. Luego el prompt desaparecerá y podremos escribir el
cuerpo de nuestro mensaje. Una v ez que hay amos f inalizado
escribiendo el mensaje, podemos f inalizar el proceso con Ctrl-D.
Leer correo con mail
Sintaxis
mail [-v] [f- [nombre | -u usuario]
Se puede utilizar el programa mail para leer correos, pero solo
aquellos almacenados en el spool local de Linux. Para hacerlo, solo
tenemos que ejecutar la aplicación mail sin ninguna opción, a no ser
que queramos especif icar otro archiv o de spool dif erente con la
opción -f .
Consultar la cola de correos
El serv idor SMTP debe gestionar una cola de correos electrónicos, la
cual contiene mensajes que deben ser entregados. Para la gestión
de la cola de correos, se utiliza el comando mailq. Este programa era
originalmente parte de Sendmail, pero los programas que deriv aron
Sendmail (Postfix, Qmail y Exim) implementan una capa de emulación
de Sendmail, que prov ee con una serie de comandos de Sendmail a
los usuarios y a los programas. Dentro de esta capa de emulación,
todos los programas tienen una implementación de mailq.
Redirección de correo
Los aliases de correo, permiten que una dirección represente a otra.
Por ejemplo, todos los serv idores de correo deberían mantener una
cuenta llamada postmaster. El correo dirigido a esta cuenta debería
ser leído por alguien responsable por la administración de ese
sistema. Una manera de realizar esto es v incular la cuenta
postmaster a otra cuenta que se use en la realidad. Para implementar
240
ese v inculo, hay que editar el archiv o de aliases, que suele
encontrarse dentro de /etc o también dentro de /etc/mail.
La sintaxis es bastante simple
…
nombre: direccion1[, direccion2]
…
Donde nombre es el nombre de la cuenta local, como puede ser
postmaster. Cada dirección puede ser el nombre de una cuenta local,
el nombre de un archiv o local en el cual se guardan los mensajes o
el nombre de una dirección de correo electrónico completa.
Es normal encontrar conf iguraciones donde se redirige el correo de
cuentas como postmaster y otras similares a root. No es
aconsejable leer correo como root, por lo que root a su v ez puede
estar redirigido a otra cuenta.
Algunos programas de correo, requieren que se compile el archiv o
/etc/aliases a un f ormato binario, para que pueda ser procesado mas
rápido. Para realizar esto se utiliza el comando newaliases.
Otra f orma de redirigir el correo es hacerlo desde las cuentas de
usuarios, para eso se edita el archiv o ~/.forward dentro de los
directorios de inicio de los usuarios.
Programas complementarios
Además del serv idor SMTP, un serv idor de correo seguramente tenga
mas sof tware. Como los programas para implementar los protocolos
POP o IMAP.
Fetchmail: Este programa rellena un agujero en la cadena de env ío
de correos. Si se tiene un pequeño sitio que depende del ISP para
env íos de correo, seguramente el ISP soporte nada mas que IMAP o
POP. Si se quiere usar una v ariedad de clientes de correo, es posible
que se quiera tener su propio serv idor SMTP, y tal v ez su propio
serv idor POP o IMAP, para entregar correos localmente. Para hacer
esto, se necesita un programa que saque el mail usando POP e
IMAP y luego lo iny ecte dentro de una cola SMTP. Este es el trabajo
que realiza Fetchmail. La may oría de los sitios no lo tiene, pero para
los que lo necesitan, es indispensable.
Cyrus Imap: Soporta tanto IMAP como POP.
Dovecot: Es un MDA (Mail Delivery Agent)También soporta IMAP y
POP, hace énf asis en la v elocidad y en la seguridad..
241
242
lpr env ía un trabajo de impresión a una cola especif ica. Esta cola
corresponde a un directorio en el disco rígido, generalmente un
subdirectorio dentro de /var/spool/cups/ . El demonio de CUPS corre
en el segundo plano, esperando a trabajos de impresión que sean
env iados. El sistema de impresión acepta trabajos de impresión de
lpr o de otras computadoras remotas, monitorea colas de impresión.
Configuración
En otros sistemas operativ os, como Windows o Mac, se utiliza un
controlador de impresión, que se ubica en el medio de la aplicación y
la cola de impresión. En Linux, el controlador, es parte de
ghostscript, que es parte de la cola de impresión. No todas las
aplicaciones o impresoras necesitan de ghostscript, Ghostscript
sirv e como una manera de traducir a PostScript, un lenguaje de
impresión común, en f ormas que sean entendidas por todas las
computadoras. Entender la capacidad de ghostscript, y como encaja
con la cola de impresión, es importante para entender como
conf igurar impresoras.
PostScript: El lenguaje de Impresión de Facto
Las impresoras PostScript se v olv ieron populares como accesorios
de sistemas de Unix durante los años 80. Las colas de impresión de
Unix no f ueron pensadas con driv ers del estilo Windows en mente.
Por lo que las colas de Unix se construy eron en base a PostScript.
El problema con PostScript es que las impresoras de precio bajo y
medio generalmente no lo entienden, por lo que necesitan un
traductor en el medio. Aquí es donde Ghostscript hace su aparición.
GhostScript
Cuando una computadora utiliza una impresora tradicional de
PostScript, esta le env ía una archiv o PostScript directamente a la
impresora. PostScript es un lenguaje de programación, cuy o objetiv o
principal es conseguir una pagina impresa como salida. Ghostscript
es un interpretador de PostScript que corre en una computadora.
Toma una entrada de PostScript y produce una salida en una
v ariedad de f ormatos de mapas de bits, los cuales pueden ser
entendidos por impresoras que no usen PostScript.
Configuración de CUPS
CUPS utiliza v arios archiv os de conf iguración ubicados en /etc/cups
y sus subdirectorios para manejar esta operación. Estos archiv os
pueden ser editados directamente, y es probable que se necesario
244
hacerlo si se quiere compartir la impresora entre v arios subsistemas
CUPS. La manera mas simple de agregar impresoras a CUPS es
con la utilidad de conf iguración Web.
Archivos de configuración de CUPS.
Se pueden agregar, quitar o editar impresoras a trav és de
/etc/cups/printers.conf, el cual consiste de def iniciones de
impresoras. Cada def inición empieza con el nombre de la impresora,
identif icado por el string DefaultPrinter o Printer.
245
246
9. Fundamentos de redes
Conceptos fundamentales de redes (109.1)
Protocolos componentes de la pila TCP/IP
Configuración básica de red (110.2)
Comandos básicos para conf igurar la red
Resolución de problemas de red (109.3)
En esta subunidades se v en herramientas y consejos para
solucionar problemas en la red.
Configuración del cliente DNS (109.4)
En esta subunidad rev isamos como realizar la conf iguración del
cliente DNS.
247
248
Paquetes de red
Las redes modernas operan en base a bloques de inf ormación
conocidos como paquetes. Cuando se env ía un archiv o de 100KB
desde una maquina hacia otra, la computadora div ide este archiv o
en bloques mas pequeños. Si se div iden los 100KB en 20 paquetes
de 5KB, en el caso de que un paquete se pierda en el camino, no es
necesario retransmitir todo el archiv o de v uelta, sino que
retransmitiremos solo los 5KB que perdimos.
Pila de protocolos
El conjunto de protocolos que f orman parte del proceso que se da
cada v ez que se intercambia un datos entre dos computadoras, se
llama la pila de protocolos. Esta pila se div ide en v arias capas, cada
una de las cuales cumple un determinado tipo de f unciones.
Cada una de estas capas interactúa con las capas pares de la otra
computadora para intercambiar datos y a su v ez hace uso de la
capa que tiene abajo para que ella encapsule sus paquetes y los
llev e a destino.
Las capas de la pila TCP/IP son:
Capa de Aplicación
Esta capa prov ee serv icios al sof tware de aplicaciones corriendo en
una computadora. Algunos protocolos de capa de aplicación son FTP,
HTTP, DNS y SMPT.
Capa de Transporte
Es la capa que se ocupa de gestionar la entrega de los paquetes de
datos entre la computadora que origina estos datos y la
computadora que es la destinataria f inal de estos datos. Los dos
protocolos f undamentales de esta capa son TCP y UDP.
Capa IP o de Internet
Encuentra las rutas correctas para dirigirse a las direcciones IP de
destino. El protocolo IP es el protocolo f undamental de Internet.
Capa de Acceso a Datos
Def ine el protocolo y el hardware necesario para entregar datos por
medio de una red f ísica. Incluy e todas las v ariaciones de los
protocolos de Ethernet y otros estándares de LAN. También incluy e
estándares de WAN como PPP y frame relay.
Protocolo de control de transmisión (TCP)
TCP es el protocolo de capa de transporte mas usado. Como su
250
cima de esta jerarquía se encuentran los dominios de niv el superior,
como son .ar, .com y .edu. Dentro de los dominios de niv el superior
encontraremos dominios de segundo niv el, que corresponden a
organizaciones, como uba.ar o google.com. Y dentro de esos
dominios, podemos tener otros dominios de menor jerarquía o
nombres de computadoras, asociados a direcciones IP.
El sistema de Nombres de Dominio (DNS) es una base de datos
distribuida que conv ierte direcciones IP en nombres de dominio.
Cada dominio debe mantener al menos dos serv idores DNS que
tengan la capacidad de prov eer los nombres de dominio de cada
computadora dentro del dominio.
Comando host
Descripción
El comando host realiza búsquedas DNS y nos dev uelv e los
resultados.
Comando dig
Descripción
Este comando puede realizar consultas DNS mas complejas que
host.
Puertos de red
Una v ez que se realiza la conexión con una computadora remota, se
debe especif icar que programas queremos contactar. Por ejemplo, si
se quiere conectar con el serv idor web o con un serv idor FTP. La
manera que se dirige el traf ico a los programas correctos y a su v ez
se restringe este traf ico es mediante puertos lógicos.
Puertos comunes
TCP
20 FTP
21 FTP
22 SSH
23 Telnet
25 SMTP
53 DNS
80 HTTP
110 POP3
111 Portmapper
113 Auth/Ident
119 Network News Transf er Protocol
253
139
143
389
443
445
465
631
993
NetBios Session
Imap
Ldap
HTTP ov er SSL
Microsof t Directory Serv ices
SMTP sobre SSL
Internet Printing Protocol
Imap sobre SSL
UDP
67 DHCP
161 SNMP
177 XDMCP
Configuración DNS
Para resolv er nombres DNS podemos optar por 2 opciones o una
combinación de las dos. La primera es usar un archiv o local que
contenga los pares que v inculan direcciones IP y nombres DNS.
Ese archiv o v iene por def ecto en todas las distribuciones y se llama
/etc/hosts. La segunda es usar serv idores DNS, los cuales podemos
listar dentro del archiv o /etc/resolv.conf . Lógicamente, hay que
ref erenciar los serv idores DNS por su dirección IP, y a que Linux no
podrá resolv er nombres si no puede ubicar a los serv idores DNS.
Generalmente, se consulta primero al archiv os local hosts antes que
a los serv idores DNS. En el caso de que queramos cambiar el orden
en que Linux realiza consulta de DNS, podemos editar el archiv o
/etc/nsswitch.conf .
254
255
261
265
Establecer los servidores DNS en el
/etc/resolv.conf
Este archiv o nos permite establecer cuales son los serv idores DNS
que debemos consultar, podemos indicarle entre 1 y 3 serv idores.
Aunque generalmente se suelen poner solo dos.
La sintaxis es la siguiente:
…
nameserver 173.203.4.9
nameserver 173.203.4.8
…
La dirección IP de los serv idores DNS v a precedida por la palabra
clav e nameserver.
267
268
10. Seguridad
Gestión de la seguridad (110.1)
En esta subunidad se hace una introducción a los conceptos básicos
de seguridad. También se v en como podemos usar algunos
comandos para realizar tareas de seguridad.
Seguridad del host (110.2)
Esta subunidad detalla los pasos necesarios para aumentar la
seguridad de un sistema Linux. Es importante entender esta tarea
como un proceso recurrente el cual siempre puede ser mejorable.
Técnicas de encriptado (110.3)
En esta subunidad se hace una introducción a las técnicas de
encriptado disponibles. Se hace f oco en las herramientas SSH y
GPG.
269
270
Gestión de la seguridad
Conceptos Claves
Inspeccionar un sistema para encontrar archiv os con el bit
SUID/SGID.
Gestionar las contraseñas de usuarios y su política de
expiración.
Saber utilizar nmap y netstat para descubrir puertos abiertos.
Establecer límites de inicios de sesión, uso de procesador y
uso de memoria.
Conf iguración y uso básico de sudo.
Términos y utilidades
f ind
passwd
lsof
nmap
chage
netstat
sudo
/etc/sudoers
su
usermod
ulimit
Introducción
Una buena gestión de la seguridad nos permitirá mantener nuestro
sistema f uncionando sin interrupciones y mantener nuestros datos a
salv o. Hay una serie de conceptos que hay que entender para poder
utilizar las herramientas disponibles para gestionar la seguridad.
Peligros de los archivos SUID y GUID
Recordemos que estos archiv os le otorgan al usuario los mismos
permisos con los que cuenta el usuario que es dueño del archiv o. Si
bien este esquema de delegación de permisos es importante para
administrar el sistema, tiene sus consecuencias en cuanto a los
riegos que genera.
Es lógico que el programa passwd (/usr/bin/passwd) tenga estos
permisos. Ya que para cambiar su propia contraseña, un usuario
debe escribir en el archiv o /etc/shadow; sobre el cual solo root
debería tener permisos de escritura. Por lo que este es un caso de
uso adecuado de SUID.
271
Para v er un caso potencialmente muy peligroso, podemos v er los
peligros que se generarían si el programa Vi tuv iera permisos de
SUID. Recordemos que VI tiene la posibilidad de ejecutar comandos
de Shell, los cuales toman los permisos que el proceso de Vi. Por lo
tanto, si se ejecuta Vi con SUID de root, se obtienen todos los
permisos para ejecutar comandos con los que cuenta root. Con la
implicancia en materia de seguridad que esto trae.
Es entendible, entonces, que debamos inspeccionar regularmente
nuestro sistema, en busca de archiv os que utilicen este tipo de
permisos especiales.
Como encontrar archivos SUID y GUID
Para localizar estos archiv os se puede utilizar el comando find,
aprov echando que este comando tiene la habilidad de buscar por
modo (permisos de usuarios). Aquí se pueden v er algunos ejemplos
de búsquedas con find.
Encontrar archivos con SUID
# sudo find / -perm +4000
Encontrar archivos con GUID
# sudo find / -perm +2000
Encontrar archivos con GUID o SUID
# sudo find / -perm +6000
Encontrar archivos con GUID y SUID
# sudo find / -perm -6000
Si se precede el modo con un signo más (+), find busca todos los
archiv os en los que alguno de los bits de permisos especif icados
este f ijado. En cambio si se utiliza un signo menos (-), solo trae los
archiv os en los cuales los dos bits estén f ijados.
Comando chage
Descripción
El comando chage modif ica v arios parámetros relacionados a la
expiración de las contraseñas y las cuentas de usuario.
Sintaxis
chage [opciones] usuario
Opciones
-E fecha_expiración: Establece la f echa de expiración de la
contraseña.
-d ultimo_día: Establece la f echa en el que la contraseña se
272
cambio por ultima v ez
-I días_inactivo: Luego de cuantos días de expirada la contraseña
se deshabilita la cuenta
-m días: Establece mínimo de días que tienen que pasar desde el
ultimo cambio de contraseña para poder v olv er a cambiar
-M días: Estable máximo de días que un usuario puede mantener
una mismo contraseña antes de cambiarla.
-w días: La cantidad de días antes de que expire la contraseña que
el usuario recibirá el mensaje de adv ertencia.
-l: Lista las opciones de contraseña de un usuario.
Comando usermod
Descripción
Modif ica una cuenta de usuario existente. Como herramienta de
seguridad, nos permitirá habilitar y deshabilitar cuentas de usuario.
Sintaxis
usermod [opciones] usuario
Opciones de uso más frecuente
-L: Bloquea la contraseña, deshabilitando la cuenta.
-U: Libera la contraseña, habilitando la cuenta.
-c Comentario: Establece el v alor del comentario (campo 5 del
passwd)
-d Directorio: Estable el directorio de inicio
Monitoreo de puertos de red
Hay tres herramientas que nos permiten monitorear puertos abiertos
en la red. Dos de ellas v ienen instaladas y la tercera hay que
instalarla. Ellas son lsof, netstat y nmap.
Comando lsof
Descripción
Este programa nominalmente lista archiv os abiertos, pero también
se puede usar para identif icar que serv icios están en uso, usando la
opción -i.
Ejemplo
# lsof –i
Comando netstat
Se usa para listar conexiones de red, tablas de ruteo y otra
inf ormación sobre la operaciones de red en general. Para v er las
273
conexiones de red, podemos usar las opciones –a y –p.
# sudo netstat –ap
Comando nmap
Nmap permite inspeccionar una red para encontrar puertos que estén
abiertos, y a sea en la computadora local, en una computadora
remota o en una red entera.
Sintaxis
nmap [ Tipo Sondeo ] [Opciones ] IP_objetivo
Nmap es una herramienta muy potente y compleja que permite
dif erentes tipos de sondeos de red. Dif erentes escenarios requieren
dif erentes tipos de sondeos, esta en la experiencia del administrador
saber cual es el adecuado.
Se usa tanto para examinar redes propias como redes ajenas, por lo
que es una herramienta habitual entre las que suelen usar los
crackers.
Ejemplo 1
Examinar la red para v er que hosts están activ os
# nmap 192.168.0.0/24
Ejemplo 2
Ver que puertos están abiertos y que serv icios corren en ellos
# nmap 192.169.0.20
Ejemplo 3
Intentar detectar sistema operativ o
# nmap -O 192.169.0.20
Ejemplo 4
Ver que programas corren en los puertos
# nmap -sV 192.169.0.20
Restringir el uso de el usuario root con Sudo
Por el hecho de que el usuario root puede hacer cualquier cosa
dentro de una computadora, es lógico restringir su acceso.
Sudo es un programa que se utiliza para que los administradores de
sistema permitan que ciertos usuarios ejecuten ciertos comandos
como root (u otro usuario).
274
La f ilosof ía básica es dar la menor cantidad de priv ilegios, pero
igualmente permitir que se realicen las tareas necesarias.
Sudo también permite llev ar una auditoria de quien ejecuto que
comando y cuando lo ejecuto.
Beneficios de usar Sudo
Registro de Comandos: Se puede tener un registro de comandos.
Los cuales pueden ser trazados al usuario que los emitió.
Permitiendo realizar auditorias.
Registro centralizado de comandos: Se puede usar en conjunto
con el demonio de registros (sy slog) para centralizar los registros en
una sola computadora.
Restricción de comandos: Cada usuario o grupo puede ser limitado
en cuanto a cuales comando podrá ejecutar
Sistema de Tickets: El sistema de tickets establece un limite de
tiempo cuando un usuario ingresa en modo sudo
Administración centralizada de múltiples sistemas: Las
conf iguraciones sudo son escritas al archiv o /etc/sudoers. Este
archiv o puede ser usado en múltiples sistemas y permite la
administración desde una computadora central.
Configuración de sudo con el archivo /etc/sudoers
El f uncionamiento de sudo se conf igura a trav és del archiv o
/etc/sudoers, el cual no debe ser editado directamente, debe ser
editado con el programa v isudo. El contenido de este archiv o
consiste en dos tipos de entradas:
Aliases: Son básicamente v ariables, se pueden usar para def inir
grupos de comandos, grupos de usuarios, etc.
Especificaciones: Vinculan usuarios o aliases con computadoras y
comandos.
Tipos de Aliases
Aliases de Usuario: Se utilizan para especif icar grupos de usuarios.
Se pueden especif icar nombres de usuario y grupos del sistema
(con el pref ijo %).
Aliases de “ejecutar como” : Son muy similares a los Aliases de
usuario, con la dif erencia que se pueden indicar usuarios por UID.
Aliases de Host: Es una lista de nombres de hosts, direcciones IP y
redes.
Alias de Comandos: Son listas de comandos y directorios.
Ejemplo
# Comandos para apagar el sistema
275
Cmnd_Alias SHUTDOWN_CMDS = /sbin/shutdown,
/sbin/reboot, /sbin/halt
# Comandos de impresión
Cmnd_Alias PRINTING_CMDS = /usr/sbin/lpc, /usr/sbin/lprm
# Comandos administrativos
Cmnd_Alias ADMIN_CMDS = /usr/sbin/passwd,
/usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod,
/usr/sbin/visudo
# Comandos Web
Cmnd_Alias WEB_CMDS = /etc/init.d/apache2
Comando su
El comando su se utiliza para cambiar de usuarios, su nombre v iene
de Switch User (Cambiar Usuario). En el caso de que se ingrese el
comando si ningún parámetro, intentara iniciar sesión como root, por
lo que se pedirá la contraseña de root.
Si se le pasa como argumento el nombre de otro usuario, se
intentara pasar a ese usuario. Para ejecutar un solo comando como
otro usuario, se puede usar la opción -c.
Ulimit
El comando ulimit limita el uso de recursos del sistema, es un
comando interno de Bash, por lo que af ecta solo a Bash y los
programas que se lanzan desde Bash.
Sintaxis
ulimit [opción [limite]]
Opciones
Opción
Descripción
-a
Muestra los limites actuales
-u numero
Numero máximo de procesos
disponibles a un usuario.
-x numero
Numero máximo de bloqueo de
archiv os
-v numero
Máxima memoria disponible para
el shell, en kiloby tes.
-H
El limite es rígido.
-S
El limite es f lexible.
276
277
278
Seguridad del Host
Conceptos Claves
Conocimiento de contraseñas shadow y su f uncionamiento.
Desactiv ar serv icios de red que no estén en uso.
Comprender el rol de los TCP wrappers.
Términos y utilidades
/etc/nologin
/etc/passwd
/etc/shadow
/etc/xinetd.d/*
/etc/xinetd.conf
/etc/inetd.d/*
/etc/inetd.conf
/etc/inittab
/etc/init.d/*
/etc/hosts.allow
/etc/hosts.deny
Introducción
Para mantener segura nuestra computadora debemos tener en
cuenta detalles como el uso apropiado de contraseñas, el monitoreo
de puertos de red y el control sobre los serv icios que se ejecutan
con acceso a la red.
Gestión de Contraseñas
La may oría de las distribuciones de Linux implementa el sistema de
contraseñas Shadow. En el cual, las contraseñas no son
almacenadas en el archiv o /etc/passwd como se hacia en los
comienzos sino que son almacenadas en un archiv o separado, el
/etc/shadow.
El /etc/shadow, además de contener las contraseñas de los
usuarios, contiene la siguiente inf ormación, almacenada en 8
campos separados por dos puntos (:).
Una línea del archiv o shadow se v ería así.
…
adolfo:$6$OTVKm:15786:0:99999:7:::
…
Los campos son:
279
Campo
Descripción
1
Nombre usuario
2
Contraseña
3
Ultimo Cambio de Contraseña
4
Mínimo de días que tienen que
pasar desde el ultimo cambio de
contraseña para poder v olv er a
cambiar
5
Máximo de días que un usuario
puede mantener una misma
contraseña antes de cambiarla
6
La cantidad de días antes de
que expire la contraseña que el
usuario recibirá el mensaje de
adv ertencia.
7
La cantidad de días después de
que hay a expirado la
contraseña, después de los
cuales se deshabilitara la
cuenta.
8
Fecha de expiración de la
cuenta
Súper Servidores
Muchos programas que son serv idores en una red, abren puertos y
escuchan conexiones directamente. Algunos otros, usan un
intermediario, llamado súper serv idor.
Este programa escucha por conexiones en representación de otro
programa y luego, una v ez iniciada la conexión le pasa el control al
programa indicado. Estos trae v entajas desde el punto de v ista de
perf ormance y seguridad.
Históricamente el súper serv idor estándar era inetd, pero
actualmente es mas f recuente encontrarse con su sucesor, xinetd.
Archivo Inetd.conf
Este archiv o contiene la siguiente inf ormación.
Línea Típica
…
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd -l
280
…
Nombre del Servicio: El nombre del serv icio como aparece en el
archiv o /etc/services.
Tipo de Socket: Stream (f lujo), dgram(datagrama) o raw (conexión
de bajo niv el).
protocol: Si se utiliza tcp o udp como protocolo de capa de
transporte.
wait/no wait: Si se conecta y libera el socket o si procesa todos los
paquetes y luego realiza un timeout (wait).
Usuario: El usuario que corre el serv icio. root y nobody son
opciones comunes.
Servidor: El serv idor que corre el serv icio.
Parámetros: Aquí se indica quien es quien realmente corre el
serv icio.
TCP Wrappers
Estos prov een un programa llamado tcpd. En lugar de que inetd
inv oque al serv icio directamente, inetd llama a tcpd, que chequea si
el programa esta autorizado a correr; si es así, lo inv oca.
TCP wrappers se conf igura por medio de 2 archiv os, /etc/hosts.allow
y /etc/hosts.deny . El primero especif ica computadoras que tienen
permitido acceder al sistema de determinada manera, los sistemas
no listados, no tienen acceso.
El archiv o hosts.deny, en contraste, def ine todos los hosts con
acceso denegado, si un host no f igura en la lista, tiene acceso
permitido. Si existen los 2 archiv os, hosts.allow tiene precedencia.
Xinetd
Xinetd es el sucesor tanto de inetd como de los wrappers tcp, y a
que incorpora las f unciones de f iltrado de los wrappers.
Se conf igura a trav és de el archiv o /etc/xinetd.conf. Este contiene
las opciones globales por def ecto y una directiv a para incluir los
archiv os dentro de el directorio /etc/xinetd.d.
Cada serv icio que corre por medio de xinted instala un archiv o
dentro de xinetd.d con sus propias opciones de conf iguración.
El f ormato es distinto al inetd.conf, pero las opciones son similares,
agrega un opción disable, para habilitar y deshabilitar el serv icio.
Bloquear el acceso a usuarios con /etc/nologin
En el caso de que se necesite realizar tareas de mantenimiento
durante las cuales sea necesario restringir el acceso a usuarios que
no sean root. Lo que se puede hacer es crear un archiv o, llamado
281
/etc/nologin; el cual con su sola presencia, le indica a Linux que solo
los usuarios normales no pueden iniciar sesión en el sistema. Si se
ingresa algún texto en ese archiv o, los usuarios que intenten iniciar
sesión, recibirán el mensaje ingresado en el /etc/nologin.
Desactivar los servicios que no estén en uso
Es importante tener controlado la cantidad de serv icios que tengo
ejecutándose en el sistema. Una manera de rev isar esto, es
inspeccionar los directorios que contienen rutinas de inicio.
Dependiendo si se trabaja con SysV, Upstart o . Estos directorios
v ariaran.
282
283
Técnicas de encriptado
Conceptos Claves
Conf iguración básica del cliente SSH 2
Comprender el rol de OpenSSH
Conf iguración y uso de GnuPG
Comprender el f unción de los túneles SSH (Incluy endo
túneles X11)
Términos y utilidades
ssh
ssh-keygen
ssh-agent
ssh-add
~/.ssh/id_rsa
id_rsa.pub
~/.ssh/id_dsa
id_dsa.pub
/etc/ssh/ssh_host_rsa_key
ssh_host_rsa_key.pub
/etc/ssh/ssh_host_dsa_key
ssh_host_dsa_key.pub
~/.ssh/authorized_keys
/etc/ssh_known_hosts
gpg
~/.gnupg/*
Criptografía con clave publica
Una clav e es un archiv o que contiene una clav e utilizada para cif rar
y descif rar inf ormación. Si se usa un esquema de clav e
publica/clav e priv ada, hay dos tipos de clav es a tener en cuenta.
clave publica: se guarda en un serv idor publico y se utiliza para
encriptar.
clave privada: se guarda secretamente, y es usada para decriptar
cualquier mensaje encriptado con la clav e publica. Las clav es
priv adas también se usan para f irmar mensajes digitalmente.
OpenSSH
OpenSSH (Open Secure Shell) es un conjunto de aplicaciones que
permiten realizar comunicaciones encriptadas a trav és de una red,
usando el protocolo SSH. Es un desarrollo de sof tware libre realizado
por el proy ecto OpenBSD. La suite OpenSSH reemplaza a Telnet con
284
el programa ssh, a rcp con scp, a f tp con sftp.
Configuración del servidor SSH
La misma se realiza editando el archiv o /etc/ssh/sshd_config
Opciones
Protocol: Establece que protocolo SSH utilizar, 1 o 2. Lo ideal es
soportar solo SSH 2, y a que la v ersión 1 ha demostrado
v ulnerabilidades.
PermitRootLogin: Esta opción sirv e para determinar si se aceptan
inicios de sesión directamente como root. El v alor por def ecto es
y es.
X11Forwarding: Establece que los túneles para X11 están
disponibles.
Claves SSH
Un proceso de autenticación basado en contraseñas puede ser
v ulnerable a ataques de f uerza bruta. Para mitigar esta
v ulnerabilidad, ssh soporta autenticación por clav e publica.
~/.ssh/authorized-keys: guarda las clav es publicas de las
maquinas objetiv o. Estas clav es no son inf ormación sensitiv a y
pueden ser conocidas por cualquier persona, mientras que las
priv adas pueden ser cuidadosamente protegidas.
SSH-Agent recuerda la clav e decriptada para que no sea necesario
recordarla.
Parte de la seguridad de SSH inv olucra clav es de encriptación. Cada
serv idor tiene una clav e única para identif icarse. SSH usa un
sistema que inv olucra dos clav es, una publica y una priv ada. Las
cuales están matemáticamente v inculadas de una manera que los
datos encriptados con la clav e publica, solo pueden ser
desencriptados con la clav e priv ada. Cuando se establece una
conexión, cada parte le env ía su clav e publica a la otra. Después de
eso, cada parte encripta los datos con la clav e publica de la otra
parte. Los clientes SSH típicamente conserv an las clav es públicas
de los serv idores que han contactado. Esto los habilita a reconocer
cambios, los cuales pueden ser un indicio de alguna manipulación del
serv idor.
La may oría de los scripts de inicio de los serv idores SSH contienen
código que busca clav es publicas y priv adas que estén
285
almacenadas, si no las encuentra, genera clav es nuev as. En total,
entre 4 y 6 clav es son necesarias: clav es publicas y priv adas para
2 o 3 herramientas que encriptado que soporta SSH. Estas clav es
generalmente se almacenan dentro de /etc/ssh y se llaman
ssh_host_rsa_key y ssh_host_dsa_key para las clav es priv adas y
el mismo nombre pero con la extensión .pub para las publicas.
Algunos sistemas agregan ssh_host_rsa1_key y su respectiv a
clav e publica. En el caso que no se tengan estas clav es, se pueden
generar con el comando ssh-keygen.
# ssh-keygen -q -t rsa1 -f /etc/ssh/ssh_host_rsa1_key -C '' -N ''
# ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -C '' N ''
# ssh-keygen -q -t dsa -f /etc/ssh/ssh_host_dsa_key -C '' N ''
Cuando se conf igura un sistema cliente, es una buena idea crear un
cache global de clav es. Si bien cada usuario guarda las clav es
conocidas dentro ~/.ssh/known_hosts, es bueno mantener el cache
global. Para eso hay que popular el archiv o ssh_known_hosts que
suele guardarse dentro de /etc o de /etc/ssh/
Ejercicio
1.
2.
Iniciar sesión en la maquina cliente
Ejecutar el siguiente comando para generar una nuev a clav e
SSH:
ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -C '' -N ''
3.
4.
5.
El paso anterior genera 2 archiv os, id_rsa y id_rsa.pub. Hay
que transf erir el segundo al serv idor SSH, copiar el archiv o
bajo un nombre temporal, como temp.rsa.
Iniciar sesión en el serv idor SSH
Agregar el contenido del archiv o que acabamos de transf erir
al f inal del archiv o ~/.ssh/authorized_keys o
~/.ssh/authorized_keys2 .
Agente SSH (ssh_agent)
El agente SSH nos permite gestionar nuestras conexiones SSH de
una manera mas ef iciente. Este recuerda, mientras dure la sesión,
todas las clav es priv adas del usuario, por lo que solo deberemos
ingresar la contraseña una v ez.
286
Túneles SSH
Los túneles SSH permiten que protocolos de red que no soportan
encriptación, se monten encima de una conexión SSH para encriptar
sus datos.
GPG
GPG nos permite encriptar correos electrónicos. GPG GnuPG es una
implementación de código abierto del sof tware propietario PGP
(Pretty Good Privacy).
GnuPG no solo permite encriptar mensajes, sino que también
permite f irmar digitalmente estos mensajes.
Para generar clav es, hay que ejecutar el comando
gpg --gen-key
gpg --export [email protected] > gpg.pub
GPG Keyring
El repositorio de clav es publicas de llama keyring y almacena todas
las clav es priv adas y publicas que tengamos. Para agregar una
clav e publica usamos el siguiente comando:
gpg --import archivo.asc
Para v er las clav es que tenemos en el key ring, podemos usar el
comando:
gpg --list-keys
287
Descargar