Instalar Teamviewer en Ubuntu

Linux-Launched
Estándar

Estos pasos son interesantes cuando tenemos acceso desde SSH pero queremos tener acceso a todo el equipo desde el modo grafico.

Primero realizamos la descarga

wget http://download.teamviewer.com/download/teamviewer_i386.deb

 

Instalamos con gdebi, ejecutando estas operaciones en cadena

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install gdebi

En el directorio donde hemos descargado el paquete deb ejecutamos esto:

sudo gdebi teamviewer_i386.deb

Ahora ya deberia estar instalado desde el terminal, pero vamos a configurarlo desde ssh.

Primero buscamos la localización de la instalación de Teamviewer en nuestro Ubuntu

whereis teamviewer

lo normal es que los binarios estén en esta carpeta /usr/bin/teamviewer

asi que ejecutamos esta orden para saber el estado del servicio

/usr/bin/teamviewer –info

Si ya esta iniciado el servicio nos dara nuestro ID de Teamviewer :

TeamViewer ID: XXXXXXXXX

En el caso de que el servicio no este arrancado podemos activar el daemon de esta forma

sudo teamviewer --daemon enable

y arrancar el servicio.

Si queremos cambiar la password tenemos que ejecutar esta orden:

/usr/bin/teamviewer –passwd MYnuevaPassword

Nota:

Hay muchos tutoriales donde se explica la instalación de otras formas pero esta es la única que me ha funcionado, tanto en 14.04 como en 16.04.

 

 

Como empezar con MongoDB, Node.js, Express y Jade en Visual Studio

mongo_visual_studio
Estándar

Renovarse o morir.

Esa es la frase lapidaria que cualquier buen programador lleva grabada en su cerebro desde que empieza a trabajar en esta selva de lenguajes, bases de datos, frameworks y demás “fauna”.

Durante muchos años mis labores principales no eran de programación, prácticamente menos Access (y VBA) mis labores profesionales habían sido siempre de gestión de sistemas (servidores, comunicaciones, bases de datos, etc). Pero llego mi “evolución” profesional en el año 2006, cuando gracias a mis conocimientos de Access y VBA entre en una empresa en la que de verdad comencé mi carrera de amor-odio con la programación, concretamente en entorno web con ASP clásico.

Alguno ya empezará a mirar ojiplatico las palabras “ASP Clásico”, pero si, la web de mi nueva empresa estaba programada en ese lenguaje prácticamente calcado a Visual Basic…pero funcionaba, y bastante bien además. Al no provenir de la casta de los “programadores” universitarios, en muchos temas soy bastante menos extremista en cuanto a que cosas son importantes a la hora de crear código (patrones, POO, como usar variables, constantes y demás de forma “correcta”, etc)…yo soy mas pragmático, y muchos dirán “sucio”….que se le va a hacer. Admito que mi preocupación, quizás por mi pasado de Sistemas, es que el programa funcione bien, ¿Que se puede hacer ademas bonito?, seguramente, pero alguien que no entró en ese ámbito laboral desde el principio, bastante tiene con que las cosas funcionen bien. Esto me da una serie de ventajas como he dicho…soy mucho mas flexible a la hora de considerar nuevas situaciones y soluciones a los problemas diarios, y entre ellos se encuentran las evoluciones de mis desarrollos actuales.

Actualmente sigo manteniendo aplicaciones con ASP Clásico, pero mis ultimos backends ya se programan en C# (siempre sobre SQL Server). El hecho es que para vivir como freelance del desarrollo web te encuentras con muchos ámbitos distintos, y el que cada vez mas esta poniéndose en cabeza de las aplicaciones online, es el tema del BigData. Para el que no lo sepa, el “BigData” no es un monstruo de las montañas….es un concepto que engloba distintos tipos de motores de bases de datos especializadas en manejar grandes cantidades de información.

¿Porque existe el BigData?

