Diferencia entre revisiones de «Universisdad Nacional de Quilmes»

De m1w1k1
Ir a la navegaciónIr a la búsqueda
Línea 366: Línea 366:
 
==Clase 16==
 
==Clase 16==
 
# Evaluación
 
# Evaluación
 +
  
  
Línea 387: Línea 388:
  
 
Introducción a la temática:
 
Introducción a la temática:
# Nacimiento de la cibercultura y cultura hackers
+
 
# Carta de Bill Gates al Grupo
+
# Nacimiento de la cibercultura y cultura hackers:
# Revolucion OS
+
# Carta Abierta de Bill Gates a los Hobbystas: https://secure.wikimedia.org/wikipedia/en/wiki/Open_Letter_to_Hobbyists
 +
# Revolucion OS: http://www.revolution-os.com/
 
# SL: Principios
 
# SL: Principios
 +
  
 
==Clase 2==
 
==Clase 2==
Línea 397: Línea 400:
 
obras intelectuales, en particular el software, variantes de licencias de  
 
obras intelectuales, en particular el software, variantes de licencias de  
 
software libre, leyes internacionales, leyes Argentinas
 
software libre, leyes internacionales, leyes Argentinas
 +
 +
( Posible Ariel Vercelli )
  
 
Netiqueta
 
Netiqueta
Línea 411: Línea 416:
 
==Clase 4==
 
==Clase 4==
  
Bifurcaciones de proyectos (buscar ejemplos)
+
Bifurcaciones/forks  de proyectos (buscar ejemplos)
 
Analisis de casos particulares de Software libre: Ver herramientas que usan (hw,sw,comunicacione, gestíon etc)
 
Analisis de casos particulares de Software libre: Ver herramientas que usan (hw,sw,comunicacione, gestíon etc)
  
Línea 419: Línea 424:
 
Formas de comunicación
 
Formas de comunicación
 
Foros, Listas, IRC, bug reports
 
Foros, Listas, IRC, bug reports
 +
 +
http://wiki.debian.org/DebianPackageInformation
 +
http://wiki.debian.org/HowtoUseBTS
 +
Programas BTS
 +
  
  
Línea 430: Línea 440:
  
 
Control de versiones
 
Control de versiones
 +
Probamos por ej Github
  
  
Línea 435: Línea 446:
  
 
Empaquetamiento
 
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==
 
==Clase 9==
  
 
Internacionalizacion y locaclizacion
 
Internacionalizacion y locaclizacion
 +
https://secure.wikimedia.org/wikipedia/en/wiki/GNU_gettext
 +
 +
(Posible ejemplo Firefox: Guillermo Movia )
 +
  
 
==Clase 10==
 
==Clase 10==
Línea 445: Línea 464:
 
Proyectos particulares:
 
Proyectos particulares:
 
Wikipedia
 
Wikipedia
 +
 +
(Posible Seminario Sebastián Bassi)
  
  

Revisión del 10:55 16 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. Administrador de arranque
  5. Concepttos básicos
    1. Directorios ( /etc , /proc, /home, etc).
    2. Archivos ( ocultos, passwd, groups, etc)
    3. Permisos
    4. Comandos básicos: ls, cat, cd, man, apropos


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, 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. 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 [3]
      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 ) [4]
      4. Buscamos clave en servidor pgp.mit.edu
      5. Uso de seahorse [5]
      6. Probamos extensiones para firefox: Firegpg [6], S/MIME [7]
      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 [8]
      2. Securityfocus - bugtraq [9]
      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) [10]
    7. Comentar sobre w3af, metasploit
    8. WireShark [11]/Ettercap [12] - 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

Evaluación


Clase 1

¿De que se trata la materia?

Introducción a la temática:

  1. Nacimiento de la cibercultura y cultura hackers:
  2. Carta Abierta de Bill Gates a los Hobbystas: https://secure.wikimedia.org/wikipedia/en/wiki/Open_Letter_to_Hobbyists
  3. Revolucion OS: http://www.revolution-os.com/
  4. SL: Principios


Clase 2

Copyright, Licencias para obras intelectuales, en particular el software, variantes de licencias de software libre, leyes internacionales, leyes Argentinas

( Posible Ariel Vercelli )

Netiqueta


Clase 3

Formulación de proyectos Libre: Herramientas básicas, coordinación Motivaciones de los desarrolladores roles (dictador benevolente)


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)


Clase 5

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

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


Clase 6

Forjas, contribuciones, parches ¿Donde pongo mi proyecto?


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

Clase 12

Clase 13

Clase 14

Clase 15

Clase 16