Diferencia entre revisiones de «Universisdad Nacional de Quilmes»

De m1w1k1
Ir a la navegaciónIr a la búsqueda
Línea 485: Línea 485:
 
### ldd /bin/ls
 
### ldd /bin/ls
 
### configure, make , make install
 
### configure, make , make install
 +
### ¿Compilar kernel?
 
## Manejo mínimo de control de versiones: svn, git, etc. [http://git.or.cz/course/svn.html]
 
## Manejo mínimo de control de versiones: svn, git, etc. [http://git.or.cz/course/svn.html]
 
## Creamos cuenta en github para probar
 
## Creamos cuenta en github para probar

Revisión del 16:17 30 ago 2011

Laboratorio de Redes y Sistemas Operativos - Tecnología en redes II

14 reuniones, 4 horas cada una = 56 horas - clases
2 reuniones,  4 horas cada uno = 8  horas - evaluaciones

Lista de la materia: tpi-est-labo@listas.unq.edu.ar

Bibliografía

Libro y guías

  • Administración de Sistemas Linux - Oreilly
  • Linux Servers - Los mejores Trucos - Oreilly

Listas de correo

  • Enumerar las listas de los diversos servicios a tratar


Foros/Sitios


otros

Evaluación

Guia paso a paso con licencia Libre

Posible temas para evaluación

2do Semestre de 2010

Redes Sociales

Streamming de audio

  • Icecast2, darkice
  • Diferentes tipo de escenarios de audio en vivo (local y remoto)
  • Trabajo terminado: [1]

Automatización de radio

  • Ampache
  • Trabajo terminado: [2]


1er Semestre de 2011

Streaming en html5

Envío de video en tiempo real por redes. (Usando ffmpeg2theora, ffmpeg, oggfwd, icecast, etc)

http://www.joseluisdibiase.com.ar/alec/streamingEnHTML5_Charkiewicz_Pujadas.pdf

Ejabberd

Servidor de Sistema de mensajería instantanea con protocolo xmpp

http://www.joseluisdibiase.com.ar/alec/TPFinal_Ejabberd_(Alegre-Rodriguez-RuizDiaz-Rosito).pdf

Redmine

Sistema de Manejo de proyectos

http://www.joseluisdibiase.com.ar/alec/Instalar_Redmine.pdf

Telefonía IP

Servidor de telefonía IP: Asterisk

IP.zip http://www.joseluisdibiase.com.ar/alec/Telefonia IP.zip

Zoneminder

Sistema de control de camaras

http://www.joseluisdibiase.com.ar/alec/Slavich-Pilla-Palazzo_TPI_zoneminder.pdf

Pygame

Libreria/Biblioteca para desarrollo de juegos.

http://www.joseluisdibiase.com.ar/alec/TPFinal-LabSO-Pygame.odp

http://www.mediafire.com/?v5sp43xjgqa601h



Clase 1

  1. Presentción de la materia
    1. ¿Que vamos a hacer durante las clases?
    2. Forma de evaluación
  2. ¿Porque usamos Software Libre?
  3. Nuestros amigos (Bibliografía)
    1. Libros
    2. Listas de Correos
    3. Foros
  4. Instalación de GNU/Linux (varias formas de instalación cd,dvd,usb,red)
    1. Diferentes Distribuciones: ¿Porque usamos Debian y/o Ubuntu?
    2. Diferentes Filesystems
    3. Particionado de disco (/home /var swap, lvm, raid, crypto)
    4. Puntos de montaje
    5. Administrador de arranque
  5. Concepttos básicos
    1. Directorios ( /etc , /proc, /home, /var /usr /bin /sbin /boot etc).
    2. Archivos ( ocultos, passwd, groups, etc)
    3. Permisos
    4. Comandos básicos: ls, cat, cd, man, apropos, pwd, df, history, mkdir, cp,rm, mv, touch, tail, head, ln, more, less, wc, diff, find, whereis, which, grep, shutdown, halt, poweroff, reboot