El análisis de datos es fundamental para las estrategias de negocio actuales, incluso aunque el negocio no sea online. Este análisis siempre esta basado en consultar distintas variables en las bases de datos para extraer información relevante de los clientes, el problema es que en el caso de empresas con cientos de miles o millones de clientes/usuarios, las bases de datos relacionales (SQL Server, Oracle, MySQL, etc) empiezan a tener problemas cuando las consultas requieren manejar cientos de miles o millones de registros, precisamente por la arquitectura en la que se guarda la informacion. Para solucionar este problema desde distintas posiciones han surgido bases de datos NoSQL (Not Only SQL) que intentan solucionar esta problemática usando estrategias distintas para almacenar los datos, y hacer que la consulta y extracción de información sea mucho mas efectiva a los niveles que no llegan las relacionales.

MongoDB

De todas las bases de datos NoSQL mas conocidas hice un estudio de su implantación, uso, y complejidad de aprendizaje para empezar a trabajar con alguna de ellas, siendo Mongo la seleccionada. El argumento definitivo es que tiene mucha mas cuota de mercado que el resto de opciones, lo que la hace mas útil de cara a mis objetivos profesionales.

En lugar de guardar los datos en tablas como se hace en las base de datos relacionales, MongoDB guarda estructuras de datos en documentos parecidos a JSON con un esquema dinámico (MongoDB utiliza una especificación llamada BSON), haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida.

Para instalar MongoDB solo es necesario ir a su web Descargar MongoDB y seguir estos pasos:

  1. Instalar
  2. Crear una carpeta c:\data\db (es la ruta por defecto, buceando en la documentación se puede modificar)
  3. Ejecutar el servicio “mongod.exe”, en mi caso la ruta es la siguiente: C:\Program Files\MongoDB\Server\3.2\bin  (sin la carpeta donde guardar la base de datos el servicio no arrancará)

Para facilitar un poco las cosas podemos descargarnos una aplicación GUI para gestionar/ver las bases de datos, en mi caso he optado por MongoBooster el cual tiene una version free no-commercial.

Node.js, Express y Jade

Para sacarle todo el jugo a MongoDB había que elegir una plataforma donde empezar el camino y que mejor que hacer un 2×1, aprendiendo ademas de Mongo, otras tecnologías que ya son una realidad en el mundo del desarrollo web. ¿Porque elegir Node, Express y Jade?…. por comodidad, ya que existen plantillas prediseñadas para Visual Studio, así de simple.

Después de instalar Node.js para Windows  toca instalar Node para Visual Studio , que nos permite elegir nuevas plantillas al iniciar un nuevo proyecto, todas basadas en Node.js, Express (framework de Node), a la que se suma Jade (framework de plantillas HTML que funciona con Express). Node para Visual Studio requiere Visual Studio 2015 (puede ser la versión Community que es gratuita)

Concretamente mi primer “proyecto” de pruebas tiene estos 3 elementos, os dejo un pantallazo para que veais la ruta para seleccionar estas plantillas:

node visual studio

Una vez abierto el nuevo proyecto podemos ver la estructura de carpetas.

express

Para iniciar nuestras pruebas lo haremos insertando registros en Mongo y mostrándolos a través de una de las paginas de la web resultante. El modelo Node/Express es MVC, por lo que el código se divide en varios archivos para que todo funcione correctamente y sea mantenible.

Antes de empezar con el código necesitaremos instalar el modulo Mongoose a través de npm. Mongoose es un módulo adicional que podemos encontrarlo en el repositorio de npm y que nos permite realizar la conexión entre Node.js y MongoDB de una manera mas sencilla. En Visual Studio tenemos una manera sencilla de instalar cualquier modulo, haciendo clic en la carpeta npm del proyecto y seleccionando “Install New npm Packages”….saldra una pantalla donde buscar el modulo y ejecutar la instalación de manera automática. Sino siempre se puede usar la consola npm con esta orden: npm install mongoose

Empecemos con el código

Nuestro objetivo es guardar y mostrar datos de películas a través de la pagina “/movies” en nuestro proyecto.

