lunes, 3 de marzo de 2008

¿Por qué Windows se mantiene en la preferencia por encima de Linux?

elprofet@ [sedelisa@uh.cu]

Antes que todo hay que partir desde el punto de vista de cada consumidor de software.
Los fanáticos a Windows (Win) defienden a capa y espada su criterio de que Win es lo mejor y los que trabajamos con GNU/Linux (G/L) hacemos otro tanto por lo que creemos es la solución perfecta para Cuba y el mundo.

Si bien no todos lo sabemos, el gobierno cubano, a través de la Resolución 3390 la cual ha sido ratificada como Ley desde octubre del 2007, apoya el proceso de migración a software libre (SL).
Ahora, donde está el meollo del asunto.
Resulta que la mayor barrera que se ha levantado en contra de G/L en nuestra nación es la de la comodidad.

¡Si no se asombren!

Ha sido la comodidad que brinda el uso de Win y por la cantidad de aplicaciones que para este SO existen en nuestro país, amén de que todo o casi todo este software es "pirata" tanto como las mismas distribuciones de Win que existen en Cuba.

Por otro lado encontramos que G/L es completamente libre y en muchas ocasiones (la mayoría) se adquiere gratis, ya sea por descarga del iso de la distro como por compra On line o solicitud del disco (en el caso de Ubuntu).

Lo que sucede es que ninguno de los usuarios de Win ha tenido que desembolsar lo que realmente cuesta el CD de instalación y mucho menos el del paquete de Office lo cual representaría un coste de casi 800.00$ o más. Una bicoca si tenemos en cuenta lo que costarían los otros programas que se utilizan en el trabajo con este SO.

Aunque si algo bueno posee Win son la cantidad de aplicaciones para el monitoreo y administración de redes en un entorno puramente gráfico lo cual las hace fácil de aprender (son muy intuitivas) no así como en G/L que esta misma faena se realiza en modo consola (para eso utilizamos Nagios), aunque ya existe una herramienta para esto con una interface gráfica.

Si bien ésta, la comodidad que brinda Win, es una razón para no abandonarlo, también no es menos cierto que los programas de estudio de nuestras escuelas siguen estando enfocadas hacia Win y no dan chance a que G/L llegue a ser conocido por todos de alguna manera.
Para que se tenga una idea de esto diré que los estudiantes de técnico medio en informática apenas reciben clases de G/L (conmigo trabajan dos muchachas graduadas que dicen que sólo tuvieron 5 clases de G/L), ¡así nunca!

Como quiera que sea G/L se erige como "la Alternativa Informática para Las Américas" :-) dada su flexibilidad y lo "relativamente" fácil de su manejo. Acoto lo de "relativamente fácil" porque en realidad puede resultarle un poco difícil, sino trabajoso, al que se sumerge por primera vez en el trabajo con las distro de G/L pero eso no es nada, ya que al ir ganando en conocimiento y dominio del trabajo con la distro se llega a la conclusión de que G/L es realmente muy intuitivo en cuanto a su uso y explotación.

Además, el trabajo con las distro de Linux permite "reciclar" el conocimiento, pues cuando se trabaja en modo consola debemos, en muchas ocasiones, acudir a los conocimientos adquiridos con ya casi desterrado y olvidado MS-DOS puesto que muchos de los comandos (y algunas variaciones de estos) de éste se utilizan en la consola de G/L. A esto se suma la constante retroalimentación de los programadores, colaboradores, traductores y en fin de la totalidad de la comunidad del SL que acude a las listas de distribución y discusión en busca de ayudas y/o documentación sobre algún problema en particular y todo gracias a la enorme comunidad que da soporte  y apoyo a sus miembros de manera "GRATUITA" :-o))) Atención: con G/L no se cumple el dicho que dice que "lo barato sale caro."

Con G/L si tienes un problema al que no le encuentras solución puedes solicitar ayuda sin pena que para eso estamos acá, para ayudarnos unos a otros y esa filosofía o manera de pensar nos convierte en una especie de "filántropos" a la vez que nos cataloga como los "comunistas" de la informática como dijera en una ocasión Bill Gates.

No obstante reconozco que debemos trabajar aun más en el desarrollo de aplicaciones que permitan la migración al SL, sino de una forma masiva al menos de manera discreta.

