martes, 19 de febrero de 2019

Servidor SSH en Windows

Cuando no tenemos conocimientos en Linux para "instalar" un servidor SSH, y necesitamos uno por necesidad (Como el caso actual en el bloqueo del gobierno venezolano a sus ciudadanos que no pueden acceder a las páginas de internet banking de los bancos venezolanos porque son bloqueados, o los portales del gobierno e incluso otros que no son gobierno, como Mercado Libre para los usuarios vendedores) entonces tenemos la opción de hacerlo en Windows.

Existe un programa gratuito para windows, muy fácil de instalar y configurar, este programa en cuestión es FreeSSHd y lo pueden descargar de aquí

Bueno, ya que me tomé el tiempo de escribir hasta aquí, he conseguido (gracias a google) buscando el link de descarga de FreeSSHd, un blog bastante completo de cómo instalar FreeSSHd, así que mejor les dejo el link y configuran desde allí, está bien explicado, y me ahorro tanto en tiempo como en copy/paste de ventanas jajaja.

Si tienen alguna duda, pueden consultar en la página del enlace o pueden consultarme, que con gusto los ayudaré.

Anti Bloqueo (Venezolanos) usando Router DD-WRT o NO


En vista de las restricciones #CyberBloqueo que el gobierno de Venezuela está haciendo a los
ciudadanos venezolanos en el exilio para acceder a sus cuentas bancarias usando el internet banking
de la banca venezolana, además de otras páginas de gobierno, y otras no del gobierno pero que se
han tomado la atribución de realizar el mismo bloqueo (Ej. www.mercadolibre.com.ve para los usuarios
que venden por esa plataforma), voy a realizar este pequeño manual de ayuda para que aquellos
venezolanos que aún tienen sus casas y mantienen sus servicios o que por alguna razón aún tienen
familia en Venezuela y mantienen su conexión a internet y quieren librarse de este estúpido bloqueo,
con la única condición (para esta versión del manual) es que cuenten con un Router que use el firmware
DD-WRT ya que será mucho más fácil y rápido de hacer.. (El próximo Post lo haré para los que tienen
cualquier otro tipo de router, y básicamente será muy parecido a este.)

NOTA IMPORTANTE:
Como no tengo DD-WRT por ahora, las pantalllas que he colocado en este post fueron descargadas
desde internet, lo más importante es que no tienen derechos de autor, por lo que no estoy infringiendo
ninguna ley 😜.

Requerimientos:

1. Router con el firmware DD-WRT con soporte para SSH
2. PC con Windows (Puede ser linux, pero los que tienen linux ya saben hacer esto :D ) Les debo la
configuración a los que tengan MacOS, pero como no tengo una Mac, no podré hacer las pantallas
(Acepto donaciones 😋 )
3. Navegador Google Chrome o Firefox (Haré el manual con Chrome)
4. Descargar putty.exe de los siguientes enlaces. (Va a depender de la plataforma de tu windows, si es 32 bits o 64 bits).


1.- Lo primero que debemos hacer es activar el servicio SSH (Servidor) y configurar el puerto de entrada.
Vaya a la pestaña Servicios y la subpestaña Servicios en la Interfaz Web del DD-WRT.
Habilitar SSHd en la sección Secure Shell. 
El reenvío TCP SSH puede dejarse deshabilitado. 
El puerto se puede dejar configurado en 22.
Habilitar la Autorización de contraseña (Método más fácil para usuarios no avanzados) Los usuarios avanzados pueden configurar claves autorizadas, para mayor seguridad.
Presione el botón Aplicar configuración.


2.- Ahora debemos habilitar para que el SSH se pueda ver desde Internet.

Vamos a la pestaña Administración y la subpestaña Administración en la Interfaz Web Habilite la administración de SSH en la sección de acceso remoto. Establezca el Puerto remoto en el número de puerto TCP que desea utilizar para conectarse a su router desde Internet. Una buena opción es usar el puerto 443 porque normalmente se deja abierto para permitir el uso de HTTPS, por lo que Putty podrá conectarse incluso a través de firewalla restrictivos. Presionamos el botón Aplicar configuración. 