En la carpeta /routes crearemos un js llamado movies.js en el que introduciremos el siguiente código, si os fijáis es bastante sencillo de leer:

  1. Definimos la conexión con MongoDB,
  2. Definimos un esquema de datos con el que vamos a trabajar
  3. Abrimos la conexión e instanciamos el “modelo” sobre el que vamos a interactuar contra los registros (colecciones), con la siguiente estructura (El primer argumento es el nombre en singular de la colección y el segundo el esquema). Mongoose buscara automáticamente  el plural del nombre del modelo….raro, mucho, pero es así.
  4. Una vez recojamos la petición desde el navegador buscamos registros.
  5. En el caso de que la tabla ya tenga algún registro insertamos uno nuevo y volvemos a buscar, cargando los resultados en una variable que usaremos en jade para mostrar el listado de películas.

Sobre el esquema y modelo tenéis mas información en la documentación de Mongoose 

var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');

//1
mongoose.connect("mongodb://localhost/local");
var db = mongoose.connection;

//2
var movieSchema = mongoose.Schema({
 name: String,
 released: Boolean,
 watched: Boolean
});

//3
var MovieModel = mongoose.model('movie', movieSchema);
db.on('error', console.error.bind(console, "connection error"));
db.once('open', function () {
 console.log("moviesDb is open...");

});


router.get('/', function (req, res) { 
 //4

 MovieModel.find().exec(function (error, results) {
 if (results.length === 0) {

 } else {
 //5
 MovieModel.create({ name: "Pixels", released: true, watched: false });
 console.log("Movie created...");
 }
 });
 MovieModel.find().exec(function (error, results) {
 if (results.length != 0) {
 res.render('movies', { movies: results }); 
 } 
 });
 
 
});


Con esto tenemos terminada la parte de datos, ahora crearemos la vista movies.jade en la carpeta /views en la que introduciremos el siguiente código:

extends layout

block content
 h1 Movies
 a(href="/addmovie") Add Movie
 ul
    each movie, i in movies
       li 
          a(href="/movie/#{movie.name}") #{movie.name}

Para más información sobre la sintaxis de Jade tenéis este enlace. Básicamente, como podéis ver, definimos objetos HTML pero de una manera mucho mas sencilla, incluyendo ademas funciones y operadores de tratamiento de datos.

  1. En el ejemplo extendemos la plantilla principal “layout” que contiene el codigo común.
  2. Abrimos un bloque “content”
  3. Definimos un h1 con el texto “Movies”
  4. Definimos un enlace a /addmovie con el texto “Add Movie”
  5. Abrimos un objeto ul
  6. Recorremos el objeto movies que traemos desde movies.js y por cada registro abrimos un <li> con el enlace al nombre de la pelicula.

En principio con este código ya tenemos la parte de la vista de datos, ahora tenemos que configurar el archivo de la aplicación app.js para que las llamadas a la url /movies se gestionen de manera correcta, añadiendo estas lineas

var routes = require('./routes/index');
var movies = require('./routes/movies');

var app = express();
.... 
....
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/movies', movies);

Con estas modificaciones ya deberíamos de poder lanzar el debug contra Google Chrome para probar nuestro código y ver como funciona. En principio solo con este codigo hemos probado 2 operaciones importantes contra MongoDB, búsqueda e inserción de registros.

En próximos artúculos seguiremos actualizando el proyecto con mas operaciones emulando la actividad normal de una web.

¿Que te ha parecido el post? Deja tus comentarios.

Exploit en MySQL aprovecha vulnerabilidad para obtener acceso de administrador Root

Estándar

Fuente: http://www.muycomputerpro.com/2012/06/11/una-vulnerabilidad-en-mysql-permite-ganar-acceso-root/

Varios exploits para un fallo de autenticación en MySQL se están extendiendo en diversos canales en Internet, en parte porque este error es especialmente sencillo de aprovechar para ganar acceso root a la base de datos.

El único factor que disminuye su peligrosidad es el hecho de que depende de la librería C con la que se implementó MySQL. Este “bypass” del sistema de contraseñas tiene ya asignada un código de vulnerabilidad, la CVE-2012-2122, y permite que un atacante logre acceso root a la base de datos repitiendo varias veces el intento de acceder a dicha cuenta con una contraseña incorrecta.