Por poner un ejemplo, aun no nos hemos concentrado (de manera general) en el desarrollo de Bases de Datos (BD) para el mercado Nacional e Internacional (hasta ahora no tengo conocimiento de que se trabaje en ésta área) y eso es un error que debemos subsanar puesto que las BD son utilizadas en casi (por no decir todas) la mayoría de las empresas del mundo amén de que hasta el presente el mayor uso que le hemos dado a G/L a sido en Servidores.

Resumiendo.

Creo que si nos enfocamos en el desarrollo de aplicaciones (por ejemplo BD para el perfil económico, o lo que es lo mismo, BD para los economistas) que sean útiles en el ámbito empresarial y pasamos de ser administradores de redes y usuarios finales de G/L; y si las Instituciones ayudaran un poco más en la tarea de la migración al SL, y si cambiaran un poco el plan de estudios de los estudiantes cubanos, ¡¡¡a Windows le quedaría poco tiempo en Cuba!!!

Yo voto por GNU/Linux ¿y tú? ;-)

Continuar leyendo

Explorando la red (Parte 2)

Asran [asran@isppr.rimed.cu]

Hello! ?

De nuevo acá para cumplir con la comunidad. Bien la semana pasada compartimos algunos comandos sobre redes desde sistemas Windows. Y también prometí lo que ahora les explicaremos.

Explorando el vecindario … net view
Seguramente muchas veces te has preguntado que maquinas están disponibles en tu grupo de trabajo. Pero no tienes herramientas … como lo haces?
Pues bueno tecleas simplemente:

 net  view
Este comando te listara las host activas en el grupo de trabajo. Para los más entendidos es lo mismo que un IP scanner. Bien adentro encontraremos que también sirve para mostrar recursos compartidos.

Con la sintaxis:
 net view  /Workstation:<nombre_del_host>
Mostrara los recursos compartidos de la host especificada.

 net  view  /NetWork:<Dominio>
Mostrara las hosts disponibles del dominio especificado.

Quienes pueden entrar en casa? … net user
Este comando muestra las cuantas de usuarios del ordenador.

Bueno a fin de no ser monótono aquí listo los comandos que pueden ser de interés
Conocer los usuarios de la maquina local -->  net user
Conectarse a un recurso compartido -------->  net use
Conocer estadísticas del Server   ------------>  net stats
Conocer estadísticas de red  ----------------->  net statistics
Manipulación de recursos compartidos ----->  net share

El comando mas importante de todos creo en opinión personal que es
Help y su sintaxis es:

<comando> /?
Ejemplo: dir /?

A riesgo de parecer descortés puedo decir que esta extensa la explicación de estos comandos, pero bueno creo que con esta introducción baste para tener motivos para ponerse a investigar. Recuerda (…) te enseñamos a andar … el camino lo escoges tu y como dijo el poeta:
“ … caminante no hay camino se hace camino al andar …”

Todos somo =’s
You will never walk alone …
I’m here

Continuar leyendo

Código de redundancia cíclica

JKS [jksware@gmail.com]

CHECKSUMS

Lo mismo sea para transmitir datos a través del puerto serie, para hacer zip / unzip de un fichero o para acceder a un CD, está presente en la programación de un controlador de E/S – incluyendo el BIOS – un conjunto de instrucciones capaz de comprobar la integridad de determinado paquete de datos que se desee preservar: un algoritmo de control de errores encargado de la detección de cualquier variación – por ligera que esta sea - con respecto al contenido digital original, provocada por una falla aleatoria vinculada a la transmisión, almacenamiento, lectura o recepción de los mismos, y nunca debido a una intervención inteligente.

Un algoritmo de control de errores utiliza para detectar la corrupción digital un código que tiene determinada afinidad numérica con la información a procesar en cuestión. Para cada contenido digital existe un único código, mientras que diversos contenidos pueden generar el mismo código de comprobación, a menudo llamado checksum o CRC ( Cyclic Redundancy Check ).

A cada contenido corresponde un código, pero a cada código no le corresponde un contenido. Por lo tanto, si llevamos este pensamiento al sistema cartesiano, podemos deducir que los códigos serían representados en el eje X, y los contenidos en el eje Y. Para una función CRC en la que la variable de entrada es X, el eje Y es dependiente a ésa entrada. Sin embargo, X es totalmente independiente.

En otras palabras, si contamos con un buen algoritmo, una sustitución de un único mísero bit en nuestro mensaje puede ser suficiente para variar por completo el código generado, aunque la información sea de varios kbits de longitud – como sucede con la transmisión de información a través del módem o de las redes TCP/IP, en que cada paquete viaja acompañado de un checksum, y cuya comprobación se realiza por hardware y por software, respectivamente.

