sistema operativo gnu/linux

Anuncio
SISTEMA
OPERATIVO
GNU/LINUX
 Que es Linux?
Linux es un sistema operativo libre de 32 ó 64
bits .Linux es distribuido bajo la Licencia
General Pública de GNU, que significa que
puede ser distribuido, copiado y modificado
gratuitamente.
Tiene todas las prestaciones que se pueden
esperar de un sistema Unix moderno tales
como:
multitarea,
multiusuario,
multiplataforma, multiprocesador, memoria
virtual, entre muchas otras.
 De Donde Proviene?
Linux fue escrito por un estudiante de la
República de Finlandia llamado Linus
Torvalds en el año de 1991 con la ayuda de
varias personas a nivel mundial. Torvalds
estuvo trabajando con MINIX, un pequeño
sistema operativo, pero descubrió que tenia
algunos defectos .
y fue por esto que empezó a crear su propio
sistema operativo, el cual esta siendo utilizado
cada día mas por grandes empresas , así mismo
cada día aumenta el numero de programas y
aplicaciones desarrolladas para esta plataforma.
 Beneficios Con Linux
Linux es muy robusto, estable y rápido: Ideal
para servidores y aplicaciones distribuidas. A
esto se añade que puede funcionar en máquinas
humildes: Linux puede correr servicios en un
x86 a 200 MHz con calidad.
Linux es libre: Esto implica no sólo la
gratuidad del software, sino también que
Linux es modificable y que Linux tiene una
gran cantidad de aplicaciones libres en
Internet.
Linux ya no está restringido a personas con
grandes conocimientos de informática: Los
desarrolladores de Linux han hecho un gran
esfuerzo por dotar al sistema de asistentes de
configuración y ayuda, además de un sistema
gráfico muy potente.
 Caracteristicas
Linux es un sistema operativo multiusuario y
multitarea ; esto significa que el sistema
operativo puede gestionar varias tareas y
usuarios de manera simultanea.
Para ello utiliza el concepto de tiempo
compartido que significa que el sistema
operativo mantiene una lista o cola de tareas
en espera de ejecución, compartiendo el
tiempo y los recursos del sistema.
 Multitarea
El ordenador puede estar haciendo varias
cosas a la vez, y no tendrá que esperar a que
acabe una para hacer otra, la multitarea esta
controlada por el sistema operativo no por
las aplicaciones, por lo que a diferencia de
otros sistemas operativos nunca se quedara
parado por culpa de una mala aplicación que
consuma todos los recursos del ordenador.
 Multiusuario
Puede haber varias personas usando el
ordenador, compartiendo el microprocesador,
así puede ponerle un par de pantallas y
teclados y estar otra persona navegando por
Internet, escribiendo una carta, mientras
usted esta en otra haciendo otra cosa
completamente diferente, y estaran ambos en
el mismo ordenador. Linux garantiza la
privacidad y la seguridad de los datos entre
usuarios.
 Estructura
En la estructura de Linux aparecen cuatro
elementos situados en bloques diferentes,
cada uno de los cuales tiene
encomendado una función:
* Hardware.
* Núcleo o Kernel.
* Shell.
* Usuario
 Tipos De Archivos
Linux gestiona varios tipos de archivos; para
él casi todos los objetos se consideran
archivos. Los tipos de archivos en Linux son
los siguientes:
* Archivos Ordinarios
* Archivos Vinculos
* Archivos Directorios
* Archivos Especiales
 Ordinarios Y Vinculos
* Archivos ordinarios.: Contienen la
información con la que trabaja cada usuario.
Normalmente son archivos que contienen
texto, programas escritos por el usuario en
lenguaje C, etc
* Archivos vinculos No es específicamente
una clase de archivo. Es un segundo
nombre asignado a un archivo.
 Directorios Y Especiales
* Directorios. Son archivos especiales que
contienen referencias a otros archivos.
Cuentan con información sobre archivos
ordinarios, subdirectorios, vínculos, vínculos
simbólicos, etc
* Especiales. Suelen representar dispositivos
físicos como unidades de almacenamiento,
impresoras, terminales, etc.
 Estructura De Archivos
El punto de partida es el directorio raíz,
representado por el / . Dentro de cada
directorio no hay limitación en el número de
archivos y de directorios. Se llama árbol de
directorio a la estructura que contiene el
sistema de archivos
necesario para utilizar Linux. Este árbol
directorio parte del directorio raíz.
 Estructura De Directorios
 Estructura De Directorios
 Estructura De Archivos
Tipo
Dispositivo
hd
Discos duros IDE
sd
Discos dduros SCSI
scd
Cdrom SCSI
st
Unidades de cinta SCSI
ht
Unidades de cinta IDE
fd
Unidades de disquete
lp
Puertos Paralelos
tty
Terminales o consolas
pty
Terminates remotas
tyys
Puertos seriales
cua
Puertos de comunicacion
eth
Tarjetas de red Ethernet
 Estructura De Archivos
Los dispositivos que admiten particiones
generalmente estas se designan con letras, asi
por ejemplo las unidades IDE que son las mas
comunes en cualquier PC actual su
designación sería la siguiente
Canal IDE
Dispositivo Linux
Primario Maestro
/dev/hda
Primario Esclavo
/dev/hdb
Secundario Maestro
/dev/hdc
Secundario Esclavo
/dev7hdd
 Dispositivos
Para Linux todo es un archivo, incluyendo
dispositivos como discos duros, cdroms,
disquetes, unidades de cinta, memorias usb,
etc.Estos archivos se encuentran bajo el
directorio /dev.
 Geometria Del Disco
La geometría del disco describe las posibles
direcciones sobre las cuales los datos pueden
ser almacenados y accesados.
Direcciones físicas (Physical Address) Los
datos son direccionados por el cilindro,
cabeza y sector que los contiene. Bloque de
direcciones lógicas (Logical Block
 Geometría Del Disco
Address (LBA)) Los datos son direccionados
por (LBA)) el número relativo de sector.
Cada esquema de direcciones impone sus
propias restricciones Algunos drivers BIOS;
pueden accesar únicamente los primeros 1024
cilindros (0 ... 1023), esto en LBA es hasta 8GB.
 Particiones
 Sistemas De Archivos