La vulnerabilidad ha sido detallada por el coordinador de seguridad de MariaDB -un fork de MySQL, y se debe a un error en el llamado error de casting al comparar la contraseña esperada con la contraseña introducida.

Oracle ya corrigió el problema de este bug -que codificó como 64884– tanto en MySQL 5.1.63como en MySQL 5.5.24, ambos lanzados hace un mes. La corrección consiste en un simple cambio en una línea, y un parche similar se puede aplicar al código fuente de MariaDB.

Distribuciones como Ubuntu (10.04, 10.10, 11.04, 11.10 y 12.04), openSUSE 12.1 64 bits, Fedora 16 64 bits y Arch Linux tienen esta vulnerabilidad, mientras uqe Debian, RHEL, CentOS y Gentoo parecen estar a salvo. Lo ideal es actualizar los paquetes en los sistemas afectados cuanto antes.

Fuente 2: http://www.hackplayers.com/2012/06/evasion-de-autenticacion-en.html

Sergei Golubchik, el coordinador de seguridad de MariaDB (un derivado de MySQL con licencia GPL), ha encontrado un serio bug en MySQL y MariaDB que podría permitir a un atacante evadir la autenticación de la base de datos.

La vulnerabilidad identificada como CVE-2012-2122puede afectar a todas las versiones 5.1.61, 5.2.11, 5.3.5, 5.5.22 y anteriores de ambos motores de base datos, siempre que hayan sido compiladas con librerías que permiten que la rutina memcmp() pueda llegar a devolver enteros fuera del rango de -128 a 127 (Linux glibc
sse-optimized
).

Cuando un usuario se conecta a MariaDB/MySQL, se calcula un token (un hash SHA a partir de su contraseña y una cadena al azar) y se compara con el valor esperado. Debido a una serie de pruebas incorrectas, puede ocurrir que el token y el valor esperado se consideren iguales, incluso si la función memcmp() devuelve un valor distinto de cero. En este caso, MySQL/MariaDB puede pensar que la contraseña es correcta, aunque no lo sea. Debido a que el protocolo utiliza cadenas aleatorias, la probabilidad de provocar este error es de aproximadamente de 1 sobre 256.

Esto significa que, si se conoce un nombre de usuario para conectarse (y el root casi siempre existe), podremos conectarnos con “cualquier” contraseña con repetidos intentos de conexión. Unos 300 intentos sólo nos llevaran una fracción de segundo, así que básicamente la protección con contraseña de la cuenta es como si no existiera. Además cualquier cliente puedo hacerlo, no hay necesidad de una biblioteca libmysqlclient especial“.

Contramedidas:

La primera regla para securizar MySQL es no exponer la base de datos en la red. La mayoría de las distribuciones de Linux configuran el acceso al demonio de MySQL sólo para localhost. En caso de que sea necesario habilitar el acceso remoto al servicio, MySQL también proporciona controles de acceso basados en host.

Lo más fácil es modificar el archivo my.cnf con el fin de restringir el acceso al sistema local. Busca la sección [mysqld] y cambia (o añade una nueva línea para configurar) el parámetro “bind-address” a “127.0.0.1”. Reinicia el servicio de MySQL para aplicar esta configuración.

La siguiente recomendación claramente es actualizar o parchear la base de datos. Oracle ya corrigió el error en MySQL, bug id 64884, con las versiones MySQL 5.1.63 y 5.5.24, ambas publicadas hace un mes. La corrección aplicada es un único cambio en una línea; también hay un parche similar disponible para MariaDB. En breve, se espera que las distintas distribuciones de Linux vaya publicando parches para sus correspondientes versiones de MySQL.

Referencias:
 
CVE-2012-2122 : Serious Mysql Authentication Bypass Vulnerability
CVE-2012-2122 : Mysql Authentication Bypass Exploit
Simple authentication bypass for MySQL root revealed 
CVE-2012-2122: A Tragically Comedic Security Flaw in MySQL (comprobación de sistemas afectados)

