viernes, 26 de febrero de 2010

SSH (SECURE SHELL)

Es un programa que permite la conexión segura hacia otra computadora con el objeto de compartir recursos.
La sintaxis es la siguiente: ssh usuario @computadora en la que esta el usuario

----------------
L507:~ alumno$ ssh darwin@192.168.2.150
Password:
Last login: Thu Feb 25 07:53:44 2010
Alf-2:~ darwin$
-----------------
Obtener las Instrucciones

Alf-2:~ darwin$ cd desktop darwin
Alf-2:desktop darwin$ ls
instrucciones
Alf-2:desktop darwin$ cat instrucciones
Para ganar un punto extra, toque la puerta tres veces. Pero ¡corra!, que sólo el primero en hacerlo lo obtendrá
Alf-2:desktop darwin$
Alf-2:desktop darwin$

---------
cerrar un programa

Ps -U darwin
kill 619

-------
abrir aplicacion

Alf-2:desktop darwin$ open /applications/itunes.app
Alf-2:desktop darwin$

-------------
para que hable

Alf-2:desktop darwin$ say hello
Alf-2:desktop darwin$

generar archivo en el desktop cuyo contenido sea hola y el nombre su nombre
nano
hola magaly
ctrl o
magaly
listo

miércoles, 24 de febrero de 2010

ELEMENTOS LEXICOS DE UN PROGRAMA