ALGORITMO DE UN CRC

Desde el punto de vista práctico la implementación de un algoritmo de comprobación de redundancia cíclica puede ser bastante fácil, en dependencia del objetivo para el cual se desee, y no requiere de grandes conocimientos de álgebra ni cálculo, sino de simples conocimientos de programación linear.

Pero cuando se mira con un carácter más analítico, pasa algo parecido a lo que sucede con los algoritmos de encriptación, que no se puede a simple vista apreciar cuán buenos son o cuán duraderos ante las desavenencias del tiempo pueden ser, a no ser que se prueben en la cotidianidad. Por ejemplo, del CRC-32 están listados en Wikipedia varios estándares que utiliza cada uno diferentes polinomios – que no son más que el juego de bases y exponenciales con que se basa cada algoritmo – cada uno estandarizado en una cuestión determinada en la que otro, muy parecido, falló en hacer bien o con facilidad en un área de la técnica en cuestión.

De aquí se podría pensar que si son transmitidos ambos el contenido digital y el checksum de CRC anexado, y se realiza satisfactoriamente la comprobación es que los datos no han sido modificados. Incorrecto. CRC no es un estándar de encriptación, sino que su utilidad reside exclusivamente en la comprobación de corrupción ocasionada por fenómenos espontáneos, y no por la mano del hombre. Los criptosistemas emplean además de un checksum otro código llamado firma digital, el cual es estampado sobre el mensaje a transmitir, y que guarda relación con el par de claves de un sistema de Claves Públicas, que sí garantiza la seguridad en cuanto a intervención humana se trata ( para leer más acerca de criptosistemas vea Pretty Good Privacy en BlackHat 43) .

La base para los algoritmos de CRC, se basa en separar el contenido digital en paquetes de bits manejables por la máquina – dígase 32 bits – para después pasar ser divididos por el polinomio dado – que debe tener un orden de igual cantidad a la longitud del paquete – por el algoritmo con el cual se trabaje. Se desea obtener de esta división el resto y no el cociente – ya que no se trata de una operación común y corriente en el sistema decimal – y se alcanza mediante el acceso directo a operaciones lógicas en lenguaje ensamblador.

El resto a obtener de la primera operación tendrá un dígito menos que el divisor, por lo que se le agregará el bit correspondiente del dividendo y por supuesto, como el dividendo es mucho más largo – ya que posee el contenido digital propiamente dicho – tras la primera operación lógica XOR se obtiene un resto que es dividido nuevamente por el divisor, a semejanza de una operación normal. La división con resto continúa hasta que se complete la totalidad del mensaje. El resto de la última operación es el checksum del algoritmo. Si cuando se obtenga el mensaje este número ha variado, entonces algo anda mal, y los datos probablemente estén corruptos.

La elección de un buen divisor es el cuerpo de un algoritmo de CRC. Si no se trabaja conscientemente y se elijen números al azar no se contará con la seguridad necesaria. Existen reglas para lograr ése objetivo, pero esas se las dejamos a los matemáticos.

Actualmente se trabaja por hace compatibles estos sistemas de comprobación de checksums con los últimos procesadores de 32 y 64 bits – recordemos que la teoría de la información de la cual surgieron todos estos algoritmos es mucho más vieja y datan de los sesentas – y se hace énfasis en generar tablas que aligeren la carga de trabajo mediante el procesamiento previo del cálculo de los restos de las instrucciones, ya que en la actualidad se cuenta con mucho más espacio en caché y memoria operativa para realizar dichas operaciones.

CHECKSUM = OK

Existen otras muchas técnicas no expuestas aquí que cumplen más o menos igual las funciones, pero la base en todas es la misma, la detección de cambios sencillos que aparejen grandes cambios en el código a generar. Se puede hacer un estudio mucho más detallado de lo que pasa aquí, si te interesa el tema escríbeme a jksware@gmail.com y prometo mandarte un par de documentos muy interesantes debatiendo acerca del uso de algoritmos más sofisticados para generar cheksums con un altísimo rendimiento.

Así que cuando un disco te “de bateo” cuando trates de copiar algo del mismo, o el WinRAR no te deje abrir un fichero comprimido que bajaste porque genera un error de checksum, ya sabes cómo es que la máquina eventualmente se va a dar cuenta del problema, casi cuando está punto de quemarse el lector o derretirse el micro, para evitar mayores complicaciones.

Continuar leyendo

lunes, 18 de febrero de 2008

Programación Shell (parte 2)