Sistemas vulnerables:

  • Ubuntu Linux 64-bit ( 10.04, 10.10, 11.04, 11.10, 12.04 ) ( via many including@michealc )
  • OpenSuSE 12.1 64-bit MySQL 5.5.23-log ( via @michealc )
  • Fedora 16 64-bit ( via hexed )
  • Arch Linux (unspecified version)

Sistemas NO vulnerables:

  • Official builds from MySQL and MariaDB (including Windows)
  • Red Hat Enterprise Linux, CentOS (32-bit and 64-bit) [ not conclusive ]
  • Ubuntu Linux 32-bit (10.04, 11.10, 12.04, likely all)
  • Debian Linux 6.0.3 64-bit (Version 14.14 Distrib 5.5.18)
  • Debian Linux lenny 32-bit 5.0.51a-24+lenny5 ( via @matthewbloch )
  • Debian Linux lenny 64-bit 5.0.51a-24+lenny5 ( via @matthewbloch )
  • Debian Linux lenny 64-bit 5.1.51-1-log ( via @matthewbloch )
  • Debian Linux squeeze 64-bit 5.1.49-3-log ( via @matthewbloch )
  • Debian Linux squeeze 32-bit 5.1.61-0+squeeze1 ( via @matthewbloch )
  • Debian Linux squeeze 64-bit 5.1.61-0+squeeze1 ( via @matthewbloch )
  • Gentoo 64-bit 5.1.62-r1 ( via @twit4c )
  • SuSE 9.3 i586 MySQL 4.1.10a ( via @twit4c )

mysql1 Una vulnerabilidad en MySQL permite ganar acceso root

Servicios Outsourcing de Bases de Datos

Estándar

Que importante es tener un especialista al que acudir cuando tenemos un problema.

En el caso del desarrollo web, una persona no puede saber de todo, y en un equipo tambien en muchas ocasiones hay carencias en cuanto a los conocimientos y habilidades de cada miembro. Por eso, es tan importante conocer las propias limitaciones, y buscar ayuda en el momento adecuado, no por ello tu servicio deja de ser bueno, al contrario, es mejor, porque le ofreces a tu cliente la posibilidad de una mejor atencion y conocimientos especializados.

En nuestro caso, hemos encontrado una empresa que nos presta ayuda en el ámbito de las bases de datos. Damoin Web Services tiene un equipo preparado para gestionar bases de datos en un nivel técnico alto, pero tambien existen las excepciones y proyectos que superan nuestra capacidad técnica. Para compensarlo buscamos la mejor empresa posible que nos apoye en momentos de crisis o proyectos mas intensos. Os queremos presentar a GPS Open Source.

Desde GPS Open Source ofrecen servicios de consultoría/mantenimiento de  bases de datos en entornos empresariales.

Consultoría Oracle – Consultoría MySQL – Consultoría SQL Server – Consultoría Sybase

Su portfolio se dirige a compañías medianas y grandes que requieren de un proveedor especializado y de confianza. Un socio para abordar proyectos que exigen experiencia y conocimiento en entornos de bases de datos , ya sea Oracle, MySQL, SQL Server o Sybase.

Los consultores y tecnicos de GPS Open Souce cuentan con un amplio bagaje en la administración de bases de datos en entornos críticos y han participando y liderado proyectos de migración e implantación de bases de datos para grandes compañías. Su aportación parte de esa especialización y se hace fuerte desde el compromiso y el esfuerzo como garantía de éxito.

Su valor como socio en entornos de base de datos

El objetivo principal de GPS Open Source es convertirse en un proveedor cercano a sus socios y clientes. Una empresa capaz de ofrecer la confianza suficiente para dejar en sus manos proyectos y áreas importantes de sus activos informáticos. Un proveedor, en definitiva, que forma parte de su Departamento IT como un equipo más de técnicos especializados y comprometidos con el objetivo de su empresa.

 

Contenidos sobre Open Source 14 de Marzo