/dev/null es un archivo especial que descarta
toda la información que se escribe o
redirecciona en él.
/dev/zero es un archivo especial que provee
tantos caracteres null (ASCII NUL, 0x00; no
el carácter ASCII "0", 0x30) como se lean
desde él.
Btrfs es un sistema de archivo copy-on-write
anunciado por Oracle corporation para
GNU/linux.
 Sistemas De Archivos
Ext2 fue el sistema de ficheros por defecto de
las distribuciones de linux Red Hat, Fedora
Core y Debian
Ext3 es un sistema de archivos con registro por
diario (journaling).
Ext4 El sistema de archivos ext4 es capaz de
trabajar con volúmenes de hasta 1 exbibyte y
ficheros de tamaño de hasta 16 TiB.
Extended File System fue el primer sistema de
archivos creado específicamente para el
Sistema Linux
 Sistemas De Archivos
Filesystem Visualizer es un explorador de
ficheros 3D usando OpenGL
Filesystem Hierarchy Standard fine los
directorios principales y sus contenidos en el
Sistema operativo GNU/Linux y otros
sistemas de la familia Unix.
FUSE (Linux) es un módulo cargable de núcleo
para sistemas operativos de computador tipo
Unix,
 Sistemas De Archivos
Journaled Filesystem es un sistema de archivos
de 64-bit con respaldo de transacciones
creado por IBM.
Logical Volume Manager LVM es una
implementación de un administrador de
volumenes logicos para el kernel Linux.
Reiser 4 es un sistemas de archivos para
ordenadores.
 Sistemas De Archivos
Reiser FS es un sistemas de archivos de
propósito general, diseñado e implementado
por un equipo de la empresa Namesys
Sysfs es un sistema de archivos virtual
XFS es un sistema de archivos de 64 bits con
journaling de alto rendimiento creado por SGI
 Sistemas De Archivos
Metadatos: garantiza la estructura interna de
datos, el orden de
la estructura y la
disponibilidad de los datos, el rendimiento del
sistema depende en gran medida de este
concepto.
Inodo: contienen la información respecto de un
fichero: nombre, tamaño, número de enlaces,
fecha hora de creado.
 Sistemas De Archivos
Journal: es una estructura interna de disco con
un tipo de protocolo en el que el driver del
sistema de archivos introduce los (meta)datos
del sistema de archivos que van a ser
modificados.
Journaling: reduce enormemente el tiempo de
elaboración de un sistema linux, ya que de
este modo el driver del sistema de archivos
no debe iniciar una búsqueda de los
metadatos modificados en todo el disco. En
vez de eso, basta con ver las entradas del
journal
 Kernel
Es un software que constituye la parte más
importante del sistema operativo
Se puede obtener descargándolo desde:
http://www.kernel.org
Instalacion Ubuntu
11.04
 INSTALACION
Paso 1: Bootear la pc desde el cd. Esperar que
se cargue.
Paso 2: Elegir su idioma preferido. En este caso
español
Paso 3: Asegurarse que se cumplen los 3
requerimientos. En realidad solo es necesario que
tengas suficiente espacio en el disco y tener la pc
enchufada. Estar conectado a internet no es
necesario pero es altamente recomendable. Asi
como instalar las 2 casillas que se presentan en
esta ventana.
 INSTALACION
 INSTALACION
Paso 4: Si tienen Windows en su pc Ubuntu lo
reconocera y les preguntara si quieren instalar
ubuntu junto con el. En realidad les
reconocerá también si tienen alguna otra
distribución de Linux. Podrán instalarlo junto
o simplemente borrar todo y tener solo
Ubuntu. O hacer el particionado manual.
 INSTALACION
 INSTALACION
Paso 5: Mientras el particionado ya ha
comenzado ahora vamos a continuar con el resto
de los pasos para instalar ubuntu. Lo siguiente es
elegir la posición geográfica para establecer la
hora. Hagan click en el mapa donde corresponda.
 INSTALACION
Paso 6: Ahora se elige la distribución del
teclado. Esto no es el idioma del sistema sino la
distribución que tienen las teclas de su teclado.
Por ej: los teclados de estados unidos no tienen ñ.
Como mi teclado es español elijo España
Entorno Gráfico
 Escritorio KDE
KDE es un proyecto de software libre para la
creación de un entorno de escritorio e
infraestructura de desarrollo para diversos
sistemas operativos como GNU/Linux, Mac
OS X, Windows, etc. De acuerdo con su
página web, «KDE es un entorno de escritorio
contemporáneo para estaciones de trabajo
Unix. KDE llena la necesidad de un escritorio
amigable para estaciones de trabajo Unix,
similar a los escritorios de Mac OS X o
Windows».4
 Escritorio KDE
Las aplicaciones KDE están traducidas a
aproximadamente 75 idiomas3 y están
construidas con los principios de facilidad de
uso y de accesibilidad moderna en mente. Las
aplicaciones de KDE 4 funcionan de forma
completamente nativa en GNU/Linux, BSD,
Solaris, Windows y Mac OS X.
La «K», originariamente, representaba la
palabra «Kool»,5 pero su significado fue
abandonado más tarde.
 Escritorio KDE
 Escritorio KDE
 Escritorio Gnome
GNOME es un entorno de escritorio e
infraestructura de desarrollo para sistemas
operativos Unix y derivados Unix como
GNU/Linux, BSD o Solaris; compuesto
enteramente de software libre.
 Escritorio Gnome
El proyecto fue iniciado por los mexicanos
Miguel de Icaza y Federico Mena y forma
parte oficial del proyecto GNU. Nació como
una alternativa a KDE bajo el nombre de
GNU Network Object Model Environment.
Actualmente además del español se encuentra
disponible en 166 idiomas.
 Escritorio Gnome
 Escritorio Gnome
Comandos Basicos
Linux
 Comandos Basicos
Comando
Descripcion
cat fich1 [...fichN] Concatena y muestra
un archivos
Ejemplo
cat
/etc/passwd
archivos
cat dict1
dict2 dict
Cd
Cambia de directorio
cd /tmp
ls
Lista el contenido del
directorio
s -l /usr/bin
pwd
Muestra la ruta del
directorio actual
Pwd
rm fich
Borra un fichero
rm foo.c
rm -r dir
Borra todo un directorio rm -rf prog_dir
rmdir dir
Borra un directorio
vacío
rmdir prog_dir
 Comandos Basicos
