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