Que no puede faltar comentar

  • Todo es un archivo
  • Solo se instala lo que se va a utilizar, no se deja el compilador, ni código fuente
  • Paciencia
  • Nombre del Host


Mis aplicaciones preferidas

  • Editor de textos: vim
  • Explorador de archivos: mc
  • Terminal Quake: Tilda

Clase 2

  1. Administración de paquetes: https://help.ubuntu.com/10.04/serverguide/C/package-management.html
    1. Bajar: http://sourceforge.net/projects/geeqie/
    2. Comprimir/descomprimir: ( bzip2, gzip, tar, rar, zip) ej: tar zxvf archivo, tar zcvf , tar jxvf, tar jcvf
    3. Compilar un software en c ( descomprimir, configure, make, make install )
    4. Archivos comunes ( LICENSE, README, INSTALL )
    5. Empaquetamiento (dpkg, rpm, etc), dependencias.( apt-get, install, update, upgrade, dist-upgrade, build-dep, source, apt-cache search , apt-cache search, depends, showpkg, show, policy)
    6. ¿Qué son los repositorios? Instalar desde los Repositorios (/etc/apt/sources.list, Ubuntu ppa, Agregar debian-multimedia)
    7. Synaptic
  2. Ajustando entorno de trabajo
    1. Aplicaciones preferidas
    2. Línea de comando (terminal/consola/shell) vs. Entorno gráfico (ej: synaptic(gui grafica), apt-get(no gui), aptitude(gui txt))
  3. Configuracion de red de la maquina cliente (IP, GW, DNS, HOSTNAME)
    1. Usando la configuración automatizada de debian ( /etc/network/interfaces y comando ifup, ifdown)
    2. Usando ip, ifconfig, route, resolv.conf, hostname, hosts )
  4. Bash [3]
  5. Instalamos SSH (forma común de administración de servidores): https://help.ubuntu.com/10.04/serverguide/C/openssh-server.html
    1. ¿Donde puedo configurarlo? /etc/ssh
    2. Como se ejecuta desde el inicio, como lo ejectuo ( invoke-rc.d, update-rc.d, service )
    3. Generamos y copiamos claves (herramientas ssh-copy-id, ssh-key-gen )
    4. cambiamos de maquinas y administramos
    5. Diferentes clientes: ssh, putty, winscp
    6. Usamos scp
    7. ssh -X (levantar X en otro maquina )
    8. Diferentes opciones de ssh (ej -t, socks, forward port, scp ):http://blog.rodrigorega.es/proxy-socks-via-tunel-ssh-para-navegar-seguro/
    9. Ej: ssh -N -C -D 9999 NOMBRE_USUARIO@IP_SERVIDODR_SSH -p PUERTO

Clase 3

  1. Instalación y configuración de un servidor DHCP: http://www.tldp.org/HOWTO/DHCP/x369.html, https://help.ubuntu.com/8.04/serverguide/C/dhcp.html
    1. Probamos el cliente desde la linea de comandos ( dhclient )
  2. FreeNX: http://ubuntuguide.org/wiki/Ubuntu:Lucid#FreeNX
  3. Instalación y configuración de un servidor DNS: http://wiki.xtech.com.ar/index.php/Servidor_de_nombres_DNS , https://help.ubuntu.com/8.04/serverguide/C/dns.html
    1. Usamos dig ( ej: dig ar ns )
    2. Por cada tipo de servicio existen varias opciones: dnsmasq, bind9, ISC, etc.
  4. Firewall https://help.ubuntu.com/8.04/serverguide/C/firewall.html
    1. Conceptos básicos ( filtrado de paquetes, Masquerading, port forward, logs, etc)
    2. Otras Herramientas (ufw, pfsense, firestarter, sistemas embebidos: ddwrt, tomatoe, openwrt, coyote etc)
  5. Cliente de DNS Dinamico (ddclient)
  6. NFS