Comando
Descripcion
Ejemplo
find dir test acción Encuentra archivos.
find . -name
``.bak'' -print
grep [-cilnv] expr
archivos
Busca patrones en
archivos
grep mike
/etc/passwd
mkdir dir
Crea un directorio.
mkdir tmp
mv fich1 ...fichN
dir
Mueve un archivo(s) a un mv a.out
directorio
prog1
mv fich1 fich2
Renombra un archivo.
less / more fich(s)
Visualiza página a página more
un archivo.
muy_largo.c
less acepta comandos vi
mv .c prog_dir
less
muy_largo.c
 Comandos Basicos
at [-lr] hora [fecha]
Ejecuta un comando
mas tarde
at 6pm
Friday
miscript
cal [[mes] año]
Muestra un calendario
del mes/año
cal 1 2025
date [mmddhhmm]
[+form]
date [mmddhhmm]
[+form]
Muestra la hora y la fecha
date
echo string
Escribe mensaje en la
salida estándar
echo ``Hola
mundo''
kill [-señal] PID
Matar un proceso
kill 1234
man comando
Ayuda del comando
especificado
man gcc
 Comandos Basicos
passwd
Cambia la contraseña.
passwd
ps [axiu]
Muestra información
sobre los procesos
ps -ux
que se están ejecutando
en el sistema
ps -ef
Muestra información de
los usuarios conectados
al sistema
who
who / rwho
COMANDOS
BASICOS REDES
 Comandos Basicos Redes
ping: comprueba el estado de la conexión con
un equipo remoto. Básicamente envía un
paquete y espera un mensaje de respuesta, de
esta forma determina si “ve” o “no ve” un
equipo.
 Comandos Basicos Redes
$
ping
google.com
PING google.com (72.14.205.100) 56(84) bytes of data.
64 bytes from qb-in-f100.google.com (72.14.205.100):
icmp_seq=1
ttl=243
time=189
ms
64 bytes from qb-in-f100.google.com (72.14.205.100):
icmp_seq=2
ttl=243
time=189
ms
64 bytes from qb-in-f100.google.com (72.14.205.100):
Icmp_seq=3
ttl=243
time=192
ms
—
google.com
ping
statistics
—
3 packets transmitted, 3 received, 0% packet loss, time
1998ms
rtt min/avg/max/mdev = 189.896/190.702/192.259/1.101 ms
 Comandos Basicos Redes
traceroute (tracert): arma el camino que sigue
un paquete hasta llegar a su destino,
mencionando los routers por los que va
“saltando”. Arranca desde el router de tu ISP o
de tu red doméstica hasta llegar al equipo
remoto final.
$
traceroute
google.com
traceroute to google.com (74.125.45.100), 30
hops max, 40 byte packets
 Comandos Basicos Redes
netstat: muestra estadísticas de red.
ifconfig: muestra toda la información acerca
de la configuración de TCP/IP de tu
equipo, interfaces de red, IP, MAC
Address, gateway, DNS, etc. También
permite, por consola, setear los valores
para las mencionadas variables.
Administración
Básica
 Usuarios y Grupos
* La herramienta primaria para añadir usuarios
en linux es adduser:
# adduser nombre del usuario
* El comando userdel, eliminara un usuario
de /etc/passwd. Si se quiere también borrar
toda la información de su directorio
personal
se usara la opción -r:
# userdel -r nombre del usuario
 Usuarios y Grupos
* Para cambiar la contraseña del usuario Se utiliza
el comando passwd.
# passwd nombre del usuario
* Para añadir un nuevo grupo:
# addgroup nuevogrupo
* Para eliminar un grupo:
# groupdel nombre_de_grupo
 Usuarios y Grupos
 Usuarios y Grupos
* Para cambiar el grupo por defecto de un usuario:
# usermod -g grupo usuario
* Para añadir el usuario a otros grupos:
# usermod -G lista_de_grupos
 Atributos De Archivos
 Asignación de permisos
 Asignacion De Permisos
Cuando se crea un archivo o directorio, los
permisos de acceso asignados se establecen de
acuerdo al complemento del valor asignado por el
comando umask
umask 027
El complemento es 750
777
 Asignacion De Permisos
Si después de ejecutar este comando umask 027,
se crea un archivo, por ejemplo archivo1.txt, este
quedará con los siguientes permisos:
rwxr-x--- archivo1.txt
Naturalmente después de creado los archivos o
directorios, estos permisos se pueden ajustar con
el comando chmod
 Asignacion De Permisos
 APT
Advanced Packaging Tool (Herramienta
Avanzada de Empaquetado), abreviado APT,
es un sistema de geston de paquetes creado
por el proyecto Debian. APT simplifica en
gran medida la instalación y eliminación de
programas en los sistemas GNU/Linux.
 APT
Para instalar usando apt lo primero se hace una
búsqueda para saber como se llama el paquete
que queremos instalar entonces escribimos
apt-cache search PAQUETE
un ejemplo seria: apt-cache search adobe.
Entonces aparecerá el resultado de la búsqueda
veremos como se llama el paquete y para
instalar haremos un
apt-get install adobe
 APT
y cuando termine todo estará listo para usarlo.
Si luego queremos eliminarlo solo tenemos que
escribir lo siguiente
apt-get remove adobe
 Shells
Una Shell de Unix o también shell, es el término
usado epara referirse a un interprete de
contactos, el cual consiste en la interfaz de
usuario tradicional de los sistemas operativos
basados en unix y similares como GNU/
Linux.
 Shells Scripts
/etc/shells
Shell bash : Bourne Again, El mas usado en Linux
– Copyright (C) 1989 por Free Software Foundation,
Inc.
– Es un interpretador de ejecución de comandos, los
comandos, pueden ser leidos desde la entrada
estandar (standard input) o desde un archivo
– Cumple IEEE POSIX, shell y especificaciones de
herramientas (IEEE Working Group 1003.2)
Shell tcsh: la shell C mejorada
Shell Z:
Shell Public Domain Korn
 Redireccion Del Stream
