miércoles, 23 de enero de 2008

Tema 5a

1. Gestión de usuarios y grupos
Todo usuario de un sistema UNIX debe tener una cuenta para poder acceder
Cuenta UNIX: colección de características lógicas que especican quien
es el usuario y lo que puede hacer en el sistema
Estas características incluyen:
el nombre de usuario (login o user name)
 la contraseña (passwd)
grupo o grupos a los que pertenece
 un identicador numérico (UID)
 un identicador numérico del grupo por defecto (GID)
un directorio home
un login shell
 una colección de cheros de inicio
Dentro de las cuentas asociadas a usuarios podemos encontrar diferentestipos.
cuentas normales de usuario
cuenta del administrador (root)
cuentas especiales de los servicios (nobody, lp, bin, etc.):
usadas por servicios internos del sistema
aumentan la seguridad, al permitir que servicios del sistema no se
ejecuten como root
1.1. Ficheros de información de los usuarios
La información de los usuarios y grupos está incluida en los siguientes
archivos:
/etc/passwd mantiene la información principal de cada cuenta: nombre
de usuario, UID, GID, login shell, directorio home, contraseña (en
sistemas antiguos), . . .
/etc/shadow en sistemas actuales, fichero sin permiso de lectura que
guarda las contraseñas encriptadas
/etc/group información sobre los grupos denidos en el sistema. nombre
del grupo, GID y miembros del mismo
/etc/gshadow contraseñas para grupos (no suele usarse)
Fichero /etc/passwd
Ejemplo de líneas de /etc/passwd:
root:x:0:0:root:/root:/bin/bash
pepe:x:1002:1002:Pepe Pótamo,123,981234321,:/home/pepe:/bin/bash
donde se indican (si aparecen :: seguidos, el campo está vacío):
pepe: identicación de usuario en el sistema, que deberían tener las
siguientes características
 únicos en toda la organización (no sólo en la máquina local)
 preferiblemente corto, en minúsculas y sin caracteres acentuados
(para evitar problemas)
 fácil de recordar
de formato fijo para todos los usuarios (p.e. nombre+apellido)
x: contraseña encriptada
 si aparece una x la contraseña está en el chero /etc/shadow
1002: UID número identicador del usuario
 para usuarios normales, número entre 1000 y 32767 (o 65535 ensistemas actuales)
 números por debajo de 1000 para usuarios especiales del sistema(root usualmente número 0)
 el UID para un usuario debería ser único, y el mismo para todaslas máquinas
se debe evitar reutilizar un UID, para evitar problemas de pertenencia de archivos
1002: GID código del grupo principal al que pertenece el usuario
Pepe Pótamo,123,...: información GECOS
cualquier cosa, usualmente el nombre completo del usuario y información adicional (n. de despacho, teléfono, etc.)
/home/pepe: directorio personal del usuario
/bin/bash: shell interactivo que utilizará el usuario
Fichero /etc/shadow
Fichero de acceso restringido que almacena las contraseñas encriptadas:
pepe:$1$.QKDPc5E$SWlkjRWexrXYgc98F.:12825:0:90:5:30:13096:
Contiene para cada usuario la contraseña encriptada y otros campos separados
por :
día, contado como número de días desde el 1/1/1970 (también conocido
como epoch), en que la contraseña se cambió por última vez
 si vale 0 se fuerza a que el usuario cambia su contraseña la primeravez que se conecta
número de días antes de que pueda ser cambiada número de días de validez de la contraseña
días en que se avisa al usuario de que la contraseña va a caducar
días, una vez expirada, en que se deshabilitará la cuenta
día, desde el 1/1/1970, en que la cuenta se inhabilitará
si no aparece nada, la cuenta no se inhabilita nunca
un campo reservado
Fichero /etc/group
Información sobre los grupos de usuarios
users:x:100:pepe,elena
donde tenemos
nombre del grupo
contraseña del grupo (no suele usarse)
si x, se guarda en el fichero /etc/gshadow
grupo:contraseña:administradores:miembros
 los administradores pueden cambiar la contraseña, añadir usuarios
al grupo, etc.
 la contraseña puede jarse/cambiarse con el comando gpasswd
GID identicador numérico del grupo
lista de usuarios que pertenecen al grupo
Cambio de grupo
un usuario puede cambiar de grupo con newgrp
 si el grupo no tiene contraseña y no está en gshadow sólo pueden
cambiar los miembros del grupo
 si el grupo tiene contraseña, el usuario debe especificar la contraseña
