Archives for 

abrir

Instalación y configuración de un servidor ssh en Debian

Una de las herramientas indispensables para administrar los servidores es a través de SSH (Secure SHell). Pero antes, un poco de teoría.

Definición

“SSH (Secure SHell) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la maquina mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo.

Además de la conexión a otros dispositivos, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH” (Wikipedia).

Funcionamiento

El cliente inicia la conexión hacia un puerto predeterminado del servidor, en este caso el puerto reservado número 22. Establecida la conexión TCP los extremos se envían, en texto plano, sus identificadores de versión, para ver si la comunicación es posible entre ellos. De ser compatibles entre sí cambian a un modo de transferencia binaria durante el cual se identifican los interlocutores y se negocian los protocolos de cifrado y firma que se usarán.

Esta negociación de protocolos se lleva a cabo de tal manera que la información intercambiada entre cliente y servidor sólo puede ser descifrada por el destinatario legítimo de la misma, y sólo por él. Para ello al principio de esta fase el servidor envía al cliente su clave pública, para que el cliente la use para cifrar todos los mensajes siguientes hacia el servidor, haciéndolos sólo legibles para el propio servidor. Entonces el cliente genera una clave de cifrado para la sesión en curso, que envía cifrada al servidor junto con el algoritmo seleccionado, y a partir de este momento todo el tráfico entre cliente y servidor viaja cifrado y seguro.

Llegados a este punto el cliente y el servidor se han puesto de acuerdo en un cierto algoritmo de cifrado, han acordado una clave para su sesión, y el servidor se ha identificado ante el cliente con su clave pública RSA (u opcionalmente DSA, en la versión 2 del protocolo). Pero aún falta que el cliente se identifique ante el servidor, que deberá decidir entonces si deja o no acceder al cliente remoto. La identificación del cliente podrá ser mediante pareja de usuario y contraseña, rhost, rhost más identificación de máquina mediante clave RSA o simplemente mediante claves RSA o DSA.

De todos los mecanismos sólo nos interesan el primero y el último. En el primero, el servidor nos dará acceso siempre y cuando la pareja de usuario y contraseña introducida por el cliente sean los de un usuario válido en el sistema operativo del servidor, salvo restricciones adicionales. En la identificación por claves el cliente dispone, al igual que el servidor, de su propia pareja de claves, que envía al servidor durante la identificación. Si el servidor confía en el usuario cuya clave ha recibido, entonces le dará permiso de acceso.

A grandes rasgos el mecanismo de conexión y de identificación del protocolo SSH es sencillo, aunque conviene destacar un par de aspectos relevantes de cara al uso y configuración de los programas relacionados:

  • Las conexiones las inicia siempre el cliente hacia el puerto TCP número 22 del servidor.
  • Las versiones de los protocolos soportados por cliente y servidor deben coincidir, o la conexión no se llevará a cabo.
  • El servidor siempre necesita disponer de una pareja de claves, puesto que usa la clave pública para establecer la conexión segura con el cliente. El tipo de clave tiene que estar soportado en el cliente.
  • El cliente y el servidor deben tener algún algoritmo de cifrado en común, o la conexión no se establecerá.
  • Dependiendo de los mecanismos de identificación soportados por ambas partes, o exigidos por el servidor, la identificación podrá o no fallar.
  • Aún cuando haya un mecanismo de identificación soportado por ambas partes, el cliente deberá proporcionar credenciales válidas al servidor, bien sea una pareja de usuario y contraseña, bien una clave pública.

Al margen de todo lo anterior, el servidor del protocolo SSH, sshd podrá implementar restricciones adicionales de acceso, así como el propio sistema operativo donde ejecuta. Por ejemplo, no es infrecuente que sshd esté compilado con soporte de TCP-wrappers, que esté configurado para aceptar o rechazar el acceso a determinados usuarios o máquinas cliente, o simplemente que algún firewall intermedio no permita establecer la conexión.

Instalación y configuración inicial

1.-Abrir una terminal como root y escribir:

# Apt-get install openssh-server

2.-Cuando se termina de instalar viene con una configuración por default que debemos cambiar para tener una mejor seguridad para esto nos vamos al archivo /etc/ssh/sshd_config

# Vim /etc/ssh/sshd_config

El archivo es algo extenso solo se mencionaran las secciones que son de gran importancia:

El servicio SSH por default trabaja sobre el puerto 22 pero se puede cambiar:

Port 22 ## PUERTO POR DEFAULT

El parámetro ListenAddress especifica las direcciones de las interfaces de donde se van a recibir peticiones OJO con esta sección si vamos a accesar desde una red externa como la casa entonces dejarlo como esta sino pues hay que especificar la red:

ListenAddress 0.0.0.0 ## IP por Default para acceder desde cualquier red