Cada proceso en Unix sigue las tres siguientes
corrientes
estándar (standard streams)
* Entrada estándar: entrada de comando
* Salida estándar: salida de comando
* Error estándar: mensajes de error
ls -l > archivo.txt
* < archivo Toma un archivo como entrada
estándar
* > archivo Escribe la salida estándar a un
archivo
 Metacaracteres
Metacaracteres en nombre de archivo
* Algún string de cero o más caracteres
? Algún carácter solamente
[abc…] Algún carácter especificado, rangos
[!abc…] Algún carácter excepto los
especificados
~user Directorio principal del usuario
Si antepone un backslash (\) a un metacaracter,
el significado especial del metacaracter se
ignora.
 Shells Scripts
El aspecto más importante de los comandos
Unix, es que el lenguaje de comandos se hace
extensible
*
*
*
*
# Comentario
cmd & : Ejecuta cmd en background
cmd1; cmd2 : Ejecuta cmd1 seguido de cmd2
(cmd1: cmd2) : Ejecuta cmd1 seguido de
cmd2, tratándolos como un grupo de
comandos
 Shells Scripts
* cmd1 ‘cmd2’ : Usa la salida de cmd2 como
argumentos de cmd1
* cmd1 && cmd2: Ejecuta cmd2 si cmd1 tuvo
éxito (no falló)
* cmd1 || cmd2 : Se ejecuta cmd2 si falla cmd1
* cmd1 | cmd2 : Ejecuta cmd1, cmd2
recibiendo como entrada la salida de cmd1
* {cmd1 ; cmd2}: Ejecuta cmd1 seguido por
cmd2 en el ambiente actual
* (exp1 ? exp2 : exp3): Operador ternario (if
exp1, then exp2, else exp3)
 Variables De Entorno
x=y
x = ${y}
x = $y
x = ${y}es
x = $yes
x = ‘$y’
x = \$y
export x,y,z
export x=$y
Por defecto una variable de
ambiente únicamente hace parte del
ambiente local, para hacer una
variable de ambiente accesible a los
programas y procesos iniciados
desde el ambiente local, especifique
la variable como argumento para el
comando export.
 Estructuras De Control
Se pueden usar algunos comandos para alterar la
secuencia estándar de ejecución de los comandos en
un shell script.
if test-command
if test-command
then
commands
fi
then
commands
else
Commands
fi
 Estructuras De Control
case string
in
patter1)
commands
;;
patter2)
commands
;;
(etc.)
esac
while
test-command
do
commands
done
until
test-command
do
commands
done
for list
do
commands
done
for x in list
do
commands
done
 Estructuras De Control
El comando break puede ser usado en el cuerpo
de un while, until o for, cuando es ejecutado
inmediatamente termina el ciclo. De la misma
forma el comando continue, pero este termina la
iteración en curso del ciclo.
exit 0: termina la ejecución del shell script.
 Variables De Entorno
x=y
x = ${y}
x = $y
x = ${y}es
x = $yes
x = ‘$y’
x = \$y
export x,y,z
export x=$y
Por defecto una variable de
ambiente únicamente hace parte del
ambiente local, para hacer una
variable de ambiente accesible a los
programas y procesos iniciados
desde el ambiente local, especifique
la variable como argumento para el
comando export.
 Variables De Entorno
Administracion Del
Servidor Linux
 Configuracion De Red
Las versiones recientes de Linux, incluyen una
gran variedad de drivers para tarjetas de red
Ethernet. Los dispositivos Ethernet son eth0,
eth1, eth2, etc. A la primera tarjeta detectada por
el núcleo se le asigna eth0 y al resto se les
asigna secuencial mente en el orden en que sean
detectadas.Por defecto, en algunas distribuciones
el núcleo de Linux sólo intenta buscar una
tarjeta de red, porlo que tendrá que pasarle
algunos parámetros para forzar la detección de
las demás.
 Configuracion De Red
Una vez que tenga el nucleo conpilado para
reconocer su tarjeta Ethernet la configuracion de
la tarjeta se hace asi:
Edite el archivo: #/etc/network/interfaces
Y establezca los parametros de Ip y Netmask
 Configuracion De Red
Otra forma de configurar la red es asi:
root # ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
root # route add -net 192.168.0.0 netmask 255.255.255.0 eth0
Inicializacion del servicio de red
/etc/init.d/network (start/stop/restart)
Ifconfig eth0 down desactiva la tarjeta de red
 Configuracion De Red
Configuracion de la interfaz loopback
root# ifconfig lo 127.0.0.1
root# route add -host 127.0.0.1 lo
root# route -n imprime la tabla de rutas del PC
root# netstat -r imprime la tabla de rutas del PC
 Configuracion De Red
/etc/services puertos según RFC-1340.
Es una base de datos que asocia un nombre con
un puerto de servicio de la máquina. Es un
archivo de texto en el que cada línea representa
una entrada a la base de datos. Cada entrada
comprende tres camposseparados por cualquier
número de espacios en blanco (espacio o
tabulador). Los campos son:
nombre puerto/protocolo sobrenombres # comentario
 Configuracion De Red
# Updated from RFC 1340, «Assigned Numbers»
(July 1992). Not all
# ports are included, only the more common ones.
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
…
 Configuracion De Red
/etc/protocols números según RFC-1340.
Es una base de datos que correlaciona números de
identificación de protocolos con sus nombres.
Lo usan los programadores para especificar
protocolos por su nombreen sus programas y
también algunos programas. Los campos son:
* Nombre del protocolo número sobrenombres
 Configuracion De Red
# Updated for NetBSD based on RFC 1340, Assigned
Numbers (July 1992).
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # Internet Group Management
ggp 3 GGP # gateway-gateway protocol
ipencap 4 IP-ENCAP # IP encapsulated in IP
(officially «IP»)
st 5 ST # ST datagram mode
tcp 6 TCP # transmission control protocol
…
 Configuracion De Red
/etc/networks
El archivo /etc/networks tiene una función similar
a la del archivo /etc/hosts. Proporciona una base
de datos sencilla de nombres de
red y direcciones de red. Su formato difiere en
quesólo puede haber dos campos por línea y los
campos están codificados así:
 Configuracion De Red
