Diferencia entre revisiones de «Universisdad Nacional de Quilmes»
Línea 477: | Línea 477: | ||
## Control del versiones (cvs, svn, git, mercurial, etc) | ## Control del versiones (cvs, svn, git, mercurial, etc) | ||
## Heramientas de manejo de proyectos:launchpad [https://launchpad.net/], trac[http://trac.edgewall.org/], redmine [http://www.redmine.org/], etc | ## Heramientas de manejo de proyectos:launchpad [https://launchpad.net/], trac[http://trac.edgewall.org/], redmine [http://www.redmine.org/], etc | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
# Tarea para la próxima | # Tarea para la próxima | ||
## Armamos grupos | ## Armamos grupos | ||
Línea 514: | Línea 503: | ||
==Clase 4== | ==Clase 4== | ||
+ | |||
+ | # Código fuente | ||
+ | ## apt-get source, apt-get build-dep, descomprimir archivos, dpkg -L paquete | ||
+ | ## Explorar README, INSTALL, etc | ||
+ | ## Saber compilar e instalar un programa: c, c++, paquetes necesarios, makefile, linkeado dinamico y estatico, lenaguaje interpretados etc. | ||
+ | ### Probamos compilar un programa en c hecho por nosotros: gcc archivo.c -o archivo, | ||
+ | ### http://www.network-theory.co.uk/docs/gccintro/gccintro_17.html | ||
+ | ### ldd /bin/ls | ||
+ | ### configure, make , make install | ||
+ | ### ¿Compilar kernel? | ||
+ | ## Manejo mínimo de control de versiones: svn, git, etc. [http://git.or.cz/course/svn.html] | ||
+ | ## Creamos cuenta en github para probar | ||
Bifurcaciones/forks 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) |
Revisión del 03:20 2 sep 2011
Sumario
- 1 Laboratorio de Redes y Sistemas Operativos - Tecnología en redes II
- 1.1 Bibliografía
- 1.2 Evaluación
- 1.3 Clase 1
- 1.4 Clase 2
- 1.5 Clase 3
- 1.6 Clase 4
- 1.7 Clase 5
- 1.8 Clase 6
- 1.9 Clase 7
- 1.10 Clase 8
- 1.11 Clase 9
- 1.12 Clase 10
- 1.13 Clase 11
- 1.14 Clase 12
- 1.15 Clase 13
- 1.16 Clase 14
- 1.17 Clase 15
- 1.18 Clase 16
- 2 Participación y Gestión de Proyectos de Software Libre
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
- Ubuntu Server Guide: https://help.ubuntu.com/10.04/serverguide/C/index.html
- GNU/Linux Desktop Survival Guide: http://www.togaware.com/linux/survivor/
- 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
- HowtoForge: http://www.howtoforge.com/
otros
- CommandLineFu:http://www.commandlinefu.com/
Evaluación
Guia paso a paso con licencia Libre
- Relevar maquina y sistema operativo utilizado
- Lograr instalar y probar
- Hacer un instructivo paso a paso
- Mostrarlo y explicar a los compañeros
- Formato rst: http://revista.python.org.ar/1/html/comohacer.html
Posible temas para evaluación
- Ulteo
- Ebox
- Clientes livianos: LTSP/ TCOS
- Streaming Audio ( icecast2, darkice)
- Microblogging ( Statusnet ), con servidor jabber
- ¿Streaming video?: Ej: http://www.wikihow.com/Stream-Your-Webcam, http://www.estrellateyarde.org/discover/streaming-en-linux, Icecast / html5 video tag, http://elelefantemoteado.com.ar/txt/transmitir-ogg-video-en-vivo/
- VoIP ( freeswitch, elastix, debswitch)
- Turnkey
- Red Social tipo Facebook ( diaspora, gnusocial, elgg, gnewbook etc)
- Rivendell: http://www.rivendellaudio.org/
- Mesajería Instantanea: IPTUX; jabberd2, ejabberd
- Symfony 2
- GTK 3.2 correr app en browser: http://blogs.gnome.org/alexl/2011/03/15/gtk-html-backend-update/, http://live.gnome.org/GTK+/Roadmap
- http://www.fsf.org/blogs/community/skype-replacement-projects
- http://movid.org/
- Artoolkit
- http://linuxgazette.net/109/john.html
- ginga-ncl http://wiki.ginga.org.ar/
2do Semestre de 2010
Redes Sociales
- Statusnet y Diaspora
- Trabajo terminado: http://www.joseluisdibiase.com.ar/alec/Diaspora.tar.gz y http://www.joseluisdibiase.com.ar/alec/StatusNet.tar.gz
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
- Presentción de la materia
- ¿Que vamos a hacer durante las clases?
- Forma de evaluación
- ¿Porque usamos Software Libre?
- Nuestros amigos (Bibliografía)
- Libros
- Listas de Correos
- Foros
- Instalación de GNU/Linux (varias formas de instalación cd,dvd,usb,red)
- Diferentes Distribuciones: ¿Porque usamos Debian y/o Ubuntu?
- Diferentes Filesystems
- Particionado de disco (/home /var swap, lvm, raid, crypto)
- Puntos de montaje
- Administrador de arranque
- Concepttos básicos
- Directorios ( /etc , /proc, /home, /var /usr /bin /sbin /boot etc).
- Archivos ( ocultos, passwd, groups, etc)
- Permisos
- 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
- Administración de paquetes: https://help.ubuntu.com/10.04/serverguide/C/package-management.html
- Bajar: http://sourceforge.net/projects/geeqie/
- Comprimir/descomprimir: ( bzip2, gzip, tar, rar, zip) ej: tar zxvf archivo, tar zcvf , tar jxvf, tar jcvf
- Compilar un software en c ( descomprimir, configure, make, make install )
- Archivos comunes ( LICENSE, README, INSTALL )
- 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)
- ¿Qué son los repositorios? Instalar desde los Repositorios (/etc/apt/sources.list, Ubuntu ppa, Agregar debian-multimedia)
- Synaptic
- Ajustando entorno de trabajo
- Aplicaciones preferidas
- Línea de comando (terminal/consola/shell) vs. Entorno gráfico (ej: synaptic(gui grafica), apt-get(no gui), aptitude(gui txt))
- Configuracion de red de la maquina cliente (IP, GW, DNS, HOSTNAME)
- Usando la configuración automatizada de debian ( /etc/network/interfaces y comando ifup, ifdown)
- Usando ip, ifconfig, route, resolv.conf, hostname, hosts )
- Bash [3]
- Instalamos SSH (forma común de administración de servidores): https://help.ubuntu.com/10.04/serverguide/C/openssh-server.html
- ¿Donde puedo configurarlo? /etc/ssh
- Como se ejecuta desde el inicio, como lo ejectuo ( invoke-rc.d, update-rc.d, service )
- Generamos y copiamos claves (herramientas ssh-copy-id, ssh-key-gen )
- cambiamos de maquinas y administramos
- Diferentes clientes: ssh, putty, winscp
- Usamos scp
- ssh -X (levantar X en otro maquina )
- Diferentes opciones de ssh (ej -t, socks, forward port, scp ):http://blog.rodrigorega.es/proxy-socks-via-tunel-ssh-para-navegar-seguro/
- Ej: ssh -N -C -D 9999 NOMBRE_USUARIO@IP_SERVIDODR_SSH -p PUERTO
Clase 3
- 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
- Probamos el cliente desde la linea de comandos ( dhclient )
- FreeNX: http://ubuntuguide.org/wiki/Ubuntu:Lucid#FreeNX
- 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
- Usamos dig ( ej: dig ar ns )
- Por cada tipo de servicio existen varias opciones: dnsmasq, bind9, ISC, etc.
- Firewall https://help.ubuntu.com/8.04/serverguide/C/firewall.html
- Conceptos básicos ( filtrado de paquetes, Masquerading, port forward, logs, etc)
- Otras Herramientas (ufw, pfsense, firestarter, sistemas embebidos: ddwrt, tomatoe, openwrt, coyote etc)
- Cliente de DNS Dinamico (ddclient)
- NFS
Clase 4
- Comunicación con Windows: Samba
- Servidor FTP: Vsftpd
- Servicios de impresión:
- Cups (Instalar de prubea una impresora pdf - instalar cups-pdf)
- Herramientas de cups (lp) en terminal: http://www.g-loaded.eu/2005/11/10/using-a-cups-printer-from-command-line/
- CRON, ANACRON
- Links duros y simbolicos
- Backup: Rsnapshot (alternativas: bacula, amanda etc)
Clase 5
- Instalar y probar apt-cacher-ng
- Manejo de bugs
- Debian: http://www.debian.org/Bugs/
- Launchpad: https://bugs.launchpad.net/
- reportbug, reportbug-ng,
- Listas de Anuncios de seguridad ( http://lists.debian.org/debian-security-announce/, https://lists.ubuntu.com/mailman/listinfo/ubuntu-security-announce )
- ¿Como usar una lista de correo? http://www.debian.org/MailingLists/index.es.html
- Seguir anuncios de RSS (ej: http://www.ubuntu.com/usn/rss.xml). Instalar para probar: Liferea
- Introducción a fuentes de Debian
- ¿Qué es diff?
- Ver Bug de JMDLX
- apt-get source jmdlx
- Explicación sobre los archivo que bajamos
- apt-get build-dep jmdlx
- dpatch apply, ./debian/rules patch unpatch
- Modificamos código fuente
- Usar dpatch-edit-patch para crear parche
Clase 6
- Servidores web
- Lógica del protocolo HTTP ( GET, POST, etc)
- Apache
- Introcucción
- Programación: PHP, Python, Ruby on rails, Perl, C, C++, etc
- Modulos para Apache ( agregar, quitar, etc) a2enmod, a2dismod
- Host virtuales ( crear, borrar, habilitar, etc) a2ensite, a2dissite
- Existen otros ( lighthtpd, cherokee, nginx etc)
- Probar desde una terminal un GET al servidor ( telnet server 80 ej: get / http/1.1 enter )
- Instalar en Firefox: livehttpheaders y usarlo (http://livehttpheaders.mozdev.org/)
- Motores de Bases de datos
- Conocimientos mínimos de SQL
- Postgresql
- Instalción básica (http://www.postgresql.org/docs/8.4/static/admin.html)
- Linea comandos: cliente psql
- otros clientes
- Mysql
- Instalción básica
- Linea comandos: cliente mysql
- otros clientes
- SQLite (http://www.sqlite.org/sqlite.html)
Clase 7
- Sistema de control de versiones
- Lógica, Funcionamiento
- Diferentes opciones: cvs, mercurial, svn, git, bazaar
- Subversion: ( https://help.ubuntu.com/10.04/serverguide/C/subversion.html, http://svnbook.red-bean.com/ )
- Instalación
- Utilización (status, diff, Add, commit, conflictos, properties edit/Add/del )
- Cliente con GUI: Tortoise, Rabbit, kdesvn, Rapidsvn, etc)
- GIT
- Conceptos y historia: Sucesor de Bitkepper en Kernel de Linux, Linus Torvalds, Sistema distribuido de control de versiones, Relacionar con SVN
- Utilización báscia ( creación de repositorio para ejemplo y comandos init, add, commit, push , clone, pull, tag, etc)
- Clientes con GUI ( gitg)
Clase 8
- Aplicaciones LAMP/LAPP (con vhost)
- Conocimientos mínimos (php_info, conexion a db, etc)
- INstalar aplicaciones para probar
- Phpmyadmin
- Wordpress (bajar del sitio web: http://wordpress.org/download/, ponerle traduccion al español y tema gráfico)
- Otras apps - Administración de proyectos ( bug tracker, control versiones, colaboración): trac, redmine, bugzilla, mantis, bugzilla
- Instalar Trac (crear repo de svn y utilizar webserver integrado)
- Instalar Piwik (http://piwik.org )
Clase 9
- Frameworks
- ¿Para qué?
- ¿Por qué?
- Diferentes opciones Symfony: Ejemplo...
- PHP: Symfony, Zend Framework, (millones más)
- Pyhton: Django, TurboGears
- Ruby: Ruby on rails
- CherryPy (http://www.cherrypy.org/wiki/CherryPyTutorial)
- Symfony
- Mostar carácteristicas
- Probamos hacer un ABM rápidamente
Clase 10
- Monitoreo
- OCSinventory: Inventario de maquinas
- http://www.ocsinventory-ng.org/
- Instalación de ocsinventory-server y reports (admin:admin)
- INstalación de ocsinventory-agent
- Nagios3: Monitor de red
- Munin (monitoreo de discos, servicios, etc)
- http://munin-monitoring.org/
- https://help.ubuntu.com/10.04/serverguide/C/munin.html
- INstalar servidor y node
- OCSinventory: Inventario de maquinas
Clase 11
- Virtualización
- Diferentes Opciones: Openvz, Vservers, Qemu, VBox, Xen
- Mostrar Ejempos simples con Qemu correr Livec: qemu -boot d -cdrom /dev/cdrom
- Mostrar: Virtual Box http://www.virtualbox.org/ http://code.google.com/p/phpvirtualbox/
- Mostar e Instalar: Proxmox http://pve.proxmox.com/
- Descargar Maquinas virtuales
Clase 12
- Seguridad
- Claves de clientes y servidores
- Mostrar gorilla,kedpm, keepassx
- GNUPg [4]
- Implementación de estandar OpenGPG
- Clave publica, clave privada. Cifrar y/o firmar
- 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]
- Buscamos clave en servidor pgp.mit.edu
- Uso de seahorse [6]
- Probamos extensiones para firefox: Firegpg [7], S/MIME [8]
- 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
- Probar cliente de correo: thunderbird
- Estar al tanto de los fallos de seguridad de paquetes (listas de avisos)
- Al menos tener mínimos conocimientos de posibles problemas al desarrollar (buffer overflows, sql injections, xss, etc)
- Ver video de ejemplos de sql injections http://www.joseluisdibiase.com.ar/alec/exploit_via_sq_injection.flv
- Ejemplo sitio de corradir: http://www.coradir.com.ar/filtro_productos.php?id=878999999%20or%20id=8
- Verificar/Jugar con sitios web probando las aplicaciones
- Instalar Firebug (analisis rápido de html para sitios web)
- A mano, que muestre errores (ej: Scaneando el sitio, probar ids a mano, metiendo caracteres como ' ", etc)
- Usando herramientas más especializadas: nikto, nmap
- Datos como el de robots.txt (http://www.robotstxt.org/)
- Probar seguridad mínimamente de sitio de la UNQ. EJ: biblio.unq.edu.ar, uvq.edu.ar, etc.
- Backtrack (Distro linux para penetration testing) [11]
- Comentar sobre w3af, metasploit
- WireShark [12]/Ettercap [13] - captura de paquetes en la red: ettercap -Tq -i interfaz -M arp:remote /ip_gateway/ // -w dump
- Firesheep
- Claves de clientes y servidores
Clase 13
- MTA
- VPN
http://ubuntuguide.org/wiki/Ubuntu:Lucid#OpenVPN
Clase 14
- LDAP
- Puppet
Clase 15
- Evaluación
Clase 16
- 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
- Llaneros Solitarios, Raquel Roberti y Fernando Bonsembiante [23][24][25][26][27][28][29][30]
- Mendozaconch 95, Fernando Bonsembiante [31]
- Congreso de hackers en Buenos Aires, Raquel Roberti [32]
- HBO- hacked by owl - zine Argento [33][34][35]
- Minotauro [36] [37]
- CIA [38]
Interncional
Evaluación
Clase 1
- ¿De que se trata la materia?
- Nacimiento de la cibercultura y cultura hackers
- The History of hacking Documentary (Steve Wozniak, Kevin Mitnick, John Draper, etc) [43] [44]
- Carta Abierta de Bill Gates a los Hobbystas: https://secure.wikimedia.org/wikipedia/en/wiki/Open_Letter_to_Hobbyists
- Historia en Argentina: BBS, Reuniones, Grupos, Revista electrónicas
Clase 2
- Sitio infoleg [49]
- Ley de Propiedad Intelectual 11723, 25036, 24481 [50][51] [52]
- Registro de Software [53][54]
- Licencias para obras intelectuales ( Ej: Creative Commons [55][56][57] )
- Licencias de software y documentacion libres [58]
- Copyleft: ¿Qué?, ¿Compatibles GPL?
- Algunas: GPL, LGPL, AGPL, APACHE, Modified BSD License [59]
Clase 3
- Formulación de proyectos Libre
- Motivaciones de los desarrolladores
- Roles (dictador benevolente)
- Grupos de usuarios y organizaciones
- La prehistoria 80 y historia de las comunicaiones USENETS [67]
- Herramientas comuniación y coordinación: Listas, Foros, IRC, Bug reports, Control de versiones, Manejo de proyectos
- Tarea para la próxima
- Armamos grupos
- Seleccionar paquete de software libre
- Analisis de caso particular:
- Detalles ( lenaguaje y librerias utilizadas, ¿necesita algun hw en particular?, cantidad de desarrolladores, etc)
- ¿Qué herramientas usan? ¿Comunicación? ¿gestión? ¿listas? ¿IRC? ¿HIstoria del proyectos? etc)
- Buenas evaluacion de software libre pueden encontrar en: QSOS [92]
- Listado de caracteristicas a encontrar
- Nombre
- Licencia
- Origen (nacioalidad de 1er desarrollador/empresa, o donde vive)
- Si existe Mínima Historia
- Tiene sitio web propio o esta en forja. ¿Cual es la direccion?
- Desarrolladores (pocos, muchos, etc)
- LIstas
- Canal de IRC
- Foros
- Usa algo para seguimiento de bugs o manejo de proyectos. ¿Cual?
- Sistema de Control de versiones: ¿Cual?
- Lenaguaje de programación
- ¿Que librerias usa?
- Traducciones ¿a que idiomas?
- Documentación en el sitio y en otro sitios
Clase 4
- Código fuente
- apt-get source, apt-get build-dep, descomprimir archivos, dpkg -L paquete
- Explorar README, INSTALL, etc
- Saber compilar e instalar un programa: c, c++, paquetes necesarios, makefile, linkeado dinamico y estatico, lenaguaje interpretados etc.
- Probamos compilar un programa en c hecho por nosotros: gcc archivo.c -o archivo,
- http://www.network-theory.co.uk/docs/gccintro/gccintro_17.html
- ldd /bin/ls
- configure, make , make install
- ¿Compilar kernel?
- Manejo mínimo de control de versiones: svn, git, etc. [93]
- Creamos cuenta en github para probar
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
- Netiqueta
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?: Sorceforge, googlecode, github, ourproyect, etc.
- 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