Resultado de imagen para ssh "DD WRT"

Es importante mas no imprescindible tener configurado un servicio de DNS dinámico, especialmente si su proveedor de servicios de internet cambia su dirección IP de forma dinámica. Esto le permitirá acceder a su router utilizando un nombre de dominio fácil de recordar en lugar de la dirección IP  WAN.



3.- Configurar y guardar la configuración de Putty.

Desde Windows, daremos doble clic a Putty.exe para que nos abra el programa que nor permite tanto configurar como hacer la conexión SSH para hacer el tunel.
Agregamos el nombre que creamos en el DNS Dinámico o la IP WAN del router.

Vamos a la sección Conexión -> Datos. (ver la figura siguiente) y escribamos el nombre del administrador del router o uno que haya creado y que tenga acceso al router, preferiblemente un usuario sin perfil administrador, pero para no complicar a los usuarios, colocamos el usuario estándar, que en este caso será "root" y dependiendo del firmware podría ser "admin".


Ahora vamos a establecer los valores para nuestro tunel, vamos a Conexión -> SSH -> Túneles. colocamos 8080 en el puerto de origen, seleccionamos el botón de opción Dinámico para convertirlo en un túnel dinámico que actuará como un servidor proxy SOCKS, hacemos clic en el botón Agregar para agregarlo a la lista de puertos reenviados. Aparecerá como D8080 en la lista. Podemos activar la opción de que nuestro equipo acepte conexiones de otros hosts en la red, esto nos permitirá compartir la navegación a través del tunel con otros usuarios en nuestra red.


Ahora regresamos a la sección de Sesión para terminar de configurar los datos de nuestro servidor SSH (Nuestro Router DD-WRT)
En la imagen de abajo está escrito un nombre "micasa.ddns.net" que fue previamente configurado en un DynDNS y también configurado en el DD-WRT, pero allí también podría colocar la dirección IP de Internet de su Router.
Configuramos el puerto remoto, para nuestro ejemplo habíamos usado el 443
Marcamos el tipo de conexión en SSH.
Y guardamos la configuración.

Ahora podemos realizar el tunel haciendo doble clic en el nombre de la sesión guardada en la lista para cargarla y abrir la conexión al servidor (Router DD-WRT)

Cada vez que se conecte, deberá ingresar la contraseña del router a menos que esté usando una clave de autenticación.


4.- Configurar el Proxy en tu navegador.

Ahora que ya tenemos el tunel SSH corriendo, lo que nos queda hacer es configurar las opciones de internet para configurar un servidor proxy SOCKS.
Los datos que requerimos para configurar el proxy son los siguiente:
Tipo de Proxy: SOCKS
Dirección: 127.0.0.1
Puerto: 8080

Abrimos Google Chrome y en la barra de navegación escribimos:
chrome://settings/

Esto nos abrirá la siguiente ventana de configuración en donde haremos la configuración del proxy, iremos al final y seleccionamos las opciones avanzadas.


Igualmente, iremos al final y seleccionamos Abrir configuración de Proxy

Nos aparecerá la siguiente ventana, y seleccionaremos Configuración LAN


Seleccionamos lo que está marcado en amarillo en la ventana de abajo, y haremos clic en Opciones Avanzadas.


Agregamos los datos del proxy SOCKS y le damos aceptar a todas las ventanas hasta cerrar la configuración de Chrome.

Ahora podrá navegar como si estuviese en la red del router DD-WRT, en este caso en Venezuela. Puede probra que su dirección IP es la de Venezuela, navegando en Google Chrome la página:
cualesmiip.com

5.- Compartir el tunel para otras máquinas en tu red.