si el grupo aparece en gshadow, la lista de miembros en estefichero
pueden cambiar sin contraseña
Otros ficheros
Cuando se crea un nuevo usuario, los ficheros de inicio se copia del directorio
/etc/skel
el administrador debe crear unos ficheros adecuados para los usuarios,
especicando los paths necesarios de ejecución, inicialización de variables
del sistema, etc.
también pueden usarse los ficheros /etc/profile o /etc/bash.bashrc
(ver Tema 3, Ficheros de inicialización de Bash)

Comando passwd
Permite fijar o cambiar la contraseña de un usuario. Opciones:
-e, --expire fuerza a que la contraseña de la cuenta caduque; el usuario
debe cambiarla en el siguiente login
-d, --delete borra la contraseña
-l/-u, --lock/--unlock bloquea/desbloquea la cuenta
-m, --mindays MIN_DAYS número mínimo de días entre cambios decontraseña
-x, --maxdays DÍAS_MAX número de días de validez de la contraseña
-w, --warndays DÍAS_AVISO número de días de aviso de caducidad
-i, --inactive INACTIVO días en que se deshabilitará la cuenta una
vez expirada la contraseña
-S, --status indica el estado de la contraseña (bloqueada L, sin contrase
ña NP o con contraseña válida P)
Eliminación manual de una cuenta
Implica los siguientes pasos
1. Inhabilitar la cuenta impidiendo el acceso
2. Hacer un backup de los ficheros de usuario
3. Eliminar losficheros de usuario
La inhabilitación de la cuenta podría ser temporal o denitiva
Temporal: puede hacerse de diversas formas
cambiar el login shell a /bin/false, o /usr/sbin/nologin (si
disponible)
 cambiar el campo contraseña de /etc/passwd a * (volviendo a
poner x se habilita la cuenta),
 poner una ! al principio del campo contraseña de /etc/shadow,
usar passwd -l
definitiva: borrar las entradas del usuario de /etc/passwd y /etc/shadow
1.3. Comandos para gestión de cuentas
Crear cuentas manualmente es un proceso tedioso:
existen comandos que nos ayudan en la tarea
Comandos simples de manejo de cuentas
useradd añade un nuevo usuario al sistema; ejemplo.
useradd -c .Aitor Tilla.aitor
 por defecto, sólo modica los cheros passwd y shadow, no crea
el directorio home ni le pone contraseña (cuenta inhabilitada)
varias opciones:
-m crea el directorio home, si no existe (y copia los cheros de
/etc/skel)
-g grupo especica el grupo principal
-s shell especica la shell a utilizar
 -e fecha fecha de expiración de la cuenta (formato YYYYMM-
DD)
Ejemplo:
useradd -c .Aitor Tilla.aitor -m -e 2006-11-02 -s
/bin/bash -g staff
userdel borra un usuario del sistema
usermod modifica las cuentas de usuario
groupadd, groupdel, groupmod lo mismo, para grupos
newusers permite crear varias cuentas a partir de un fichero con nombres
de usuario y contraseñas
 las líneas del fichero deben tener el mismo formato que las del fichero /etc/passwd, con la contraseña sin encriptar
chpasswd similar al anterior, permite actualizar las contraseñas de usuarios existentes
chsh cambia el shell por defecto del usuario
chfn cambia la información del campo GECOS
Comandos de alto nivel para el manejo de cuentas
Comandos adduser, addgroup:
hacen de front-end de los de bajo nivel useradd, groupadd y
usermod
 crean los usuarios/grupos en función de la conguración especi-
cada en el fichero /etc/adduser.conf
Herramientas grácas de gestión de usuarios y grupos:
kuser (KDE), user-admin (GNOME), etc.
Otros comandos relacionados
passwd: permite cambiar la contraseña (ya comentado)
chage: muestra y cambia la información de expiración de la contraseña
Formato:
chage [opciones ] [username ]
Algunas opciones:
 -l muestra información de expiración
su: permite cambiar de usuario o pasar a ser administrador
Formato:
su [opciones ] [-] username
Si no se especifica el username pasa a administrador
Algunas opciones:
-inicia un login shell
-m, -p o --preserve-environment mantiene el entorno (no
ejecuta el .bashrc del nuevo usuario)
-s, --shell=nueva_shell usa la shell especicada
-c, --commmand=comando ejecuta el comando con la identidad
del nuevo usuario:
su -c cat /etc/shadow
1.4. Cuotas de disco
Algunos Filesystems permiten limitar el uso del disco a los usuarios y grupos:
cuotas
Evitan que los usuarios monopolicen el disco
Pueden causar problemas a los usuarios:
 preferible instalar más disco o avisar a los usuarios que consuman