Asran [asran@isppr.rimed.cu]

Como lo prometido es deuda, aquí traigo la continuación del artículo anterior. Estructuras de control en la programación batch o de ficheros por lotes.

Estructuras condicionales:

IF Permite la ejecución condicional.[ya lo sabemos] aquí hacemos una descripción en función del lenguaje batch o shell.

Sintáxis
If [NOT] <Condición> <acción>

Donde:
IF es un palabra reservada
NOT palabra reservada que actúa normalmente como operador de negación lógica
<Condición> normalmente es la condición a evaluar pero puede estar dada por:
-La función del ERRORLEVEL <numero> que tornará el valor de veracidad de la condición si el código de error devuelto por el sistema es mayor o igual al numero especificado ejemplo:

IF ERRORLEVEL 126 exit
En este caso la acción a ejecutar: exit (comando de salida del DOS) pero solo si el código de error devuelto por el SO es mayor o igual que 126.

-La comparación de dos valores, ejemplo:
IF NOT string1==string2 pause
Como es evidente de ser verdadera la condición se producirá una pausa en la ejecución.
Nótese la presencia de la palabra reservada NOT (sirva como ejemplo de la misma).
-La palabra reservada EXIST específica si existe el fichero especificado por el argumento, ejemplo
IF NOT EXIST C:\autoexec.bat copy C:\autoexec.bat D:\
Dada la existencia del fichero autoexec.bat en el volumen C:\ se le haría una copia para D:\
<acción> Como hemos visto en los ejemplos anteriores la componente acción de la sintaxis es el comando a ejecutar de ser verdadero el valor veritativo de la condición. Recordar la acción del operador NOT.

CHOICE es una estructura condicional múltiple y funciona como tal, similar al case of de Pascal
Sintaxis
CHOICE [/C[:]letra] [/N] [/S] [/T[:]c,nn] [texto]

Puedes especificar un texto que aparecerá antes de la entrada de datos. No hace falta que lo entrecomilles, salvo que dicha cadena de texto incluya una barra /. Es un parámetro opcional.
Modificadores
/C[:]letra
Especifica las letras que indicarán las opciones del usuario. Si las especificas separadas por comas, aparecerán entre corchetes seguidas de un interrogante. Si no se especifican, se usara YN (si, no) por defecto.

/N
Evita que se muestre el prompt de usuario

/S
Hace que discrimine entre entrada de letras mayúsculas o minúsculas.

/T[:]c,nn
Introduce un tiempo de espera antes de ejecutar la acción por defecto. Con los siguientes posibles valores:

c
Señala que carácter será usado como opción por defecto después de nn segundos. Solo puedes indicar uno de los caracteres especificados con el modificador /C

nn
Indica el numero de segundos de pausa. Valores entre 0 y 99.

Estructuras iterativas:

Bueno el Shell de Microsoft (MS) solo cuenta con una estructura iterativa y es el ciclo finito FOR
FOR Ejecuta un comando sobre un grupo de archivos.

FOR %%variable IN (set) DO <commando>
%%variable %variable
Representa una variable que será reemplazada por su valor. FOR reemplazará %%variable o %variable con la cadena de caracteres especificados en SET hasta que el comando especificado se haya ejecutado sobre todos los archivos. %%variable se emplea con FOR dentro de archivos batch, y %variable desde la línea de comandos.

Variables
El signo % seguido de un numero (del 1 al 9) permite pasar parámetros al invocar nuestro archivo bat. Por ejemplo si tenemos un archivo saludo.bat con la línea echo Hola %1, si lo invocamos tecleando archivo.bat pepe presentará en pantalla Hola Pepe. Se usa por ejemplo para pasar nombres de ficheros a un bat que se encarga de borrarlos, moverlos, etc.

Estructuras de salto:

Bueno aquí como en todas partes existe GOTO
GOTO Salta la ejecución del programa hacia la línea indicada:

Sintaxis
GOTO <label>
Donde:
GOTO es una palabra reservada
Label es una etiqueta que identifica la línea con un máximo de 8 caracteres.

Nota: cuando se etiqueta un línea debe especificarse con dos puntos(:) ejemplo:
:et_1 tree
:et_2 ping infomed.sld.cu

Un poco más:

Como vera el amigo estamos ante un lenguaje de programación interpretado. Poco complejo. Pero aquí también se pueden comentar las líneas de comandos usando la palabra reservada REM o un doble dos puntos (::).

Bueno, espero haber cumplido la promesa, y saldado la deuda.

Continuar leyendo