Realizar todo lo del paso 4, con la diferencia que en la dirección del proxy, en lugar de usar 127.0.0.1 deberán colocar la dirección IP Privada de su máquina, algo como 192.168.1.12 o 192.168.0.5 o la que tenga en ese momento su máquina.
Podrá verla pulsando la tecla Windows+R escribiendo luego cmd.exe y presiona y en la consola CMD escribir ipconfig y presionando allí podrá ver su dirección su dirección IP que tiene actualmente.


Sin Router DD-WRT

Básicamente lo que nos ahorra el DD-WRT es tener que instalar un servidor SSH, y hacer la redirección de puerto hacia ese servidor.
Si no tenemos un servidor SSH y no sabemos nada de Linux, podemos instalar un servidor SSH en una máquina con Windows, usando FreeSSHd, y podemos ver cómo aquí

Lo único que nos queda después de instalar el servidor, es hacer la redirección de puertos (Port Forward) en nuestro Router (Linksys, TP-Link, Cisco, etc.) pero como cada Router tiene su forma particular de hacer la redirección, entonces deben buscar en el manual de su router o en internet "cómo hacer la redirección de puertos a su servidor SSH y lo demás ya está escrito arriba.

Saludos.

viernes, 29 de abril de 2016

Automatización de Nuevo Huso Horario Venezuela en Fortigate

Bueno, en vista de el nuevo cambio de Huso Horario en Venezuela, ahora con -4:00hs con respecto a UTC, se deberían hacer los cambios del nuevo Huso horario a las 02:30hs VET  (2:30am), con los Linux no hay problema, menos con Debian que ya actualizó tzdata, pero el problema lo tenemos con los Fortigate, por lo que se me ocurrió usar expect en un script para que desde mi máquina con Debian, a las 2:30 am del día 01 de Mayo 2016 cambiara el Huso horario de los equipos Fortigate. Siempre digo que las máquinas deben trabajar para uno, y no uno para las máquinas :D


Acá les dejo el script que hice para automatizar el cambio.


#############################################
### Script para Cambiar Huso Horario a -4:00 UTC
### Autor:  Raul Odria
### Date: 04/29/2016
### Dependencias: expect
### Debian:  aptitude install expect
###
#############################################

#!/usr/bin/expect -f

# Datos del Fortigate
set FortiIP "192.168.0.1"
set ADMIN_USER "TuUserName"
set PASSWORD "Tu-Cl4ve-$uper-Ultra-S3creta-WTF!!!!"

## SSH: agregar -p PUERTO en caso de no usar el pueto estandar ssh, por ejemplo:
## spawn ssh -p 8022 $ADMIN_USER@FortiIP
##
spawn ssh $ADMIN_USER@$FortiIP

expect {
        "password:" {
                send "$PASSWORD\r"
        }
        "(yes/no)? " {
                send "yes\r"
                expect "password:" {
                        send "$PASSWORD\r"
                }
        }
}
expect "$ "
send "config system global\r"
expect {
        "$ " {
               send "set timezone 15\r"
        }
}
expect {
        "$ " {
               send "end\r"
        }
}
expect "$ "
send "exit\r"

############## FIN SCRIPT ###########################

Luego se coloca en un cron para que se ejecute a las 02:30hs del 05/01/2016  (1° de Mayo 2016)

Espero que les sirva.

NOTA: el timezone 15 está relacionado a La Paz -4:00 UTC, pueden verificar en su fortinet que el 15 pertenece a -4:00, y para los que quieran usarlo en otros paises, verificar en su fortiOS el codigo equivalente al TZ que quieren configurar.
Otro punto es que si usas el usuarios admin, debes cambiar los expect $ por expect #

martes, 22 de marzo de 2016

Remote Desktop de manera segura.

Remote Desktop de manera segura.

Hoy me solicitaron opinión sobre el uso de herramientas para administración remota a los equipos portátiles que están en la calle, todo esto en caso de que falle la VPN, por cuestiones de credenciales y no poder actualizarse al Directorio Activo... (Qué problema con Windows...) me preguntaron si podrían hacer uso de TeamViewer o CygWin. 