Estándar
Linus Torvalds cabreado. El pingüino se pone serio – Gizmodo ES – The gadgets weblog
http://www.gizmodo.es/2012/03/11/linus-torvalds-cabreado-el-pinguino-se-pone-serio.html
keywords:Linus,Torvalds,cabreado.,pingüino,pone,serio,Gizmodo,The,gadgets,weblog
CodeIgniter como leer diferentes BD – Foros del Web
http://www.forosdelweb.com/f18/como-leer-diferentes-bd-981419/
keywords:CodeIgniter,como,leer,diferentes,Foros,del,Web
como sacar el diagrama de la base de datos mysql?
http://tecnoguia.tv/como-sacar-el-diagrama-de-la-base-de-datos-mysql/?utm_source=feedburner&utm_medium=twitter&utm_campaign=Feed%3A+Tecnoguiatv+%28TEC
keywords:como,sacar,diagrama,base,datos,mysql?
Recuperar datos de Checkbox en PHP – Foros del Web
http://www.forosdelweb.com/f18/recuperar-datos-checkbox-php-981397/
keywords:Recuperar,datos,Checkbox,PHP,Foros,del,Web
Problemas codificacion web. Configurar codificación utf8 php
http://www.pedroventura.com/blog_programacion/php/problemas-codificacion-web-configurar-codificacion-utf8-php-mysql-y-html/
keywords:Problemas,codificacion,web.,Configurar,codificación,utf8,php
Webinar: Conceptos SOA & #oracle SOA Suite | atSistemas – Consultoría
http://atsistemas.com/eventos-atsistemas/conceptos-soa-oracle-soa-suite/?utm_source=twitter&utm_medium=twitter&utm_campaign=twitter
keywords:Webinar:,Conceptos,SOA,#oracle,SOA,Suite,atSistemas,Consultoría
Clase PHP para trabajar con Mysql
http://hacerpaginaswebconphp.com/clase-php-trabajar-mysq/
keywords:Clase,PHP,para,trabajar,con,Mysql
El #software #libre se abre paso en las administraciones en crisis
http://www.meneame.net/story/software-libre-abre-paso-administraciones-crisis
keywords:#software,#libre,abre,paso,las,administraciones,crisis
Google eligió a Asus para fabricar su tableta
http://america.infobae.com/notas/46048-Google-eligio-a-Asus-para-fabricar-su-tableta
keywords:Google,eligió,Asus,para,fabricar,tableta
Mozilla muestra los cambios que experimentará Firefox durante 2012
http://www.gacetatecnologica.com/empresas/2151-mozilla-muestra-los-cambios-que-experimentara-firefox-durante-2012.html
keywords:Mozilla,muestra,los,cambios,que,experimentará,Firefox,durante,2012
Descargar el driver del conector #mysql ODBC
http://www.guatewireless.org/tecnologia/bases-de-datos/descargar-el-driver-del-conector-mysql-odbc.html
keywords:Descargar,driver,del,conector,#mysql,ODBC
Hacer consulta #mysql con variables
http://www.forosdelweb.com/f18/hacer-consulta-mysql-con-variables-que-contiene-variables-981124/
keywords:Hacer,consulta,#mysql,con,variables
MySQL Query Cache: configuración y optimización
http://rm-rf.es/mysql-query-cache-configuracion-y-optimizacion/
keywords:MySQL,Query,Cache:,configuración,optimización
Optimizar #mysql para WordPress
http://www.guatewireless.org/tecnologia/software/wordpress-software-tecnologia/optimizar-mysql-para-wordpress.html
keywords:Optimizar,#mysql,para,WordPress
Comunidad Tecnológica de #oracle en Latinoamérica
http://www.oracle.com/technetwork/es/community/blog-326863-esa.html
keywords:Comunidad,Tecnológica,#oracle,Latinoamérica
Curso Asterisk 1.8 – Capítulo 05 – Configuración de Extensiones SIP
http://tuxapuntes.com/node/382
keywords:Curso,Asterisk,1.8,Capítulo,Configuración,Extensiones,SIP
Estribancus: Usar cliente #mysql python en windows
http://www.pvilas.com/2012/03/usar-cliente-mysql-con-python.html?spref=tw
keywords:Estribancus:,Usar,cliente,#mysql,python,windows