demasiado
Límites de cuotas:
Límite débil: si la cuenta del usuario o del grupo supera el límite débil,
se impondrá un período de gracia en el que el usuario podrá reducir la
ocupación
Límite duro: se deniega cualquier intento de escribir datos despúes de
este límite
Período de gracia: tras superar el límite débil, si el usuario no resuelve
el problema borrando archivos, la cuenta se bloquea
Instalación de cuotas de disco en Debian
Si el kernel está congurado para soportar cuotas, los pasos a seguir son:
1. Instalar el paquete quota
2. Modicar /etc/fstab para marcar los lesystems que tendrán cuotas:
/dev/hda9 /home ext3 defaults,usrquota 0 2
/dev/hda8 /tmp ext3 defaults,usrquota,grpquota 0 2
3. Reiniciar el sistema
4. Usar el comando edquota para editar las cuotas de usuarios y grupos
Comando edquota
Permite crear, manipular y eliminar cuotas basadas en usuarios o grupos
Sintaxis:
edquota [opciones ] [usuario |grupo ]
Opciones:
-u usuario configura las cuotas del usuario
-g grupo congura las cuotas para un grupo
-f filesystem realiza las operaciones obre un lesystem concreto
(por defecto, lo hace sobre todos los lesystems que admitan
cuotas)
 -t congura el período de gracia
 -p user1 usuarios copia la conguración de cuotas de user1 a
los usuarios indicados
Al ejecutar edquota se abre el editor indicado en la variable EDITOR
(por defecto, vi) para modicar las cuotas:
 se muestran los bloques de 1K en uso, así como los límites soft y
hard (también para i-nodos o cheros)
 si un límite está a 0 no se aplica esta información se guarda en los cheros aquota.user y aquota.groupen el directorio base del filesystem
Otros comandos
Existen otros comandos para la gestión de las cuotas:
quotacheck verifica la integridad de las bases de datos de las cuotas
se ejecuta en el script de inicio del sistema de cuotas
debe ejecutarse con las cuotas desactivadas
quotaon/quotaoff activa/desactiva el sistema de cuotas
repquota genera un informa del uso de las cuotas
# repquota /home
*** Report for user quotas on device /dev/hda9
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 34920 0 0 6 0 0
tarabelo -- 728 0 0 31 0 0
tomas *- 108 100 200 7days 8 0 0
quota permite al usuario ver el estado de sus cuotas
Algunas opciones:
 -g muestra información sobre las cuotas del grupo del usuario
 -v imprime información incluso para los lesystem sin límite en la cuota
-q imprime un mensaje si se ha superado la cuota
Ejemplo
$ quota
Disk quotas for user tomas (uid 1001):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda9 108* 100 200 6days 9 0 0
/dev/hda8 1 10 20 1 0 0
Para más información sobre la conguración de las cuotas ver Quota
mini-HOWTO
2. Conguración de la red
Linux soporta múltiples protocolos y hardware de red:
Protocolos como TCP/IP y TCP/IP versión 6, IPX/SPX, PPP, SLIP,
X.25, Frame Relay, etc.
Soporta hardware para redes Ethernet, Token-Ring, etc
Diferentes NICs (Network Interface Cards ) implican diferentes dispositivos
de comunicación:
ethx para Ethernet, trx para Token-Ring, pppx para PPP, slx
para SLIP,
 Además, existe el dispositivo de loopback lo
Funciona como un circuito cerrado en el que cualquier datagrama
que se le pase como parámetro es inmediatamente devuelto a la capa de red del sistema
Se utiliza para realizar pruebas, y para un par de aplicaciones de red.
En muchos UNIX estos dispositivos aparecen en /dev
 En Linux se crean dinámicamente por software y no requieren los ficheros de dispositivos