Realmente no confío en la seguridad de TeamViewer, y para ser honestos, no he investigado y no tengo idea cómo harían para compartir su escritorio usando CygWin, además, que por muchas razones es mejor un programa que no requiera instalación como putty, a tener que instalar cywin. Con putty pude hacer la conexión con un usuario sin privilegios, lo cual es ideal en este caso, y menor es el riesgo en todo sentido. Se me ocurrió algo que hago desde hace años con linux... digamos que es mi llave maestra cuando quiero "evaluar" (burlar) un UTM, y no es otra cosa que mi preferido Secure SHell (SSH).

La idea de usar SSH es hacer un tunel inverso, desde Windows a un Linux/Debian (Sí, Debian, porque me gusta... además "todos los caminos conducen a Debian" :D Enjoy )...  Bueno..., usando la extraordinaria herramienta Putty sobre un Windows, en mi caso Windows 7 y haciendo uso de un usuario sin privilegios, hice un tunel inverso por SSH hasta el servidor Debian, luego desde mi Debian usando rdesktop (o remmina) hice un rdesktop a mi localhost con el puerto configurado en el tunel inverso y Voilà, me conecté por RDestop a la máquina Windows a través de un tunel cifrado, posiblemente ya eso lo hayan hecho antes, pero yo no :)  y me pareció divertido resolver ese "problema" en menos de 30 minutos.

Cuando nace la necesidad es cuando el hombre se vuelve más creativo...

Aquí  el video explicativo, porque es más fácil ver que leer :D
... espero que les sirva.

jueves, 14 de abril de 2011

HP Quickweb

Artículo de phenobarbital

La HP Touchsmart de escritorio, de 19 pulgadas viene con Windows 7; pero de este equipo, lo que más le sorprende a la gente es por lo *avanzado* (tecnológicamente hablando) del software HP Quickweb, una forma de “encender” el equipo en segundos, sin tener que esperar los *casi* 45 segundos que tarda el Windows 7.

Ese software HP Quickweb viene con navegador para Internet, conectividad alámbrica e inalámbrica activada, “una interfaz limpia y mejorada”, Skype y otras aplicaciones para "surfear" la web.

Lo que la gente no sabe es que HP Quickweb es nada más y nada menos, que un LINUX! …

¿Qué es *técnicamente* HP Quickweb?

HP Quickeb es una opción de los nuevos equipos HP que permite arrancar en unos pocos segundos el equipo y viene ya con lo necesario para navegar, descargar las fotos de tu cámara via USB o Bluetooth, etc.

Lo que pocos saben es que HP Quickweb es simplemente un Puppy Linux “sembrado” en una partición especial del disco duro, con un Kernel Linux 2.6.32.1 monolítico especialmente compilado para la HP Touchsmart y que levanta en modo “Live” (por eso puede levantar en pocos segundos) un Gnome Shell con Firefox, Skype, Pidgin y todas las cosas que nosotros los Linuxeros llevamos “años” usando …

Y para la gente que tiene Windows 7, le parece una “asombrosa novedad tecnológica” …

Características Técnicas

Veamos algunas características de ese Puppy Linux:

  • uname -a
    Linux Splashtop 2.6.32.1 #1 SMP Mon Feb 8 14:54:05 CST 2010 i686 GNU/Linux
  • cat /proc/cmdline
    initva=skype baseva=scan MPIDX=SwSetup/QuickWeb/ dvmiofs.vapi=1,0×00000072,0x0000007C i8042.noloop=1 vga=869 loglevel=0 pad=033C5EF2 root=UUID=628AA19D8AA16E6B region=41D location=locationid defconf=sv_SE
  • whoami
    root
  • cat /proc/version #Pretty much the same as uname -a
    Linux version 2.6.32.1 (www-data@build-server2) (gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)) #1 SMP Mon Feb 8 14:54:05 CST 2010
  • apt-get –version
    apt 0.6.46.4-0.1 for linux i386 compiled on Feb 26 2007 16:19:57
    Supported modules:
    *Ver: Standard .deb
    *Pkg: Debian dpkg interface (Priority 20)
    S.L: ‘deb’ Standard Debian binary tree
    S.L: ‘deb-src’ Standard Debian source tree
    Idx: Debian Source Index
    Idx: Debian Package Index
    Idx: Debian dpkg status file
  • cat /etc/apt/sources.list
    ## SCDN Updater package.gz source list
    deb http://sn.splashtop.com/file_system/apt_repository HPIMI00 released