1- comentarios: anotaciones para documentar el programa . existen dos formas de colocar comentarios:
// solo para comentar un renglón
/* para mas de un renglón /*

2- palabras reservadas: palabras que tienen un determinado significado para el compilador
3- identificadores: nombres que los programadores dan a los diferentes elementos de un programa. deben de tener las sig.. características: letras,dígitos o caracteres diferentes a las palabras reservadas, o comenzar con dígitos, sensible a mayúsculas y minúsculas deben contener nombres significativos
4- operadores y punteros: los operadores indican las operaciones y los punteros agrupan o separan ejemplo: { } (llaves)
5- literales: valores constantes escritos directamente en el programa
6- directivas del preprocesador: instrucciones al compilador, comienzan con el signo de gato (#)


SENTENCIAS Y BLOQUES:

la sentencia es la representación de una acción o secuencia de acciones ejecutables (operaciones)
Los bloques son grupos de sentencias delimitadas por llaves.

Método main
Es el punto de entrada al programa y la ejecución siempre inicia en el método main.
El método main debe ser:
* declarado static y en una clase coestructura, debe de regresar void o int, debe de ser escrito Main con mayúscula y puede no tener parámetros o recibir un arreglo de strings.

lunes, 22 de febrero de 2010

C-SHARP

C-Sharp
* ¿Qué es programar?


Hacer que la computadora obedezca una serie de instrucciones bien detalladas
Usando un lenguaje de programación indicamos a la computadora que tiene que suceder a cada momento y cómo tiene que reaccionar ante la interacción del usuario.
Se conoce como programación de computadoras a la implementación de un algoritmo en un determinado lenguaje de programación conformando un programa


* Programa


Concepto desarrollado por Bon Newman en 1946. Se define como la unión de una secuencia de instrucciones que una computadora puede interpretar y ejecutar; y una o varias estructuras de datos que almacenan la información de datos y dependiente de las estructuras que dicha secuencia de instrucciones maneja.


Según Niklas Wirth un programa está formado por algoritmos y estructuras de datos.


* Lenguaje de programación


Es la traducción del lenguaje hombre al lenguaje máquina el cual tiene un número limitado de datos y palabras. Está constituido por un conjunto de reglas:


1.- sintácticas: especifican la formación de instrucciones válidas
2.- semánticas: especifican el significado de estas instrucciones


Investigar--> los antecedentes de C-shart (70's - 2010)




Antecedentes C-SHARP

1959 --> El lenguaje COBOL (acrónimo de COmmon Business -Oriented Language, Lenguaje Común Orientado a Negocios) fue creado en el año 1960 con el objetivo de crear un lenguaje de programación universal que pudiera ser usado en cualquier ordenador, ya que en los años 1960 existían numerosos modelos de ordenadores incompatibles entre sí, y que estuviera orientado principalmente a los negocios, es decir, a la llamada informática de gestión.


1962 --> SNOBOL (StriNg Oriented symBOlic Language) es un lenguaje de programación de computadoras de muy alto nivel que surgió en la década de los 60 en los Laboratorios Bell merced al equipo formado por David J. Farber, Ralph E. Griswold y Ivan P. Polonsky.


1964 --> BASIC es un lenguaje de programación que originalmente fue desarrollado como una herramienta de enseñanza; se diseminó entre las microcomputadoras hogareñas a partir de la década de 1980. Actualmente continúa siendo muy popular, en muchos dialectos bastante distintos del original. BASIC es el acrónimo de Beginners All-purpose Symbolic Instruction Code;1 por correspondencia con Thomas E. Kurtz.


1967 --> Simula es el primer lenguaje de programación orientada a objetos (OOP). Varios años después de su desarrollo, casi todos los lenguajes modernos comenzaron a utilizar sus principios de orientación a objetos. Así fue como se popularizaron términos como clases, objetos, instancias, herencia,polimorfismo, etc.


1967 --> Logo es un lenguaje de alto nivel en parte funcional en parte estructurado, de muy fácil aprendizaje, razón por la cual suele ser el lenguaje de programación preferido para trabajar con niños y jóvenes. Fue diseñado con fines didácticos por Danny Bobrow, Wally Feurzeig y Seymour Papert, los cuales se basaron en las características del lenguaje Lisp.


1969 --> B es el nombre de un lenguaje de programación desarrollado en los Bell Labs, predecesor del lenguaje de programación C. Fue mayoritariamente un trabajo de Kenneth L. Thompson con contribuciones de Dennis M. Ritchiepublicado por primera vez en el año 1969 [cita requerida].


1969 --> Smalltalk es un lenguaje de programación que permite realizar tareas de computación mediante la interacción con un entorno de objetos virtuales. Metafóricamente, se puede considerar que un Smalltalk es un mundo virtual donde viven objetos que se comunican mediante el envío de mensajes.


finales 60's --> APL (A Programing Language, también conocido como Array Processing Language desde hace algunos años) es un lenguaje de programacióninterpretado desarrollado por Kenneth Iverson, de IBM, a finales de los años 60.


principios 70's --> El Prolog (o PROLOG), proveniente del francés PROgrammation en LOGique,1 es un lenguaje de programación lógico e interpretado, bastante conocido en el medio de investigación en Inteligencia Artificial.


1970 --> Pascal es un lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth a finales de los años 60. Su objetivo era crear un lenguaje que facilitara el aprendizaje de la programación a sus alumnos. Sin embargo con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo.


1972 --> C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bellcomo evolución del anterior es decir el lenguaje B, a su vez basado en BCPL.


1973 --> En 1973, el lenguaje C se había vuelto tan potente que la mayor parte del kernel Unix, originalmente escrito en el lenguaje ensamblador PDP-11/20, fue reescrita en C. Éste fue uno de los primeros núcleos de sistema operativo implementados en un lenguaje distinto al ensamblador.


mediados 70's --> Scheme es un lenguaje de programación. Es un lenguaje funcional (si bien impuro, ya que, por ejemplo, sus estructuras de datos no son inmutables) y un dialecto de Lisp. Fue desarrollado por Guy L. Steele y Gerald Jay Sussman en la década de los setenta e introducido en el mundo académico a través de una serie de artículos conocidos como los Lambda Papers de Sussman y Steele.


1978 --> En 1978, Ritchie y Brian Kernighan publicaron la primera edición de El lenguaje de programación C, también conocido como La biblia de C. Este libro fue durante años la especificación informal del lenguaje. El lenguaje descrito en este libro recibe habitualmente el nombre de "el C de Kernighan y Ritchie" o simplemente "K&R C"


1979 --> ADA Ada es un lenguaje de programación orientado a objetos y fuertemente tipado de forma estática que fue diseñado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos. Es un lenguaje multipropósito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++..


Finales de 70's --> A finales de la década de 1970, C empezó a sustituir a BASIC como lenguaje de programación de microcomputadores predominante.


80's --> Durante ladécada de 1980 se empezó a usar en los IBM PC, lo que incrementó su popularidad significativamente.


80's--> Bjarne Stroustrup empezó a trabajar con algunos compañeros de Bell Labs para añadir funcionalidades de programación orientada a objetos a C. El lenguaje que crearon, llamado C++, es hoy en día el lenguaje de programación de aplicaciones más común en el sistema operativo Microsoft Windows


1983 --> C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.


1984 --> MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows y Apple Mac OS X.Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware.


1987 --> Perl es un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma características del lenguaje C, del lenguaje interpretado shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación. Estructuralmente, Perl está basado en un estilo de bloques como los del C o AWK, y fue ampliamente adoptado por su destreza en el procesado de texto y no tener ninguna de las limitaciones de los otros lenguajes de script.


1989 --> Tras un proceso largo y arduo, se completó el estándar en 1989 y se ratificó como el "Lenguaje de Programación C" ANSI X3.159-1989. Esta versión del lenguaje se conoce a menudo como ANSI C, o a veces como C89 (para distinguirla de C99).


1990 --> En 1990, el estándar ANSI (con algunas modificaciones menores) fue adoptado por la Organización Internacional para la Estandarización (ISO) en el estándar ISO/IEC 9899:1990. Esta versión se conoce a veces como C90. No obstante, "C89" y "C90" se refieren en esencia al mismo lenguaje.


1991 --> Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria.


1995 --> PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt oGTK+.


1999 --> C# (pronunciado si sharp en inglés) es un lenguaje de programación orientado a objetosdesarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA e ISO. En enero de 1999, Anders Hejlsberg formó un equipo con la misión de desarrollar un nuevo lenguaje de programación llamado Cool (C Orientado a Objetos). Este nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse C♯ aunque habitualmente se escribe C#.1 La biblioteca de clases de la plataforma .NET fue migrada entonces al nuevo lenguaje.
Hejlsberg lideró el proyecto de desarrollo de C♯. Anteriormente, ya participó en el desarrollo de otros lenguajes como Turbo Pascal, J++ y Borland Delphi


2000 --> Tras el proceso de estandarización de ANSI, la especificación del lenguaje C permaneció relativamente estable durante algún tiempo, mientras queC++ siguió evolucionando. Sin embargo, el estándar continuó bajo revisión a finales de la década de 1990, lo que llevó a la publicación del estándar ISO 9899:1999 en 1999. Este estándar se denomina habitualmente "C99". Se adoptó como estándar ANSI en marzo de 2000.


2001--> C♯, como parte de la plataforma.NET, está normalizado por ECMA desde diciembre de 2001 (C# Language Specification "Especificación del lenguaje C♯").


2005--> El 7 de noviembre de 2005 salió la versión 2.0 del lenguaje que incluía mejoras tales como tipos genéricos, métodos anónimos, iteradores, tipos parciales y tipos anulables.


2007--> El 19 de noviembre de 2007 salió la versión 3.0 de C# destacando entre las mejoras los tipos implícitos, tipos anónimos y LINQ (Language Integrated Query -consulta integrada en el lenguaje).

PROCESOS

ps -U alumno----> muestra todos los procesos que en la computadora se están ejecutando o los programas abiertos
PID-------> process ID, identifica el proceso que estamos encontrando y son números en la izquierda
kill 223 (ID)----> quita, elimina o cierra el programa



SCRIPTS

un script es un programa pequeño que dentro de unix puede ser creado desde cualquier editor de textos como por ejemplo NANO
ejemplo: abrimos nano, pusimos ls -l , guardamos el archivo ls -l, el archivo aparecio con el icono de una hoja con una esquina doblada , cambiamos los permisos a 777 con chmod 777 mag (nom del archivo) y ya te aparece tu archivo como un programa ocea lo convierte en programa.

./mag(nom del archivo): ejecuta los archivos, dentro de la terminal te deja correr un script (programa)

miércoles, 17 de febrero de 2010

capitulo 8 actividades

Firewalls



IDS e IPS




Seguridad de transmisión inalámbrica

Plan de recuperación de desastres



ACL (Lista de control de acceso)
Una Lista de Control de Acceso o ACL (del ingles, Access Control List) es un concepto de seguridad informatica usado para fomentar la separacion de privilegios. Es una forma de determinar los permisos de acceso apropiados a un determinado objeto, dependiendo de ciertos aspectos del proceso que hace el pedido.

Las ACLs permiten controlar el flujo del tráfico en equipos de redes, tales como routers y switches. Su principal objetivo es filtrar tráfico, permitiendo o denegando el tráfico de red de acuerdo a alguna condición. Sin embargo, también tienen usos adicionales, como por ejemplo, distinguir "tráfico interesante" (tráfico suficientemente importante como para activar o mantener una conexión) en IDSN.

Proceso de configuración de ACL

El proceso de creación de una ACL se lleva a cabo creando la lista y posteriormente asociándola a una interfaz entrante o saliente.
Configuración de ACL estándar

Router(config)#access-list[1-99][permit|deny][dirección de origen][mascara comodín]

Donde:

1-99 Identifica el rango y la lista.

Permit|deny indica si esta entrada permitirá o bloqueará el tráfico a partir de la dirección especificada.

Dirección de origen identifica la dirección IP de origen.

Mascara comodín o wildcard identifica los bits del campo de la dirección que serán comprobados.

La mascara predeterminada es 0.0.0.0 (coincidencia de todos los bits).
Asociación de la lista a una interfaz

Router(config-if)#ip access-group[nº de lista de acceso][in|out]

Donde:

Número de lista de acceso indica el número de lista de acceso que será aplicada a esa interfaz.

In|out selecciona si la lista de acceso se aplicará como filtro de entrada o de salida.
Ejemplo de una ACL estándar denegando una red:

Router#configure terminal
Router(config)#access-list 10 deny 192.168.1.0 0.0.0.0
Router(config)#access-list 10 permit any
Router(config)#interface serial 0
Router(config-if)#ip access-group 10 in

Se ha denegado al host 192.168.1.0 y luego se ha permitido a cualquier origen,
Posteriormente se asocio la ACL a la interfaz Serial 0.
Configuración de ACL extendida

El proceso de configuración de una ACL IP extendida es el siguiente:

Router(config)#access-list[100-199][permit|deny][protocol][dirección de origen][mascara comodín][dirección de destino][mascara de destino][puerto][establisehed][log]
100-199 identifica el rango y número de lista
Permit|deny: indica si la entrada permitirá o bloqueara la dirección especificada.
Protocolo: como por ejemplo IP, TCP, UDP, ICMP

Dirección origen y destino: identifican direcciones IP de origen y destino.

Mascara wildcard origen y mascara destino: Son las mascaras comodín. Las 0 indican las posiciones que deben coincidir, y los 1 las “que no importan”.

Puerto:(opcional) puede ser por ejemplo: lt (menor que), gt (mayor que), eq (igual a), o neq (distinto que) y un número de puerto de protocolo correspondiente.

Establisehed: (opcional) Se usa solo para TCP de entrada. Esto permite que él rafico TCP pase si el paquete utiliza una conexión ya establecida (por ejemplo posee un conjunto de bits ACK)

Log: (opcional) Envía un mensaje de registro a la consola a un servidor syslog determinado.

Algunos de los números de puertos más conocidos:

20 Datos del protocolo FTP
21 FTP
23 Telnet
25 SMTP
69 TFTP
53 DNS


Asociación de la lista a una interfaz

Router(config-if)#ip access-group[nº de lista de acceso][in|out]

Donde:

Número de lista de acceso indica el número de lista de acceso que será aplicada a esa interfaz.

In|out selecciona si la lista de acceso se aplicará como filtro de entrada o de salida.


Ejemplo de una ACL Extendida denegando un host hacia el puerto 80 de una red:

Router(config)#access-list 120 deny tcp host 204.204.10.1 any eq 80
Router(config)#access-list 120 permit ip any any
Router(config)#interface serial 1
Router(config-if)#ip access-group 120 in

Se ha denegado al host 204.204.10.1, (identificándolo con la abreviatura “host”) hacia el puerto 80 de cualquier red de destino (usando el termino any). Posteriormente se permite todo trafico IP. Esta ACL se asocio a la interfaz Serial 1 como entrante.
Aplicación de una ACL a la linea de telnet

Para evitar intrusiones no deseadas en las conexiones de telnet se puede crear una
lista de acceso estándar y asociarla a la Line VTY. El proceso de creación se lleva a cabo como una ACL estándar denegando o permitiendo un origen hacia esa interfaz. El modo de asociar la ACL a la Línea de telnet es el siguiente:

router(config)#line vty 0 4
router(config-line)#access-class[Nº de lista de acceso][in|out]


Como eliminar las listas de acceso

Desde el modo interfaz donde se aplico la lista:

Router(config-if)#no ip access-group[Nº de lista de acceso]

Desde el modo global elimine la ACL

router(config)#no access-list[Nº de lista de acceso]

ejemplos de fases

Ejemplo: solucion de una llamada telefonica


1.Analisis: ¿que voy a hacer?

Realizar una llamada telefonica


2.Definicion: ¿a quien?

Llamar a Pedro


3. Entradas: ¿que hay? ¿con que estoy contando?

Telefono, tarjeta y número


4.Salida

Establecer la comunicación


5.Proceso

Legar al telèfono

verificar si hay fila

descolgar el teléfono, introducir tarjeta

escuchar tono

confirmar saldo

marcar número

escuchar tono


6.Comprobación

Haber realizado la llamada


Fases de Solución de un problema con computadora


Ejemplo: solucion de una receta(galletas)


1.

Analisis: ¿que voy a hacer?

Realizar unas galletas


2. Definicion: ¿para que?

Para regalar a amigos


3. Entradas: ¿que hay? ¿con que estoy contando?

Huevos, harina, mantequilla, chispas de chocolate, azúcar, vainilla, batidora, horno, charola.


4. Salida

Ricas galletas con chispas de chocolate


5.Proceso

colocar la mantequilla en la batidora hasta que se ponga cremosa

agregar azucar en la batidora

agregar vainilla en la batidora

sacar la pasta de la batidora y agregar la harina

agregar las chispas de chocolate

acomodar la masa en la forma deseada

colocar en la charola

hornear a 180 grados 30 minutos


6. Comprobación

Haber comido y regalado las galletas a los amigos

viernes, 5 de febrero de 2010

ejemplos de terminal

Last login: Fri Feb 5 10:20:57 on console
L507:~ alumno$ cd desktop
L507:desktop alumno$ echo hola > mm
L507:desktop alumno$ ls
biplane.jpg mm pc051991.jpg pict3723.jpg untitled folder
L507:desktop alumno$ cat mm
hola
L507:desktop alumno$ mv mm adolfo
L507:desktop alumno$ ls
adolfo biplane.jpg pc051991.jpg pict3723.jpg untitled folder
L507:desktop alumno$ cp adolfo magaly
L507:desktop alumno$ ls
adolfo magaly pict3723.jpg
biplane.jpg pc051991.jpg untitled folder
L507:desktop alumno$ rm adolfo
L507:desktop alumno$ ls
biplane.jpg magaly pc051991.jpg pict3723.jpg untitled folder
L507:desktop alumno$ nano
L507:desktop alumno$ nano
L507:desktop alumno$ nano magy.txt
L507:desktop alumno$

MANEJADORES DE TEXTO

son 3:

1-EDITORES: no me interesa cambiara tipos de letra, estilos, tamaños, es simplemente texto por el texto como:
block de notas
text edit
vi (en unix):es el mejor pero es complejo
emacs (en unix)
nano(en unix): es el mas sencillo por facilidad de uso

2-PROCESADORES: aqui si es importante el tamaño, estilo, letra,etc.. como:
word
pages
open office

3-MAQUETADORES: la forma diseño y acomodo de objetos lo es todo:
quark xpress
in design