Nombre de la red dirección de red
loopnet
127.0.0.0
localnet
192.168.0.0
amprnet
44.0.0.0
…
/etc/hosts
En el archivo /etc/hosts, colocamos los nombres y
direcciones IP de las máquinas locales. Si se
inserta un nombre en este fichero, entonces su
PC no consultará a un servidor de dominio
paraobtener la dirección IP.
 Configuracion De Red
La desventaja de emplear este archivo es que hay
necesidad de hacerle mantenimiento (actualizarlo)
cada vez que alguna dirección de alguna máquina
cambie. En un sistema bien administrado, las
únicas entradas que suelen aparecer son la
interfaz de loopback(prueba en bucle) y el
nombre de la máquina local.
# /etc/hosts
127.0.0.1 localhost loopback
192.168.0.1 servidor1.local servidor1
 Configuracion De Red
 Servidor DHCP
Dynamic Host Configuration Protocol -Protocolo
de configuración dinámica de host,
es
un protocolo de red que permite a los clientes de
una
red IP obtener
sus
parámetros
de
configuración automáticamente. Se trata de un
protocolo de tipo cliente/servidor en el que
generalmente un servidor posee una lista de
direcciones IP dinámicas y las va asignando a los
clientes conforme éstas van estando libres.
 Servidor DHCP
* Instalamos servidor DHCP :
apt-get install dhcp3-server
* Abrimos archivo dhcp.conf y configuramos el
servidor DCHP, revisamos la interfaz que se
encuentra conectada y cual es, si es eth1 cambios
de la siguiente manera:
#interface
 Servidor DHCP
* Cambiar a :
interface=eth1
* Ahora activamos servidor DHCP :
#range=192.168.0.50 192.168.0.150
* Y modificándola para adaptarla al rango de IP
que queramos servir:
range 172.10.0.10 172.10.0.40;
* Y dejando el archivo dhcp.conf de la siguiente
forma:
 Servidor DHCP
ddns-update-style none;
ddns-updates off;
allow unknown-clients;
subnet 172.10.0.0 netmask 255.255.255.0 {
range 172.10.0.10 172.10.0.40;
option broadcast-address 172.10.0.255;
option domain-name "maquina1.minombre.com";
option domain-name-servers 200.21.200.2, 200.21.200.79;
option routers 172.10.0.1;
option broadcast-address 172.10.0.255;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
interfaces=eth0; }
 Servidor DHCP
* Reiniciamos servidor DHCP Dhcp3-server :
/etc/init.d/dhcp3 restart
 Servidor DHCP
 NFS
Network File System
Provee acceso remoto transparente sobre archivos
compartidos a través de la red
* Designado para ser portable a través de
diferentes máquinas, sistemas operativos,
arquitecturas de red, yprotocolos de transporte.
* Remote Procedure Call (RPC): es usado para
implementar el protocolo NFS.
 NFS
Se han especificado dos protocolos separados
para NFS:
* Network Lock Manager (NLM) Protocol: provee
anuncios y bloqueo sobre archivos grabados
(modificados)
* Network Status Monitor (NSM) Protocol: provee
aplicaciones coninformación de status de los host de
la red. Versión 2 (V2) y Versión 3 (V3)
*Implementaciones:
*NFS Server en el espacio del usuario
*NFS Server en el espacio del kernel
 NFS
Se han especificado dos protocolos separados
para NFS:
* Network Lock Manager (NLM) Protocol: provee
anuncios y bloqueo sobre archivos grabados
(modificados)
* Network Status Monitor (NSM) Protocol: provee
aplicaciones coninformación de status de los host de
la red. Versión 2 (V2) y Versión 3 (V3)
*Implementaciones:
*NFS Server en el espacio del usuario
*NFS Server en el espacio del kernel
 NFS
NFS Server en el espacio del Usuario
Usa llamadas RPC en el espacio del usuario con
las siguientes características:
* La jerarquía del directorio exportada por el
montaje del servidor NFS del espacio del usuario
señala dentro de un sistema de archivos exportado
transparencia; así el cliente ve la misma jerarquía
del directorio que se ve en el servidor.
 NFS
Puesto que el servidor está funcionando en el
espacio del usuario, es fácil hacer el uid y el gid
tras así como el acceso DNS, NIS, NIS+, etc.
Este servidor tiene algunas desventajas: Puesto
que está funcionando en el espacio del usuario,
tiene que hacer la copia adicional de la memoria
entre el usuario y los espacios del kernel
 NFS
También hay gastos indirectos para el interruptor
del contexto. Pueden ser muy costosos. No hay
ayudas para NLM ni NSM. Bloqueos de registro
de archivos no están disponibles.
* La puesta en práctica actual no es multihilo que
afecta su funcionamiento. Puesto que el control
de la exportación se inicializa en el tiempo de
lanzamiento, el proceso delservidor tiene que ser
recomenzado cuando se cambia elarchivo
/etc/exports.
 NFS
NFS Server en el espacio del Kernel
Descriptor de archivo
* Las definiciones de archivo y su descriptor
especificadas en el protocolo NFS V2 son
vagas. La especificación V2 dice solamente que
un descriptor de archivo es oculto al cliente y que
puede contener cualquier información necesaria
del servidor para distinguir un archivo
individual.
 NFS
Sin embargo, hay muchas ambigüedades: ¿Si 2
descriptores del archivo del mismo servidor son
idénticas, pueden los clientes asumirlos para
representar el mismo archivo en el servidor? ¿Si 2
descriptores del archivo del mismo servidor
son diferentes, pueden los clientes asumirlos para
representar los diversos archivos en el servidor?
¿Se deben todos los enlaces duros representar por
el misma descriptor de archivo?
 NFS
¿Cuándo un cliente renombra un archivo dentro
del mismo sistema de archivos, debe contar con el
descriptor de archivo anterior a los cambios? La
especificación V2 no es clara en esto
y diversas puestas en práctica de NFS los
interpretan diferentemente. Eso conduce a los
problemas de la interoperabilidad entre diversas
puestas en práctica NFS.
 NFS
* Compartir /usr/local y /home
*Archivo: /etc/exports
/home (rw,root_squash) titanium(rw,no_root_squash)
/usr/local (ro,root_squash) titanium(rw,no_root_squash)
/opt *.dejanews.com(ro) admin(rw,no_root_squash)
/opt/private (noaccess)
/vol/00 192.168.50.0/255.255.255.0(ro) 10.16.0.0/255.255.0.0(rw)
Demonio: nfsd
*/etc/rc.d/init.d/nfsd start
* /etc/rc.d/init.d/nfsd stopt
* /etc/rc.d/init.d/nfsd restart
 NFS
