Beruflich Dokumente
Kultur Dokumente
Objetivos del curso Dominar las distintas posibilidades de GNU/Linux dentro de la empresa.
Y por encima de todo, aprender a buscar la informacin que necesitamos para solventar los posibles problemas.
Antes de nada...
GNU GPL Linux Software Libre Kernel GNU/Linux Distribucin Linux Debian (K)Ubuntu KDE Gnome Emule
3
Paquete
Introduccin
Introduccin
Introduccin
4 Libertades: Libertad 0: Libertad para ejecutar el programa para cualquier propsito. Libertad 1: Libertad para estudiar y adaptarlo a las necesidades. Libertad 2: Libertad para redistribuir copias. Libertad 3: Libertad para mejorar el programa y publicarlo con esas modificaciones.
Introduccin
Richard Stallman (1983 Funda GNU Ver.7) Linus Torvalds (1991 Crea Linux) 1992 GNU/Linux (Ver. 7)
Introduccin Conceptos Generales sobre GNU Linux (I) Qu es GNU ? GNU is not UNIX, proyecto iniciado por Richard Stallman (1983). Objetivo: Sistema totalmente libre. Apoyado en la licencia GPL. Kernel: HURD (fracaso). Qu es Linux ? Kernel liberado por Linus Torvalds en 1991 con licencia GPL. Arquitectura Mononuclear, multiplataforma (I386, AMD64, PowerPC, ...). Uso: Servidores, estaciones de trabajo, sistemas empotrados...
Introduccin
Qu son Redhat, Debian, SuSE ... ? Son Distribuciones de GNU Linux. Diferentes formas de empaquetar el ncleo, las herramientas GNU y el resto de software (libre o no). Gestionadas por: empresas grupos de personas. organismos ...
Introduccin
10
Introduccin
11
Introduccin
12
Introduccin
13
Introduccin
Versiones
2.4.19
2.5.3
Release
14
Introduccin
Situacin de GNU/Linux
15
Introduccin SituacinrealdeGNULinux Lasestadsticasnosiempresonmuyobjetivas,perose calculanlassiguientescifras: Servidores:Prcticamentetodoslosservidores potentesseejecutansobreunderivadodeUNIX (GNULinux,*BSD...). Equiposdeescritorio:Existenciadenumerosos gestoresdeventanas(KDE,GNOME,...)apariencia estticayusabilidadmuymejorada. Dispositivosempotrados:GNULinuxestpresente ennumerososdispositivosWifi(802.11b/g)(Cisco LinksysWRTG54G,SMC),entelfonoscelulares
16
17
18
19
EJERCICIO
20
Instalacin de CentOS
Instalacin de CentOS
21
Instalacin de CentOS
Se puede descargar CentOS desde su pgina web. http://www.centos.org Se puede descargar en distintos Cds o en un solo DVD. La ltima versin estable es 5. Para instalarlo es necesario disponer de espacio en el disco duro y que el ordenador pueda arrancar desde el lector de Cds. La instalacin es del estilo siguiente-siguiente... finalizar :)
22
Instalacin de CentOS
23
Instalacin de CentOS
24
Instalacin de CentOS
25
Instalacin de CentOS
Particionado del disco duro. Es necesario que el disco duro est vaco o que en caso contrario tengamos una particin vaca en la que realizar la instalacin.
26
Instalacin de CentOS
27
Instalacin de CentOS
Sistemas de ficheros
28
En un sistema Unix todo son archivos: memoria fsica, ratn, modems, teclado... Filosofa de diseo de grn xito y potencia, aunque tambin peligrosa: un simple error de permisos puede permitir modificar todo un disco duro. Tipos de archivos:
29
30
Se encarga de definir los directorios principales y sus contenidos en Linux y otros sistemas Unix. Mayor facilidad en el uso de distintos sistemas Unix.
31
Instalacin de CentOS
bin/ dev/ home/ lost+found/ proc/ sbin/ usr/ boot/ etc/ lib/ mnt/ root/ tmp/ var/
32
Instalacin de CentOS
/sbin
Contiene los binarios esenciales para que funcione el sistema. Incluye los programas para la administracion, configuracion del hardware y mantenimiento. find, lilo, fdisk, init, ifconfig etc /usr/sbin contiene los binarios para el administrador pero no esenciales para el sistema. Este directorio es solo accesible por ROOT
33
Instalacin de CentOS
/bin
Contiene los comandos imprescindibles para el usuario Accesibles para root como para los usuarios no privilegiados bash, csh, cp, mv, rm, cat, ls... /usr/bin contiene los binarios para el usuario pero que no son imprescindibles.
34
Instalacin de CentOS
/boot Contiene el kernel y lilo deja aqu las copias de seguridad del sistema de arranque /dev TODO EN LINUX ES UN FICHERO
/dev/hda1 Particion 1 del disco duro 1 master /dev/cdrom CDROM ... /etc/X11/xorg.conf Sistema X /etc/resolv.conf /etc/lilo.conf
35
Instalacin de CentOS
/home/username
/lib Libreras compartidas del sistemas /lost+found Directorio donde se dejan los archivos que FSCK recuperara despus de una cada del sistema. (Sistemas de ficheros sin Journaling)
36
Instalacin de CentOS
/mnt Punto de montaje genrico donde se montarn los dispositivos. /proc Directorio especial que hace las funciones con interfaz con el nucleo /root Es el directorio home de root /tmp Es un directorio temporal en el que cualquier usuario puede escribir. Se borra despues de un reinicio /var Directorio donde se guardan los datos variables como el correo, colas de impresion y logs...
37
Instalacin de CentOS
38
Instalacin de CentOS
Grub es el gestor de arranque. Se encargar de arrancar CentOS y cualquier sistema operativo que detecte.
39
Instalacin de CentOS
40
Instalacin de CentOS
Especificar contrasea para root. El usuario root es el Administrador de la mquina y tiene permiso para todo.
41
Instalacin de CentOS
Ahora toca seleccionar que deseamos instalar en el sistema. Por defecto se instalar el escritorio Gnome.
42
Instalacin de CentOS
43
Configuracin inicial
Con el primer inicio del sistema accederemos a un asistente de configuracin. Se desactivar el Cortafuegos y SELinux para evitar problemas durante el curso. Crearemos un usuario sin privilegios.
44
EJERCICIO
Navegar por el sistema de ficheros y comprobar que lo que vemos se ajusta o no al mapa. Comprobar la versin del ncleo y ver en la web si existe una versin nueva. Se podr actualizar?
45
Comandos bsicos
Comandos bsicos
46
Introduccin a GNU/Linux
Shells
Case sensitive: sensible a maysculas (ECHO != echo). Sintxis: comando arg1 arg2... argn Si un programa no est en el PATH: ./programa Prompt:
47
Comandos bsicos
ls (lista contenido de directorios) cd / pwd (cambia /muestra la ruta de directorio) touch (crea fichero vaco o actualiza existente) cp / mv / rm (copia / mueve/ elimina fichero) mkdir / rmdir (crea / elimina directorio) man / info (ayuda sobre comandos) echo (muestra una lnea de texto) date / cal (muestra la hora del sistema) file (muestra el tipo de fichero) halt / reboot (apaga el sistema) sleep (cuentra atrs)
48
Comandos bsicos
49
Comandos en GNU/Linux
50
EJERCICIO
Ir a tmp. Crear un fichero llamado prueba. Renombrarlo a nominas. A continuacin copiar nominas a nuestra home. Una vez hecho, buscamos en todo el disco duro los ficheros con nombre nominas y los borramos.
51
EJERCICIO
Comprobar con file distintos ficheros del disco duro y comprobar los resultados que nos d. Cambiar la fecha del sistema (buscar informacin en google). Vamos a adelantarnos al 2009. Programar un reinicio del sistema dentro de dos minutos.
52
EJERCICIO
Localizar el comando ifconfig e intentar ejecutarlo. Ejecutar echo $PATH Qu es esa informacin? Ejecutarlo como usuario root. Qu diferencias encontramos?
53
Absolutas: desde el directorio raiz hasta el archivo deseado. Relativas: desde el directorio actual hasta el archivo deseado. *: sustituye una cantidad cualquiera de caracteres ?: sustituye exactamente un carcter []: sustituye un carcter de los indicados
Caracteres especiales
54
EJERCICIOS
Ir a /home. Acceder a /home/consultec mediante ruta completa y relativa. Crear fichero nominas en nuestro home y hacer un ls con * ? y []. Haciendolo de las tres formas, nos tiene que dar como resultado nicamente el fichero nminas Buscar en el disco duro todos los ficheros que empiecen por n.
55
Introduccin a GNU/Linux
Tuberas
0: STDIN o entrada estndar 1: STDOUT o salida estndar 2: STDERR o salida de error Metes crudo por 0 (STDIN), consigues gasolina por 1 (STDOUT) y bastantes residuos por el desage 2 (STDERR).
56
Introduccin a GNU/Linux
Tuberas
57
EJERCICIO
Aadir datos al fichero nomina mediante echo. Juan 1000 euros Pedro 980 euros Jose 800 euros Listarlo con cat y el cat enviarlo a otro fichero nuevo llamado copia.nominas. Comparar los ficheros con md5sum. Modificar uno y volverlo a comparar.
58
EJERCICIO
Usando STDIN, STDOUT utilizar cat para crear otro fichero llamado nominas2 con los siguientes datos: Elisa 1200 euros Pepa 1400 euros Sara 200 euros No se puede usar echo!
59
Comandos en GNU/Linux
cat (muestra el contenido de ficheros por pantalla) more / less (pagina el contenido de ficheros) head / tail (muetra las primeras / ltimas lneas de un fichero) grep (busquedas basadas en expresiones regulares)
60
Comandos en GNU/Linux
61
EJERCICIO
Mostrar la primera linea del fichero nominas. Mostrar la ltima linea del fichero nominas. Abrir dos consolas, en una un tail y con la otra aadir lineas con echo. Para que nos puede servir el tail -f? Hacer un tail del servicio httpd y acceder a nuestra web.
62
Comandos en GNU/Linux
63
EJERCICIO
Contar el nmero de lneas que tiene el fichero de nominas. Comprimir el fichero de nominas y comprobar su tamao. Descomprimirlo y volver a comprobar su tamao.
64
Introduccin a GNU/Linux
Tuberas
65
EJERCICIO
Usando los comandos ya vistos mostrar del fichero /etc/ passwd nicamente los usuarios que comiencen por s.
66
Comandos bsicos
El sistema es multitarea, podemos dejar multiples procesos corriendo en background. Con control+z llevamos el siguiente proceso a background. Con fb [nmero de proceso] lo traemos de nuevo al frente. Con bg listamos el ltimo proceso enviado a background.
67
EJERCICIO
Ejecutar los siguientes tres comandos e ir enviandolos a background: sleep 70 sleep 80 sleep 90 Una vez hecho, se debe volver a traer uno a uno al frente.
68
Comandos bsicos
Es posible crear alias de comandos, de forma que sea ms sencillo de recordar para nosotros. alias apagar=halt
69
EJERCICIO
Crear un alias de nombre lc que nos muestre los ficheros y directorios del lugar donde nos encontramos en colores distintivos y con todos sus datos (tamao, propietarios, permisos...).
70
Compresores
Tar es un comando que nicamente empaqueta. Gzip es un comando que comprime. Uniendo tar+gzip podemos empaquetar una serie de ficheros y comprimirlos. Buscar en google como empaquetar y comprimir /home/ alumno Una vez hecho, descomprimirlo en /tmp
71
Administracin de usuarios
Administracin de usuarios
72
Los sistemas Unix son sistemas multiusuario. Cada usuario tiene una serie de caractersticas propias y asociadas:
uid: identificativo de usuario (debe ser nico) gid: identificativo de grupo home: carpeta de trabajo o personal shell: interprete de comandos who/whoami/id (muestra informacin de usuarios) su/sudo (cambia de usuario o privilegios)
Comandos:
73
Gestin de Usuarios
Gestin de Grupos
groupadd (aade grupo o usuario a grupo) groupmod (modifica grupo) delgroup (elimina grupo o usuario de grupo)
74
Gestin de Usuarios
linux:~$ adduser alumno linux:~$ groupadd curso linux:~$ adduser -home /home/alumno -shell /bin/sh -uid 5001 -groups curso alumno linux:~$ usermod -shell /bin/bash alumno linux:~$ usermod -G softwarelibre alumno
75
Para cambiar el propietario o grupo puede hacerse a travs del nombre o del identificativo (uid o gid).
76
77
Administracin de permisos
Todos los archivos en Unix tienen permisos que indican que y quien puede hacer o no hacer una accin con el archivo. Es la base de la seguridad de Unix. 2 formas de notacin:
78
Administracin de permisos
Modo alfabtico
79
Administracin de permisos
Modo octal
80
Administracin de permisos
Solo es posible alterar los permisos si el usuario que lo est haciendo es el propietario del archivo.
chmod [ugoa][+-][rwx] archivo u (propietario), g (grupo), o (resto), a (todos) + / -: aadir / eliminar permisos r (lectura), w (escritura), x (ejecucin) chmod [modo_octal] archivo
81
EJERCICIO
Crear como root un fichero /tmp/nominas y darle permisos de lectura solo a consultec, no a alumno. Iniciar sesin con alumno y comprobar si lo puede leer.
82
EJERCICIO
Con el usuario alumno crear una carpeta que solo la pueda ejecutar, leer y escribir el usuario alumno. Dentro de ella crear un fichero llamado prueba y comprobar si desde consultec se puede leer.
83
EJERCICIO
Con alumno crear un fichero llamado privado y darle permisos para que solo el pueda acceder al fichero. Luego intentar abrirlo con root.
84
EJERCICIO
Abrimos /etc/passwd y comprobarlos los cambios. Le quitamos la posibilidad de iniciar sesin a alumno. Luego probamos a iniciar sesin con el.
85
EJERCICIO
Borramos el usuario alumno y comprobamos a continuacin los permisos del fichero prueba y su carpeta de tmp. Intentar crear ficheros por todo el disco duro, comprobando as donde tenemos permiso.
86
Montaje de dispositivos
Montaje de dispositivos
87
Montaje de dispositivos
88
Montaje de dispositivos
89
Montaje de dispositivos
Mximo 4 primarias:
/dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4
Linux puede arrancar desde una particin lgica, no as Windows que requiere una primaria.
90
Montaje de dispositivos
/etc/fstab
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> proc /proc proc defaults /dev/hda1 /dev/hda3 /dev/hda2 /dev/hdb1 /dev/hdc / /home none /media/hdb1 /media/cdrom0 ext3 ext3 swap ext3 <dump> 0 <pass> 0 1 2 0 1 0
udf,iso9660 user,noauto
La opcin user permite que un usuario normal (no root) monte la particin.
91
Montaje de dispositivos
mount
Ej:
Ej:
mount -t iso9660 /dev/hdc /media/cdrom0 mount -t ext3 /dev/hdb1 /media/disco_2 mount -t vfat /dev/hda2 /mnt/windowsXP
92
Montaje de dispositivos
mount (II)
Notas:
Una particin de tipo VFAT no dispone de permisos ni dueos/ grupos as que no se puede usar el comando chown ni chmod para permitir a usuarios la escritura.
La particin por defecto es del usuario que la monta (la puede montar cualquiera si tiene la opcin user). Se puede fijar el dueo de la particin con la opcin uid, el grupo con gid y los permisos con umask (ojo, umask es la mscara invertida).
man mount !!
93
Montaje de dispositivos
umount
umount punto_de_montaje
Desmonta un dispositivo:
umount /dev/dispositivo
Si un usuario tiene una terminal en /media/cdrom no se podr desmontar el dispositivo. Para comprobar qu procesos estn usando un dispositivo:
94
EJERCICIO
Vamos a crear una carpeta llamada montaje y un disco duro virtual de 5 megas. Primero vemos como podriamos particionarlo. Luego montaremos el disco duro en la carpeta y trabajaremos con el.
mkdir montaje dd if=/dev/zero of=fichero bs=1 count=5120000 mkfs.ext3 fichero mount -o loop fichero montaje
95
EJERCICIO
Nos metemos en la carpeta y creamos un fichero. Abrimos otra consola y desmontamos la carpeta. Configuramos el fstab para que automticamente monte el dispositivo al iniciar el sistema.
96
Editor VI
Es el editor que encontraremos en todo UNIX. Es necesario conocer el funcionamiento bsico para poder editar ficheros. Tiene varios modos de funcionamiento, visual, comando y edicin. Tiene muchsimas opciones...
http://www.infor.uva.es/~arturo/Asig/EstSO/manvi.pdf
97
98
Enlaces
Duros: En ocasiones es necesario dar a un mismo archivo distintos nombres o, para mantener la integridad de los datos, se hace necesario que un mismo archivo que va a ser modificado por varias personas pueda estar representado por un nombre distinto con distintos permisos cada uno. Dada la representacin que GNU/Linux le da a los archivos es posible que dos o ms nombres apunten al mismo contenido en el disco rgido..
99
Simblicos: A diferencia con los enlaces duros, estos enlaces solo dan otro nombre a un archivo pero no hacen un enlace al nivel de inodo. Se puede hacer una comparacin con los "Accesos directos" de Windows95. La orden ln -s genera un enlace simblico.
100
101
102
Crontab
Crontab
103
Tareas peridicas
cron
El demonio cron permite la ejecucin programada de procesos, scripts o simples comandos. Cron mira cada minuto si tiene que lanzar algn proceso y en caso afirmativo lo lanza. No se puede planificar una ejecucin de forma ms precisa. Cada usuario tiene su tabla de planificacin (crontab) aunque tambin existen una tabla de planificacin global del sistema (/etc/crontab) y una serie de directorios especiales.
104
Tareas peridicas
cron
Nota: Tambin puede haber lneas al principio con declaracin de variables y comentarios (#). Ms info (man 5 crontab).
105
Tareas peridicas
cron
106
Tareas peridicas
cron
107
Tareas peridicas
cron
Directorios especiales:
/etc/cron.daily/ /etc/cron.hourly/ /etc/cron.monthly/ /etc/cron.weekly/
Los ficheros ejecutables que metamos en esos directorios se ejecutarn en su momento por el usuario root. NO DEBEN SER FICHEROS DE CRON, sino scripts o programas.
108
EJERCICIO
Crear una tarea que se ejecute a las 13:45 los lunes una nueva linea al fichero /tmp/programado con el texto hola. Crear una tarea que se ejecute cada 3 minutos aadiendo el texto adios al mismo fichero. Crear una tarea que cada hora borre el fichero. Lo abrimos con tail -f y vemos el progreso.
109
110
Shell Scripts
Script = Guin Tareas repetitivas se pueden agrupar en un guin y ejecutarse automticamente (Batch Processing).
Es sencillo ejecutar 4 comandos para crear un buzn de correo. No lo es tanto para crear 20.000 buzones. Es sencillo hacer un bucle que se repita 20.000 veces ;-)
111
Shell Scripts
Con #! en la primera lnea indicamos quin debera interpretar el resto de comandos (/bin/sh). Posteriormente escribimos los comandos separados por saltos de lnea.
112
Shell Scripts
Variables
Una variable tiene un nombre y un valor, y sirve para dotar de dinamismo a nuestros scripts:
FECHA=15/07/2004 echo Hoy es $FECHA
113
Shell Scripts
Variables de entorno
Al arrancar una shell, ya hay muchas variables definidas, son las variables de entorno.
Podemos ver su valor con el comando env. Si se define una variable en una shell, slo tiene valor en esa shell, a no ser que se exporte a los programas hijo. export USUARIO=joaquin Si desde esa shell lanzamos un script u otro programa, la variable USUARIO contendr joaquin.
114
Shell Scripts
Variables: interactividad
Es posible leer del usuario el valor de una variable, dotando a nuestros scripts de interactividad. cat hola.sh
#!/bin/sh echo Dime tu nombre: read NOMBRE echo Hola $NOMBRE, encantado de conocerte
115
Shell Scripts
Variables: argumentos
Es posible pasar los parmetros o argumentos que queramos y utilizarlos dentro del script. cat nombre.sh
#!/bin/sh echo Nombre: $1 echo Primer Apellido: $2 echo Segundo Apellido: $3
./nombre.sh Juan Lpez Martnez ./nombre.sh Maria Dolores Pradera Snchez $1, $2, $3... ${10}, ${11}: argumentos $0 es el propio script.
116
Shell Scripts
$#: nmero de argumentos que nos han pasado. $*: todos los argumentos. $* = $1 $2 $3... $@: todos los argumentos. $@ = $1 $2 $3... $_: comando anteriormente ejecutado. $$: PID del propio proceso shell.
117
Shell Scripts
118
Shell Scripts
(ojo escapar
119
Shell Scripts
Condiciones: test
test $NOMBRE == Juan(==, !=, >, <, >=, <=) test $DINERO -eq 1000 (-eq, -ne, -gt, -lt, -ge, -le) test -f /etc/passwd cero = verdadero no cero = falso (AL REVS QUE EN C!!) (-f, -d, -l, -r, -w, -x)
Modifican el valor de $?
http://www.ss64.com/bash/test.html
120
Shell Scripts
121
Shell Scripts
if. Ejemplo:
if test $NOMBRE == Juan then echo Hola Juanin, qu tal? elif test $NOMBRE == Pedro then echo Pedreteee, cunto tiempo! else echo No te conozco fi
122
Shell Scripts
123
Shell Scripts
case. Ejemplo:
case $NOMBRE in Juan) echo Hola Juanin, qu tal? ;; Pedro) Pedreteee, cunto tiempo! ;; *) echo no te conozco; esac
124
Shell Scripts
125
Shell Scripts
while. Ejemplo:
N=1 while [ $N -lt 100 ] do echo Repito esta frase, ya voy $N veces N=$(expr $N + 1) sleep 1 # Esperamos 1 segundo done
126
Shell Scripts
127
Shell Scripts
128
Shell Scripts
for: ejecucin repetitiva asignando a una variable de control valores de una lista. Sintaxis:
for VARIABLE in LISTA do comandos done
129
Shell Scripts
for. Ejemplo:
for N in Sopa Carne Pan de ajo do echo Hoy comemos $N done
130
Shell Scripts
for: la LISTA define la separacin de cada elemento por el valor de la variable IFS (que por defecto vale \t\n). Ejemplo:
IFS=: echo Directorios en el PATH... for DIR in $PATH do echo $DIR done
131
Shell Scripts
132
Shell Scripts
select: muestra las opciones especificadas en LISTA y asigna a VARIABLE la opcin escogida. Sintaxis:
select VARIABLE in LISTA do comandos done
133
Shell Scripts
select: Ejemplo:
select OPCION in Doner Kebab Pizza do case $OPCION in Doner Kebab) echo Mmmm... break;; Pizza) echo Slurppp! break;; *) echo No s qu es eso esac done
134
Shell Scripts
function
Podemos modularizar los scripts agrupando tareas en funciones. Es necesario que una funcin est definida ANTES de que sea llamada. Dentro de una funcin, $1, $2, $3, etc. sern los parmetros pasados a la funcin, no al script en s.
135
Shell Scripts
function. Ejemplo:
#!/bin/sh function suma { echo $(expr $1 + $2) } suma 4 6 suma 3 234
136
Shell Scripts
source, .
137
EJERCICIO
Crear un script que nos pida nombre de usuario y contrasea. Una vez tengamos los datos los aadimos al fichero /tmp/datos A continuacin nos pregunta si deseamos continuar insertando datos. Si la respuesta es si, volvemos a empezar, si es no terminamos la aplicacin.
138
EJERCICIO
Por cada fichero en /bin hacer un md5sum y archivar los datos en /tmp/seguridad. Programar una tarea para que lo haga todos los das a las 10 de la noche.
139
EJERCICIO
Crear una calculadora. Si el usuario escribe 2 + 5, que le muestre el resultado por pantalla. Se debe salir del bucle cuando el resultado de una operacin sea 82.
140
Redes
Redes
141
Configuracin de la red
142
Configuracin de la red
143
Configuracin de la red
Una misma red fsica puede albergar distintas redes con distinto direccionamiento y rango.
$ ifconfig eth0:1 192.168.1.123 netmask 255.255.255.0
$ ifconfig eth0:1 eth0:1 Link encap:Ethernet HWaddr 00:14:85:E8:D3:AF inet addr:192.168.1.123 Bcast:192.168.1.255 Mask:255.255.255. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:217 Base address:0xe800
144
Configuracin de la red
/etc/hosts: realiza una resolucin directa de nombre a IP sin realizar consulta DNS. Normalmente este fichero se mira antes de preguntar al servidor DNS (slo para consulta de tipo A). Para asegurarnos que el sistema pregunte al DNS o al fichero '/etc/hosts' para resolver nombres de host hay que mirar el fichero '/etc/nsswitch.conf'
145
Configuracin de la red
Configuracin para el arranque: en /etc/network/interfaces definimos la interfaz como inet dhcp Configuracin manual:
146
Comandos bsicos de administracin de red ping: manda un mensaje ICMP echo request. Se utiliza normalmente para comprobar si un interfaz de red remoto est levantado.
$ ping 212.55.8.132 PING 212.55.8.132 (212.55.8.132) 56(84) bytes of data. bytes from 212.55.8.132: icmp_seq=1 ttl=242 time=166 ms hay conectividad!
Nota: Si no hay ping puede que el trfico ICMP est filtrado por algn firewall.
147
NO es un protocolo seguro (SSH s). Se utiliza tambin para comprobar estado de servicios remotos. Ejemplo:
$ telnet www.euskalnet.net 80 Connected to eui3h.euskaltel.es. Escape character is '^]'.
148
Comando potente que permite mostrar casi toda la informacin de la configuracin TCP/IP de la mquina (man netstat). Ejemplos:
netstat netstat netstat netstat netstat -atup # muestra tambien procesos -a # muestra todas las conex. -a | grep LISTEN -a | grep ESTABLISHED -nrv # muestra tabla de rutas
149
iptraf:
150
netcat (nc): navaja suiza de red Capaz de funcionar como cliente, como servidor, etc.
telnet 127.0.0.1 80 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. GET / <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> ...
Cliente/Servidor:
nc -l -p 5000 cat fichero | nc 192.168.1.1 5000
151
nmap: escaneador de red Permite comprobar que puertos estn o no abiertos. Nos dice el sistema operativo y la versin de los servicios que estamos escaneando.
[root@shyris punisher]# nmap -sS -O 127.0.0.1 Starting Nmap 4.65 ( http://nmap.org ) at 2008-06-13 08:40 CEST Interesting ports on localhost.localdomain (127.0.0.1): Not shown: 1713 closed ports PORT STATE SERVICE 111/tcp open rpcbind 978/tcp open unknown Device type: general purpose Running: Linux 2.6.X OS details: Linux 2.6.17 - 2.6.24 Uptime: 0.013 days (since Fri Jun 13 08:22:15 2008) Network Distance: 0 hops
152
Iptables
IPTABLES
153
Iptables
Cortafuegos Netfilter/Iptables
Remplaza a Ipchains desde el Kernel 2.3. iptables: herramienta del espacio de usuario que permite:
154
Iptables
Tablas y cadenas
155
Iptables
156
Iptables
157
Iptables
158
Iptables
Tabla mangle
TOS (Type of Service) TTL (Time To Live) MARK (marcar un paquete) -> iproute2, QoS
159
Iptables
Tabla nat
Cambiar la IP destino. Ej: Redirigir entrantes a una DMZ con IP's locales. Cambiar la IP origen a una definida (esttica) Para dar salida a equipos LAN con IP's locales. Igual que SNAT con ms carga de procesador. Cada vez chequea la IP saliente que debe asignarle.
SNAT:
Masquerade:
160
Iptables
Tabla filter
Filtrado de paquetes. Se puede hacer filtrado en otras tablas, pero no es recomendable ! Acciones como:
161
Iptables
NEW: paquete nuevo. ESTABLISHED: comunicacin ya establecida. RELATED: relaionada a otra comunicacin ESTABLISHED.
Para protocolos como FTP que incluyen puerto de transmisin de datos dentro de datos de aplicacin.
--state
162
Iptables
Ejemplo:
Estado de la comunicacin: NEW. Cadena OUTPUT. Estado de la comunicacin: ESTABLISHED. Cadena PREROUTING.
163
Iptables
iptables -L -v iptables-save
iptables-save > fichero-reglas (salva las reglas a fichero) iptables-restore < fichero-reglas (carga reglas desde fichero)
164
Iptables
Comando iptables
Sintaxis para aadir una regla: Los scripts de iptables constan de muchas lneas similares.
165
Iptables
Comandos
-A : Aade la regla al final de la cadena. iptables -A INPUT (aade una regla al final de la cadena INPUT) -D : Borrar una regla (hay que ponerla entera). -R : Reemplaza una regla. -I : Inserta una regla en la posicin indicada. -L : Lista todas las reglas (de la cadena especificada). -F : (Flush) Elimina todas las reglas (de la cadena especificada).
166
Iptables
Comparaciones
Comparaciones genricas:
-p, --protocol : Para comprobar si es TCP, UDP o ICMP. iptables -A INPUT -p tcp -s, --src : Comparacin de IP origen. iptables -A INPUT -s 192.168.1.10 iptables -A INPUT -s 192.168.1.0/24 iptables -A INPUT -s ! 192.168.1.0/24 (invertir) -d, --dst : Comparacin de IP destino. iptables -A INPUT -d 192.168.0.1 iptables -A INPUT -d 192.168.0.0/16 -i, --in-interface : Interfaz origen.
iptables -A INPUT -i eth0 iptables -A INPUT -i eth+ eth) -o, --out-interface : Interfaz de salida.
Iptables
Comparaciones implcitas
168
Iptables
-p tcp
--sport : Puerto origen. iptables -A INPUT -p tcp --sport 1003 iptables -A INPUT -p tcp --sport 100:200 (rango) iptables -A INPUT -p tcp --sport ! 22 (invertir) --dport : Puerto destino (dem) --tcp-flags : Flags TCP:
169
Iptables
-p upd
170
Iptables
-p icmp
171
Iptables
Comparaciones explcitas
iptables -A INPUT -m state --state RELATED,ESTABLISHED --limit VALOR : Limitar el n de paquetes por tiempo. iptables -A INPUT -m limit --limit 3/hour --mac-source : MAC origen. iptables -A INPUT -m mac --mac-source
00:00:00:00:11:22
--mark : Comprobar paquetes marcados anteriormente. iptables -t mangle -A INPUT -m mark --mark 1
Ms comparaciones:
172
Iptables
Objetivos/Saltos
173
Iptables
Objetivos
ACCEPT : Aceptamos el paquete.
El paquete deja de compararse en la cadena actual y en las cadenas de la tabla actual ! El paquete podra ser filtrado en otra tabla !
DROP : Deseacha un paquete. REJECT : Rechaza un paquete (enva un ICMP informativo al origen). LOG : Loguea el paquete en ssylog. DNAT : Cambiamos la IP destino.
Iptables
Objetivos (II)
SNAT : Cambiamos la IP origen.
Otros objetivos:
Iptables
Dos filosofas:
1: Todo abierto y cerrar aquello que no queramos 2: Todo cerrado y abrir aquello que queramos Mucho ms segura la 2 !
Poltica por defecto en cada cadena (slo se cumple si el paquete no coincide con ninguna regla):
iptables -P cadena poltica
176
Iptables
iptables -P INPUT DROP Estamos bloqueando los accesos por red en localhost !
177
Iptables
sysctl
Ms elegante:
#> sysctl -w net.ipv4.ip_forward=1
178
Iptables
Notas a recordad
No olvidarse del interfaz lo. Cargar mdulos necesarios para nuestras reglas.
179
Iptables
Ejemplo
Borrado de las reglas aplicadas actualmente (flush) Aplicacin de polticas por defecto para INPUT, OUPUT, FORWARD Listado de reglas iptables.
180
Iptables
Ejemplo (II)
#!/bin/sh ## SCRIPT de IPTABLES ## Red local: eth0 - 192.168.0.0/24 ## Internet: eth1 IP dinmica # Borrar reglas: iptables F iptables t nat F # Poltica por defecto: iptables P INPUT DROP iptables P OUTPUT ACCEPT iptables P FORWARD DROP iptables t nat P PREROUTING ACCEPT iptables t nat P POSTROUTING ACCEPT # Permito acceso local: iptables -A INPUT -p ALL -i lo -j ACCEPT
181
Iptables
Ejemplo (III)
# Masquerading para red local con IP pblica dinmica: iptables t nat A POSTROUTING s 192.168.0.0/24 -o eth1 j MASQUERADE # Dejo pasar los paquetes ICMP: iptables A INPUT p ICMP j ACCEPT # Acepto paquetes de conexiones ya establecidas: iptables A INPUT p TCP m state state RELATED,ESTABLISHED j ACCEPT # Permitir SSH a la mquina: iptables A INPUT p TCP dport 22 m state state NEW j ACCEPT # Redirigir HTTP a una mquina local: iptables t nat A PREROUTING i eth1 p tcp dport 80 j DNAT to 192.168.0.2:80
182
Iptables
Ms info:
http://iptables-tutorial.frozentux.net/spanish/chunkyhtml
183
Paquetes de software
Paquetes de software
184
Paquetes de software
Un paquete es un fichero que contiene un programa, scripts de instalacin y ficheros de configuracin. Es posible instalar, eliminar programas y actualizar el sistema completo con un solo comando, yum. Tambin es posible instalar paquetes a mano sin yum, pero tendremos que resolver el problema de dependencias manualmente.
185
Paquetes de software
Instalar: yum install nombrepaquete Eliminar: yum remove/erase nombrepaquete Actualizar paquetes: yum update Actualizar sistema: yum upgrade Buscar paquete: yum search textodebusqueda Mostrar info de paquete: yum info nombrepaquete
186
Paquetes de software
Qu es un repositorio? El repositorio es un almacn de paquetes. Los repositorios pueden estar en internet, en un medio extrable como un CD, en el disco duro... Se configuran en /etc/yum.repos.d [kbs-CentOS-Extras]
187
Paquetes de software
Tambin es posible instalar paquetes a mano sin usar YUM, mediante rpm. Las dependencias las tenemos que gestionar notrosos.
[root@localhost alumno]# rpm -i pidgin-2.0.23.el5.i386.rpm warning: pidgin-2.0.2-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897 error: Failed dependencies: libgtkspell.so.0 is needed by pidgin-2.0.23.el5.i386 libpurple.so.0 is needed by pidgin-2.0.23.el5.i386
188
Paquetes de software
Algunas opciones de rpm. Instalar: rpm -i nombrepaquete Borrar: rpm -e nombrepaquete Ver paquetes instalados: rpm -qa Actualizar paquete: rpm -Uvh
189
190
Proceso de arranque
La BIOS busca un dispositivo de inicio (disco duro, CDROM,..) y pasa el control al MBR (512 bytes). Se carga el gestor de arranque (instalado en MBR). Se carga el kernel. Se monta el sistema de ficheros raiz (/). Se inicia el init (el abuelo de todos los procesos). Se lee el archivo /etc/inittab. Se ejecutan los scripts indicados por el nivel de ejecucin de arranque.
191
Gestores de arranque
Grub
Grub (Grand Unified Bootloader) es un gestor de arranque capaz de arrancar diferentes sistemas operativos en diferentes particiones y discos duros. Normalmente se instala en el MBR (master boot record) del disco duro principal. El archivo de configuracin en Debian GNU/Linux es: /boot/grub/menu.lst No es necesario ejecutar ningn comando para que se tengan en cuenta los cambios realizados.
192
Gestores de arranque
Grub
Dispositivos
(dispositivo[particion][,letra_particion])
(hd0) (fd0) (hd0,1) 0 # disco maestro IDE primario # disquetera # particin 2 del maestro IDE
Ficheros
193
Gestores de arranque
Grub
title Ubuntu, kernel 2.6.12-10-386 root (hd0,1) kernel /boot/vmlinuz-2.6.12-10-386 root=/dev/hda2 ro quiet splash initrd /boot/initrd.img-2.6.12-10-386 savedefault boot title root savedefault makeactive chainloader Microsoft Windows (hd0,2)
+1
194
Niveles de Ejecucin
0: estado de parada (halt) 1: monousuario 2, 3 y 5: multiusuario 4: no tiene un uso especfico 6: estado de reinicio (reboot)
195
Niveles de Ejecucin
Init
Sintaxis
id:nivel:accion:proceso
id: nombre de la lnea nivel: nivel o niveles en los que la lnea debe procesarse accion
wait (espera), once (solo 1 vez), respawn (rearranca una vez finalizado), off (ignora la lnea)
196
Niveles de Ejecucin
Init
1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 z6:6:respawn:/sbin/sulogin # CTRL-ALT-DEL! ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
197
Cuando la mquina se inicia en un nivel de ejecucin N se ejecutan todos los scripts que empiecen por 'S' o 'K' contenidos en /etc/rcN.d/ con las siguientes particularidades. Si el nombre del script comienza por S se le pasa como parmetro 'start'.
Normalmente todos estos ficheros de /etc/rcN.d son enlaces a scripts localizados en /etc/init.d/
198
chkconfig
Herramienta para configurar automgicamente los enlaces a los scripts de init tipo System V que estn en /etc/rcN.d/ [S|K]NNnombre y que apuntan a los scripts /etc/init.d/nombre. Ejemplos
# chkconfig --list # chkconfig --level 345 sendmail off
199