Proxy

Pika [blackhat4all@gmail.com]

Cuando conseguimos una cuenta de infomed u otro ISP por lo normal viene acompañada de una configuración proxy, pero ¿Sabemos todos que significado tiene esa palabra? ¿Conocemos como trabajan? O ¿Cuál es su finalidad? De eso mismo trata este artículo, en el trataremos de brindar a los lectores toda la información necesaria para que sepan a que se enfrentan.

Proxy es una palabra inglesa que se puede traducir como intermediario, delegado o apoderado. Un proxy puede ser una persona autorizada para actuar en representación de otra persona, dentro de la misma informática, pero con un significado diferente al que conocemos, un proxy puede ser un teclado USB a través del cual se puedan conectar otros dispositivos USB. Como ven, proxy tiene muchos usos y significados, pero siempre es sinónimo de intermediario.

Para un protocolo de red, un proxy es una aplicación que corre bajo un host firewall y ejecuta servicios requeridos a través del firewall actuando como un "Gateway" (Puerta de Enlace). Los proxy dan la ilusión de una conexión directa punto a punto que en realidad no existe y dependiendo de su capacidad pueden interpretar el protocolo que manejan y dar mayor grado de control y vigilancia al administrador.

El uso mas común de un proxy es un Servidor Proxy, el cual permite la conexión de varios ordenadores a internet a través del ordenador donde esté instalado este, el mismo puede limitar la cantidad de servicios que serán usados, a través de un proxy se puede configurar el ancho de banda que tendrá cada usuario, el alcance de dominios, en el proxy se almacenan las trazas de todas las conexiones que se han realizado, permitiendo al administrador tener constancia de a que sitios están accediendo los usuarios, que tiempo de conexión mantienen, incluso que descargan de la red.

Ventajas

• Control. Sólo el intermediario hace el trabajo real, por tanto se pueden limitar y restringir los derechos de los usuarios, y dar permisos sólo al proxy.

• Ahorro. Por tanto, sólo uno de los usuarios (el proxy) ha de estar equipado para hacer el trabajo real.

• Velocidad. Si varios clientes van a pedir el mismo recurso, el proxy puede hacer caché: guardar la respuesta de una petición para darla directamente cuando otro usuario la pida. Así no tiene que volver a contactar con el destino, y acaba más rápido.

• Filtrado. El proxy puede negarse a responder algunas peticiones si detecta que están prohibidas.

• Modificación. Como intermediario que es, un proxy puede falsificar información, o modificarla siguiendo un algoritmo.

• Anonimato. Si todos los usuarios se identifican como uno sólo, es difícil que el recurso accedido pueda diferenciarlos. Pero esto puede ser malo, por ejemplo cuando hay que hacer necesariamente la identificación.

Desventajas

• Abuso. Al estar dispuesto a recibir peticiones de muchos usuarios y responderlas, es posible que haga algún trabajo que no toque. Por tanto, ha de controlar quién tiene acceso y quién no a sus servicios, cosa que normalmente es muy difícil.

• Carga. Un proxy ha de hacer el trabajo de muchos usuarios.

• Intromisión. Es un paso más entre origen y destino, y algunos usuarios pueden no querer pasar por el proxy. Y menos si hace de caché y guarda copias de los datos.

• Incoherencia. Si hace de caché, es posible que se equivoque y dé una respuesta antigua cuando hay una más reciente en el recurso de destino.

• Irregularidad. El hecho de que el proxy represente a más de un usuario da problemas en muchos escenarios, en concreto los que presuponen una comunicación directa entre 1 emisor y 1 receptor (como TCP/IP).

Continuar leyendo

Firewall o Cortafuegos

Pika [blackhat4all@gmail.com]

Un Firewall puede ser igualmente un Software o un Hardware pero al final tiene el mismo propósito, controlar las comunicaciones permitiendo o denegando ciertas conexiones en dependencia de las políticas de la red a la cual pertenezca, mayoritariamente se sitúa entre la red local e internet, básicamente el firewall revisa cual es el servicio al que corresponde la conexión ya sea entrante o saliente y decide si es confiable permitirle el paso, dichos servicios pueden ser web, correo, IRC, etc. De esta forma un firewall puede permitir la salida de una red local hacia internet de los servicios web y correo, a la misma ves que deniega el IRC porque en las políticas de la red está previsto que el IRC no es necesario para dicha empresa.