Programar el demonio en los niveles de
ejecución:
* chkconfig nfsd on, chkconfig –level 345 nfsd on|off
* Editor de Niveles SysV
Seguridad
Configurar un nivel de seguridad para portmap.
Esto se consigue editando los archivos
/etc/hosts.allow y /etc/hosts.deny.
 NFS
Debemos especificar que direcciones IP o rango
de direcciones IP pueden acceder a los servicios
de portmap y que no pueden hacerlo. Ejemplo
para determinar en /etc/hosts.allow como rango
dedirecciones IP permitidas los siguiente:
portmap:192.168.5.0/255.255.255.0
portmap:192.168.10.25
portmap:192.168.40.8
portmap:210.180.51.17
portmap:108.202.14.23
portmap:ALL
 NFS
/etc/hosts.deny lo siguiente:
portmap:ALL
Verificar si hay soporte NFS en el Kernel
Archivo: /proc/filesystems encontrando una
entrada para NFS
Verificando la existencia del módulo nfs.o en el
directorio módulos del Kernel
Modificar el archivo:
/etc/fstab para incluir la información sobre el
sistema de archivos a
montar
 NFS
Modificar el archivo:
/etc/fstab para incluir la información sobre el
sistema de archivos a montar
quicksilver:/home /home nfs bg,hard,intr,nosuid,rw,no_root_squash 1 0
quicksilver:/usr/local / usr/local nfs bg,hard,intr,rw,no_root_squash
10
*Crear los puntos de montaje adecuados y montar
el sistema de archivos /
#showmount –e quicksilver
 NFS
 Servidor Web Apache
rpm –q apache
rpm –i apache-1.3.6-7.i386.rpm
apache- 1.3.6HTTP: Hypertext Transfer Protocol
Demonio: httpd (Puerto TCP:80)
/etc/rc.d/init.d/httpd start
/etc/rc.d/init.d/httpd stopt
/etc/rc.d/init.d/httpd restart
 Servidor Web Apache
Archivo de configuración:
/etc/httpd/conf/httpd.conf
Documento predeterminado: index.html
Programar el demonio en los niveles de
ejecución:
chkconfig httpd on, chkconfig –level 345 httpd
on|off
Editor de Niveles SysV
 Servidor Web Apache
NameVirtualHost 192.168.5.20
# VirtualHost example:
<VirtualHost 192.168.5.20>
ServerAdmin [email protected]
DocumentRoot /var/www/html
ServerName www.dominio1.com.co
ErrorLog logs/www.dominio1.com.co-error_log
logs/www.dominio1.com.coCustomLog logs/www.dominio1.com.co-access_log common
logs/www.dominio1.com.coScriptAlias /cgi-bin/ "/var/www/cgi-bin/“
/cgi"/var/www/cgi-bin/“
<Directory "/var/www/cgi-bin">
"/var/www/cgiAllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
AddHandler cgi-script .cgi
 Servidor Web Apache
<VirtualHost 192.168.5.20>
ServerAdmin [email protected]
DocumentRoot /var/www-sitio2/html
/var/wwwServerName www.dominio2.com.co
ErrorLog logs/www.dominio2.com.co-error_log
logs/www.dominio2.com.coCustomLog logs/www.dominio2.com.co-access_log common
logs/www.dominio2.com.co</VirtualHost>
Notese que quedan dos web sites en la misma
maquina y con la misma IP
 Servidor Web Apache
/var/www/html/robots.txt
User-agent: *
Disallow: /cgi-bin/
Disallow: /email-addresses/
Disallow: /manual/
Disallow: /mrtg/
Disallow: /images/
Disallow: /usage/
Disallow: /webmail/
Disallow: /horde/
Disallow: /php/
Disallow: /chat/
User-agent: WebZIP
Disallow: /
User-agent: WebStripper
Disallow: /
User-agent: Teleport Pro
Disallow: /
User-agent: Wget
Disallow: /
User-agent: eCatch
Disallow: /
User-agent: WebCopier
Disallow: /
 Resolucion De Nombres
El sistema de resolución de nombres es una parte
de la biblioteca estándar de Linux.
Su función principal es proporcionar un servicio
para convertirlos nombres de las máquinas tales
como www.nic.co adirecciones IP como
157.253.50.16.
 Resolucion De Nombres
Es necesario saber a qué dominio pertenecen sus
máquinas.
El software de resolución de nombres
proporciona el servicio de traducción haciendo
consultas a un Servidor de Nombres de
Dominio (Domain Name Server), por lo que
deberá saber la dirección IP del servidor de
nombres (nameserver) local que vaya a usar
 Resolucion De Nombres
Nombre de dominio local
domain maths.wu.edu.au
Dominios alternativos para completar el nombre
de una máquina
search maths.wu.edu.au wu.edu.au
Direcciones IP de Servidores DNS para
hacerles consultas de nombres
nameserver 192.168.10.1
nameserver 192.168.12.1
 Resolucion De Nombres
El archivo /etc/host.conf es el lugar donde se
configuran algunos elementos que gobiernan el
comportamiento del código de resolución de
nombres.
/etc/host.conf
order hosts,bind
multi on
 Resolucion De Nombres
Esta configuración le dice al resolutor de nombres
examine el archivo /etc/hosts antes de intentar
consultar a unservidor de nombres, y que
devuelva todas las direcciones válidas de una
máquina que encuentre en el archivo /etc/hosts,
en lugar de sólo el primero, si no se encuentra en
este archivoel nombre de la máquina a resolver, la
consulta se envía comosegunda alternativa al(los)
servidor(es) de nombres DNS conocido(s), en el
archivo /etc/resolv.conf
 Servidor DNS
Domain Name Service
Demonio: named (puerto tcp:53)
Solo cacheo (caching only nameserver)
Un servidor de nombres de ``sólo cacheo''
(caching only nameserver) obtendrá la respuesta
a las solicitudes de nombre provenientes de su
red preguntando a servidores externos,
recordando la respuesta para la próxima vez que
lo necesite.
 Servidor DNS