La paquetería es semejante a Ubuntu Hardy Heron (que es binariamente compatible con Debian Lenny) con una serie de mejoras, como la incorporación de Gnome Shell y otras características.

¿Qué es SplashTop OS?

Es un “Web Browser-Based OS” diseñado en el tope de PuppyLinux por la gente de DeviceVM (llamados SplashTop Inc), han estado diseñando “versiones ligeras de splashTop” para fabricantes como Asus, MSI, HP/Compaq, Lenovo, Acer y Sony.

También Dell tiene un Linux-Inside, lo llaman “BlackTop” o “Latitude Services” (y está basado en el escritorio libre Blacbox).

SplashTop vive en los 512MB de ROM de la tarjeta madre, un kernel monolítico le permite ser lo más pequeño posible y ser lo más eficiente posible en la carga, es un sistema operativo “solo lectura”, no se pueden instalar aplicaciones, salvo que descarguemos toda una actualización del BIOS y para ser lo más eficiente posible, es parcheado con RTos (parches para Realtime).

El Sistema Operativo pesa aproximadamente 1.1 Gb y viene con absolutamente TODO lo necesario, para arrancarse en modo Live, en RAM, sin necesidad de utilizar disco duro, salvo para almacenar la información del usuario.

  • Navegador: Firefox
  • Mensajería: pidgin
  • Correo electrónico: thunderbird
  • voIP: Skype
  • Editor de textos: Abiword
  • Visor de imágenes: gThumb
  • Reproductor de música y video: mplayer
  • Películas: linDVD

Para el día a día, ¿alguien necesita algo más?

Conclusiones

Cada vez más empresas te van “acostumbrando” a Linux en sus distintas versiones y sabores (Android en los celulares, Splashtop y Quickweb en los browser-OS, maemo en dispositivos convergentes, las netbook-Mini de HP vendrán con Ubuntu y Gnome-Shell, etc) y la gente aún sigue “repitiendo como loros” lo que los mercadotécnicos les dicen, “acá Microsoft Windows es lo que manda”; no importa que el 70% de los teléfonos a nivel mundial se vendan con Android o que el 80% de los equipos de escritorio te los vendan con “alguna forma de Linux” dentro, o que la mayoría de los dispositivos convergentes (tablets, pads, cámaras digitales, smartphones, etc) sean basados en alguna forma de Unix (Linux, BSD, macOSX), la gente seguirá diciendo que usa más MS Windows.

Un conocido de "Phenobarbital" encendía más veces su PC para ver facebook, leer correo y escuchar música, usando el navegador y el reproductor multimedia de Quickweb que el de Windows 7, pasaba cerca del 70% del tiempo en GNU/Linux y ciertamente, no se daba cuenta!.

Y tú? vas a seguir usando Windows?

viernes, 11 de junio de 2010

Compilar Kernel a la Debian Way corrigiendo el Bug

Tenía tiempo que no escribía en mi blog, bueno... por falta de tiempo atendiendo razones personales y de trabajo, aunque con Debian todo funciona, hoy me tocó compilar un kernel porque lo requería y quise hacerlo de la manera fácil, osea a la Debian Way, pero me topé con un pequeño error y quiero publicar la solución para que otros puedan aprovecharlo.

Comenzaré por el principio y como siempre lo hago, haré un paso a paso para que los que quieran aprender y están desesperados no se desesperen y continúen usando Software Libre y específicamente Debian.

Lo primero es seleccionar el Kernel que quiero instalar desde www.kernel.org y bajárselo, en mi caso haré el ejemplo con el último kernel estable para la fecha en que escribo este documento.