Como dije anteriormente un firewall puede ser tanto software como hardware, puede ser un dispositivo conectado entre el modem y la red o puede ser un programa instalado en nuestro sistema operativo, así como también existen casos de potentes ordenadores conectados a la salida de una red cuyo único propósito es monitorear el flujo de la red generalmente a través de software especifico.

Un Firewall proporciona seguridad a una red informática, pero por ningún motivo debe considerarse suficiente, la seguridad informática abarca más ámbitos y mas niveles de protección.

Tipos de Firewall

Firewall de capa de Red o de filtrado de paquetes: Funciona a nivel de Red de la pila de protocolos TCP/IP como filtros de paquetes IP en este nivel se puede hacer filtros según los distintos campos IP: Dirección IP origen, Dirección IP destino, en ocasiones este tipo de firewall permite filtrados del nivel de transporte del TCP/IP, como el puerto de origen y destino, o a nivel de enlace de datos como la dirección MAC (todos estos niveles de las capas del protocolo TCP/IP fueron expuestos en mi articulo anterior basado en el protocolo TCP/IP).

Firewall de capa de aplicación: Trabaja en el nivel de aplicación del TCP/IP gracias a esto los filtrados se pueden adaptar a características propias de los protocolos de dicho nivel, ejemplo de esto es que en el trafico http se pueden realizar filtrados según la URL a la que se está intentando acceder, este tipo de firewall se denomina PROXY y permite que las computadoras de una organización entren a Internet de una forma controlada.

Firewall Personal: Software que se instala en una computadora personal filtrando las comunicaciones entre dicho ordenador y el resto de la red.

Ventajas de un Firewall

• Protege de intrusiones: El acceso a ciertos segmentos de la red de una organización, solo se permite desde maquinas autorizadas de otros segmentos de la organización o de internet, si se puede validar que el usuario pertenece a dicha red.

• Protección de Información Privada: Permite definir distintos niveles de acceso a la información de manera que en una organización cada grupo de usuarios definido tendrá acceso sólo a los servicios y la información que le son estrictamente necesarios.

• Optimización de Acceso: Identifica los elementos de la red internos y optimiza que la comunicación entre ellos sea más directa. Esto ayuda a reconfigurar los parámetros de seguridad.

Limitaciones de un Firewall

• Un Firewall no puede proteger contra aquellos ataques que se efectúen fuera de su punto de operación.

• El Firewall no puede proteger de las amenazas a que esta sometido por traidores o usuarios inconscientes. El Firewall no puede prohibir que los traidores o espías corporativos copien datos sensibles en medios físicos de almacenamiento (diskettes, memorias, etc.) y sustraigan éstas del edificio.

• El Firewall no puede proteger contra los ataques de Ingeniería social.

• El Firewall no puede proteger contra los ataques posibles a la red interna por virus informáticos a través de archivos y software. La solución real esta en que la organización debe ser consciente en instalar software antivirus en cada máquina para protegerse de los virus que llegan por cualquier medio de almacenamiento u otra fuente.

• El Firewall no protege de los fallos de seguridad de los servicios y protocolos de los cuales se permita el tráfico. Hay que configurar correctamente y cuidar la seguridad de los servicios que se publiquen a Internet.

Políticas del Firewall

Hay dos políticas básicas en la configuración de un Firewall y que cambian radicalmente la filosofía fundamental de la seguridad en la organización:

• Política restrictiva: Se deniega todo el tráfico excepto el que está explícitamente permitido. El firewall obstruye todo el tráfico y hay que habilitar expresamente el tráfico de los servicios que se necesiten.

• Política permisiva: Se permite todo el tráfico excepto el que esté explícitamente denegado. Cada servicio potencialmente peligroso necesitará ser aislado básicamente caso por caso, mientras que el resto del tráfico no será filtrado.

La política restrictiva es la más segura, ya que es más difícil permitir por error tráfico potencialmente peligroso, mientras que en la política permisiva es posible que no se haya contemplado algún caso de tráfico peligroso y sea permitido por defecto.

Continuar leyendo

Algunos comandos del DOS

Alien [blackhat4all@gmail.com]

Para aquellos que gustan del trabajo en consola y carecen de documentos donde se ofrezca la ayuda relativa, pueden encontrar aquí reducida pero útil lista de comandos para el DOS.

Para muchos, dominar el MS-DOS puede que parezca algo absurdo y no dejan de tener razón, si luego de pedir ayuda sobre cada comando que está en la consola lo que se obtiene por resultado es un texto explicativo que poco ayuda a quien lo utiliza, sin contar que muchos de los comandos ni aparecen luego de un Help.