*Instalamos el paquete bind
apt-get install bind9
*Verificamos que realice consultas
(verificar que sea consultado el 127.0.0.1):
# nslookup
> www.google.com.co
Server:
127.0.0.1
Address:
127.0.0.1#53
con
 Servidor DNS
Non-authoritative answer:
www.google.com.co
canonical name = www.google.com.
www.google.com
canonical name = www.l.google.com.
Name: www.l.google.com
Address: 74.125.229.84
Name: www.l.google.com
Address: 74.125.229.80
Name: www.l.google.com
Address: 74.125.229.81
Name: www.l.google.com
Address: 74.125.229.82
Name: www.l.google.com
Address: 74.125.229.83
 Servidor DNS
*Configuramos el nombre de dominio para
crear dns primario, ejemplo minombre.com:
nombre de archivo minombre.com dentro
de /etc/bind
 Servidor DNS
Quedando de la siguiente forma:
$TTL 86400
@ IN SOA ns1.minombre.com. root.minombre.com. (
2011062701 ; serial
10800 ; refresh
3600 ; retry
86400 ; expire
3600) ; default
IN NS ns1.minombre.com.
IN MX 10 mail.minombre.com.
IN A 190.143.194.15
ns1 IN A 190.143.194.15
wwwIN A 190.143.194.15
mail IN A 190.143.194.15
 Servidor DNS
* Modificamos el archivo named.conf.local
dentro de /etc/bind como se muestra a
continuación y agregamos:
zone "culturared.org" {
type master;
file "/etc/bind/culturared.org";
allow-query {any;};
#Permitimos consultas a cualquier host.
};
 Servidor DNS
* Reiniciamos servidor DNS Bind como sigue y
verificamos con dig :
/etc/init.d/bind9 restart
dig minombre.com
 Servidor DNS
 Servidor FTP
FTP: File Transfer Protocol
Paquetes: wu-ftp, vsftpd (Very Secure FTP
Daemon)
Demonio: wu-ftpd, vsftpd: Puerto TCP:21
FTP anónimo:
rpm –Uvh wu-ftp-2.8-1.i386.rpm
Archivo de configuración:
etc/wu-ftpd.conf /etc/vsftpd.conf
Directorio publicación:
/home/ftp/ /var/ftp/pub/ /srv/ftp/
Usuario: anonymous
Password: [email protected]
 Servidor FTP
 Correo Electronico
* MUA: Mail User Agent
Mozilla Mail, Mutt, Pine, and Evolution
*MDA: Mail Delivery Agent
* LDA: Local Delivery Agent
*SMTP: Simple Mail Transfer Protocol
*Puerto TCP:25
#rpm –q imap
#rpm –Uvh imap-2001.rpm
*POP3: Post Office Protocol
Puerto TCP:110
IMAP: Interactive Mail Access Protocol
Puerto TCP:143
 Correo Electronico
 Correo Electronico
 Correo Electronico
 Correo Electronico
 Correo Electronico
 Correo Electronico
 Xinetd
* Controla accesos a los servicios de Internet
* Reemplaza con seguridad a inetd
* El demonio xinetd conserva los recursos del
sistema
* Ofrece control de acceso y loggin, usado para
iniciarservidores de propósito particular, ofrecer o
negar acceso a determinados hosts
 Xinetd
xinetd corre constatemente y escucha sobre todos
los puertos que este servicio administra, cuando
una conexión requiere de un servicio
administrado por xinetd, este se encarga
apropiadamente de iniciarlo
Archivo de configuración:
/etc/xinetd.conf
serviceconf, ntsysv, chkconfig
 Open SSH
* Acceso remoto hacia sistemas
* Utiliza un tunel seguro para la transmisión de
los datos
* Es free y Open Source, reemplaza a telnet, ftp,
rlogin, rsh, rcp y rdist
* Usa como llaves por defecto RSA (RivestShamir-Adelman): sistema criptográfico de
claves/públicas yclaves/privadas
 Open SSH
Servidor sshd escucha el puerto TCP:22
Archivo de Configuración:
/etc/ssh/sshd_config
Paquete: openssh-server.rpm
Archivo de Configuración: /etc/ssh/sshd_config
ListenAddress 192.168.1.254 # Ip del servidor
PermitRootLogin no # permite login de root
X11Forwarding yes # ejec. aplicaciones gráficas
 Open SSH
Reiniciar el Servicio:
/etc/init.d/sshd {start | stop | restart}
Configurarlo en los niveles de ejecución:
/sbin/chkconfig --level 345 sshd {off | on}
Acceso por shell:
ssh usuario@servidor
Acceso por SFTP:
sftp usuario@servidor
 Open SSH
* Paquete: openssh-server-deb
* Programas
make-ssh-known-hosts: busca todos los host en
un dominio DNS y crea una base de datos
scp: Secure Copy de Secure Shell, copiar
archivos de un host a otro de forma segura
ssh: cliente de secure shell (similar a telnet)
ssh-add: agrega identidades (registra nuevas
clases)
 Open SSH
ssh-agent: realiza autenticacion RSA en redes
sshd: servidor
ssh-keygen: generador de claves RSA
Emulador de Terminal
-SSH-cliente para windows
 Open SSH
 Servidor Proxy Squid
Modem ś (*Externo, Interno), líneas Tel., NIC ś
Routers y Servidores de Acceso
Seguridad y control de acceso a Internet
PPP: Point to Point
Protocol
Servidor PROXY
Cliente PROXY
Intranet, Extranet
 Servidor Proxy Squid
Se requiere:
* squid-2.4.STABLE1
*iptables-1.2.4
*kernel-2.4.9
Archivos De Configuracion
/etc/squid/squid.conf
Parametros
http_port
cache_mem
 Servidor Proxy Squid
ftp_user
ftp_passive on
cache_dir
Al menos una Lista de Control de Acceso
Al menos una Regla de Control de Acceso
cache_mgr
httpd_accel_host
httpd_accel_port
httpd_accel_with_proxy
 Servidor Proxy Squid
# Default: http_port 3128
http_port 3128
http_port 8080
# Con Server Ram = 128 Mb
cache_mem 16 MB
# 500 Mb 16 subdirectorios con 256 niveles cada
uno
cache_dir ufs /var/spool/squid 500 16 256
ftp_user [email protected]
 Servidor Proxy Squid