En Linux puede ser necesario incluir los módulos adecuados para cada dispositivo
En esta sección trataremos la conguración de TCP/IP en redes Ethernet;
para más información ver:
Administración de red en Linux: Linux Network Administrators Guide
2 ed., Olaf Kirch y Terry Dawson
Linux Networking-HOWTO
Dispositivos de red soportados en Linux: Linux Hardware Compatibility
HOWTO - Network adapters
2.1. Comandos de conguración de red
Los comandos más importantes para congurar la red son:
ifconfig: conguración del interfaz de red
route: conguración del routing
netstat: información de la red
Comando ifconfig
Muestra y configura una interfaz de red:
$ /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:12:43:A6:05:5C
inet addr:193.144.84.77 Bcast:193.144.84.255 Mask:255.255.255.0
inet6 addr: fe80::211:43ff:fea6:55c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1035446 errors:0 dropped:0 overruns:0 frame:0
TX packets:1053062 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
RX bytes:196973192 (187.8 MiB) TX bytes:270128587 (257.6 MiB)
Interrupt:169
Sintaxis:
ifconfig [opciones ] [interfaz ]
ifconfig interfaz [configuración ] [up|down]
Opciones de visualización:
-a muestra todas las interfaces , incluso las inactivas
-s muestra información resumida (igual que netstat -i)
En las opciones de conguración se indica entre otras cosas la IP, máscara de red y dirección de broadcast:
# ifconfig eth0 193.144.84.77 netmask 255.255.255.0 broadcast 193.144.84.255 up
14
ifconfig permite también congurar el estado del interfaz, por ejemplo,cambiar el MTU, poner modo promiscuo, activar/desactivar ARP, cambiar su dirección hardware (si el dispositivo lo permite), etc.
# ifconfig eth0 mtu 500
# ifconfig eth0 -noarp
# ifconfig eth0 hw ether 52:54:00:12:34:56
ver el manual de ifconfig para más información
Otros comandos relacionados
Otros comandos de conguración de interfaz son:
ifup/ifdown activan/desactivan un interfaz de red
# ifdown eth0
iwconfig configura un interfaz wireless
# iwconfig eth1 essid "Mi Red"
Comando route
Permite modicar la tabla de routing, mostrando, añadiendo o borrando
rutas
muestra las rutas definidas permite añadir/borrar rutas estáticas permite denir un gateway de salida por defecto para conectarnos al exterior permite congurar el sistema para que actúe como un router
Mostrar una tabla de routing
Se usa route [-n -e -ee] (equivale a netstat -r)
$ /sbin/route -n -ee
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface MSS W193.144.84.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0 0 0.0.0.0 193.144.84.1 0.0.0.0 UG 0 0 0 eth0 0 0 15
Opciones:
-usa direcciones IP en vez de nombres
-e emplea el mismo formato que netstat -r
-ee salida larga
Los fags indican el estado de la ruta
 U la interfaz está activa (Up)
 H el destino es una estación (Host)
G la ruta usa una pasarela (Gateway)
 D ruta creada dinámicamente por un demonio de encaminamiento
o un mensaje ICMP de redirección
 M ruta modicada dinámicamente
R ruta rehabilitada
! ruta rechazada
De las siguientes columnas, algunas no se usan
Metric distancia (normalmente en saltos) al destino
 Ref número de referencias a la ruta (no usado en linux)
 Use número de consultas para la ruta
 MSS (Maximum Segment Size ) tamaño máximo del segmento para
las conexiones TCP en esa ruta
 Window Tamaño predeterminado de la ventana para las conexiones
TCP en esa ruta
irtt (Initial Round Trip Time) valor inicial del temporizador
TCP
Añadir/borrar rutas estáticas
Se usa
route [add|del] [default] [-net|-host] target [netmask
Nm] [gw Gw] [opciones ] [[dev] If]
Ejemplo: suponer que tenemos la conguración del dibujo, y queremos crear
la tabla de rutas para el host Internet
Añadir la ruta para la red 192.168.0.0/24 en eth1
route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
Añadir la ruta por defecto
route add default gw 10.0.2.2
Añadir una ruta para la red 172.16.0.0/24, usando como pasarela en
host con IP 192.168.0.1
route add -net 172.16.0.0 netmask 255.255.255.0 gw 192.168.0.1
El host pasarela tiene que permitir routing entre sus interfaces; pasa
eso debemos activar el ip_forward:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Otras opciones de conguración
Linux permite otras opciones para congurar la red, como denir alias de IP
o congurar opciones sobre el tráco
Alias de IP
Permite congurar múltiples direcciones IP a un único dispositivo de red
podemos soportar varias subredes IP en una misma Ethernet
 los alias se indican como dispositivo: número