Nos cambiamos al directorio /usr/src para mantener en orden donde va cada cosa en debian ;) aunque pueden hacerlo en cualquier directorio que deseen.

# cd /usr/src

Nos bajamos los fuentes del kernel que queremos, en mi caso es el 2.6.34

# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2

Descomprimimos los fuentes.

# tar xvjf linux-2.6.34.tar.bz2

Nos cambiamos al directorio donde están los fuentes:

# cd linux-2.6.34

Configuramos nuestro kernel con los parámetros que queramos, agregamos o quitamos los soportes del kernel que no queramos :)

# make menuconfig

Corregimos el Bug ;) y pueden probar sin realizar el siguiente comando a ver si les pasa o ya esté corregido.

# cp include/generated/utsrelease.h include/linux/

Procedemos a compilar el Kernel con la magia Debian :)

# make-kpkg clean
# make-kpkg -append-to-version --initrd linux_image linux_headers

Instalamos el kernel

# cd /usr/src

# dpkg -i /linux-image-2.6.34-10.00.Custom_amd64.deb

Y si desean instalamos los headers.

# dpkg -i linux-headers-2.6.34-10.00.Custom_amd64.deb

Eso es todo ;)

Saludos

miércoles, 20 de mayo de 2009

Quotas en Debian

Es típico querer compartir archivos en algún momento, o tal vez necesariamente en una oficina, pero el problema de esto es que hay algunos usuarios que se sobrepasan en el uso o mejor dicho, mal uso de este recurso, por lo que es importante acotarles el espacio al usuario o al recurso compratido, es por ello que voy a explicar la forma sencilla de hacerlo.

1.- Preparar la Partición

Para poder acotar un espacio del disco debemos identificar qué parte de él se va establecer con este servicio, el más común de todos es /home y es con el que voy a explicar (también se suelen usar quotas en los servicios de correo)

Editamos /etc/fstab usando el editor de tu preferencia.

snx# vi /etc/fsatab

En este ejemplo activaremos quotas para la partición /dev/sda3 agregando despues de default "usrquota" para implementar quotas a los usuarios y "grpquota" para activar quotas por grupos, se pueden usar ambas o una de ellas solamente.

/dev/sda3/ /home ext3 defaults,usrquota,grpquota 0 2

Luego hay que activar la partición:

snx# mount -o remount,usrquota,grpquota /home (recomendable reiniciar de ser posible)

2.- Se deben crear 2 archivos en la partición que queremos colocarle quotas, en el caso del ejemplo es /home

snx# touch /home/aquota.user /home/aquota.group

3.- Ahora le daremos permiso SOLO a root para estos archivos

snx# chmod 600 /home/aquota.user /home/aquota.group

4.- Instalación de quota y quotatool:

snx# aptitude install quota quotatool

5.- Activamos las cuotas:

quotacheck -vagumf

6.- Probamos las cuotas activándola a un usuario:

(Usuario="usuario", Quota=10MB)

quotatool -u usuario -bq 10M -l '10M Mb' /home

7.- Checar las cuotas asignadas

snx# repquota -vs /home

8.- Ahora como usuario probaremos que funcione:

snx# su usuario
snx# cd /home/usuario (la carpeta del Usuario)

Crearemos un archivo llamado borrame.img de 10MB, para ello usamos dd

snx# dd if=/dev/zero of=borrame.img bs=1M count=10

Si la carpeta está vacía creará el archivo, ya que no excede la cuota, de lo contrario dará error por exceso de quota.

Si no da error volver a ejecutar dd cambiando el nombre del archivo borrane.img para crear uno nuevo, esto hará que se trate de crear un nuevo archivo de 10MB el cual no se permitirá, o en su defecto lo crea con 0 Bytes

9.- Si queremos eliminar la quota del Usuario "usuario" sencillamente le colocamos 0 a sus quotas

snx# quotatool -u usuario -bq 0M -l '0 Mb' /home

Nota: Las comillas de '0 Mb' son comillas simples.

Enjoy