Se presenta un currículo, constituido por modulos, que tiene como objetivo ser útil en la (auto) formación de sus estudiantes en la cultura, valores, filosofía, ética, principios, técnicas, prácticas, ideas y conocimientos en general, desarrollados por la comunidad del software libre en estas últimas décadas y que se consideran necesarios para la efectiva inclusión, participación y colaboración en la construcción de la misma.
El currículo se encuentra estructurado en módulos (una clase) que pueden ser usados para construir cursos, los que pueden organizarse en diferentes planes de estudio. Se presenta un conjunto posible de cursos. Cada curso puede tener módulos optativos, sea para dar contenidos diversos o de nivel especial.
Esta previsto que cada módulo pueda dictarse en un tiempo entre 30 y 45 minutos, mas un tiempo de práctica asistida, práctica a solas y evaluación.
Cada módulo se describe mediante párrafos, que tienen conjuntos de sentencias. Cada sentencia, párrafo o módulo puede tener supropia bibliografía.
Cada módulo tiene un código e indica de que otros modulos es correlativo. Lista los comandos, programas o archivos especiales involucrados. Indica actividades especiales y contiene notas.
Se puede variar el dictado de cada modulo para hacer cursos acelerados o para profundizar en algunos de sus aspectos. También puede darse todas las alternativas para cada función o solo algunas.
Cada modulo contiene temas que se disponen cada uno en un párafo en la presente. Algunos parrafos pueden ser opcionales, otros pueden contener diversas alternativas que no es necesario cubrirlas todas. Otros parrafos pueden ser dados solo en cursos especiales en los casos en que se aspira a profundizar la formación. Estas situaciones se indican con diferentes leyendas.
Todo el contenido se basa en los conceptos teóricos que lo sustentan y en la capacidad práctica y efectiva de instrumentarlos. Se hace énfasis en la relación causa - efecto y en el análisis de las razones de los hechos. La correcta e inteligente aplicación de los fundamentos a las necesidades prácticas es sin duda uno de los fuertes de la cultura UNIX. No se trata de adquirir conocimientos especiales o esotéricos mediante recetas, sino aplicar la lógica y la experiencia al conocimiento de los fundamentos y la filosofía subyacente.
Una de las características de los sistemas libres es que exponen todo su funcionamiento a la vista, por lo que cada suceso puede ser rastreado a sus consecuencias. Esto hace que un mayor conocimiento permita mejorar considerablemente la calidad de su utilización.
El cumplimiento de los estándares POSIX es lo que da a los diferentes UNIX y GNU/Linux existentes una gran unicidad en su inherente diversidad. Este currículo no hace distinción entre distribuciones.
Para trasmitir los conocimientos que hacen del software libre una comunidad vibrante y del GNU/Linux un sistema potente:
Listado, códigos, y correlatividades de los módulos.
El número corresponde al curso propuesto para incluirlos, cuando tiene un valor luego del punto, este es un módulo optativo para el curso en cuestión.
/usr/doc/.TeX/listcur
Computadoras: software y hardware. El modelo de Von Neumman y el concepto de programa almacenado. Procesador, memoria, conceptos de datos y direcciones. Dispositivos de entrada y salida. Controlador de interrupciones. Almacenamiento (persistencia), el archivo.
Unix, sus principios de diseño [Raymond:AUP-03]. Historia del Unix [Criado:CIG-00,Bolsky:USH-82]. Sistemas multiusuario, multitareas, seguridad.
Definición de Software Libre [Saravia:SLA-03,FSF:DSL,OSI:OSD] e historia [FSF:HPG]. Comunidades y prácticas del Software Libre, Internet. Derechos Humanos [Hipatia:SM-04], ética, libertad y sustentabilidad del conocimiento [FSF:FPG]. Software libre y copyright: la informática antes, durante y después. La libertad del conocimiento [Saravia:MH-01,Hipatia:SW,Saravia:OLC-05]. Riesgos, tres estrategias contra el movimiento: patentes de software, penalización: DMCA, y automatización del control: TCGA [Saravia:DDS-03].
Proyecto GNU [FSF:MG-85,FSF:SW]. Copyleft [FSF:QC-98]. GPL [Stallman:GPL].
El núcleo Linux [LinuxK:SW,LinuxO:SW,LinuxC:SW], sus orígenes e historia [Criado:CIG-00]. Linux y BSD. Versiones y distribuciones GNU/Linux. El impacto de GNU/Linux.
Actividad:Ver película de Extremadura relativa a Linex.
Presentación del sistema funcionando [Pentima:IUG-00]. Guía para la supervivencia [Belkin:MCN-05]. Usuarios y claves. Sesiones e ingreso al sistema, consolas virtuales, de texto y gráficas. Sesiones gráficas: KDE [KDEDocTeam:KUG-04], Gnome, otras, sesiones gráficas múltiples.
Menús e Interfaces gráficas de usuario (GUI) de texto y gráficas. Comandos y su ejecución en terminales (ls, less, mc) y entórnos gráficos. Atajos (shortcuts) típicos: CTRL ALT ESC, CTRL ALT DEL, ALT + -, CTRL + -.
Conceptos elementales de archivo y de directorio. Navegadores de archivos gráficos en KDE, Gnome y otros.
La Web, idea. Concepto elemental de url y página web. Navegar en la Web con los navegadores de archivos. Subir archivos a sitios ftp.
Soporte, ayuda y cooperación: Man, Info, -help, whatis, usage. Libros, manuales, tutoriales, manuales de las distribuciones, howtos, FAQs, /usr/share/doc.
Web. Google. LDP. Grupos de Usuarios. Herramientas y prácticas colaborativas en Internet: Wiki, Email, Documentos Web, IRC, Mensajería/Jabber, Listas/Foros, noticias (news), BBS, Blogs. Repositorios: CVS, subversion.
Bibliografía Gral:[Bartsh:SMU]
Nota:se dicta sin requerir los conocimientos del módulo 14.3.14.
Listando contenidos de directorios. ¿Que es un directorio? Nombres de directorios y archivos. Caminos absolutos y relativos. Exploración, conceptos y árbol jerárquico estándar de directorios. Metacaractes simples.
Directorios importantes y razones: /usr, bin/sbin, lib/include, /home, /var /etc, etc.; local/remoto, para superusuario/usuario común, etc.. Contenido más avanzado.
Consola básica. Directorio de trabajo actual, cambiando directorios: cd, pwd. Copiando, moviendo, renombrando, creando y borrando archivos y directorios: cp, mv, rm. Contenido más avanzado.
Editores: pico, nano, e3, emacs, vi. Abrir, cerrar, escribir y abandonar archivos. Contenido más avanzado.
Cat, grep, y sed. Programación elemental con bash, at y crontab. Contenido más avanzado.
OpenOffice (ooo), KOffice, Abiword, Gnumeric. Características generales del ooo. Writer y Calc. Gráficas y sonidos Impresión. Ortografía. Auto-completar y formato automático. Plantillas. Piloto automático en calc. Impress.
Formato Oasis, zip y xml. Intercambio, importación y exportación a otros formatos:.doc, pdf.
Gimp, Día, OpenOffice Draw. Se puede o no dar.
GPG. Concepto de encriptación. Claves públicas y privadas. Concepto de confianza. Uso en clientes de correo. Contenido más avanzado.
Firefox, Nvu, Quanta, OpenOffice. Generar y mirar pdf.
Comparación entre formatos .odt, .doc, .html y .pdf.
Música: Juk. Se puede o no dar.
Instalación de GNU/Linux con HGA. Particionamiento. Instalación de sistemas de booteo. Copia de núcleo e Imagen. Partición raiz y árbol de directorios. El concepto de paquete. Instalación y configuración de paquetes básicos.
Instalación con sistema de paquetes: rpm, deb, tgz. Actualización diaria y mantenimiento en línea.
Presentación del HGA para la configuración elemental.
Montando sistemas de archivos: mount, supermount, fstab. Sistema X/Xorg, configuración por HGA. Inicio del X desde consola. Usuarios, claves y permisos de archivos a nivel elemental.
Instalación desde las fuentes con configure y make: mplayer.
Sonido. Escaneo, ocr, sane. Impresoras: detección, configuración, cups, foomatic (web). Teclados. Ratones. Cámaras de video y fotos. Dispositivos USB, placas PCMCIA.
Internet, Protocolo IP, número o dirección IP. Dns. Configuración interfaz con HGA. Ruteo, y su configuración. Hora: ntpd. Redes Ethernet, teléfono, modems, ADSL, wifi. Proxy.
Clientes web: Firefox, Konqueror, navegadores (browsers) para consola: w3c, lynx, links. Configuración del Firefox, privacidad y seguridad, plug-ins.
Fish, sftp con Konqueror, Nautilus, mc.
Correo, configuración del cliente de correo, Evolution, Kmail, Thunderbird.
Mensajería IRC e IM: gaim, kopete, irc,
Pasos para la migración individual de PCs y de cerebros. Formateando cerebros. Software libre para Windows.
Acceso remoto, bajando, transfiriendo e intercambiando archivos: scp, ftp, gFTP, NcFTP, lftp, wget, rsync, p2p, bit torrent. Se puede optar por uno o varios de los sistemas alternativos.
Nota:se facilita el dictado si se vio previamente el módulo 14.3.7.
Ssh, telnet y servicios ``r''. X en red, clientes Xorg, variable DISPLAY, ssh -X. Cliente nis, ldap. Montar y desmontar sistemas remotos con NFS y Samba, smbclient. Configuración básica del samba, /etc/exports.
Bibliografía Gral:[Peek:UPT-93,Stonebank:UTB-01].
Uso del Apache. Instalación y configuración elemental. Colocando páginas Web con konqueror y similares a sitios ftp. Compactar y comprimir directorios.
Modelos de Desarrollo del Software Libre [Ball:OMS-03]. Modelo Bazar [Raymond:CB]. Programación ágil [Beck:EPE-01].
¿Qué es un Hacker? [Raymond:CSH,Himanen:EHE-02], ¿como serlo?.
Actividad:Ver película ``The Code''.
Información analógica y digital. Los sistemas numéricos. Códigos: ASCII, Unicode.
Máquinas de Turing. El modelo de Von Neumman II, explicando en detalle. Instrucciones de máquina principales. Interrupciones de hardware II.
El concepto de archivo. Todo es un archivo.
La terminal de texto. Los comandos. Filtros. Conceptos de interfaces de usuario, de caracteres y gráficas.
Introducción a los shells: bash, sh, csh, tcsh, etc. Bash y su uso eficiente [Criado:CIG-00,Buanzo:IC,Rivero:IPB]: introducción, globbing, metacaracteres, tilde, comillas, tilde inverso. Búsqueda y edición en la historia, history, auto-finalización, TAB, atajos.
Variables de entorno: set, export.
Canales de comunicación estándar: entrada, salida y salida de error [Criado:CIG-00]. Flujos. Redirección. Sobreescribir o anexar. Cañerias. Objetivos útiles. tee. Salida de un programa como argumentos de otro: xargs.
Estadísticas en relación a los archivos [Criado:CIG-00]. Buscar en el sistema de archivos. Listar y trabajar con archivos y directorios. ls, find: ejemplos básicos, operadores lógicos, criterios numéricos, tiempos de acceso, ejecutar comandos.
Herramienta de búsqueda del KDE, Gnome, Mono (Beagle), otros entornos de desarrollo.
Espacio ocupado por archivos listados en directorios: du.
Procesando archivos. Utilidades básicas para filtros: cat, grep, head, tail -f, wc, sort, cut, paste.
Expresiones regulares. Buscando en archivos: less, slocate. sed, awk y bash. Editando archivos con sed y awk.
El modelo de seguridad de Gnu/Linux. Usuarios, Grupos. Autenticación (login) [Criado:CIG-00].
Cambiando la clave: passwd.
Procesos. Comandos: ps -uax, top [Criado:CIG-00].
Creación y estado de los procesos. Estadísticas de un proceso activo. Número de proceso, número de usuario del proceso. Ancestros. Señales. Matando procesos: kill, killall. Alterando la prioridad de los procesos. Comandos de administración de procesos interactivos. Sistema /proc. Demonios.
Procesos y terminales. Control de trabajos. Foreground, background: bg, fg. Suspendiendo procesos. Listando procesos suspendidos y en background. Volviendo al foreground. Reasumiendo procesos suspendidos. Comandos compuestos. &.
Mensajes a terminales: write, talk, ytalk.
Administración de memoria: free.
Conceptos. Inodos. directorios: cp, mv y rm con relación a los inodos. Links simbólicos: ln [Criado:CIG-00]. Links reales. Archivos, directorios, enlaces simbólicos, dispositivos de caracteres, de bloques, pipes y sockets. Sus funciones. Comandos: mknod, mkfifo.
Bibliografía Gral:[Tamara:AAL-03].
Esquema de seguridad de archivos de GNU/Linux [Criado:CIG-00]. Permisos de archivo: dueños y tipos de permisos. Examinando e interpretando permisos: simbólico, numérico: chmod, chown, chgrp. Permisos de archivos especiales: setuid, setgid, sticky. Directorios y ejecutables. Seguridad de procesos ejecutables. Permisos por defecto, máscara.
Criterios de permisos en el find.
Empaquetando: tar, cpio, zip. Utilidades de compresión: compress, gzip, bzip2. Crear, extraer, inspecionar: mc. tar hacia floppies no formateados. Selección de archivos, selección incremental.
Uso del Emacs [Glickstein:GEE-77,Craig:CTE-99] y del vi [Criado:CIG-00]. Modos. Buffers. Pantallas. Sistemas de codificación. Búsqueda. Copiar y Pegar.
Escribir documentación. LATEX[Wilkins:GSL-95,Green:HHW]. XML, SGML, docbook [Davila:TDB-02], estandar OASIS [OASIS:DXB-05] y OOO 2.0.
Control de versiones. CVS, subversión.
Participar en la comunidad redactando, brindando soporte e instrucción.
Lenguajes imperativos. Tipos. Instrucciones. Control de flujo. Funciones. Stack. Variables, concepto, ubicacion, nombre y tipo, cadenas, numeros, vectores, locales, globales, objetos. Entradas y Salidas. Archivos. Programción literata, funcional, estructurada, etc. Análisis, diseño, metodologías tipo bazar y catedral, ágiles.
El cálculo numérico y científico. Modelos. Instrumentos de control y medida.
Filosofía Unix [Raymond:AUP-03].
El concepto de script bash [Criado:CIG-00]. Principios de la programación shell. Ejecución de scripts y permisos. Variables y parámetros. El entorno heredado. Trabajando en el entorno raiz. ``.'' Creando programas. Generando salida. Manejando la entrada, read. Estatus de salida. Estructuras de control. Ejecución condicional. Estructuras de selección: if, else, case. Tests: archivos, cadenas. Loop, for, secuencias, while, continue y break. Parámetros posicionales. Argumentos. Manejando parámetros con espacios. Funciones. Scripts en la línea de comandos.
Redactar scripts Perl simples [Wall:PP-91]. Error por falta de módulo. Modulos Perl. Instalar módulos desde cpan, perl -MCPAN -e shell, Usar awk y sed en scripts.
Bases de datos: Postgres, Mysql. Instalación, inicialización, puesta en funcionamiento. Consolas sql.
Introducción al C y al gcc, compilación [Outaline:PCP-91,Kernighan:EPU,Kernighan:LPC]. Make II e introducción al autoconf.
Tipos de datos y operadores. Sentencias y control de flujo. Declaraciones e inicialización. Funciones y estructura de programa. Operaciones de entrada y salida. Cadenas. Punteros. Asignación de memoria. Llamadas al sistema.
KDE, Gnome, Mono: como entornos de desarrollo, interfaces de caracteres. Combinar filtros con interfaces.
LAMP [LaMonica:OSL:05]: servidor Apache, bases de datos. Programación web. Ejemplos simples.
Desarrollo, creación, producción. Análisis, diseño, síntesis, programación.
Actividad:Instalación de Openwebmail.
Bibliografía Gral:[Loukides:PGS-97].
El núcleo. Modulos: kmod, lsmod, insmod, rmmod, modprobe, modconf. Agregar soporte a otros dispositivos. Archivos relacionados con el núcleo y los módulos: /etc/modules, modules.conf. Descarga, compilación, configuración básica e instalación del núcleo.
Configuración del Bios.
Tarjetas de expansión, ISA, PCI, pcmcia, hotplug: lspci, lsusb, pnpdump, isapnp, usbmodules, lsusb, /proc.
Dispositivos en serie. Dispositivos de comunicaciones. Placas de red, NIC. Modems. Placas de sonido. ALSA. Impresoras. Teclados. Monitores. Detección DDE.
Dispositivos en bloques. Ide, floppys, viejos cdroms, otros. Geometría de los discos. Dispositivos SCSI.
Dispositivos PCMCIA. Configurar GNU/Linux para soportarlos. Configurar adaptadores Ethernet para que se autodetecten cuando se insertan. /etc/pcmcia/, *.opts, cardctl, cardmgr
Dispositivos USB
Particionamiento [Criado:CIG-00]. Dispositivos particionables en /dev Definir y modificar una tabla de partición: fdisk, ntfsresize, parted. Diseño del particionado de discos y el layout del disco.
Formatos de particiones y sistema de archivos, ext2, journaling: ext3, reiserfs, xfs. Formatear particiones: mkfs. Comprobar y reparar un sistema de archivos: fsck. Formateando disketes. Espacio libre: df.
Montando y desmontando sistemas de archivos: mount, mountall, umount, opciones. Punto de montaje. Sistemas de archivos montables y desmontables. Archivos /etc/mntab y /etc/fstab. Diversos tipos de sistemas de archivos. Dispositivos removibles: diskettes, CD-ROMs, DVDs, USB. Remount. Archivos (-o loop). Sistemas comprimidos. Sistemas encriptados. Mtools. Autofs. Supermount.
Lilo [Criado:CIG-00], grub. 4 etapas del encendido: arrancar (boot) con lilo-grub, cargar núcleo e imagen, descubirmiento del hardware y cárga de dispositivos y modulos, inicialización con init y demonios. Instalación del lilo-grup. Adecuación del núcleo. Directorios que contienen el núcleo, la imagen inicial y los módulos. Inicialización. Llamado a init.
Init. Niveles del funcionamiento del ``System V''. Archivo /etc/inittab. Pasos del proceso init. Directorios que llevan a cabo el control de los script utilizadas para detener e iniciar procesos y servicios del sistema. Control de servicios y demonios: /etc/init.d. Pasos para agregar un nuevo script. Comandos para apagar el sistema: init, shutdown, halt, reboot.
Describir un paquete de software. Información contenida en un paquete de software, visualización. Administrar librerías dinámicas. Sistemas y programas de administración y mantenimiento de paquetes: tar, rpm, apt-get, deselect, alien. Consultas. Agregar un paquete de software. Remover un paquete de software.
Compilar e instalar un paquete desde la fuente: make, configure, ebuilds.
Parches y updates.
Archivos y demonios de registro (logs), uso, manejo y configuración. syslogd, configuración: syslog.conf. klogd, logger
Automatizar las tareas administrativas. Programar la ejecución automática de comandos, programas o scripts en determinado momento y en forma cíclica. at y crontab, archivos vinculados. Formato crontab. Crear y ejecutar un trabajo at. Pasos para crear,visualizar, editar, y para remover un archivo crontab. Usar cron. Directorios diarios, semanales y mensuales en /etc.
El superusuario root [Criado:CIG-00].Otros usuarios del sistema. Números de identificación de usuarios y grupos. Archivos /etc/passwd, /etc/shadow, y /etc/group. Encriptamiento. Ocultamiento de las claves. Regular el acceso a la cuenta root, cambiando la identidad, grupo wheel. su y sudo.
Administrar cuentas. Crear y mantener cuentas de usuario y grupos. Comandos: useradd, userdel, groupdel.
Información sobre usuarios.
El proceso de login y la autenticación. PAM. Clientes NIS, ldap, cyrus sasl.
Envejecimiento de contraseñas.
Comandos de usuario habituales para impresión: lpr, lpq, lprm [Criado:CIG-00].Filosofía, administración, configuración y comparación de los sistemas de impresion: lpd, LPRng, CUPS. El subsistema de impresión GNU/Linux. Colas. Utilidades para conversión de formatos. text, ps, pdf, etc.. Añadiendo impresoras locales y remotas. Autodetección.
Estrategias y software de Respaldo. Tareas y operaciones básicas de respaldo y restauración.
El sistema de ventanas X [Criado:CIG-00]. XFree86, X.org, XFree4, XFree3. Configuración del servidor X. Modularidad del X.
El protocolo X. Transparencia hacia las redes. X y ssh.
Establecer xdm. X remoto: XDMCP, VNC, DISPLAY, uso y configuración. Adecuación de sesiones X y aplicaciones. Terminar aplicaciones X. Seguridad en X.
Administradores de ventanas y de entornos. Conceptos del ``Display Manager'': KDE, Gnome, BlackBox, otras, instalación y configuración.
Inicio, configuración. El servidor de fonts. Instalación y mantenimiento de fonts.
Terminales remotas: ltsp, pxes, varios monitores con varias placas PCI, computadoras multipersonales con teclados y ratones USB..
Ondas sonoras, micrófonos y parlantes. Fuentes de audio. Digitalización: conversión A/D, muestreo. Archivos y formatos: wav, midi, ogg. Tarjetas de sonido.
Video, archivos, calidad de imagen, barrido, pixels, formas de caracterizarlo, color, ancho de banda. Video digital. Interfaces.
Percepción Visual. Luz, espectro electromagnético. Percepción visual. El sistema visual humano. Luminancia, Brillo y contraste. Modelo de visión monocromática. Representación de color. Sistemas de Coordenadas de color.
Tratamiento digital de imágenes Concepto de imagen. Elementos de un sistema de imágenes. Digitalización. Muestreo y cuantificación. Estructuras de datos. Relaciones básicas entre pixeles. Mapas de transición de luminancias. Operaciones físicas. Filtros espaciales. Filtrado de frecuencias. La convolusión. Aplicaciones. El histograma.
Captura y transmisión de imágenes. Sistemas de captura de imágenes: sensores CCD. Sistema de representación de imágenes, tubos de rayos catódicos. Televisión blanco y negro, señal de video luminancia, espectro de señales de video, descripción del receptor de televisión. Televisión color, señal de crominancia, ejes de color, sistema NTC, sistema PAL, receptor, Televisión digital.
Almacenamiento de imágenes. Sistemas de almacenamiento de información, cintas magnéticas, cabezales magnéticos, sistemas VHS, sistema SVHS.
La imagen en la computadora. Sistema de toma de imágenes en computadora, conversión A/D, procesadores de imágenes.
Configurando el shell bash. Variables. Variables locales. Exportando variables. Variables comunes: PS1, TERM, PATH. Comandos de configuración. Aliases. Expansion de la línea de comando. Scripts de inicio del shell. Orden de ejecución. Shells de login. false. /etc/profile /etc/profile.d /.bash_profile y /.bashrc /.bash_logout .profile .bashrc
El entorno inicial del usuario. /etc/skel/... y directorios de usuarios /home, .
Visulizando, configurando y estableciendo cuotas:quote .
Bibliografía: [Kirch:LNG-00,Hunt:TNA-92].
Que es una red: nodos, vínculos e interfaces. Redes locales, topología. Ethernet. Lan/Wan. Cableado. Tipos y normas.
Comunicaciones. Concepto de canal. Señales. Medida. Ancho de banda. Tipos de trasmición, modulación. Trasmicion asincrónica y sincrónica. Errores. Modems.
Interfaces. Configurando interfaces de red. Módulos. Configurar dispositivos para redes locales. Configurar dispositivos para redes wan.
Redes IP. Modelo IP y modelo OSI. Redes abiertas vs. propietarias: IPX, SNA, NetBios, etc..
Números y direcciones: interfaz, red, broadcast y máscara, clases. Protocolo arp. Herramientas: ping, ifconfig, netstat, arp, arpwatch, directorios de configuración en /etc. Protocolos, capas, IP, TCP/UDP. Puertos.
Estableciendo clientes DNS y DHCP. Configurar y usar PPP. Diagnosticando situaciones y problemas de configuración de red.
Configuración del cliente: /etc/hosts, /etc/resolv.conf, /etc/host.conf, /etc/nsswitch.conf, DHCP y DNS. Configurar ntp como cliente.
Ruteo sin políticas: route. Comunicar entre subredes.
Configurar registros (logs) de TCP/IP.
Internet.
Configuración básica de correo electrónico, smtp, pop3, imap, seguros; sendmail/postfix/exim
Configuración básica de servidores DNS cache, dhcp, web Apache, Sshd.
Servicios inetd/xinetd. Inicio, habilitacion, /etc/services. Derechos. /etc/host.equiv, /.rhosts
Servidor nis/yp y Ldap; NFS [Stern:NAN-91] y Samba [Ts:US-03,Vernooij:SDG-03].
Configurando un router básico: NAT, ip_forwarding, squid, proxy transparente.
Verificar puertos abiertos con nmap.
Tareas del administrador de sistemas. Tareas básicas de la administración y vigilancia de seguridad. Seguridad a nivel de servidor y a nivel de usuario.
Actualizando los servidores.
Bibliografía Gral:[Bodamer:SMA].
Componentes del núcleo. Utilizar los necesarios para determinado hardware, drivers, recursos del sistema o requerimientos del sistema. Opciones para dispositivos UDMA66 y grabadores de CD IDE (2.4/2.6).
Instrumentar diferentes tipos de imágenes del núcleo. Identificar núcleos y parches estables y en desarrollo. zImage y bzImage.
Compilando el núcleo. Incluir o deshabilitar características específicas, configuración, opciones. Optimización. Personalización.
Realizar actualizaciones. Encontrando los cambios en un nuevo núcleo. make config, xconfig, menuconfig, oldconfig, mrproper. modules, modules_install, /usr/src/linux/, /etc/lilo.conf,
Aplicando patchs al núcleo Actualizar. Corregir errores. Añadir soporte. Remover patchs de un núcleo en producción. patch Makefile, gzip, bzip.
Adaptar un núcleo: por compilación, aplicando parches, editando archivos de configuración. Discusión.
Construir y configurar módulos del núcleo. patch, make, /usr/src/linux, /proc/sys/kernel, modprobe, /etc/conf.modules, /etc/modules.conf insmod, lsmod, kmod, kerneld.
Examinar los parámetros del núcleo en /proc.
Personalización del inicio del sistema y de los procesos de encendido. Modificación del lilo y grub.
Configuración del ``System V'' de inicio. Administrando el inicio de los demonios de systema
Adaptando el inicio. Scripts. Configurar los procesos de inicio y los niveles de ejecución estandares. Interactuar con los niveles de ejecución.
Crear imagenes personalizadas. /etc/init.d, /etc/inittab, /etc/rc.d, mkinitrd.
Funcionamiento y mantenimiento del sistema de archivos GNU/Linux. Crear y configur las opciones del sistema de ficheros.
Archivo /etc/fstab, como reparar el archivo cuando el sistema falla en el encendido.
Dispositivos de bloques y otros dispositivos. Direccionamiento de discos y particionado.
Configuración, administración y uso de RAID y LVM. Usar ACLs.
Conceptos de Raid. Raid por software vs. por hardware. Configurar e instrumentar RAID por software. Raid: 0, 1, 5. mkraid, /etc/raidtab
Uso de LVM (Logical Volume Manager) para administrar discos y particiones.
Herramientas para interactuar con parámetros de los discos duros: hdparm, tune2fs, /proc/interrupts, sysctl, fsck , badblocks, Mke2fs, Dumpe2fs, Debuge2fs, Tune2fs.
Particionado de servidores, diseño.
Configurar y montar varios tipos de sistemas de archivos. Manipular sistemas de archivos para ajustar el requerimiento de espacio libre y para adicionar dispositivos. /etc/mtab, sync, swapon y swapoff, /proc/mounts
Opciones de los sistemas de archivos Automount, automont para redes, para dispositivos. IVMAN. Sistemas no ext2. Sistemas para cdroms. /etc/auto.master, /etc/auto, mkisofs, dd, mke2fs.
Conocimiento básico del hardware. Arquitecturas Intel y clones. Ajustando Irqs para los puertos y slots estándares.
Configurar subsistemas de discos: IDE, EIDE, SCI.
Instalación de hardware. Compatibilidad. Dispositivos internos, externos, nuevos discos internos: scsi, terminales tontas, dispositivos seriales de UPS, tarjetas seriales multipuerto, paneles LCD, setserial.
Configuración de software y del kernel. Configuración de dispositivos PCMCIA y USB, hotplug.
Soporte de CPUs y SMP. Detección de nuevo hardware. Soporte Plug and Play.
Dispositivos perifericos y su configuración. lsdev, lspci, usbview, /proc/bus/usb
DHCP
Fundamentos. Configuración y monitoreo del servidor. Hosts estáticos y dinámicos. dhcpd.conf, dhcpd.leases. Esclavos. Distintas alternativas de configuración. Control por dirección de hardware de las placas de red.
NIS, LDAP, Kerberos, cyrus sasl
Revisión de la configuración de un cliente.
Fundamentos de NIS. Cliente. Servidor. nsswitch.conf. Utilidades YP. /etc/nis.
Servicios LDAP. Esquemas. Referenciando las entradas LDAP. Seguridad LDAP.
Implementar y configurar el servidor OpenLDAP. Archivos LDIF. Configuración del usuario. slapd y slapd.conf
Parámetros globales. Restringiendo el acceso. Configuración e indexado de las bases de datos. Consultando las bases LDAP.
Cyrus SASL [CSSA].
Instalar y configurar kerberos.
NFS
Configuración de un servidor NFS. Crear archivo /etc/export y especificar directorios a exportar, exportfs. Restringir hosts en cada entrada. Especificar opciones. showmount. Configurar el mapeo de ID de usuarios.
Configuración de los clientes NFS. Montar un recurso NFS en un cliente. Subredes o grupos de redes. Especificar opciones del mount para reintentos soft o hard. Manejo de señales. Tamaño de bloque. Configurar wrappers para asegurar el NFS. nfsstat.
Samba
Samba 3. Teoría del protocolo SMB. NetBIOS y NetBEUI. Nombres NetBIOS. Establecer un servidor para varios clientes, smbd. Servidor nmdb. Wins. Configuración de un servidor. Swat. HGA. Cambiar el grupo de trabajo del servidor. Compartiendo archivos, directorios e impresoras con Samba. Definir un recurso compartido en smb.conf: directorio, impresora.
Herramientas para los clientes. Establecer un script para ingreso de clientes. Montando recursos compartidos SMB. Usar nmblookup para testear la funcionalidad WINS. Usar smbmount para montar un recurso en un cliente. smbstatus, smbtestparm,smbpasswd, lmhosts.
Cuestiones relativas a las contraseñas encriptadas de Windows y Samba. Registry de Windows para contraseñas sin encriptar.
OpenAFS Conceptos. Instalación y configuración de kerberos y OpenAFS.
Configuración post-instalación.
Instalación automatizada desde repositorios
Configuración y análisis de registros (logs) del sistema. Configurar syslogd como servidor central de registro (logs). Configurar syslogd para enviar a un registro (log) central. Conexiones de registros (logs) remotos. Uso de grep y otras utilidades de texto para automatizar el análisis de registros (logs). syslog.conf, sysklogd, /etc/hosts.
Contabilidad de procesos. Límites a los procesos. Análisis y ajuste de performance.
Planes de respaldo y recuperación fuera del sitio.
Planificación de de tareas admistrativas. (uso de cron, anacron y at). Manejo de procesos que se ejecutan en el sistema.
Scripts para probar la ejecución de procesos. Generación de correos con alertas. Generar alertas SMS ante la muerte de procesos. Programar scripts para analizar y ``parsear'' registros (logs) para generar alertas y correos a los administradores. crontab.
Sincronizar archivos entre máquinas con rsync.
Monitorear cambios de archivos e ingreso, salida de usuarios y generar alertas.
Conceptos para solucionar problemas en GNU/Linux. Análisis de registros (logs) para identificar problemas. Uso de herramientas de ayuda a nivel de sistema para solucionar problemas.
Niveles de ejecución de rescate.
Uso de entornos de rescate de GNU/Linux. Creación de discos de recuperación. Recuperación del sistema. Disco o cdrom estandar para reparación y recuperación. /usr/sbin/rdev, /sbin/lilo, /bin/dd, /sbin/mke2fs, /etc/fstab, /etc/inittab, /usr/bin/chroot. LPD bootdisk Howto.
Recuperación. Manipular un GNU/Linux durante el proceso de encendido y en el modo de recuperación. La utilidad init. La opción init=kernel. LILO, init, inittab, mount, fsck.
Solución de problemas del lilo y grub. L, LI, LIL, LILO. /boot/boot.b /boot/boot Identificación de las 4 fases del encendido.
Solución de problemas generales. Archivos con los mensajes durante arranque. Utilizar mensajes para diagnosticar errores. Identificar y corregir cuestiones comunes de hardware. Determinar si el problema es de hard o soft.
dmesg, syslogs del nucleo en los registros (logs), registros (logs) del núcleo y demonios en /var/log, /sbin/lspci, /usr/bin/lsdev, /sbin/lsmod, /sbin/modprobe, /sbin/insmod, /bin/uname.
Ubicación de los archivos del núcleo y módulos, /boot, /lib/modules.
El sistema /proc, strace, strings, ltrace, lsof.
Solución de problemas con los recursos del sistema. Identificar, diagnosticar y reparar el entorno local. /etc/profile y /etc/profile.d/, /etc/bashrc y otros /etc/init.d/. /etc/rc.*. /bin/ln. /bin/rm. /etc/ld.so.conf. /sbin/ldconfig. /sbin/sysctl, /etc/sysctl.conf.
Solución de problemas de configuración del entorno. Tecnicas comunes de reparación. /etc/inittab, /sbin/init, /etc/passwd, /etc/shadow, /etc/group, /etc/profile, /etc/rc.local o /etc/rc.boot, /usr/sbin/cron, /usr/bin/crontab, /var/spool/cron/crontabs/, /etc/SHELL_NAME, /etc/login.defs, /etc/syslog.conf
Recuperación de sistemas de archivos corruptos.
Puntos de revisión en X, servicios, redes, encendido.
Bibliografía Gral:[Liu:MII-94].
DNS historia y teoría [Albitz:DAB-92]. El espacio de nombres. Delegación de zonas. Resolviendo nombres y busquedas inversas.
Bind solo chache. Configurando bind: /etc/named.conf. Configurando zonas directas e inversas. Zonas especiales. Archivos de Zonas. Zonas primarias y secundarias. Creación y mantenimiento de zonas DNS. Registros SOA, NS, MX, A, CNAME, otros.
Recargar bind con kill o ndc.
Jerarquias de DNS, delegación de subdominios.
Seguridad en un servidor DNS. chroot jail, non-root. DNSSEC Registros (logs) del DNS.
Vistas. Restringiendo las consultas y las transferencias de zonas. DDNS y nsupdate, dnskeygen
Clientes: dig, nslookup, host.
Archivos de inicio del System V.
Wrappers de TCP, configuración, tcpd. Seguridad. Servicios inetd/xinetd. Inicio, habilitación, /etc/services. Derechos. /etc/host.equiv, $home/.rhosts /etc/inetd.conf, /etc/hosts.allow, /etc/hosts.deny
Servidores ftp y ftp seguros
Fundamentos. OpenSSH. Utilidades del cliente.
Configuración del servidor. Métodos de Autenticación. sshd. Generación de llaves. Redireccionamiento de puertos.
Redireccionamiento de X.
Teoría del protocolo HTTP. Historia y estatus. Arquitectura.
Configuración e Instalación del Apache. Archivos de configuracion. Usando módulos: proxy. Registros (logs) y análisis. Monitorear carga y performance.
Contenido dinámico. CGI. Perl. PHP. Tomcat. Seguridad.
Servicios FTP.
Autenticación. Restringiendo usuarios. Configurar mod_perl y mod_php.
Pedidos máximos. Mínimos y máximos de clientes y servidores.
Registro (log) de inicio: rcapache.out, access.log, error.log, .htaccess, mod_auth, htpasswd, htgroup, httpd.conf.
Hosting virtual.
Cuestiones de seguridad. Criptografía, uso de HTTPS. Certificados SSL. Definiciones y configuración. OpenSSL. Instrucciones de redireccionado en httpd.conf.
Introducción.
Instalar y Configurar un proxy squid.
Políticas de acceso. Autenticación. squid.conf. ACLs y jerarquías. http_access.
Medición de ancho de banda y monitoreo.
Teoría del SMTP. SMTP con sendmail. Configuración. Lenguaje de macros m4. Archivo senamil.mc. Otros archivos de configuración. ESMTP AUTH y encriptación.
SMTP con Postfix. Configuración. ESMTP AUTH y encriptación.
Exim: exim.conf.
Configuración de las listas de correo, aliases, /etc/aliases. Quotas Uso de Sendmail. Controlando el tráfico. Monitoreando servidores SMTP.
Dominios virtuales. Mails relays.
Servicios: POP3 y IMAP4 Encriptando el acceso de clientes.
Filtro de correso: virus y Spam, ordenamiento. Monitoreo de correo ingresante.
procmail .procmailrc Procmail server-side.
Clientes de mail via web: openwebmail, squirrel.
Servicio de noticias.
Mailman.
Ruteo por políticas, route, programa ip.
routed, zebra.
Puertos. iptables. Configuración de netfilter/iptables. Reglas de filtrado.
Mainteniendo las reglas. Ejemplos.
NAT con netfilter. Tracking de conexiones.
Configuraciones comunes en /proc/sys/net/ipv4.
Configurar un router básico: NAT, ip_forwarding, squid, proxy transparente.
Herramientas de diagnóstico e información: tcpdump, nmap, ntpd, finger, snmp, netstat, registros (logs) del sistema, ifconfig, /etc/network, /etc/sysconfig/network-scripts/, ping, /etc/resolv.conf, /etc/hosts, /etc/hosts.allow, /etc/hosts.deny, /etc/hostname, /etc/HOSTNAME, traceroute, nslookup, dig, host, dmesg.
Tareas de seguridad, asegurando servicios. Configuración PAM. Firewalls.
Sistemas de detección de intrusos.
Nessus.
Establecer alertas/alarmas de seguridad.
Cerrrar relays abiertos de email.
Escaneo de puertos con nmap.
Configurar dispositivos de red para autenticación. VPN.
Instalación de apache, postgres, mysql, perl, php, python, módulos y otros necesarios. Descarga desde Internet. Compilación y configuración.
Subversion. SVK. CVS. GIT.
Introducción al SQL. SQL: Elementos Básicos del lenguaje. Objetos, operadores y expresiones. Definiciones de datos: Tablas base. Manipulación de datos: Operaciones: Select, insert, update, delete. Expresiones de tablas, condicionales. Vistas. Integridad. Nulos. Transacciones. Agregados. Joins. OID. Secuencias. Tipos de datos. Manejo de tablas. Restricciones. Funciones y disparadores. Transacciones.
Modelos entidad relación. Normalización. Nulos. Algebra relacional. Tuplas.
Postgres y Mysql. Terminal Sql. Instalación. Administración. Sintonización. Respaldo. Replicado. Fortalezas y debilidades en relación a otros motores. Sesiones. Comandos.
Programación en lenguajes dinámicos: elementos básicos en los tres lenguajes. Variables y constantes. Ambito. Globales, locales, léxicas. Cadenas, números, listas, hashes. Expresiones Operadores Estructuras de Control. Formas de Ejecución. Subrutinas. Expresiones Regulares. Archivos.
Perl. Presentación. Variables. Particularidades. Módulos y Objetos en Perl.
Uso de sockets. Acceso a servidores. Envío de Email. Acceso a HTTP, FTP, SMTP
Perl DBI. Uso de Módulos. Programación. Interacción con la Base de Datos. Comprobación de errores. Consultas iterativas. Subrutinas básicas.
HTML. Protocolo HTTP. URLs. Introducción al HTML. Estructura. Texto. Imágenes. Enlaces. Listas. Tablas. Formas. Marcos.
Programación CGI. Página dinámica. Idea. Entorno. Parámetros. Get y Post. Procesando y generando con el mismo script. Sesiones y Cookies.
CGI.pm: Introducción. Funciones.
Javascript: Introducción, Estructura léxica. Tipos de datos, valores y variables. Expresiones y operadores. Sentencias. Funciones. Objetos. Arrays. JavaScript en Navegadores. Ventanas y Marcos. DOM. Eventos. Formas y elementos. Cookies. Ajax.
En principio cada curso esta pensado para durar 5 días, cada uno de ellos con 4 horas de clase dirigida, dos horas de practica individual tutelada y dos horas de actividad individual.
El currículo esta pensada para facilitar su reducción o alargue, eliminando algunas partes o profundizando en otras. Alterar el orden, su organización, duración y puesta en práctica concreta. Esta pensada también como una guía de auto-aprendizaje y un compendio de la bibliografía relevante.
Es recomendable no ver todas las alternativas de cada aplicación por cada función. En cada instancia de su uso es razonable optar por alguna de ellas según las necesidades de los organizadores de la misma, o preferencia de los estudiantes.
Se propone un plan de estudios constituido con un conjunto de cursos. Cada curso enfoca un perfil especial y se va construyendo sobre el conocimiento contenido en el anterior. Al terminal cada curso el estudiante completa el perfil de ese curso.
Las equivalencias no son exactas, ya que no todos las organizaciones distribuyen el contenido en la misma secuencia. Terminar un curso de éste currículo, en general significa que se cubren los cursos o exámenes que se reputan como similares, quizás en exceso.
Si bien se ha intentado no repetir los contenidos entre los cursos, muchas veces es conveniente proceder como en una espiral que a la vez que crece vuelve a recorrer algunos ``ángulos'' del circulo a mayor nivel. En particular esto sucede con algunos protocolos de red que se ven primero como clientes y luego se profundiza en sus fundamentos y en sus servidores.
TIC: Tecnologías de la Información y Comunicaciones.
Curso que pretende formar una persona partícipe de las TIC con autosuficiencia y capacidad de reproducción de sus conocimientos en su comunidad.
Contiene lo necesario para instalar y operar un escritorio GNU/Linux en entornos hogareños, de pequeñas organizaciones y en conexión con las comunidades internacionales.
Se hace incapie en la capacidad de comprender el significado de la programación de ordenadores y las técnicas colaborativas y de construcción grupales, especialmente aquellas que aseguren anonimato y seguridad en la red como encriptación.
Se aspira a contribuir a formar personas tecnológicamente aptas para convivir, participar, militar y ganarse la vida en un mundo cada vez más conectado y mediatizado por computadoras.
Ninguno
Uso autónomo de las TIC, participación en comunidades y capacidad de sensibilizar y ayudar a los demás.
Trabajar efectivamente con:
HGA: Webmin, Yast, otras.
Módulos: 14.3.1, 14.3.2, 14.3.3, 14.3.4, 14.3.5, 14.3.6, 14.3.7, 14.3.8, 14.3.9, 14.3.10, 14.3.11, 14.3.12, 14.3.13, 14.3.14, 14.3.15, 14.3.19, 14.3.18, 14.3.16.
Curso de formación tendiente a que los estudiantes dominen, puedan usar a profundidad su sistema GNU/Linux y puedan seguir adquiriendo la variedad de conocimientos necesarios para progresar solos.
Curso 1.
Obtener un sólido fundamento en conceptos técnicos de GNU/Linux y el Software Libre junto a sus fortalezas y debilidades.
14.3.20 14.3.21 14.3.22 14.3.23 14.3.24 14.3.25 14.3.26 14.3.27 14.3.28 14.3.29 14.3.30 14.3.31 14.3.32 14.3.33 14.3.34 14.3.35 14.3.36 14.3.37
Curso de formación básica tendiente a que los estudiantes puedan configurar y mantener su estación de trabajo.
Curso 2.
Obtener un sólido fundamento en el funcionamiento del sistema operativo GNU/Linux.
Contenidos del Curso 3.
El objetivo de este curso es mostrar la configuración de un servidor para múltiples usuarios, es especial sirviendo a varias estaciones de trabajo en una red local.
Es importante la capacidad de planear, instrumentar, mantener, corregir y solucionar errores. Diseñado para dar experiencia práctica en estas cuestiones junto a los fundamentos de cada tema.
Curso para enseñar a establecer servidores y routers. Tanto a nivel de redes locales como de Internet. Especial importancia se le dan a los conceptos por sobre la recetas y se hace énfasis en la seguridad y en la capacidad de solucionar errores y problemas, encontrando sus causas y detectándolos en forma temprana.
Curso 3
Sitios web dinamicos provistos por bases de datos.
Curso para enseñar a instalar, programar, especificar, diseñar, analizar y configurar sistemas LAMP.
Curso