Ejemplo:
# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
# route add -net 192.168.1.0 netmask 255.255.255.0 eth0
# ifconfig eth0:0 192.168.10.1 netmask 255.255.255.0 up
# route add -net 192.168.10.0 netmask 255.255.255.0 eth0:0
Opciones del IP
Linux permite congurar diversas opciones sobre el tráco IP
los cambios pueden hacerse mediante el comando sysctl, escribiendo
en los archivos del directorio /proc/sys/net/ipv4 o de forma permanente
en el fichero /etc/sysctl.conf
algunos de estos estos archivos tienen un 0 (opción desactivada) o un
1 (opción activada)
otros pueden tener un valor
algunas de las opciones son:
ip_forward si 1 permite routing entre interfaces (por defecto 0)
ip_default_ttl el tiempo de vida por defecto de los paquetes
(por defecto 64 ms)
Información de la red: comando netstat
netstat muestra las conexiones de red, tablas de routing y estadísticas de
interfaz
Formato:
netstat [tipo de información ] [opciones ]
Algunos tipos de información:
(nada) muestra la lista de sockets abiertos
$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 jumilla.dec.usc.e:58946 aiff.usc.es:telnet ESTABLISHED
tcp 0 0 jumilla.dec.usc.e:43658 ulla.dec.usc.es:1301 ESTABLISHED
tcp 0 0 jumilla.dec.usc.e:35346 sd.cesga.es:ssh ESTABLISHED
tcp 0 0 jumilla.dec.usc.es:ssh ulla.dec.usc.es:1688 ESTABLISHED
tcp 0 0 jumilla.dec.usc.es:ssh teneguia.dec.usc.:35161 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 8 [ ] DGRAM 15368 /dev/log
unix 2 [ ] DGRAM 194110 @/org/kernel/udev/udevd
unix 2 [ ] DGRAM 15671 @/var/run/hal/hotplug_socket
--route, -r muestra las tablas de rutas (igual que route admite
los ags -n, -e y -ee)
--interface, -i muestra un resumen del estado de las interfaces
de red (igual que ifconfig -s)
$ netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 5110292 0 0 0 5011769 0 0 0 BMR MTU (Maximum Transmission Unit ): tamaño máximo del
datagrama
 Met: valor de la métrica para esa interfaz
RX/TX paquetes recibidos/transmitidos
OK/ERR/DRP/OVR paquetes transmitidos correctamente
(OK), erróneos (ERR), descartados por falta de recursos (DRP,
drop) y perdidos por desbordamiento (OVR, overrun)
19
Las banderas (flags) indican el estado del interfaz:
 B: dirección de difusión activa
L: la interfaz es un dispositivo de bucle local (loopback )
P: se reciben todos los paquetes (modo promiscuo)
O: ARP desactivado para este interfaz
M: el interfaz permite multicast
A: el interfaz recibe todos los paquetes multicast en la red
(allmulti )
R: la interfaz funciona (running)
 U: la interfaz está activa (up)
Este estado puede cambiarse con ifconfig:
# ifconfig eth0 promisc # Modo promiscuo
# ifconfig eth0 -arp # Desactiva ARP
 --statistics, -s muestra estadísticas para cada protocolo de red
$ netstat -s
Ip:
5001746 total packets received
7479 forwarded
0 incoming packets discarded
4894721 incoming packets delivered
......
Cada uno de los modos anteriores tienen diferentes opciones
Algunas opciones válidas para varios tipos son:
 --numeric o -n muestra información numérica en vez de nombres
para IPs, puertos, etc.
 --continuous o -c imprime la información solicitada de forma
continua
 --extend o -e muestra información extendida (con -ee aún más
información)
Para más información ver la página del manual
Otros comandos de red
Comando arp
arp manipula la cache de ARP:
muestra la tabla ARP
borra entradas
 añade entradas manualmente
Ejemplo:
# arp
Address HWtype HWaddress Flags Mask Iface
almansa.dec.usc.es ether 00:0D:56:6F:E6:90 C eth0
193.144.84.1 ether 00:E0:63:93:26:E5 C eth0
teneguia.dec.usc.es ether 00:C0:4F:A1:5D:89 C eth0
Flag: C dirección completa, M dirección añadida manualmente
Algunas opciones:
-i interfaz muestra las entradas para el interfaz indicado
-a hostname muestra las entradas para el host especicado
-d hostname borra las entradas para el host especicado
-s hostname hw_addr añade manualmente una entrada para el host
especicado con la dirección hardware indicada
-n interfaz no hace traducción de IPs a nombres
Comando ping
Muestra la disponibilidad de conexión y la velocidad de transmisión
con un host remoto:
$ ping 193.144.84.1
PING 193.144.84.1 (193.144.84.1) 56(84) bytes of data.
64 bytes from 193.144.84.1: icmp_seq=1 ttl=255 time=0.420 ms
64 bytes from 193.144.84.1: icmp_seq=2 ttl=255 time=0.396 ms
64 bytes from 193.144.84.1: icmp_seq=3 ttl=255 time=0.368 ms
ping envía paquetes ICMP (ECHO_REQUEST) al destino y espera
respuesta, midiendo el RTT
muchos rewalls bloquean el tráco ICMP por lo que el ping no funciona
Algunas opciones:
-b permite ping a una dirección de broadcast
-c COUNT para después de enviar COUNT paquetes ECHO_REQUEST
s packetsize especica el número de bytes a enviar (por defecto 56)
Comando traceroute
Muestra la ruta que sigue un paquete hasta llegar a destino
$ traceroute www.elpais.es
traceroute to a1749.g.akamai.net (130.206.192.32), 30 hops max, 40 byte packets
1 rutfis (193.144.64.1) 1.070 ms 0.688 ms 0.927 ms
2 * * *
3 10.56.5.1 (10.56.5.1) 57.463 ms 2.021 ms 1.923 ms
4 193.144.79.72 (193.144.79.72) 2.507 ms 16.280 ms 2.080 ms
5 GE2-0-0.EB-Santiago0.red.rediris.es (130.206.204.21) 25.681 ms 2.068 ms 1.965 ms
6 GAL.SO2-0-0.EB-IRIS4.red.rediris.es (130.206.240.33) 10.959 ms 10.665 ms 10.710 m7 130.206.220.59 (130.206.220.59) 20.277 ms 10.781 ms 10.470 ms
8 a130-206-192-32.deploy.akamaitechnologies.com (130.206.192.32) 11.011 ms 23.482 ms traceroute utiliza el campo TTL de la cabecera IP para obtener respuestas
ICMP TIME_EXCEEDED de los host por los que pasa el
paquete (envía paquetes UDP)