Un usuario normal de Windows podría necesitar algunas de estar órdenes en casos extremos, más si se trabaja con Win98 o 2000, si embargo al parecer a Microsoft se le olvidó poner algunas cositas como el Tracert o el Ping, tan utilizados en cosas referentes a las redes y en su lugar nos dio un cd, un dir o un md, que si bien pueden ser utilizados para realizar algunas gestiones de archivos, no son por esto los que más llaman la atención de los que tratan de ir un poco más allá.

Para los que no lo saben…

El MS-DOS es un programa, pero no uno cualquiera, sino uno de los más importantes que puede tener el sistema operativo. (Opinión personal).

Para los no conocedores, les diré que un sistema operativo está conformado por cientos o miles de subprogramas y cada uno se encarga de realizar una función determinada. Para un buen funcionamiento del sistema, todos estos programas deben trabajar entre si, ya sea compartiendo información o procesándola.
Pueden verlo de forma más evidente si relacionan a Windows (por poner un ejemplo), con una fábrica de calzado. No existe una persona que sea capaz de realizar el zapato en su totalidad, sino que un grupo se encarga de poner los cordones, otro de fabricar la suela, otro de hacer la horma, etc. Pero cada uno de estos grupos debe estar conectado con los demás, ya que el grupo que está haciendo los cordones debe saber cual es el tamaño de la horma, puesto que no es lo mismo hacer cordones para un zapato de bebé que para uno de una persona adulta. Así mismo sucede con la suela y en fin, con todas las partes que conforma el calzado como tal (disculpen si no se los nombres de esas partes, pero es que no me dio tiempo a pasar el curso de zapatero).

Un sistema operativo tiene un funcionamiento similar, pero teniendo en cuenta que es mucho más complejo que una zapatería (sin quitarle mérito a esta). A la hora de eliminar un archivo, lo que vemos es un menú con una opción que nos indica dicha acción, pero en el interior de la máquina, "alguien" debe verificar que el archivo se pueda borrar, "alguien" debe asegurarse que en la papelera exista espacio, "alguien" ejecutará la orden como tal y "alguien" comprobará que la orden fue ejecutada con éxito. (Quizás es más complejo que esto…)

La principal razón para esto es que es mucho más fácil crear varios programas de algunos cientos de líneas de código y que cada uno de estos realice una tarea determinada, antes que crear un programa principal que lo maneje todo, ya que en caso de un error, lograr identificar en que línea estuvo se convertiría en toda una hazaña, además que la actualización de una rutina conllevaría a la actualización del código completo.
 El MS-DOS funciona de esta manera, existe un programa principal que tiene unas cuantas opciones por defecto a las que se le denominan comandos internos y por la necesidad de ir actualizando o adaptando este programa a nuevos ambientes y entornos, se crean varios subprogramas a los que se les denomina comandos externos.

Un ejemplo de esto lo podemos ver fácilmente: ¿Alguien ha visto un archivo en la máquina que se llame cd.exe o cd.com?, no, y eso es porque este comando está implementado dentro del mismo command.com, es decir, es una función que el realiza de forma innata, no requiere para esto nada más que su sola presencia, sin embargo, si podemos encontrar otros como son el xcopy por ejemplo, que no es más que una variante mejorada del copy.

De esta forma, con el paso del tiempo, al DOS se le han añadido o eliminado comandos externos, ya sea por su poco uso o por la llegada de nuevos comandos que hacen ese trabajo y más.

Entrando en materia

No pienso hacer un listado de los comandos comunes como puede ser time, copy, type, ya que estos pueden ser vistos desde la ayuda y la complejidad de su uso no creo que sea tanta. Pero si me gustaría presentar algunos que, aunque puede que algunos de ustedes los utilicen, estoy casi convencido que la mayoría ni siquiera sabe de su existencia.

Sin haberme trazado un listado ordenado alfabéticamente o algo por el estilo, empezaré a nombrar y describir comandos de forma aleatoria, y para esto me gustaría empezar por uno que quizás a muchos le llame la atención:

Nota: Que conste que lo que ofrezco a continuación no es una ayuda, sino una descripción simple para que se tenga una idea, si alguien quiere hacer las pruebas con los comandos, debe ir a ejecutar en el menú inicio, teclear CMD y luego escribir el nombre del comando seguido por /?