Esta es la sección critica a mi manera de ver porque indicamos si el usuario ROOT puede acceder vía ssh yo en lo personal lo deshabilito y entro con un usuario del sistema diferente a root

PermitRootLogin no

También podemos especificar si se va a ejecutar aplicaciones graficas mediante SSH por ejemplo podemos usar VLC a través de SSH por si no son muy dados a usar comandos yo lo dejo como esta:

X11Forwarding no

Otra opción es permitir el acceso a ciertos usuarios de la siguiente manera:

AllowUsers tusuario, miotrousuario, uncolado

En fin son muchas las opciones que trae el archivo seria bueno que le echaran un vistazo y modifiquen lo que mejor crean ustedes que es para su servidor pero siempre pensando en la seguridad y los riesgos que conlleva hacer una mala configuración.

Por último reiniciamos el servicio:

# /etc/init.d/ssh restart

NOTA: Si están detrás de un firewall tienen que abrir el puerto que han especificado pero si están en DMZ pues les recomiendo que pongan reglas IPTABLE por seguridad.

Ahora a hacer un test desde un cliente usando el terminal:

# Ssh usuario@midominio

Cuando se logueen verán lo siguiente:

Cuando se loguea

También se pueden conectar desde un Windows utilizando la herramienta Putty

Loguearse usando Putty

Mas info sobre configuración: Aquí

Fuente: Aquí

Descargar el Putty: Aqui

Como dividir un archivo de texto demasiado grande

Algunas veces resulta muy molesto trabajar con archivos  de texto  demasiado grandes, ya que para visualizarlos el sistema debe cargar  el archivo completo en la memoria de nuestra maquina,  si estamos trabajando con archivos  de 10 millones de lineas en adelante,  al abrirlo este consumira demasiada memoria y hará que nuestro sistema colapse por completo.

Para solucionar este incomodo problema, los entornos unix traen una utilidad llamada split, la cual nos ayuda como su nombre lo indica a dividir o partir un archivo de texto el cual sea demasiado grande.

La sintaxis de split es:

split [parámetros opcionales] [archivo de entrada] [archivo de salida]

Entre los parámetros tenemos:

  • -l -> numero de lineas en las que se va a dividir o partir el archivo por defecto son 1000
  • -b -> divide el archivo no por lineas, sino por tamaño (expresado en bits)
  • -b k n -> divide el archivo no por lineas, sino por tamaño (donde n es un multiplo de 1024 bytes)

Después de los parámetros,  le damos el archivo de entrada y un nombre de salida,  hay que aclarar que el archivo de salida tendrá la siguiente notación:

nombrea nombreb nombrec nombred nombree nombref etc……

Algunos ejemplos:

split -l 5000 diccionario.txt parte-

Esta sentencia me arrojara  lo siguiente:

parte-a parte-b parte-c  hasta que el archivo quede completamente dividido-

Algo muy sencillo pero util,  trabajar con backups o archivos de textos que este en el orden de los millones. Por ultimo si alguien posteriormente desea  pegar las partes lo puede hacer muy facilmente usando cat.

cat parte-a parte-b parte-c > todocompleto.txt

Uzbl: Un navegador web liviano, minimalista y muy personalizable

Si estas cansado de el amplio consumo de CPU y memoria de tu navegador preferido (ya sea Firefox, opera, chromium, etc..) te presento  UZBL un navegador web de código abierto  muy minimalista,  que cumple con la filosofia Unix:

Escribir programas que hacen una cosa y la hacen bien. Escribir programas para trabajar juntos. Escribir programas para manejar flujos de texto, ya que es una interface universal

Antes de empezar con el proceso de instalación hay que aclara que si eres de los usuarios que te gusta que tu navegador tenga un sin fin de addons y servicios adicionales, este no es el navegador para ti, por el contrario si eres un usuario el cual solo le interesa que tu navegador sirva para lo que fue diseñado (abrir paginas web), esta aplicacion sera perfecta para ti.

Ventajas de Uzbl

  • 100%  Personalizable (editar menús, cambiar colores, atajos)
  • rápido
  • soporta flash player
  • Soporta pestañas
  • Al ser tan minimalista no quiere decir que no tenga, marcadores, historiales.
  • navegacion con el teclado.

Instalación de UZBL

Ya que este proyecto es demasiado nuevo ( marzo de 2009 ) solo se encuentra en los repositorios de archlinux, gentoo, ubuntu, la versión testing de debian (squeeze)  y por supuesto en la versión inestable (sid),  para los usuarios de estas versiónes, pueden instalar uzbl de esta forma:

apt-get install uzbl

Sin embargo para lo usuarios de otras distribuciones, las cuales no tengan uzbl en sus repositorios, necesitaran hacer lo siguiente:

apt-get install git-core git-arch git-cvs git-daemon-run git-doc git-email git-gui git-svn gitk gitweb libwebkit-dev

Ahora descargamos las fuentes desde la pagina web oficial:

git clone git://github.com/Dieterbe/uzbl.git

Siguiente punto compilar:

make
make install-uzbl-core
make install-uzbl-browser
make install-uzbl-tabbed

Por ultimo debemos copiar el archivo de configuracion tomando como base un ejemplo, para esto hacemos lo siguiente:

cp /usr/local/share/uzbl/examples/config/uzbl/config /home/tu_usuario/.config/uzbl/config
nota: si la carpeta .config o uzbl no se encuentran en tu home, debes crearlas.

Es importante tener en cuenta que este archivo es parte fundamental del navegador, en el se encuentra toda la configuracion  y es alli donde debemos modificar lo que deseamos, desde la apariencia hasta los atajos del teclado.

Usando el navegador web uzbl

Despues de tenerlo instalado solo basta ejecutarlo, dependendiendo de lo que queramos ejecutamos:

uzbl-tabbed -> navegacion con pestañas
uzbl-brower -> navegador simple

algunos atajos de teclado son (recuerda que puedes cambiarlos a tu antojo):

j -> baja la pagina
k -> Sube pagina
h -> corre hacia la izquierda
l ->  corre hacia la derecha
b -> Pagina atras
m -> pagina adelante
o  -> abrir pagina (despues de presionar o digita la url)
r -> actualizar

Aunque llevo poco probandolo  me parece muy bueno, sencillo  y agradable (nada de molestas barras), y me gusto mucho por lo configurable, cada uno puede  adecuarlo a su gusto, por ultimo dejo un screenshot del menu de click derecho que configure.

Free Image Hosting at www.ImageShack.us

No soy un guru manejando este navegador, pero seria bueno ir probandolo a fondo y conociendo sus otras caracteristicas que deben ser muchas mas, esto es simplemente un abrebocas a que se animen a probarlo  y nos cuenten sus experiencias.

Lock Picking: El arte de abrir una cerradura sin la llave

Lock Picking es un arte que muy pocos saben practicar,   pero que a muchos otros les interesaría aprender, por que: ¿a quien no le gustaría abrir cualquier puerta  sin tener la llave? Para los puristas  una definición mas completa:

Es la habilidad de abrir una cerradura  mediante el análisis y la manipulación de los componentes del dispositivo de bloqueo, sin la llave original. Aunque la recolección de bloqueo se puede asociar con una intención criminal, Es una habilidad esencial para un cerrajero.La recolección de bloqueo es la manera ideal de abrir una cerradura sin la llave correcta, obviamente sin   dañar la cerradura, permitiendo que sea nuevamente programada para su uso posterior, que es especialmente importante con las cerraduras antiguas que sería imposible de reemplazar si se utilizaron métodos de entrada destructiva.

Algunas herramientas usadas para lock picking son de esta forma:

En los grandes eventos de seguridad informatica como Blackhat o Defcon, suelen realizar competencias de lock picking, las cuales consiste en abrir cerraduras de todo tipo (incluyendo cajas fuertes) en el menor tiempo posible.

En internet hay mucha información sobre este  interesante tema, hay desde vídeos hasta manuales de como crear nuestras propias herramientas, no soy un experto en el tema, pero siempre me ha inquietado este arte. El motivo de esta entrada simplemente es invitarlos a que  se inmersen un poco en este mundo y  por que no quizás mas adelante podamos crear nuestras propias competencias y vídeos.

Dejo algunos vídeos interesantes:

Abriendo y editado archivos de Excel 2007 desde internet

sheetster

Cuantas veces nos ha sucedido que estamos esperando un informe o un documento y cuando por fin recibimos el archivo sucede que este llega en un formato de esos raros…para ser más exacto en un formato XLSX esos formatos que Microsoft pone de moda haciendo lo que quiere con los estándares.

Supongamos que no tenemos como abrir este archivo o que simplemente nos encontramos en un computador que no es el nuestro y no queremos dejar muchos rastros al respecto de lo que hacemos con determinados archivos ¿Cómo lo modificamos?

Bueno pues para este tipo de cosas nació Sheetster es una aplicación WEB Gratis Y LIBRE para editar “rápidamente” archivos con este tipo de formatos y hojas de cálculo en general.

Para trabajar se basa en JAVA (así que se requiere el JRE) y por lo mismo tiene unos efectos visuales bastante interesantes, pero que probablemente con el tiempo se vuelvan cosa del montón.

Igualmente me pareció interesante que desde la página oficial promocionen la versión Servidor local de esta aplicación, debo confesar que no la he probado pero suena bastante interesante.

Página Oficial.