los sistemas pueden no enviar mensajes de tiempo excedido: aparecen *
si los rewalls bloquean el tráco ICMP no veremos nada
otros programas similares:
traceproto: permite especificar el protocolo a usar (TCP, UDP,
ICMP) y el puerto a tracear (por defecto 80)
 tcptraceroute: envía paquetes TCP SYN para evitar problemas
con firewalls
Comandos host, dig, nslookup
Permiten obtener la dirección IP de un sistema a partir del nombre o
viceversa:
$ host www.elpais.es
www.elpais.es is an alias for elpais.es.edgesuite.net.
elpais.es.edgesuite.net is an alias for a1749.g.akamai.net.
a1749.g.akamai.net has address 130.206.192.38
a1749.g.akamai.net has address 130.206.192.32
nslookup está desaprobado (deprecated) y no se recomienda su uso
Comano mii-tool
Permite ver y/o configurar el estado de la unidad MMI (Media Independent
Interface) de la tarjeta de red
Ethernet usa MII para autonegociar la velocidad de enlace y el
modo duplex
# mii-tool -v eth0
eth0: negotiated 100baseTx-FD flow-control, link ok
product info: vendor 00:08:18, model 16 rev 0
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
# mii-tool --force=100baseTx-HD eth0
# mii-tool eth0
eth0: 100 Mbit, half duplex, link ok
2.2. Ficheros de conguración de red
La conguración mediante ifconfig y route no se mantiene al apagar el
sistema:
durante el proceso de arranque la red se inicia mediante la ejecución de
scripts del init.d
/etc/init.d/networking en Debian
/etc/init.d/network en RedHat
Estos scripts leen los cheros de conguración de la red
Fichero /etc/network/interfaces en Debian
auto eth0
iface eth0 inet static
address 193.144.84.77
netmask 255.255.255.0
network 193.144.84.0
broadcast 193.144.84.255
gateway 193.144.84.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 193.144.75.9
dns-search dec.usc.es
name Tarjeta de red Ethernet
Fichero /etc/sysconfig/network-scripts/ifcfg-ethx en RedHat
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=193.144.84.186
NETMASK=255.255.255.0
GATEWAY=193.144.84.1
TYPE=Ethernet
Otros ficheros de conguración
Fichero /etc/resolv.conf especifica el dominio y los servidores DNS
Ejemplo:
domain dec.usc.es
search dec.usc.es usc.es
nameserver 193.144.75.9
nameserver 193.144.75.12
si buscamos por un hostname (sin dominio) le añade dec.usc.es y si
no aparece busca por usc.es
pueden añadirse hasta tres servidores de DNS
Fichero /etc/hosts fichero que asocia nombres de hosts con direcciones
IP
permite consultar una IP sin acceder al DNS
Ejemplo de /etc/hosts:
127.0.0.1 localhost.localdomain localhost
193.144.84.77 jumilla.dec.usc.es jumilla
la consulta es más rápida que acceder al DNS
 si las IPs cambian la dirección es incorrecta
