Académique Documents
Professionnel Documents
Culture Documents
Antes de nada...
GNU GPL
Linux
Software Libre
Kernel
GNU/Linux
Distribucin Linux Debian
Paquete
(K)Ubuntu
KDE
Gnome Emule
3
Introduccin
Programas informticos
Tipos de Software
Software privativo
Shareware
Freeware
Software libre
Introduccin
Introduccin
4 Libertades:
Introduccin
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
Conceptos Generales sobre GNU Linux (II)
Gestionadas por:
empresas
grupos de personas.
organismos ...
Introduccin
DistribucionesGNULinux(I)
Debian:ProyectofundadoporIanMurdocken1993,
proyectoconorganizacinjerrquicatotalmente
horizontal.Objetivoprincipal:competirconlas
distribucionescomercialesparapodergarantizarel
exitodeGNULinux.
Redhat:Empresafundadaen1994porMarcEwing,
ofrecesoportetcnicoprofesionalygarantasde
escalabilidad.Plataformaliderenelmercado.
10
Introduccin
DistribucionesGNULinux(II)
Mandrakesoft:Nacidaen1998,conobjetivo
principal:instalacinyusodiariosencillos.
Crecimientoespectacularen2aos(3a100
empleados).
SuSE:Proyectodeempresaaleman,iniciadoen
1993.PrimerasversionesbasadasenSlackware.En
laactualidaddistribucintotalmentepropia.Ofrecen
soporteprofesionaldecalidad,similaraldeRedHat.
11
Introduccin
DistribucionesGNULinux(III)
Slackware:DistribucindesarrolladaporPatrick
Volkerding.PrimeraversinpublicadaenAbrilde
1993.Noofrecesoportetcnicoprofesionaldirecto.
Knoppix:EselSistemaLive(ejecucindesde
CDRomsininstalacin)mspopular.Soporta
prcticamentetodoslosdispositivoshardwaredel
mercado.Muypopularcomomtododeiniciacina
GNULinux.
12
Introduccin
DistribucionesGNULinux(IV)
Ubuntu:DistribucinbasadaenDebian,centradaen
elsistemadeescritorio(aunquetambindisponede
versinservidor).Nuevaversincada6meses.
CentOS:Distribucinbasadaenelcdigofuentede
RedHat.Concadanuevaversinenterprisede
RedHat,Centosdescargaelcdigo,locompilaycrea
supropiaversin.Es100%compatibleanivelbinario
conRedHat.
13
Introduccin
Versiones
2.4.19
SubVersin:
Parindicaestable
Imparindica
inestable
2.5.3
Versin
Release
Enlaprctica,sedenomina
versinatodoelconjunto.
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
Introduccin
SituacinrealdeGNULinuxenelpanorama
empresarial
Soporte:LavaprincipaldeingresoenelmundodeGNULinuxes
elsoporte.ServiciossobreGNULinux.Eldesarrollonocopael
mercadocomoenotrossistemasoperativos(Laruedayaest
inventada).
Apoyodegrandesempresas:EntreotrasIBMsehaposicionado
enfavordeGNULinux,afrontandodirectamentedemandasdeSCO
UNIXsobreposibleviolacindecopyrightdeLinux.
PosturadeMicrosoft:
2001:Proyectohechoporaficionados,noesserio
2004:Esnuestraprincipalamenaza
BillGates
17
Introduccin
SituacinrealdeGNULinuxenelpanorama
empresarial:Desarrolloysistemas
Desarrollo(web):Lapuntadelalanzaresideen
solucionesLAMP(LinuxApacheMySQL,PHP):
Pros:Rapidez,seguridad,integracincon
prcticamentetodoslosprotocolosycomunidadde
desarrolladoresmuyactiva(numerosaslibrerasy
cdigoreutilizable).
Contras:IntegracinconsolucionesMSWindows
18
Introduccin
SituacinrealdeGNULinuxenelpanorama
empresarial:Desarrolloysistemas
Sistemas:EselpuntofuertedeGNULinux:
estabilidad,seguridad,escalabilidadeintegracin
prcticamentetotal:
Solucionesdeseguridad(VPNs,Ids,Firewalls,...)
Solucionesdetiemporeal(sistemasde
monitorizacin,...)
RoutingAvanzado(OSPF,BGP,VRRP,....)
Servidores:DNS(Bind9),Web(Apache),FTP
(Proftpd),Netbios(Samba)....
19
EJERCICIO
20
Instalacin de CentOS
Instalacin de CentOS
21
Instalacin de CentOS
22
Instalacin de CentOS
23
Instalacin de CentOS
Seleccin de idioma.
Se aplicar tanto al entorno de consola como al
entorno de escritorio.
24
Instalacin de CentOS
25
Instalacin de CentOS
26
Instalacin de CentOS
27
Instalacin de CentOS
Sistemas de ficheros
VFAT
Ext2
Ext3
RaiserFS
XFS
y muchos otros...
28
ficheros planos
directorios
orientados a carcter
orientados a bloque
29
30
31
Instalacin de CentOS
bin/
dev/
home/
lost+found/
proc/
sbin/
usr/
boot/
etc/
lib/
mnt/
root/
tmp/
var/
32
Instalacin de CentOS
/sbin
33
Instalacin de CentOS
/bin
34
Instalacin de CentOS
/etc/X11/xorg.conf Sistema X
/etc/resolv.conf
/etc/lilo.conf
35
Instalacin de CentOS
/home/username
36
Instalacin de CentOS
Instalacin de CentOS
38
Instalacin de CentOS
39
Instalacin de CentOS
40
Instalacin de CentOS
41
Instalacin de CentOS
42
Instalacin de CentOS
43
Configuracin inicial
44
EJERCICIO
45
Comandos bsicos
Comandos bsicos
46
Introduccin a GNU/Linux
Shells
Prompt:
$: usuario normal
#: usuario administrador (root)
47
Comandos bsicos
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
52
EJERCICIO
53
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
56
Introduccin a GNU/Linux
Tuberas
57
EJERCICIO
58
EJERCICIO
59
Comandos en GNU/Linux
60
Comandos en GNU/Linux
61
EJERCICIO
62
Comandos en GNU/Linux
63
EJERCICIO
64
Introduccin a GNU/Linux
Tuberas
65
EJERCICIO
66
Comandos bsicos
67
EJERCICIO
68
Comandos bsicos
69
EJERCICIO
70
Compresores
71
Administracin de usuarios
Administracin de usuarios
72
Comandos:
73
Gestin de Usuarios
Gestin de Grupos
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
76
77
Administracin de permisos
Modo alfabtico
Modo octal
78
Administracin de permisos
Modo alfabtico
79
Administracin de permisos
Modo octal
80
Administracin de permisos
81
EJERCICIO
82
EJERCICIO
83
EJERCICIO
84
EJERCICIO
85
EJERCICIO
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
90
Montaje de dispositivos
/etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point>
<type> <options>
proc
/proc
proc
defaults
<dump>
0
<pass>
0
/dev/hda1
/dev/hda3
/dev/hda2
/
/home
none
ext3
ext3
swap
defaults,errors=remount-ro 0
defaults
0
sw
0
1
2
0
/dev/hdb1
/media/hdb1
ext3
defaults
/dev/hdc
/media/cdrom0
udf,iso9660 user,noauto
91
Montaje de dispositivos
mount
mount punto_de_montaje
mount /dev/dispositivo
Ej:
Ej:
92
Montaje de dispositivos
mount (II)
Notas:
man mount !!
93
Montaje de dispositivos
umount
Desmonta un dispositivo:
umount /dev/dispositivo
umount punto_de_montaje
lsof punto_de_montaje
Ej:
lsof /media/cdrom
94
EJERCICIO
95
EJERCICIO
96
Editor VI
http://www.infor.uva.es/~arturo/Asig/EstSO/manvi.pdf
97
98
Enlaces
99
100
touch hola
ln hola adios
ls -li hola adios
punisher users 0 jun 12 16:40 adios
punisher users 0 jun 12 16:40 hola
101
102
Crontab
Crontab
103
Tareas peridicas
cron
104
Tareas peridicas
cron
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/
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
Programacin Bsica
en Shell (Bash)
110
Shell Scripts
Script = Guin
Tareas repetitivas se pueden agrupar en un guin y
ejecutarse automticamente (Batch Processing).
111
Shell Scripts
112
Shell Scripts
Variables
$FECHA es su valor.
113
Shell Scripts
Variables de entorno
114
Shell Scripts
Variables: interactividad
115
Shell Scripts
Variables: argumentos
116
Shell Scripts
117
Shell Scripts
118
Shell Scripts
(ojo espacios!)
(ojo escapar
119
Shell Scripts
Condiciones: test
test $DINERO -eq 1000 (-eq, -ne, -gt, -lt, -ge, -le)
test -f /etc/passwd
Modifican el valor de $?
cero = verdadero
no cero = falso
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
129
Shell Scripts
for. Ejemplo:
for N in Sopa Carne Pan de ajo
do
echo Hoy comemos $N
done
130
Shell Scripts
131
Shell Scripts
132
Shell Scripts
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
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
138
EJERCICIO
139
EJERCICIO
140
Redes
Redes
141
Configuracin de la red
142
Configuracin de la red
143
Configuracin de la red
$ 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
145
Configuracin de la red
146
147
148
149
iptraf:
150
Cliente/Servidor:
nc -l -p 5000
cat fichero | nc 192.168.1.1 5000
151
152
Iptables
IPTABLES
153
Iptables
Cortafuegos Netfilter/Iptables
NAT.
154
Iptables
Tablas y cadenas
155
Iptables
156
Iptables
157
Iptables
158
Iptables
Tabla mangle
159
Iptables
Tabla nat
Cambiar la IP destino.
SNAT:
Masquerade:
160
Iptables
Tabla filter
Filtrado de paquetes.
Se puede hacer filtrado en otras tablas, pero no es
recomendable !
Acciones como:
Desecharlo (DROP).
161
Iptables
--state
162
Iptables
Ejemplo:
Cadena OUTPUT.
Cadena PREROUTING.
163
Iptables
iptables -L -v
iptables-save
164
Iptables
Comando iptables
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:
(por cualquier
Iptables
Comparaciones implcitas
TCP
UDP
ICMP
(o UDP, ICMP)
168
Iptables
-p tcp
169
Iptables
-p upd
170
Iptables
-p icmp
171
Iptables
Comparaciones explcitas
Ms comparaciones:
172
Iptables
Objetivos/Saltos
173
Iptables
Objetivos
ACCEPT : Aceptamos el paquete.
Iptables
Objetivos (II)
SNAT : Cambiamos la IP origen.
Otros objetivos:
Iptables
Dos filosofas:
Mucho ms segura la 2 !
176
Iptables
lo es el interfaz de localhost.
Si ponemos:
Solucin: Aadir:
177
Iptables
sysctl
Ms elegante:
#> sysctl -w net.ipv4.ip_forward=1
Fichero /etc/sysctl.conf:
net/ipv4/ip_forward=1
178
Iptables
Notas a recordad
179
Iptables
Ejemplo
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
185
Paquetes de software
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]
name=CentOS.Karan.Org-EL$releasever - Stable
gpgcheck=1
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
enabled=1
baseurl=http://centos.karan.org/el$releasever/extras/sta
ble/$basearch/RPMS/
187
Paquetes de software
188
Paquetes de software
189
Servicios y Niveles
de Ejecucin
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
192
Gestores de arranque
Grub
Dispositivos
(dispositivo[particion][,letra_particion])
(hd0)
(fd0)
(hd0,1)
0
Ficheros
193
Gestores de arranque
Grub
0
3
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
nivel
nivel
nivel
nivel
nivel
195
Niveles de Ejecucin
Init
Sintaxis
id:nivel:accion:proceso
196
Niveles de Ejecucin
Init
0
1
2
3
197
198
chkconfig
199