Clase 4

  1. Comunicación con Windows: Samba
  2. Servidor FTP: Vsftpd
  3. Servicios de impresión:
    1. Cups (Instalar de prubea una impresora pdf - instalar cups-pdf)
    2. Herramientas de cups (lp) en terminal: http://www.g-loaded.eu/2005/11/10/using-a-cups-printer-from-command-line/
  4. CRON, ANACRON
  5. Links duros y simbolicos
  6. Backup: Rsnapshot (alternativas: bacula, amanda etc)

Clase 5

  1. Instalar y probar apt-cacher-ng
  2. Manejo de bugs
    1. Debian: http://www.debian.org/Bugs/
    2. Launchpad: https://bugs.launchpad.net/
    3. reportbug, reportbug-ng,
    4. Listas de Anuncios de seguridad ( http://lists.debian.org/debian-security-announce/, https://lists.ubuntu.com/mailman/listinfo/ubuntu-security-announce )
    5. ¿Como usar una lista de correo? http://www.debian.org/MailingLists/index.es.html
    6. Seguir anuncios de RSS (ej: http://www.ubuntu.com/usn/rss.xml). Instalar para probar: Liferea
  3. Introducción a fuentes de Debian
    1. ¿Qué es diff?
    2. Ver Bug de JMDLX
    3. apt-get source jmdlx
    4. Explicación sobre los archivo que bajamos
    5. apt-get build-dep jmdlx
    6. dpatch apply, ./debian/rules patch unpatch
    7. Modificamos código fuente
    8. Usar dpatch-edit-patch para crear parche

Clase 6

  1. Servidores web
    1. Lógica del protocolo HTTP ( GET, POST, etc)
    2. Apache
      1. Introcucción
      2. Programación: PHP, Python, Ruby on rails, Perl, C, C++, etc
      3. Modulos para Apache ( agregar, quitar, etc) a2enmod, a2dismod
      4. Host virtuales ( crear, borrar, habilitar, etc) a2ensite, a2dissite
    3. Existen otros ( lighthtpd, cherokee, nginx etc)
    4. Probar desde una terminal un GET al servidor ( telnet server 80 ej: get / http/1.1 enter )
    5. Instalar en Firefox: livehttpheaders y usarlo (http://livehttpheaders.mozdev.org/)
  2. Motores de Bases de datos
    1. Conocimientos mínimos de SQL
    2. Postgresql
      1. Instalción básica (http://www.postgresql.org/docs/8.4/static/admin.html)
      2. Linea comandos: cliente psql
      3. otros clientes
    3. Mysql
      1. Instalción básica
      2. Linea comandos: cliente mysql
      3. otros clientes
    4. SQLite (http://www.sqlite.org/sqlite.html)

Clase 7

  1. Sistema de control de versiones
    1. Lógica, Funcionamiento
    2. Diferentes opciones: cvs, mercurial, svn, git, bazaar
  2. Subversion: ( https://help.ubuntu.com/10.04/serverguide/C/subversion.html, http://svnbook.red-bean.com/ )
    1. Instalación
    2. Utilización (status, diff, Add, commit, conflictos, properties edit/Add/del )
    3. Cliente con GUI: Tortoise, Rabbit, kdesvn, Rapidsvn, etc)
  3. GIT
    1. Conceptos y historia: Sucesor de Bitkepper en Kernel de Linux, Linus Torvalds, Sistema distribuido de control de versiones, Relacionar con SVN
    2. Utilización báscia ( creación de repositorio para ejemplo y comandos init, add, commit, push , clone, pull, tag, etc)
    3. Clientes con GUI ( gitg)

Clase 8

  1. Aplicaciones LAMP/LAPP (con vhost)
    1. Conocimientos mínimos (php_info, conexion a db, etc)
    2. INstalar aplicaciones para probar
      1. Phpmyadmin
      2. Wordpress (bajar del sitio web: http://wordpress.org/download/, ponerle traduccion al español y tema gráfico)
  2. Otras apps - Administración de proyectos ( bug tracker, control versiones, colaboración): trac, redmine, bugzilla, mantis, bugzilla
    1. Instalar Trac (crear repo de svn y utilizar webserver integrado)
    2. Instalar Piwik (http://piwik.org )

Clase 9

  1. Frameworks
    1. ¿Para qué?
    2. ¿Por qué?
    3. Diferentes opciones Symfony: Ejemplo...
      1. PHP: Symfony, Zend Framework, (millones más)
      2. Pyhton: Django, TurboGears
      3. Ruby: Ruby on rails
    4. CherryPy (http://www.cherrypy.org/wiki/CherryPyTutorial)
    5. Symfony
      1. Mostar carácteristicas
      2. Probamos hacer un ABM rápidamente

Clase 10

  1. Monitoreo
    1. OCSinventory: Inventario de maquinas
      1. http://www.ocsinventory-ng.org/
      2. Instalación de ocsinventory-server y reports (admin:admin)
      3. INstalación de ocsinventory-agent
    2. Nagios3: Monitor de red
      1. http://www.nagios.org/
      2. http://lavilladecactilio.wordpress.com/2009/07/23/howto-instalacion-y-configuracion-de-nagios3-en-debian-lenny/
      3. aviso por twitter: http://veinti1.com/configurar-nagios-para-que-te-avise-por-twitter/
    3. Munin (monitoreo de discos, servicios, etc)
      1. http://munin-monitoring.org/
      2. https://help.ubuntu.com/10.04/serverguide/C/munin.html
      3. INstalar servidor y node

Clase 11

  1. Virtualización
    1. Diferentes Opciones: Openvz, Vservers, Qemu, VBox, Xen
    2. Mostrar Ejempos simples con Qemu correr Livec: qemu -boot d -cdrom /dev/cdrom
    3. Mostrar: Virtual Box http://www.virtualbox.org/ http://code.google.com/p/phpvirtualbox/
    4. Mostar e Instalar: Proxmox http://pve.proxmox.com/
    5. Descargar Maquinas virtuales
      1. http://virtualboximages.com/ : http://sourceforge.net/projects/turnkeylinuxovz/files/
      2. http://www.turnkeylinux.org/ : http://ftp.openvz.org/template/precreated/


Clase 12

  1. Seguridad
    1. Claves de clientes y servidores
      1. Mostrar gorilla,kedpm, keepassx
    2. GNUPg [4]
      1. Implementación de estandar OpenGPG
      2. Clave publica, clave privada. Cifrar y/o firmar
      3. Creamos nuestra clave ( gpg --gen-key, gpg --keyserver pgp.mit.edu --send-key 0D34DB33F, gpg --list-key xxx@dd.org, gpg --export -a 0D34DB33F > dd.asc ) [5]
      4. Buscamos clave en servidor pgp.mit.edu
      5. Uso de seahorse [6]
      6. Probamos extensiones para firefox: Firegpg [7], S/MIME [8]
      7. Cifrar, Firmar y decifrar archivo: gpg -o archivo_cifrado.gpg --encrypt --sign -r rolo@puente.com.ar claves_de_root_de_la_nasa.txt, gpg --decrypt archivo_cifrado.gpg
      8. Probar cliente de correo: thunderbird
    3. Estar al tanto de los fallos de seguridad de paquetes (listas de avisos)
      1. Packetstorm [9]
      2. Securityfocus - bugtraq [10]
      3. Distro especificas: debian-security-announce@lists.debian.org
    4. Al menos tener mínimos conocimientos de posibles problemas al desarrollar (buffer overflows, sql injections, xss, etc)
      1. Ver video de ejemplos de sql injections http://www.joseluisdibiase.com.ar/alec/exploit_via_sq_injection.flv
      2. Ejemplo sitio de corradir: http://www.coradir.com.ar/filtro_productos.php?id=878999999%20or%20id=8
    5. Verificar/Jugar con sitios web probando las aplicaciones
      1. Instalar Firebug (analisis rápido de html para sitios web)
      2. A mano, que muestre errores (ej: Scaneando el sitio, probar ids a mano, metiendo caracteres como ' ", etc)
      3. Usando herramientas más especializadas: nikto, nmap
      4. Datos como el de robots.txt (http://www.robotstxt.org/)
      5. Probar seguridad mínimamente de sitio de la UNQ. EJ: biblio.unq.edu.ar, uvq.edu.ar, etc.
    6. Backtrack (Distro linux para penetration testing) [11]
    7. Comentar sobre w3af, metasploit
    8. WireShark [12]/Ettercap [13] - captura de paquetes en la red: ettercap -Tq -i interfaz -M arp:remote /ip_gateway/ // -w dump
    9. Firesheep

Clase 13

  1. MTA
  2. VPN

http://ubuntuguide.org/wiki/Ubuntu:Lucid#OpenVPN

Clase 14

  1. LDAP
  2. Puppet

Clase 15

  1. Evaluación

Clase 16

  1. Evaluación



Participación y Gestión de Proyectos de Software Libre

14 reuniones, 4 horas cada una = 56 horas - clases
2 reuniones,  4 horas cada uno = 8  horas - evaluaciones

Lista de la materia: tpi-est-proysl@listas.unq.edu.ar

Bibliografía

Lo que se pensaba del Futuro 15 años atrás

  • Camino al Futuro - Bill Gates
  • Ser Digital - Nicholas Negroponte

Peliculas

  • Nerds 1 y 2.0.1
  • Los piratas del Silicon Valley
  • Revolution OS
  • Linux Code
  • The History of hacking Documentary
  • En busca de hackers - Odisea
  • Hippies from hell

Libros

  • Internet, hackers y Software libre, Carlos Gradin Compilador [14]
  • Software libre para una sociedad libre - Richard Stallman [15]
  • Etica hacker, Pekka Himanen [16]
  • Aprender la Libertad, Ariel Vercelli [17]
  • Repensando los bienes intelectuales comunes, Ariel Vercelli [18]

Articulos

  • ¿Por que el futuro no nos necesita? - Bill Joy [19]
  • Trampa en el ciberespacio, Roberto Di Cosmo [20]
  • Documentos Halloween [21]
  • Anarchism Triumphant: Free software and the death of copyright [22]

En Argentina

Interncional

Evaluación


Clase 1

  1. ¿De que se trata la materia?
  2. Nacimiento de la cibercultura y cultura hackers
  3. The History of hacking Documentary (Steve Wozniak, Kevin Mitnick, John Draper, etc) [43] [44]
  4. Carta Abierta de Bill Gates a los Hobbystas: https://secure.wikimedia.org/wikipedia/en/wiki/Open_Letter_to_Hobbyists
  5. Historia en Argentina: BBS, Reuniones, Grupos, Revista electrónicas

Clase 2

  1. Revolution OS: [45][46]
  2. FSF (Free Software Foundation) [47]
  3. Proyecto GNU [48]
  1. Sitio infoleg [49]
  2. Ley de Propiedad Intelectual 11723, 25036, 24481 [50][51] [52]
  3. Registro de Software [53][54]
  4. Licencias para obras intelectuales ( Ej: Creative Commons [55][56][57] )
  5. Licencias de software y documentacion libres [58]
  6. Copyleft: ¿Qué?, ¿Compatibles GPL?
  7. Algunas: GPL, LGPL, AGPL, APACHE, Modified BSD License [59]

Clase 3

  1. Formulación de proyectos Libre
  2. Motivaciones de los desarrolladores
  3. Roles (dictador benevolente)
  4. Grupos de usuarios y organizaciones
    1. Curiosidad: Dominio linux.org.ar [60]
    2. SOLAR [61] , ViaLibre [62]
    3. USLA [63], LANUX [64], QuilmesLug [65] , Berazategui [66]
  5. La prehistoria 80 y historia de las comunicaiones USENETS [67]
    1. Clientes: Knode, Thunderbird [68],PAN [69]
    2. Online: Google Groups [70], Gmane [71]
    3. Ejemplos mensajes importantes: [72]. Ver mensaje de Linus Torvalds
    4. Servidores: listas [73], news2.neva.ru , nntp.aioe.org
  6. Herramientas comuniación y coordinación: Listas, Foros, IRC, Bug reports, Control de versiones, Manejo de proyectos
    1. Listas de Correo (publicas, desarrollo, etc)
      1. Listas varias nacionales [74][75] Anillo: [76]
      2. Netiqueta [77] - Decálogo
      3. Uso responsable de lista de correo[78]
      4. Nos suscribimos
      5. Cliente de Correo Electronico: Thunderbird [79], kmail [80]
      6. Correo Pop3, IMAP
      7. Usando gmail en thunderbird [81]
    2. Usamos el IRC para preguntar algo
      1. clientes de IRC: pidgin [82], xchat [83], [84]
      2. Servidor más común para proyectos de SL [85]
      3. Web chat de freenode [86] que usa qwebirc [87]
      4. Tutorial de IRC [88]
    3. Control del versiones (cvs, svn, git, mercurial, etc)
    4. Heramientas de manejo de proyectos:launchpad [89], trac[90], redmine [91], etc
  7. Código fuente
    1. apt-get source, apt-get build-dep, descomprimir archivos, dpkg -L paquete
    2. Explorar README, INSTALL, etc
    3. Saber compilar e instalar un programa: c, c++, paquetes necesarios, makefile, linkeado dinamico y estatico, lenaguaje interpretados etc.
      1. Probamos compilar un programa en c hecho por nosotros: gcc archivo.c -o archivo,
      2. http://www.network-theory.co.uk/docs/gccintro/gccintro_17.html
      3. ldd /bin/ls
      4. configure, make , make install
      5. ¿Compilar kernel?
    4. Manejo mínimo de control de versiones: svn, git, etc. [92]
    5. Creamos cuenta en github para probar
  8. Tarea para la próxima
    1. Armamos grupos
    2. Seleccionar paquete de software libre
    3. Analisis de caso particular:
      1. Detalles ( lenaguaje y librerias utilizadas, ¿necesita algun hw en particular?, cantidad de desarrolladores, etc)
      2. ¿Qué herramientas usan? ¿Comunicación? ¿gestión? etc)

Clase 4

Bifurcaciones/forks de proyectos (buscar ejemplos) Analisis de casos particulares de Software libre: Ver herramientas que usan (hw,sw,comunicacione, gestíon etc)

  • Seguimientos de bug - Programas BTS [93] [94]
  • reportbug, reportbug-ng

Clase 5

  1. Netiqueta

Formas de comunicación Foros, Listas, IRC, bug reports

http://wiki.debian.org/DebianPackageInformation http://wiki.debian.org/HowtoUseBTS Programas BTS


Clase 6

  1. Forjas, contribuciones, parches
  2. ¿Donde pongo mi proyecto?: Sorceforge, googlecode, github, ourproyect, etc.
  3. Busqueda de código fuente: koders

Clase 7

Control de versiones Probamos por ej Github


Clase 8

Empaquetamiento http://users.telenet.be/mydotcom/howto/linux/package.htm http://wiki.debian.org/IntroDebianPackaging https://wiki.ubuntu.com/PackagingGuide/Complete

( Posible charla Debian - Margarita Manterola )

Clase 9

Internacionalizacion y locaclizacion https://secure.wikimedia.org/wikipedia/en/wiki/GNU_gettext

(Posible ejemplo Firefox: Guillermo Movia )


Clase 10

Proyectos particulares: Wikipedia

(Posible Seminario Sebastián Bassi)


Clase 11

Proyectos particulares: SUGAR ALBA GINGA

Clase 12

Clase 13

Clase 14

Clase 15

Clase 16