sólo debería aparecer el nodo local y la interfaz de loopback
esto permite fijar el nombre y el dominio del sistema  en algunas distribuciones (Debian) el nombre también debe ponerse en el fichero /etc/hostname
el nombre y el dominio pueden obtenerse mediante los comandos
hostname y dnsdomainname
Fichero /etc/networks fichero de texto que asocia nombres a redes No es imprescindible
Ejemplo de /etc/networks
red1 172.16.1.0
red2 172.16.2.0
Fichero /etc/host.conf configura el comportamiento del name resolver
indica donde se resuelven primero la dirección o el nombre de un nodo
Ejemplo de /etc/host.conf:
order hosts,bind
multi on
indica que primero se veriquen las tablas locales (/etc/hosts) y después el DNS
multi on indica que se retornen todas las direcciones válidas que se encuentren en /etc/hosts
Fichero /etc/nsswitch.conf chero de conguración del Name Service
Switch
centraliza la información de diferentes servicios para la resolución de
nombres
indica las acciones a realizar para acceder a las diferentes bases de
datos del sistema: hosts, contraseñas, servicios, etc.
reemplaza la funcionalidad del archivo host.conf
 introducido en la versión 2 de la biblioteca GNU
Ejemplo de nsswitch.conf
hosts: dns files
networks: files
 indica que un host se busque primero en el DNS y después en
el chero /etc/hosts, mientras que una red se busca sólo en
/etc/networks
Es posible controlar el comportamiento por medio de acciones, por
ejemplo:
hosts: dns [!UNAVAIL=return] files
networks: files
si el estado de salida del DNS es diferente de no disponible no consulta
a los ficheros:
 sólo accede a /etc/hosts si el DNS no está disponible
Los valores de estado disponibles son:
 success la petición se encontró sin errores (acción por defecto
return) notfound no error, pero no se encontró el nodo o la red (acción
por defecto continue)
 unavail servicio solicitado no disponible (acción por defecto continue)
 tryagain servicio no disponible temporalmente (acción por defecto
continue)
Fichero /etc/protocols lista los protocolos que reconoce el sistema operativo
Ejemplo de /etc/protocols
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
tcp 6 TCP # transmission control protocol
udp 17 UDP # user datagram protocol
.....
Fichero /etc/services relaciona las aplicaciones con sus correspondientes puertos y protocolos básicos
Un trozo de /etc/services
ftp-data 20/tcp # Datos de ftp
ftp 21/tcp # Control de ftp
ssh 22/tcp # SSH por TCP
ssh 22/udp # SSH por UDP
telnet 23/tcp # Telnet
smtp 25/tcp # Correo electrónico
....
2.3. Conguración del DHCP
DHCP (Dynamic Host Conguration Protocol ) permite congurar automá-
ticamente la red de los sistemas a partir de un servidor DHCP
La información de IPs, DNS, etc. se mantiene centralizada en el servidor
Al iniciarse, los clientes se conectan al servidor (por broadcast) y cargan
su conguración
Conguración del servidor
Se encuentra en el fichero /etc/dhcpd.conf
Ejemplo sencillo de conguración
option domain-name "midominio.com"; # Nombre de Dominio
option domain-name-servers 10.0.2.3, 193.14.7.9; # Servidores de Nombres
default-lease-time 600; # Tiempo por defecto que dura una asignación
max-lease-time 7200; # Duración máxima de una asignación
option subnet-mask 255.255.255.0; # Máscara de red
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.20;
option broadcast-address 192.168.0.255; # Dirección de Broadcast
option routers 192.168.0.1; # Gateway de la red
}
host marte {
hardware ethernet 52:54:00:12:34:70;
fixed-address marte.mired.com;
}
si utilizamos nombres (como marte.mired.com) la IP debe ser accesible
(por DNS o /etc/hosts)
en elfichero /etc/default/dhcp especificamos el interfaz por el que
servimos DHCP
en /var/lib/dhcp/dhcp.leases están las IPs asignadas
para más información ver la página de manual de dhcpd
Conguración del cliente
Para que el cliente obtenga los datos de DHCP usar:
# dhclient eth0
Un comando similar es pump
Para que el cliente se configure en el inicio debemos modcar el fichero de
conguración de red
En Debian, fichero /etc/network/interfaces:
auto eth0
iface eth0 inet dhcp
3. Automatización de tareas
En esta sección veremos la utilización de comandos que permiten planicar
tareas para ejecutar en un futuro:
at, batch permiten ejecutar trabajos a una hora especíca o bajo determinadas
condiciones
cron permite correr trabajos a intervalos regulares
Estos comandos permiten automatizar distintas tareas, para que se ejecuten
en determinados momentos sin intervención del administrador
3.1. Comando at
Permite indicar el momento en que se quiere ejecutar un trabajo
Sintaxis:
at [opciones ] TIME
Al ejecutar at pasamos a un nuevo prompt, que nos permite introducir
comandos que se ejecutarán a la hora indicada
para salvar el trabajo y salir CTRL-D
 el entorno actual también se salva
 al terminar, la salida estándar se envía como un mail al usuario
 el trabajo no se para al salir de la sesión