Tracert: Este comando muestra la ruta que sigue un paquete en la red. Tiene a mí entender cierta relevancia, ya que ejecutándolo varias veces y dirigiéndolo hacia distintos lugares, nos permite hacer un mapa de una red en específico. Como todos los que nombraré luego, a este también se le pueden pasar parámetros para obtener un resultado más específico. También ofrece el tiempo que se demora en responder cada nodo por el cual pasa el paquete.

Ping: Este es un comando bastante conocido (espero) por muchos, y lo que hace es llamar a un server para ver si está "vivo" y en caso que lo esté, nos retorna la IP de dicho servidor y el tiempo que este se demoro en responder. Es quizás el primero que se debe ejecutar antes de hacer cualquier otra cosa en la red, ya que quizás el servidor no está disponible, y con esto nos evitamos pasar el trabajo de scanear la red y demás.

Net View: Este en especial era muy utilizado por mi y mis compañeros de trabajo bajo una simple red de cable invertido, y lo que permitía era ver cuales son los ordenadores conectados a dicha red y acceder a los mismos. No es la gran cosa pero …

Tasklist
: Sirve, como su nombre lo indica, para listar los procesos que se estén ejecutando en una computadora e incluso los de otra, siempre que esta esté conectada a nuestra red. Es útil si queremos saber que esta ejecutando Manolito, el que está sentado en el aula de al lado. Por lo general casi siempre va precedido por Taskkill.

Taskkill: No pienso que lleve mucha explicación. Básicamente lo que hace es cerrar un proceso ejecutándose en nuestra u otra PC. Como es lógico, primeramente el proceso a cerrar se debe estar ejecutando.

Runas: Permite ejecutar programas con privilegios que no tenemos. Es básicamente muy importante, ya que en a veces vemos al administrador de nuestra red jugando Quake y a nosotros nos lo quieren limitar.

Mem: Es un comando quizás poco utilizado, ya que su finalidad es la de mostrar la cantidad de memoria libre y disponible de un sistema, pero quizás si lo que se pretende es ejecutar una aplicación rápida, sencilla y que recopile información sobre una computadora, este comando podría perfectamente estar ligado a otros para conocer más el área en la que estamos trabajando.

Start: No es un comando de los que podríamos usar en una red para… Sin embargo es útil (al menos para mi), cuando estamos navegando desde el DOS y queremos abrir en Windows la ventana en la que estamos parados, para esto solo dejamos un espacio y colocamos un punto luego de escribir el comando.

Shutdown: Si eres administrador de una red y luego de aplicar un tasklist ves que se esta ejecutando el NFS en la xxx.xxx.xxx.xxx, no te tomes el trabajo de ir hasta la máquina para amenazar, simplemente ejecuta un msg mandando una advertencia y luego un shutdown pasándole los parámetros correctos.

Title: Si bien no es un comando con el que se puedan efectuar muchas cosas, si nos sirve para configurar el DOS de forma tal que sea más a nuestro gusto.

Color: Este no es un comando para hacer "súper trabajos" en redes, sino más bien algo que se le quedó al Billy en el DOS y que proviene directamente desde QBasic. Es una de esas cosas que se pueden utilizar para darle un "toque" más personal a nuestra consola.

Conclusiones:

No me veo a mi mismo como un salvador de las consolas, ni como alguien renuente a vivir el futuro, pero si soy de esos que ha tenido el placer de estar trabajando en los dos lados de la moneda: P-IV v/s Pentium. He sentido en mis manos tanto un PC como un cacharro y quisiera darle algunas opciones a esas personas que no tienen la posibilidad aún de tener una computadora último modelo, quiero que sientan la velocidad con que el DOS cambia de directorios y se hace más potente ante Windows.

Además de todos estos comandos, hace un tiempo se publicó un artículos en la edición 12 de BlackHat en el que se daba una explicación de como crear macros en MS-DOS. Ese texto, sumado a algunas cosas de este quizás puedan ayudar a hacer el trabajo más fácil para aquellos que se atreven a "cacharrear" un poquito dentro del sistema.

Como dije en un inicio estos no son todos los comandos del DOS, este potente lenguaje tiene muchas otras funciones ocultas aún. Ya en pasadas ediciones de BlackHat se han publicado artículos enfocados sobre este tema, espero que los que tienen esas ediciones encuentren en ellas lo que falta aquí, aunque como dije esto no es un texto para principiantes, sino para todos aquellos que ya tienen algo de conocimiento y quieren ir un poco más allá.

Espero que este artículo le haya sido útil a alguien y de ustedes y sus correos dependerá que no muy lejos en el tiempo se vuelva a tocar el tema.

Continuar leyendo