ftp_passive on
acl red-local src 192.168.5.0/255.255.255.0
acl permitidos "/etc/squid/permitidos"
# iNSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
http_access deny all
cache_mgr [email protected]
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
 Servidor Proxy Squid
auth_param basic children 5
auth_param basic realm Servidor Proxy-Cache
Squid
auth_param basic credentialsttl 2 hours
# anteriores ya están descomentadas.
está
auth_param
basic
program
/usr/lib/squid/ncsa_auth
/etc/squid/squidpasswords
 Servidor Proxy Squid
LISTAS Y REGLAS DE ACCESO
Para generar el fichero de contraseñas
correspondiente, se debe utilizar el siguiente
comando:
htpasswd
-c
nombre_usuario
/etc/squid/squidpasswords
 Servidor Proxy Squid
Para modificar las contraseñas del fichero de
contraseñas, se debe utilizar el
siguiente comando:
htpasswd
/etc/squid/squidpasswords
nombre_usuario
El fichero /etc/squid/squidpasswords debe ser
leíble para el usuario squid:
chown squid:squid /etc/squid/squidpasswords
 Servidor Proxy Squid
# Lista que define método de autenticación:
acl password proxy_auth REQUIRED
# Listas de control de acceso por defecto:
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
# Listas que definen conjuntos de maquinas
acl redlocal src "/etc/squid/redlocal“
acl privilegiados src "/etc/squid/privilegiados“
acl restringidos src "/etc/squid/restringidos“
acl administrador src 192.168.1.254
 Servidor Proxy Squid
# Listas con palabras restringidas contenidas
en un URL
acl porno url_regex "/etc/squid/porno“
# Contenido:
Sex
Extasis
xxx
Drug
Porn
Hustler
Girl
nude
Celebrit
 Servidor Proxy Squid
# Lista de sitios inocentes que accidentalmente
sean bloqueados
acl noporno url_regex "/etc/squid/noporno“
# Contenido:
missingheart
wirelessexcite
msexchange
msexcel
freetown
 Servidor Proxy Squid
# Listas que definen tipos de extensiones
prohibidas
acl multimedia urlpath_regex
"/etc/squid/multimedia“
# Contenido:
\.mp3$
\.pif$
\.sys$
\.avi$
\.lnk$
\.mov$
\.exe$
\.bat$
 Servidor Proxy Squid
# Define una lista moderada de extensiones
prohibidas
acl peligrosos urlpath_regex
"/etc/squid/peligrosos“
# Contenido:
\.bat$
\.pif$
\.exe$
 Servidor Proxy Squid
# Reglas de control de acceso
# Regla por defecto:
http_access allow localhost
# Ejemplos de reglas de control de acceso
http_access allow restringidos password !
porno !multimedia
http_access allow redlocal password !porno !
peligrosos
http_access allow privilegiados password
 Servidor Proxy Squid
INTEGRACION
WINDOWS Y LINUX
 Servidor Samba
Samba es
una
implementación
libre
del protocolo de
archivos
compartidos
de Microsoft
Windows (antiguamente
llamado SMB, renombrado recientemente a
CIFS) para sistemas de tipo UNIX. De esta
forma,
es
posible
que
ordenadores
con GNU/Linux, Mac OS X o Unix en general
se vean como servidores o actúen como
clientes en redes de Windows.
 Servidor Samba
* Instalamos samba
apt-get install samba samba-client smbfs
smbclient
* Instalamos configuracion grafica
apt-get install system-config-samba
* Editamos la configuracion de samba en el
archivo
nano smb.conf
 Servidor Samba
*Modificamos el grupo de trabajo, buscamos la
linea que diga:
smbclientworkgroup = (reemplazamos
por
le nombre de nuestro grupo de
trabajo)
*Para compartir una carpeta:
Creamos carpeta con permisos ejemplo:
mkdir /home/compartidos
chmod 755 /home/compartidos
 Servidor Samba
Abrimos configuracion y al final agregamos
[publico]
comment = Archivos Compartidos
path = /home/compartidos
public = yes
writable = no
Las opciones “public = yes” es para que pueda
acceder a la carpeta cualquier usuario y “writable
= yes”es para que no se pueda escribir.
 Servidor Samba
*Compartir una unidad de cdrom
Abrimos el archivo smb.conf y agregamos al final
[cdrom]
comment = Unidad de cdrom compartida
path = /cdrom
public = yes
writable = no
browseable = yes
 Servidor Samba
Agregamos las siguientes lineas a /etc/fstab para
que se pueda montar la unidad de cd
/dev/sr0
/cdrom
defaults,noauto,ro,user 0 0
iso9660
Para montar y desmontar unidad de cdrom
Montar unidad de cd “mount /cdrom”
Desmontar unidad de cd “umount /cdrom”
 Servidor Samba
*Administración
Agregar usuario
smbpasswd -a nombre_de_usuario
(Si desea usuario sin contraseña solo dar enter)
Cambiar contraseña de usuario
useradd -s /sbin/nologin usuario-windows
(Si desea usuario sin contraseña solo dar
enter).
 Servidor Samba
*Reiniciar samba
/etc/init.d/smbd restart ó
restart smbd
*Acceso a los recursos compartidos
Windows
\\192.168.10.246\compartidos
 Servidor Samba
Linux
smb://192.168.10.246/compartidos/ ó
smbclient //192.168.10.246/compartidos/
*Reiniciar samba
/etc/init.d/smbd restart ó
restart smbd
 Servidor Samba
* Compartir impresora con Windows
Hay que instalar CUPS, asi que instalamos cups
apt-get install cups
Luego en la terminal escribimos
/etc/init.d/cupsys restart
 Servidor Samba
* Luego se puede entrar en la direccion
http://localhost:631 pagina de administracion de
CUPS
* En Windows se da añadir impresora, se
selecciona impresora de red, en el cuadro se
escribe
http:/
(ip_del_servidor_de_la_impresora):631/printe
rs/(Nombre_de_la_impresora)
 Servidor Samba
 Wine
 Wine
 Wine
 Wine
 Wine
 Wine
 Wine
Descargar