Ejemplo:
$ at 11:45
warning: commands will be executed using /bin/sh
at> ls /tmp > lista
at>
job 4 at Wed Nov 16 11:45:00 2005
Algunas opciones:
-f FILE especifica un fichero conteniendo las acciones a realizar
en vez de la entrada estándar
-c jobnumber muestra el trabajo a ejecutar
 -m envía un mail al usuario, incluso aunque no haya salida
 -v muestra la hora a la que se ejecutará el trabajo
TIME puede especificarse de varias formas:
HH:MM por ejemplo 12:54
HH:MMAM/PM, por ejemplo 1:35PM
HH:MM MMDDYY, por ejemplo 1:35PM 122505
now + numero unidades , donde unidades puede ser minutes,
hours, days, o weeks
$ at now+2hours
today, tomorrow, por ejemplo 12:44tomorrow
midnight (00:00), noon (12:00), teatime (16:00)
Comandos relacionados
atq o at -l lista los trabajos pendientes del usuario
si es el superusuario, lista los trabajos de todos los usuarios
atrm o at -d borra trabajos identicados por su número de trabajo
batch ejecuta trabajos cuando la carga del sistema es baja
el trabajo empieza en cuanto la carga caiga por debajo de 1.5
lacarga se obtiene del fichero /proc/loadavg
Ficheros de conguración
El administrador puede controlar la utilización de at
Ficheros /etc/at.allow y /etc/at.deny
at.allow lista los usuarios que pueden usar
at.deny lista los usuarios que NO pueden usar at
Primero se chequea /etc/at.allow  si está el usuario, puede usar at  si no está o el fichero no existe, se chequea /etc/at.deny
 si el usuario no está en at.deny puede usar at
Si no existe ninguno de los dos ficheros, solo root puede ejecutar at
Para dar permiso para todos los usuarios crear sólo el chero at.deny
vacío
3.2. Procesos periódicos
Para crear trabajos que se ejecuten periódicamente se utilizan el demonio
cron y el comando crontab
crontab permite configurar los procesos periódicos
cron se encarga de su ejecución
La utilización de cron se gestiona a través de los cheros /etc/cron.allow
y /etc/cron.deny
el comportamiento si no existen los ficheros depende de la configuración
del sistemaen Debian, si no existen, todos los usuarios pueden usar crontab
Fichero crontab Los trabajos se especican en un fichero de crontab, que se guarda en
/var/spool/cron/crontabs, y que puede tener tres tipos de líneas:
Comentarios, que empiezan por #
Denición de variables, de tipo nombre = valor
# shell usada para ejecutar los comandos
SHELL=/bin/bash
# Usuario al que se envía (por mail) la salida
# de los comandos (por defecto, se envían
# al propietario del fichero crontab)
MAILTO=pepe
Especicación del trabajo y de la hora de ejecución, de la siguiente
forma:
minuto hora día mes día_semana comando
 el día de la semana de 0 a 7 (0 ó 7 domingo)
* indica cualquier valor
se pueden indicar rangos, listas o repeticiones:
1-5 para indicar de lunes a viernes
0,15,30,45 para indicar cada 15 minutos
0-23/2 en el campo hora, indica realizar cada dos horas (0,
2, 4, etc.)
Ejemplos:
 Borra el /tmp todos los días laborables a las 4:30 am
30 4 * * 1-5 rm -rf /tmp/*
Escribe la hora, cada 15 minutos, durante la noche:
0,15,30,45 0-8,20-23 * * * echo Hora:$(date)/tmp/horas
Comando crontab
Para crear y editar los trabajos periódicos se puede utilizar el comando
crontab
Sintaxis:
crontab [-u usuario ] {-l|-e|-r}
crontab [-u usuario ] fichero
en la segunda forma instala un nuevo crontab desde un fichero
Opciones:
 -u usuario crea o maneja el crontab de un usuario especíco
(sólo root)
-e edita el fichero crontab
-lmuestra el fichero crontab
-r borra el fichero crontab
Fichero /etc/crontab y /etc/cron.d
El demonio cron busca ficheros en /var/spool/cron para ejecutarlos a la hora indicada
además también ejecuta las acciones indicadas en los cheros /etc/crontab y en el directorio /etc/cron.d/ estos ficheros suelen ser de mantenimiento del sistema
De esta forma, el administrador puede crear scripts que se ejecuten con periodicidad
horaria, diaria, semanal y mensual
sólo tiene que colocar esos scripts en los directorios /etc/cron.hourly,
/etc/cron.daily, /etc/cron.weekly o /etc/cron.monthly
la fecha y hora de ejecución de estos scripts se controla en el fichero
/etc/crontab